The Birdfont Source Code


All Repositories / birdfont.git / commitdiff – RSS feed

Update items in overview and store font in cached font

These changes was commited to the Birdfont repository Thu, 28 May 2015 19:27:48 +0000.

Contributing

Send patches or pull requests to johan.mattsson.m@gmail.com.
Clone this repository: git clone https://github.com/johanmattssonm/birdfont.git
[Thu, 28 May 2015 19:27:48 +0000]

Updated Files

install.py
libbirdfont/BirdFontFile.vala
libbirdfont/OpenFontFormat/load_font.c
libbirdfont/OverView.vala
libbirdfont/Renderer/CachedFont.vala
libbirdfont/Renderer/FallbackFont.vala
libbirdfont/Renderer/Text.vala
libbirdfont/Test.vala
libbirdfont/TestBirdFont.vala
libbirdfont/TestCases.vala
resources/icons.bf
--- a/install.py +++ b/install.py @@ -103,7 +103,6 @@ install ('resources/dark.theme', '/share/birdfont', 644) install ('resources/high_contrast.theme', '/share/birdfont', 644) install ('resources/key_bindings.xml', '/share/birdfont', 644) - install ('resources/roboto.bf', '/share/birdfont', 644) install ('resources/linux/birdfont_window_icon.png', '/share/birdfont', 644) install ('resources/linux/birdfont.desktop', '/share/applications', 644) install ('resources/ucd.sqlite', '/share/birdfont', 644)
--- a/libbirdfont/BirdFontFile.vala +++ b/libbirdfont/BirdFontFile.vala @@ -1254,16 +1254,16 @@ EditPoint ep; path.add (parse_double (px), parse_double (py)); - ep = path.points.get (path.points.size - 1); + ep = path.get_last_point (); ep.get_right_handle ().type = PointType.LINE_DOUBLE_CURVE; ep.get_left_handle ().type = PointType.LINE_DOUBLE_CURVE; ep.type = PointType.LINE_DOUBLE_CURVE; - ep.recalculate_linear_handles (); + ep.recalculate_linear_handles (); } private static void cubic_line (Path path, string px, string py) { EditPoint ep; - + path.add (parse_double (px), parse_double (py)); ep = path.points.get (path.points.size - 1); ep.get_right_handle ().type = PointType.LINE_CUBIC;
--- a/libbirdfont/OpenFontFormat/load_font.c +++ b/libbirdfont/OpenFontFormat/load_font.c @@ -914,10 +914,10 @@ if (charcode > 32) { // not control character g_string_append_printf (glyph, "<collection unicode=\"U+%x\">\n", (guint)charcode); g_string_append_printf (glyph, "\t<glyph left=\"%f\" right=\"%f\" selected=\"true\">\n", 0.0, face->glyph->metrics.horiAdvance * units); - + bf_data = get_bf_path (charcode, face, units_per_em, err); g_string_append (glyph, bf_data->str); - + g_string_append (glyph, "\t</glyph>\n"); g_string_append_printf (glyph, "</collection>\n"); } else {
--- a/libbirdfont/OverView.vala +++ b/libbirdfont/OverView.vala @@ -293,6 +293,7 @@ OverViewItem.width = OverViewItem.DEFAULT_WIDTH * z; OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * z; OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * z; + update_item_list (); GlyphCanvas.redraw (); } @@ -300,6 +301,7 @@ OverViewItem.width = OverViewItem.DEFAULT_WIDTH * 0.5; OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * 0.5; OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * 0.5; + update_item_list (); GlyphCanvas.redraw (); update_zoom_bar (); } @@ -308,6 +310,7 @@ OverViewItem.width = OverViewItem.DEFAULT_WIDTH; OverViewItem.height = OverViewItem.DEFAULT_HEIGHT; OverViewItem.margin = OverViewItem.DEFAULT_MARGIN; + update_item_list (); GlyphCanvas.redraw (); update_zoom_bar (); } @@ -315,6 +318,7 @@ public override void zoom_max () { OverViewItem.width = allocation.width; OverViewItem.height = allocation.height; + update_item_list (); GlyphCanvas.redraw (); } @@ -322,6 +326,7 @@ OverViewItem.width *= 1.1; OverViewItem.height *= 1.1; OverViewItem.margin *= 1.1; + update_item_list (); GlyphCanvas.redraw (); update_zoom_bar (); } @@ -329,7 +334,8 @@ public override void zoom_out () { OverViewItem.width *= 0.9; OverViewItem.height *= 0.9; - OverViewItem.margin *= 0.9; + OverViewItem.margin *= 0.9; + update_item_list (); GlyphCanvas.redraw (); update_zoom_bar (); } @@ -1296,7 +1302,6 @@ character.set_text ((!) c.to_string ()); character.set_font_size (height); character.draw_at_top (cr, x + 10, y); - //character.draw_at_baseline (cr, x, y); cr.restore (); }
--- a/libbirdfont/Renderer/CachedFont.vala +++ b/libbirdfont/Renderer/CachedFont.vala @@ -20,18 +20,12 @@ public Font? font; public double top_limit { - get { - return _top_limit; - } - + get { return _top_limit; } set { _top_limit = value; } } public double bottom_limit { - get { - return _bottom_limit; - } - + get { return _bottom_limit; } set { _bottom_limit = value; } } @@ -55,7 +49,6 @@ } public Glyph? get_glyph_by_name (string name) { - Font f = new Font (); Glyph? g = null; if (font != null) { @@ -63,7 +56,7 @@ } if (g == null && name.char_count () == 1) { - f = fallback_font.get_single_glyph_font (name.get_char (0)); + Font f = fallback_font.get_single_glyph_font (name.get_char (0)); g = f.get_glyph_by_name (name); if (g == null) { @@ -73,6 +66,8 @@ top_limit = f.top_limit; base_line = f.base_line; bottom_limit = f.bottom_limit; + + font = f; } return g;
--- a/libbirdfont/Renderer/FallbackFont.vala +++ b/libbirdfont/Renderer/FallbackFont.vala @@ -67,6 +67,7 @@ } ~FallbackFont () { + print("Delete fallback font."); if (default_font != null) { close_font (default_font); } @@ -76,7 +77,7 @@ Font f; // remove glyphs from cache if it is full - if (cached.size > 300) { + if (cached.size > 300) { for (int i = 0; i < 100 && cached.size > 0; i++) { glyphs.unset (cached.get (cached.size - 1)); cached.remove_at (cached.size - 1);
--- a/libbirdfont/Renderer/Text.vala +++ b/libbirdfont/Renderer/Text.vala @@ -457,8 +457,8 @@ warning (@"Path is open in $(glyph.get_name ())."); } - path.add_hidden_double_points (); - + //path.add_hidden_double_points (); // FIXME: this distorts shapes + prev = path.points.get (path.points.size - 1); xa = (prev.x - lsb) * scale + x; ya = y - prev.y * scale; @@ -467,6 +467,7 @@ by = (y - cached_font.base_line * scale); for (int i = 0; i < path.points.size; i++) { e = path.points.get (i).copy (); + PenTool.convert_point_segment_type (prev, e, PointType.CUBIC); xb = (prev.get_right_handle ().x - lsb) * scale + x;
--- a/libbirdfont/Test.vala +++ b/libbirdfont/Test.vala @@ -39,6 +39,11 @@ public double get_time () { double stop_time = GLib.get_real_time (); + + if (time_stamp == 0) { + return 0; + } + return (stop_time - time_stamp) / 1000000.0; } @@ -52,9 +57,14 @@ public string get_test_time () { double stop_time = GLib.get_real_time (); + + if (time_stamp == 0) { + return ""; + } + return @"$name $((stop_time - time_stamp) / 1000000.0)s\n"; } } }
--- a/libbirdfont/TestBirdFont.vala +++ b/libbirdfont/TestBirdFont.vala @@ -189,9 +189,8 @@ pad (40 - t.name.char_count()); stdout.printf (@"$(t.get_time ())s\n"); } - - stdout.printf ("\n"); + stdout.printf ("\n"); stdout.printf ("Total %u test cases executed, %u passed and %u failed.\n", (passed.length () + failed.length ()), passed.length (), failed.length ()); }
--- a/libbirdfont/TestCases.vala +++ b/libbirdfont/TestCases.vala @@ -1307,9 +1307,8 @@ } else { warning ("Invalid XML code."); } - } - + static void print_tags (Tag tag) { print (tag.get_name ()); print ("\n");
--- a/resources/icons.bf +++ b/resources/icons.bf @@ -28,7 +28,6 @@ <grid width="1.0000"/> <grid width="2.0000"/> <grid width="4.0000"/> - <background scale="1.0000" /> <collection unicode="U+30"> @@ -365,7 +364,6 @@ <selected id="1"/> <glyph id="1" left="-28" right="28"> <path data="B -6.8968389986,40.0000000000 M 8.2603830359,40.0000000000 M 8.2603830359,36.9968551331 M -3.3283545617,36.9968551331 M -3.3283545617,29.2239244671 M 7.1297762546,29.2239244671 M 7.1297762546,26.2207434208 M -3.3283545617,26.2207434208 M -3.3283545617,13.6250964687 M -6.8968389986,13.6250964687 M -6.8968389986,40.0000000000" /> - <path data="S -0.5470692718,27.1467646351 L -0.5470692718,27.1467646351 O" /> </glyph> </collection> <collection unicode="U+67"> @@ -419,7 +417,7 @@ <glyph id="1" left="-28" right="33.597883597883616"> <path data="B 33.4557723114,27.7602470013 C 33.4557723114,10.8486376087 19.7651712298,-2.8868862385 2.8535762171,-2.8868862385 C -14.0580336070,-2.8868862385 -27.7935573823,10.8486376087 -27.7935573823,27.7602470013 C -27.7935573823,44.6718405761 -14.0580336070,58.4073788032 2.8535762171,58.4073788032 C 19.7651712298,58.4073788032 33.4557723114,44.6718405761 33.4557723114,27.7602470013" /> <path data="B -22.9372197969,27.6712637687 C -22.9372197969,13.3872582207 -11.3620694169,1.8121082225 2.9219361312,1.8121082225 C 17.2059289484,1.8121082225 28.7413083611,13.3872582207 28.7413083611,27.6712637687 C 28.7413083611,41.9552553130 17.2059289484,53.5304180417 2.9219361312,53.5304180417 C -11.3620694169,53.5304180417 -22.9372197969,41.9552553130 -22.9372197969,27.6712637687" /> - <path data="B -0.7322863839,45.1175621773 M 6.5236640807,45.1175621773 M 6.5236640807,39.7818352495 M 6.5236640807,39.7818352495 C 4.1050139259,39.7818352495 0.6722544235,39.7818352495 -0.7322863839,39.7818352495 C -0.7322863839,41.5604108921 -0.7322863839,43.3389865347 -0.7322863839,45.1175621773 M -0.7322863839,45.1175621773 O" /> + <path data="B -0.7322863839,39.7818352495 C 0.6722544235,39.7818352495 4.1050139259,39.7818352495 6.5236640807,39.7818352495 M 6.5236640807,39.7818352495 M 6.5236640807,45.1175621773 M -0.7322863839,45.1175621773 C -0.7322863839,43.3389865347 -0.7322863839,41.5604108921 -0.7322863839,39.7818352495" /> <path data="B -0.7322863839,35.1331149086 C 0.6722544235,35.1331149086 4.1050139259,35.1331149086 6.5236640807,35.1331149086 M 6.5236640807,9.4849784247 M -0.7322863839,9.4849784247 M -0.7322863839,35.1331149086" /> </glyph> </collection> @@ -979,9 +977,9 @@ <collection name="undo_tool"> <selected id="1"/> <glyph id="1" left="-28" right="28"> - <path data="B -17.1240497593,35.4271021824 C -17.1240341156,35.4271021824 -3.3812242912,35.3997257431 8.0524970788,35.4271021824 C 12.6311549242,35.4381153329 15.1601168596,33.2003495424 16.2165423641,30.9784307994 C 17.2729678686,28.7565120564 17.0964993410,26.5786459151 17.1021111384,26.7193676564 D 17.0942766560,26.5570068964 17.0268889543,26.2356555019 16.9517430622,26.0933062470 T D 16.8765971702,25.9509569923 16.6538254250,25.7048723313 16.5196328323,25.6159759674 T D 16.3854402398,25.5270796036 16.0719603697,25.4179224602 15.9115761034,25.4042439175 T D 15.7511918371,25.3905653748 15.4237546475,25.4450612249 15.2764463693,25.5099494875 T D 15.1291380913,25.5748377501 14.8679116258,25.7796441089 14.7697455400,25.9072122672 T D 14.6715794542,26.0347804255 14.5601512292,26.3441097890 14.5155316502,26.4987684732 T D 14.4930464235,26.5767059091 14.5080177018,26.7420008818 14.5055149091,26.8230784086 T C 14.5055144261,26.8230940553 14.5845921450,28.3510591688 13.8699904258,29.8540413289 C 13.1553887066,31.3570234891 11.8611385988,32.8455039583 8.0524970788,32.8361177505 C -3.3903476852,32.8087413113 -17.1240497593,32.8361177505 -16.9847612694,32.8569220126 D -17.1457226778,32.8342544037 -17.4740069983,32.8403557174 -17.6278981938,32.8875543970 T D -17.7817893893,32.9347530767 -18.0651940192,33.1075730021 -18.1776179963,33.2227731097 T D -18.2900419734,33.3379732173 -18.4558986488,33.6255083874 -18.4993300970,33.7805049187 T D -18.5427615452,33.9355014501 -18.5504627675,34.2673532273 -18.5142681536,34.4241976258 T D -18.4780735397,34.5810420242 -18.3257337811,34.8759615198 -18.2187748088,34.9962528065 T D -18.1118158365,35.1165440932 -17.8287826718,35.2838555757 -17.6851971391,35.3566114015 T D -17.6128398168,35.3932753790 -17.4494400216,35.4220357233 -17.3684822529,35.4271021824 T D -17.2862412769,35.4322489466 -17.1851578827,35.4271021824 -17.1240497593,35.4271021824 T" /> - <path data="S 16.2537094464,28.4792657651 D 16.4059460889,28.4278250885 16.6761743745,28.2336143586 16.7812443357,28.1120312931 T D 16.8863142969,27.9904482277 17.0149023081,27.6884572355 17.0681381708,27.5368390260 T D 17.0949654173,27.4604337821 17.0967039504,27.2951483001 17.0964993410,27.2141703983 T C 17.0894753288,24.4342885354 16.7453425365,21.9006694766 15.0432663950,20.0278550873 C 13.3489573403,18.1635821470 10.5172855118,17.2801209859 6.3903561225,17.3390976580 C 6.3714429138,17.3393635994 6.3604454071,17.3387847831 6.3414696237,17.3390976580 M -7.6711794209,17.3513709253 D -7.8300851830,17.3842576455 -8.1365584596,17.5005137407 -8.2652979489,17.5966817314 T D -8.3940374382,17.6928497222 -8.6022036033,17.9506814616 -8.6690777434,18.0967978123 T D -8.7359518835,18.2429141630 -8.7950237595,18.5689829773 -8.7836594285,18.7292733093 T D -8.7722950975,18.8895636413 -8.6502739534,19.1942672290 -8.5809894115,19.3392561623 T D -8.5460747245,19.4123207029 -8.4308992862,19.5308902870 -8.3733664894,19.5878765989 T M -3.4688628655,24.4457939777 D -3.3536328341,24.5600507825 -3.0873667563,24.7512149131 -2.9360699831,24.8053575483 T D -2.7847732098,24.8595001836 -2.4548490539,24.8904906574 -2.2961162819,24.8654697531 T D -2.1373835099,24.8404488488 -1.8329901992,24.7094714821 -1.7056847471,24.6114130280 T D -1.5783792950,24.5133545739 -1.3740429281,24.2524771940 -1.3093336105,24.1053893197 T D -1.2446242929,23.9583014454 -1.1903735391,23.6313959332 -1.2041034536,23.4712908802 T D -1.2178333681,23.3111858272 -1.3443404159,23.0083172043 -1.4157582887,22.8643671226 T D -1.4517480290,22.7918260925 -1.5697694605,22.6760997255 -1.6270296668,22.6188395192 T M -4.3157870961,19.9300820899 M 6.3903561225,19.9300820899 C 10.1777472681,19.8683364865 12.0734389745,20.6716394334 13.0878064464,21.7877690410 C 14.1021739183,22.9038986486 14.4991010005,24.6692566029 14.5124575735,27.4067077895 D 14.5403538484,27.5665651491 14.6469592410,27.8765274682 14.7390500878,28.0082142727 T D 14.8311409346,28.1399010772 15.0923568030,28.3386464070 15.2262812967,28.4274516349 T D 15.2937701138,28.4722034172 15.4516573836,28.5250837793 15.5321313821,28.5341058636 T D 15.7764546883,28.5614973879 16.0823148733,28.5371798958 16.2537094464,28.4792657651 T" /> - <path data="S -7.4445230138,19.9300820899 L -4.6757086154,19.9009306209 D -4.5152562981,19.9251717312 -4.1874857894,19.9223712639 -4.0333910821,19.8767975905 T D -3.8792963747,19.8312239171 -3.5946560518,19.6615470337 -3.4812744066,19.5476754345 T D -3.3678927615,19.4338038354 -3.1994448090,19.1484345212 -3.1545360071,18.9941447352 T D -3.1096272052,18.8398549492 -3.0986135567,18.5086615650 -3.1331728390,18.3517291128 T D -3.1677321213,18.1947966606 -3.3168493019,17.8988668977 -3.4224153509,17.7777143168 T D -3.5279813999,17.6565617359 -3.8088420131,17.4867066448 -3.9514468884,17.4126391886 T D -4.0233100262,17.3753142388 -4.3239267641,17.3965909512 -4.2669005973,17.3390976580 T M -1.2458426465,14.2932929008 D -1.1469238479,14.1646552358 -0.9906276798,13.8765357176 -0.9558682748,13.7196474697 T D -0.9211088698,13.5627592218 -0.9317001073,13.2315520603 -0.9764120924,13.0772051234 T D -1.0211240775,12.9228581864 -1.1892079347,12.6372742668 -1.3024442565,12.5232581540 T D -1.4156805783,12.4092420412 -1.7001042648,12.2392022673 -1.8541407225,12.1934320994 T D -2.0081771801,12.1476619316 -2.3393038578,12.1347979701 -2.4964269543,12.1684798807 T D -2.6535500508,12.2021617913 -2.9381814016,12.3656195231 -3.0720488820,12.4545106714 T D -3.1395089682,12.4993057517 -3.2316585531,12.6378730501 -3.2891706231,12.6948802801 T M -8.3072987563,17.6689593747 D -8.4232031892,17.7825319947 -8.6181821071,18.0460174223 -8.6744980173,18.1965187738 T D -8.7308139275,18.3470201253 -8.7665525669,18.6764637590 -8.7438202363,18.8355404063 T D -8.7210879057,18.9946170535 -8.5945078209,19.3008650581 -8.4982929166,19.4295694898 T D -8.4020780123,19.5582739215 -8.1346993085,19.7486474089 -7.9980297090,19.8331669873 T D -7.9291575457,19.8757590943 -7.7697755588,19.9250242493 -7.6889555074,19.9300820899 T D -7.6067145314,19.9352288541 -7.5056277506,19.9307254313 -7.4445230138,19.9300820899 T" /> + <path data="B -17.1240497593,35.4271021824 C -17.1240341156,35.4271021824 -3.3812242912,35.3997257431 8.0524970788,35.4271021824 C 12.6311549242,35.4381153329 15.1601168596,33.2003495424 16.2165423641,30.9784307994 C 17.2729678686,28.7565120564 17.0964993410,26.5786459151 17.1021111384,26.7193676564 D 17.0942766560,26.5570068964 17.0268889543,26.2356555019 16.9517430622,26.0933062470 T D 16.8765971702,25.9509569923 16.6538254250,25.7048723313 16.5196328323,25.6159759674 T D 16.3854402398,25.5270796036 16.0719603697,25.4179224602 15.9115761034,25.4042439175 T D 15.7511918371,25.3905653748 15.4237546475,25.4450612248 15.2764463693,25.5099494875 T D 15.1291380913,25.5748377501 14.8679116258,25.7796441089 14.7697455400,25.9072122672 T D 14.6715794542,26.0347804255 14.5601512292,26.3441097890 14.5155316502,26.4987684732 T D 14.4930464235,26.5767059091 14.5080177017,26.7420008818 14.5055149091,26.8230784086 T C 14.5055144261,26.8230940553 14.5845921450,28.3510591688 13.8699904258,29.8540413289 C 13.1553887066,31.3570234891 11.8611385988,32.8455039583 8.0524970788,32.8361177505 C -3.3903476852,32.8087413113 -17.1240497593,32.8361177505 -16.9847612694,32.8569220126 D -17.1457226778,32.8342544037 -17.4740069983,32.8403557173 -17.6278981938,32.8875543970 T D -17.7817893893,32.9347530767 -18.0651940192,33.1075730021 -18.1776179963,33.2227731097 T D -18.2900419734,33.3379732173 -18.4558986488,33.6255083874 -18.4993300970,33.7805049187 T D -18.5427615452,33.9355014501 -18.5504627675,34.2673532273 -18.5142681536,34.4241976258 T D -18.4780735397,34.5810420242 -18.3257337811,34.8759615198 -18.2187748088,34.9962528065 T D -18.1118158365,35.1165440932 -17.8287826718,35.2838555757 -17.6851971391,35.3566114015 T D -17.6128398168,35.3932753790 -17.4494400216,35.4220357232 -17.3684822529,35.4271021824 T D -17.2862412769,35.4322489466 -17.1851578827,35.4271021824 -17.1240497593,35.4271021824 T" /> + <path data="S 16.2537094464,28.4792657651 D 16.4059460889,28.4278250885 16.6761743745,28.2336143586 16.7812443357,28.1120312931 T D 16.8863142969,27.9904482277 17.0149023080,27.6884572355 17.0681381708,27.5368390260 T D 17.0949654173,27.4604337821 17.0967039503,27.2951483001 17.0964993410,27.2141703983 T C 17.0894753288,24.4342885354 16.7453425365,21.9006694766 15.0432663950,20.0278550873 C 13.3489573403,18.1635821470 10.5172855118,17.2801209859 6.3903561225,17.3390976580 C 6.3714429138,17.3393635994 6.3604454071,17.3387847831 6.3414696237,17.3390976580 M -7.6711794209,17.3513709253 D -7.8300851830,17.3842576455 -8.1365584596,17.5005137406 -8.2652979489,17.5966817314 T D -8.3940374382,17.6928497222 -8.6022036033,17.9506814616 -8.6690777434,18.0967978123 T D -8.7359518835,18.2429141630 -8.7950237595,18.5689829773 -8.7836594285,18.7292733093 T D -8.7722950975,18.8895636413 -8.6502739534,19.1942672290 -8.5809894115,19.3392561623 T D -8.5460747245,19.4123207029 -8.4308992862,19.5308902870 -8.3733664894,19.5878765989 T M -3.4688628655,24.4457939777 D -3.3536328341,24.5600507825 -3.0873667563,24.7512149130 -2.9360699831,24.8053575483 T D -2.7847732098,24.8595001836 -2.4548490539,24.8904906574 -2.2961162819,24.8654697531 T D -2.1373835099,24.8404488488 -1.8329901992,24.7094714821 -1.7056847471,24.6114130280 T D -1.5783792950,24.5133545739 -1.3740429281,24.2524771940 -1.3093336105,24.1053893197 T D -1.2446242929,23.9583014454 -1.1903735391,23.6313959332 -1.2041034536,23.4712908802 T D -1.2178333681,23.3111858272 -1.3443404159,23.0083172043 -1.4157582887,22.8643671226 T D -1.4517480290,22.7918260925 -1.5697694605,22.6760997255 -1.6270296668,22.6188395192 T M -4.3157870961,19.9300820899 M 6.3903561225,19.9300820899 C 10.1777472681,19.8683364865 12.0734389745,20.6716394334 13.0878064464,21.7877690410 C 14.1021739183,22.9038986486 14.4991010005,24.6692566029 14.5124575735,27.4067077895 D 14.5403538484,27.5665651491 14.6469592410,27.8765274682 14.7390500878,28.0082142727 T D 14.8311409346,28.1399010772 15.0923568030,28.3386464070 15.2262812967,28.4274516349 T D 15.2937701138,28.4722034172 15.4516573836,28.5250837792 15.5321313821,28.5341058636 T D 15.7764546883,28.5614973879 16.0823148733,28.5371798958 16.2537094464,28.4792657651 T" /> + <path data="S -7.4445230138,19.9300820899 L -4.6757086154,19.9009306209 D -4.5152562981,19.9251717312 -4.1874857894,19.9223712639 -4.0333910821,19.8767975905 T D -3.8792963747,19.8312239171 -3.5946560518,19.6615470337 -3.4812744066,19.5476754345 T D -3.3678927615,19.4338038354 -3.1994448090,19.1484345212 -3.1545360071,18.9941447352 T D -3.1096272052,18.8398549492 -3.0986135567,18.5086615650 -3.1331728390,18.3517291128 T D -3.1677321213,18.1947966606 -3.3168493019,17.8988668977 -3.4224153509,17.7777143168 T D -3.5279813999,17.6565617359 -3.8088420131,17.4867066448 -3.9514468884,17.4126391886 T D -4.0233100262,17.3753142388 -4.3239267642,17.3965909511 -4.2669005973,17.3390976580 T M -1.2458426465,14.2932929008 D -1.1469238479,14.1646552358 -0.9906276798,13.8765357176 -0.9558682748,13.7196474697 T D -0.9211088698,13.5627592218 -0.9317001073,13.2315520603 -0.9764120924,13.0772051234 T D -1.0211240775,12.9228581864 -1.1892079347,12.6372742668 -1.3024442565,12.5232581540 T D -1.4156805783,12.4092420412 -1.7001042648,12.2392022672 -1.8541407225,12.1934320994 T D -2.0081771801,12.1476619316 -2.3393038578,12.1347979701 -2.4964269543,12.1684798807 T D -2.6535500508,12.2021617913 -2.9381814017,12.3656195230 -3.0720488820,12.4545106714 T D -3.1395089682,12.4993057517 -3.2316585531,12.6378730501 -3.2891706231,12.6948802801 T M -8.3072987563,17.6689593747 D -8.4232031892,17.7825319947 -8.6181821071,18.0460174223 -8.6744980173,18.1965187738 T D -8.7308139275,18.3470201253 -8.7665525669,18.6764637590 -8.7438202363,18.8355404063 T D -8.7210879057,18.9946170535 -8.5945078209,19.3008650581 -8.4982929166,19.4295694898 T D -8.4020780123,19.5582739215 -8.1346993085,19.7486474089 -7.9980297090,19.8331669873 T D -7.9291575457,19.8757590943 -7.7697755588,19.9250242493 -7.6889555074,19.9300820899 T D -7.6067145314,19.9352288541 -7.5056277506,19.9307254313 -7.4445230138,19.9300820899 T" /> </glyph> </collection> <collection name="update_webview">