From 0da9158f620077ec46dcdfa4c1556253b23337eb Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Tue, 29 Jun 2021 14:23:37 -0700 Subject: [PATCH] [subset] Remove OffsetTo::serialize(). Convert remaining uses of it to serialize_serialize() which correctly uses the object packer. --- src/hb-open-type.hh | 4 ---- src/hb-ot-layout-common.hh | 8 ++++---- src/hb-ot-var-hvar-table.hh | 14 ++++++++------ test/api/fonts/AdobeVFPrototype.abc.otf | Bin 6900 -> 5164 bytes .../api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 4212 -> 4384 bytes .../AdobeVFPrototype.ac.nosubrs.nohints.otf | Bin 4092 -> 4268 bytes .../api/fonts/AdobeVFPrototype.ac.nosubrs.otf | Bin 6284 -> 4464 bytes test/api/fonts/AdobeVFPrototype.ac.otf | Bin 6408 -> 4584 bytes .../fonts/AdobeVFPrototype.ac.retaingids.otf | Bin 6412 -> 4584 bytes .../SourceSansVariable-Roman-modHVAR.abc.ttf | Bin 3260 -> 3124 bytes .../SourceSansVariable-Roman-modHVAR.ac.ttf | Bin 3032 -> 2892 bytes .../fonts/SourceSansVariable-Roman.abc.ttf | Bin 3240 -> 3196 bytes ...SourceSansVariable-Roman.ac.retaingids.ttf | Bin 2616 -> 2976 bytes .../api/fonts/SourceSansVariable-Roman.ac.ttf | Bin 3028 -> 2964 bytes .../SourceSerifVariable-Roman-VVAR.abc.ttf | Bin 5632 -> 3588 bytes ...SerifVariable-Roman-VVAR.ac.retaingids.ttf | Bin 5288 -> 3244 bytes .../SourceSerifVariable-Roman-VVAR.ac.ttf | Bin 3224 -> 3224 bytes 17 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh index a1ff423ca..406771fe8 100644 --- a/src/hb-open-type.hh +++ b/src/hb-open-type.hh @@ -328,10 +328,6 @@ struct OffsetTo : Offset hb_enable_if (hb_is_convertible (Base, void *))> friend Type& operator + (OffsetTo &offset, Base &&base) { return offset ((void *) base); } - Type& serialize (hb_serialize_context_t *c, const void *base) - { - return * (Type *) Offset::serialize (c, base); - } template bool serialize_subset (hb_subset_context_t *c, const OffsetTo& src, diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index 0fc66d2cb..c78f82055 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -2790,8 +2790,8 @@ struct VariationStore (src+src->dataSets[i]).collect_region_refs (region_map, inner_maps[i]); region_map.sort (); - if (unlikely (!regions.serialize (c, this) - .serialize (c, &(src+src->regions), region_map))) return_trace (false); + if (unlikely (!regions.serialize_serialize (c, &(src+src->regions), region_map))) + return_trace (false); /* TODO: The following code could be simplified when * List16OfOffset16To::subset () can take a custom param to be passed to VarData::serialize () @@ -2801,8 +2801,8 @@ struct VariationStore for (unsigned int i = 0; i < inner_maps.length; i++) { if (inner_maps[i].get_population () == 0) continue; - if (unlikely (!dataSets[set_index++].serialize (c, this) - .serialize (c, &(src+src->dataSets[i]), inner_maps[i], region_map))) + if (unlikely (!dataSets[set_index++] + .serialize_serialize (c, &(src+src->dataSets[i]), inner_maps[i], region_map))) return_trace (false); } diff --git a/src/hb-ot-var-hvar-table.hh b/src/hb-ot-var-hvar-table.hh index 62bd1aa68..4d7f2ed91 100644 --- a/src/hb-ot-var-hvar-table.hh +++ b/src/hb-ot-var-hvar-table.hh @@ -367,15 +367,15 @@ struct HVARVVAR TRACE_SERIALIZE (this); if (im_plans[index_map_subset_plan_t::ADV_INDEX].is_identity ()) advMap = 0; - else if (unlikely (!advMap.serialize (c, this).serialize (c, im_plans[index_map_subset_plan_t::ADV_INDEX]))) + else if (unlikely (!advMap.serialize_serialize (c, im_plans[index_map_subset_plan_t::ADV_INDEX]))) return_trace (false); if (im_plans[index_map_subset_plan_t::LSB_INDEX].is_identity ()) lsbMap = 0; - else if (unlikely (!lsbMap.serialize (c, this).serialize (c, im_plans[index_map_subset_plan_t::LSB_INDEX]))) + else if (unlikely (!lsbMap.serialize_serialize (c, im_plans[index_map_subset_plan_t::LSB_INDEX]))) return_trace (false); if (im_plans[index_map_subset_plan_t::RSB_INDEX].is_identity ()) rsbMap = 0; - else if (unlikely (!rsbMap.serialize (c, this).serialize (c, im_plans[index_map_subset_plan_t::RSB_INDEX]))) + else if (unlikely (!rsbMap.serialize_serialize (c, im_plans[index_map_subset_plan_t::RSB_INDEX]))) return_trace (false); return_trace (true); @@ -398,8 +398,10 @@ struct HVARVVAR out->version.major = 1; out->version.minor = 0; - if (unlikely (!out->varStore.serialize (c->serializer, out) - .serialize (c->serializer, hvar_plan.var_store, hvar_plan.inner_maps.as_array ()))) + if (unlikely (!out->varStore + .serialize_serialize (c->serializer, + hvar_plan.var_store, + hvar_plan.inner_maps.as_array ()))) return_trace (false); return_trace (out->T::serialize_index_maps (c->serializer, @@ -466,7 +468,7 @@ struct VVAR : HVARVVAR { return_trace (false); if (!im_plans[index_map_subset_plan_t::VORG_INDEX].get_map_count ()) vorgMap = 0; - else if (unlikely (!vorgMap.serialize (c, this).serialize (c, im_plans[index_map_subset_plan_t::VORG_INDEX]))) + else if (unlikely (!vorgMap.serialize_serialize (c, im_plans[index_map_subset_plan_t::VORG_INDEX]))) return_trace (false); return_trace (true); diff --git a/test/api/fonts/AdobeVFPrototype.abc.otf b/test/api/fonts/AdobeVFPrototype.abc.otf index 5e6a92844b9ca122bdb747f7e9b6a2df1b31675a..0e403a648c0f217a3c1fba7c1daf4f1269dedc5a 100644 GIT binary patch literal 5164 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 E7YS|;{Qv*} literal 6900 zcmbtX3sh9+o&WB=0}P+2K*QAAW?)HH(cgohDCO;Vcy2cZFm!oYwak71to zyYpa%fniWI#HgvSSlh1MO-{2mr?I;y*>+EQb~ia~H{CS5+tahzvztBGLhAm$d+&%E z_ZYWxx!?W2U*G?GP*PS_LZ*>!B9Rw2Z`+ppy@{C~Ldfq4F<#qIp1*tb!tEhKGJ%uw zBH(8~KT}Nz-2&WIQo1tt`3tQ_fnNjuVrf}^*|mp1?k8l*65zkHwpbe%)>+yK$(jv( zNoAe2fy@^^1-=pZzAEtle)+O`;Lssws%_ST(~2G2;qQCE^Qu9}C>JjhGL_3)s_PuB z#+S)e;4cC<)md8`h+!ANsSOy?>#cRRKmKd?zX5N>`$B`g$#LW7B$to}-v{3;k~A{w ztAOMge0=CDd_0_G!AQspM8KG(j)jDa>c3576L|~IlZ}cg{rb8;bS3u+2dcM*WVkP zn0Rk|g8hxnLVxbG(85a=y7l>?g6{mEOck>QC&U z0Urwn7SpjZIa#Iz9;Fk7?wu#2U90K2tK-DUx&|5Rwhs?DS>QNh;RI>|3)RtNyL)IQ z9Xt1ZKMRGtp1SY$buFSV?0NOwz3~oz&#)3bD+jye_+V>SZ^vLu)R%M*MNA7^?Mz`T z5DNMHk;U|DZ~e64+R^jM;nM-RE9g@~opLxH{8rDgZr|krXT&srEc0Lfb1Zu-`|(d6 z+5WU`^|O(%#~bVIITq{eV*yXx&EnB6<;YPv#A4Yr?m?PeKF0dvc2_dw3HT%ZgRQRN zk->)6v*D=XizZA9`rDKos)Ry8e|Rx{|NS?HFDjlra!_%W${|>eE* zXoLTMcx&tUobfqDMVplq4w)&(+T@VpJ0-K;&SdP!;cq36*82~i3VGt5{+^@k@CZ|4 zrUhfCuNMbHKMsVWC!+4eB6|9~yX|}+5eXu+b#yyr9g*D>wfM&CCs(tfs;6nVnKAd! zXtWcBZHy+I=h$GOg$Ddc$9oF(8uBovIQzHIlgYu85&1|`2{3oeLcImFD+$5aQo7(5 zo%vUDnQtpS9NR#hppG~e((x(d;)?NA<10RTZ0xK5{S#)5~HKseAn5cCJTdIDj&IsisuxRgc{9qxhNz^mnSf9*c|v;Mx( zkdJjeM|~%lEce9}S(b-Z(G@#>Ha2r?_D_HI8(;fS*c<2^4*J5Qy}n3aq{B1FqHz}R zjw%sXY_z#|IQnvhJAtZoB(K*eE+^uNUnkcN`~Liy!7!J4LnJjC{RaQSz?^Wi}582)^5r4|ODVLMXdE6ObF4^S|&dbXBFs}2M2M;Jy zv4hOQ=CKi*hqypoC@vD0h>wZc;wteu@qkz%R*5xYo!BV0h;3qr*duzxpm*9n&q% z)LuZ_Hq+*p7t(K3pLpv`{L*hP$n8g!fZ`jJgDe?>ix`|mM^Cy3*qKvI4l5pCU!SYU zGZ^$X2O|BZ1+NYMWaLV}_kP zVSP;APamV_PbDtB!n$9_vU!{acGBii3oYWy(D`yW?(#(gy`Dna+1>3r>}6g==9Ytg z8PUsfB%%c5aQ`amI5K>NxgMv!80_}Buujfb2O?pt`0BpoQBMrp;mrMiX?ZmNg{N9s z2)i}SKqTj+4Hg$}wbG}g(Uq#dVNVjWesQrAuz^FK?I!)N+gM=^E3Vxc`rnC|=$ zf^=a~zxq*SE$jWZg|Y%zI(c9DI3bCi4F_( z@m-@6>jhzrx4J^L{p~C1a+zBzs4{}4&SorjQLyz$B3soytu7ThSlk#4X{3UCQ`5beirIE3)K zSg{K6Ve;0q1ae~PMx*hy8;uI{I}E?F5cB7REE03l02>4%aod_*Blr(BIU4Pp(pr7U zq3TWA|MPEE+}EwQDq$*jWmNr0q98;#SCqwlpgf~}g##p4cnDNOx|C)}6GindrfTRz z{+5CgTGrmPlPmb4I2FYBVKNU2pPh14M&6;O%yVb0pYmtnNB0Z6rK&o zMfoOes`!S6OXi!j>5?0<1Lt4(z|B*e7GQ)tpwn;-<@aF~f957lBnJU=oPXg?9YvDC zyWyjEKbWf$%f-01pluXRDmbO-{|rJ;s1&7 z8t|FR0H(nbS&BZ>V8bmkY2*n~q|?*MSBO`KXFzvEgVC4i+n=@AZ@M= zPa|tGQnAe-(=z^9r$0c<8ULZdC{ns{nhpyj%Q#zyMPf9Xbyxy@i4Gfx$+$*`)5vV& z79CC}dB%M@oI$8jj}trKa$`cLXHM1u^Oa+KTc=Nf&Chf=i{xe+ba*N;X6EVeG_ox7 z>pDE0(9CKbHj(9-jXFF7G9x-XlkCX6ro*$yVrtUi*<=gN%RgwZu$jxPjWyPaTAO*B zz20Ho)o6Fv9c>M^-L^x`wbsT}**Q6@H}D;JgDPIW?WV+vEw(CabFBm1l7g+}w#KF! zd%amx*i{N3cSE(^QE9JlF|W$Y&dXlAW<#CzC7az*m0ep?k(<3XJ8$jUCvyHTv%2-Y zwi;|Mn-N>1waKxy6`w**`GVRc>+bx!Q}r}UZFMyj_S%DAu$p2N+>ObJ1+~`7m%gB; zQq{p+WII^XTxU*YaCcEnC?%sQ?m(LNP~##gC9;{=NdsvkjiiPgBGtq}%s5GM$SRTt zC?9*U9p|16a4Dpkz_*b)e9dGhsmH!HF<=`|T+Zr_n^KBk>p&}Y37dq8yRJ1uD(?Ty8C%ClLE&#lKv%lk#R*D--L1@5gLzkE;Bpf21ekIPK<0OL_= zk(2_`x`)Sa1@9m_LyLviE0qhcZZo(%wi@U*p>qG9Xtt@D*Q*(C*KPe8UaY7@9qcv& zcHsFk{hR8i)@H^`9!1T0=kLV$D82flz**yni9^S)??EuIJO zDJ`3O^;`BGecXhu<142DUisSLvDMuoijnU>ypy$a=U$#x+*Rv-^zTRZ_LGJ85TCIM> z_uPBF?m6e3`!9YxN2so=tA^(l0BYb~t*FpeoO}Np07V8s; zZGraqY}X~C8ULx;x^kiJLFV5>04Zg(@vW{?*Ot?w=>E22*kz2hvM z{~<58g=kU&)A}aene>!8;!oW}bcvoel8!28i8d3h(Kj2q5>LZ*qQ{ATrdii@0aS-* znRsz8f1$PA@bnAN0z6OWz{?s%zTBYraVn$OR|aMB#sE6T~pgD>OU!`Q;YLt%d5H%&Z# zu@|du^SJlQKCG^vEySsQVlX_>22HDR!LX>cU0#ECW9p$!9<7qoYd?aqskwvRPdzT* zc<@ck0QC#(UP@3<2_yl+3c7nb{0LS-7OaM~kPG<~kP_GiJ7G6ez6}o z&;&n&W_TMqzyv*D0Xw+C3qcry2wZ_{Faq6NU)Agg(MBVU!Re@aX3(G@A(&TZ!wS#bv_V1S26rxJKa7$0bqH z#AuudahVzv{M;%Y52DB%<1xS`yWEo7<#CYDl>PWMN>Q}Rg2d%u=>y%P2QyRm@5_?c z8L$+hXwODh5z0F-><~pM;LFAkT}kqEzk$=!J>y2R@m1_1d(ucg`YdkA8EWOx+j$fl zs*Jt*_UnSn;}(CxV`~wbO0eT=|D_O-r~luuVFcI-#1Sd7N2gBG77XdO6=y?uR_i=v%8u~8tMZXX5I@7JI& zRE36~(L0vy=#aB9unTAO9)a|8SuuU&QeZ$P?_z27A86Kc^>ek2dWW$18{{1&Q|tobhQc}u99 zoTBgqxCBZqmsx{TGd9yq*iR)QZo^F|n)5N_D8>`FCN__p<>P#y|Czf1-61;Kc&mf}*hk z#|*hRpE|GHIA1uw@v9B7pM3M%yMLLKbUcb>=%wgNB2|_<&`B%*Nu;H9JzkWkH}nlr z0)&2A=?`I;ij>Q09}b(Tid^ql85S^g4vi=oqK8$RzI`sltu>K98lv z(m(tBZ`~sfpS^dKZXC7x9Dcu<>Mlr`aYZG&-xBSRt)o{@Q*31}i^t%4?Ad@$s<`=; z$C_(zw$fcM6=7$u22DD%dm}pYsBp~N>8D*aIT;qVp;UlN-SHOvg7#t7pcSBE)AwH* z?Et(OAD@YjM1KdY-LYo=Js;yj&`_sS?y0D%gB9m>h8F6DYR2*O>5}BRrnVMfPaESF zSi@AtiDa5H;>wDsT`GUzf`(KoXorEmJ|@c6Y-eeosai6=mYVI7@w8>*Oys`~ur=cY z$Rwl#l*S1FE^dw)WyhMhA;!YRS8)dydF7gAVKU7gw0vS%(iZo<-O$#`)OG29YKWh( zv!!rVk(z}6^9E+7#8oSj70=pW9TYme)#Hp{iM4tDuJT zFY%~@%H4(bY1~TZ&Ge9+qo<5< iou#>pz*8;cLouO*#$w_tS(e)bMe@$)ekrf!4*v(nlhJtq delta 2194 zcmYjSeNa@_6~B8QAUUD>Vl-`{3CM#;qM)wPqQ)qGVv3-FWMZ3GSAyM4fhEhrva;@j z{eJJhxBK?JgJAxwIL{`vlYiqf@`&Y+NzePyCzr)e#y898a62dp( zcnPr}w~!y-E-&x@_Ohq{MYzYgzaT_zzw@VG=K6OJ?YUcjw;<2KnJeT7HBmy0)t0KF zFGWIj<7dU zXvoaEz2k^2RNt`%?dNsh2AFdN7&AolSU|%Zc#q*68s?lg!2bd+RKFXy4@45oF;FVP z+=tnPg%9T!*as~FeB>6O?y3O$&sRgkF*e&Tz+`_Z&hdqn>7K`7!F9*l0GPmA**rGb z%~&*`#KI+zot&#zV?UDO`ludEm%-#r&@&^YH8sMR6?OyjYTp2jFMj#T_+~bAYA?jQ z7z+-K>7p;r=R5VZ`+F=^Cx8@XG7C>Ig$;!mQ{2g&FrG<`Yx0?lBC(($KzIj;88kH3 zLh)^1&2=k_JOihVE#O9U#I*+I@1LiY^PA=?KUr;$o6EFje7n5a0W`0Fh z65X=Gv@4Y&gi{CwWX9CfiWHan2Gyu4_DgZuF5y6WxDNERH#iuOE**wrtuH!`MiXPP z2osM$WR%Hr!cb&c9;$-M+FRM>*%d#%^}9&#P&_R8hSf-XED+HWnm3eU`T&!{V~XZC z#<~K-`h}Chw80mz7D?WNc>Y#Ae_BjSX*sQ+>u43V(yeqm-AQZc0eXnm(WCTv+CpEY zZS*zjp*|X?!*rBhqSJJSUZvOQ+w=$YI(?shKtHCxroW}Xr+=n@r~jt^;qtj6?g8#0 zZWUL|31v`y)Aq^DnaLYBVulh;FwtKNER35j?EvE-q$9ZXi8$&>5hb;k$w~gPsi`xg zZZC766QF0zJR7YN;(jH{k`AnZSa&Rx;Pa2yxqWu2b6Ul%ye5ES2Y8-_t_y46W&7xR zQv+B3I4k#_RU{>nl2w+8;S>f=ChBA3!9g}P!Q{9SiX;;L!=aQK?vk`5Up$?9f8@<% zcvRK`lCG*@SqUmpITBJBOB{h%d>dR2dJJ7$56Ap<9-EiRH4xnndf!Gkz7^zPREzdv zavJ|g_H{QK@nHpIys}aThuP)k>uSF$X(EfKa77*!^I-`lH^37xGm*Y}k@a1{V%r4L z9_Shq;DA}Z?hEk&e?*r8q5a_N>+_!uvoNL>l+~z=>C3XFDUuvdR)Oox@SDuP2_go@ zP5806X6%v{=ZmxUMCNSBSP$9d$KEbmTO+=-tA{xU*Fj{!+=wBJ-sg!^Gx${IS+#?|N7ZtDc0F3{&P; zs(e1~8PAx;X#Xtd5#bQMx zq(LNX_>ARRPE{i~4L*kq1F?P+A2H2iNn`?eQ@FMX6qEQWVKBb9GgWQ$<`#)n&VuLA z6bD>L<}+`$6-aeC$z�l;ah~vxSc~aHyLvHz~P8NVzF-7W2vf(zg)B)txSVB}=&zi!w)^lc3be9K=aFa@>|1 Kd&T%U-}GO|Z0?}| diff --git a/test/api/fonts/AdobeVFPrototype.ac.nosubrs.nohints.otf b/test/api/fonts/AdobeVFPrototype.ac.nosubrs.nohints.otf index 73ff879845760316283eee4401981ab7c1389e04..5533baa3888c4d9842267dfd49aaf01a2e3a34e6 100644 GIT binary patch delta 2186 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 diff --git a/test/api/fonts/AdobeVFPrototype.ac.nosubrs.otf b/test/api/fonts/AdobeVFPrototype.ac.nosubrs.otf index 7d2f79a7b9c46a6419d3ff9a82dd8f4bdd92a6f7..d90f3efb80c31670ca0abb5a1e090f1016ffc55f 100644 GIT binary patch literal 4464 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 DI<+Oa literal 6408 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 fxpKtR+W&Q_4@5}#HUG@AQF5=ZQ diff --git a/test/api/fonts/AdobeVFPrototype.ac.retaingids.otf b/test/api/fonts/AdobeVFPrototype.ac.retaingids.otf index 15419b04dc81a32dbcdf9456a60833710346c853..8ff99c625cc4af1b12b24234ec443d3677528f85 100644 GIT binary patch literal 4584 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 He#Q51!Uray literal 6412 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 diff --git a/test/api/fonts/SourceSansVariable-Roman-modHVAR.abc.ttf b/test/api/fonts/SourceSansVariable-Roman-modHVAR.abc.ttf index 397e7a5476f57db89614c93f21c84dda5e6b3fa9..09b13c57a72bf89d24df8c4b90f93ffdb7549656 100644 GIT binary patch delta 1084 zcmZ8gT}V@57=FHQKWCfHmMt_(n`CKbHkL_6bGjo-*%+v9C+X7dEe*#IUnD7y5dpk1O$L$ z8ao1Qt-JU9Q1gcXQOD@cw$6i*OH*?x@&x(Uw#eZY<-H&Q*-74T;7D`VhS}2G|1RugozsJzkM~Og=-tu0Lr`q_9%%<#fL;7@*+t z@6#^wjOK%h@qvo1&qo1ADVNwk$b84O=qJD#C9jFc%xJOn^-w=eePf&f$AUNq7+1-w z;>pYzSG@?4KOpxdM*2;B!5H-)$URAO=u8R*YAJZeKw#KR#;zMvt>n`bg;FDZ)i~uD$TgV)@0%qnH=m^4mA#>OUp-#HmCtBbk=Mln18vsY44rdv& z6Q#0qSeNq)w7N&G<$2vj^ToPguC9|-=IWTlE^V^(A}H!Awa(+QLfrei}WOPHBqlPI=M$#)&{wI1ELR6)Ky4}LD`9|3kKr!8Rtd-I;l9qS+AB6boRsb2;bcLzP#IC> zlPUCxZ`dKr=%>)AZi>nYz>ftz!0u-8OF3p?fg0IiVTmHChii=uU1HY4_J1@EM8y>= z?nF@Z=CN?2P*{D02Y#{LiWi_kIAPg!G{|b zUWy>17B1#>IA-Bxs6m5;{p??B;pO_CB7zZ|LKQLmj%>V?y9>p@Jtah9uJj#X-{GpgP@y8f%X}!NnrOW>Z|8%RV delta 1178 zcmZ8fO=uHA6#iy*(`L7+#x@nL^`{s$M65A}pis5eXr)venpRN}v$U~Q6D?`2_F{?` zy@5eE*w_QcYI{D{zqh~Mem6&Z2l;Df!l{%e*OX|i3sJFgu;h$l zmCOP%rUOn-IOS_UF9m7W1?7i}lc(40m>Hw}Hj{P_(|-8Y&_~)ekBtW3+Ez6qPo?B2@?s9{vYF>J z(hSgTF}R~X&XDN`i1M^~W>mk~s&<+!772E5p_sO34>!|S|S8nrhTV+#ASz% zm;Ak0EJd3<>+8b^%ey{ahJ<|R;|2uf2Ol>gCTD#dfo%kR+=RH%fJba`5(%h*x@onc zE>_=%0)}xBMK~y{mv&A$_K@0UCyb*gsGz-?IHJ~CA@#$GsCQOe^r#rMH?0;`vf9)M zE3CF#F}2yUm0`u3be=(+bNfjFRNo+}T0@PiI07uC!Bu*q1(G^y)jhe=*3ZbNoBz6~ z&WN6hO;Y z%?a`Istuu~m2CA3y6KdyE>gOsQtAo&KbK$@E?4T@HoKgHnK{tYkLJP2auLzta^W1J zMQ8jxr_-&yTGcUsmX6b733R%Mzv*^_4bW|9=3eh!%)jsOEG#3-dR&riPtj`D1YoMG Sa*t{?zNw35{z;)`llTRJs;t=n diff --git a/test/api/fonts/SourceSansVariable-Roman-modHVAR.ac.ttf b/test/api/fonts/SourceSansVariable-Roman-modHVAR.ac.ttf index cfdbe1de72d0e77d3e268f6087c93ea5eabc89e4..70650452181fb74d70b8dcb28a8127ee5a1b4257 100644 GIT binary patch delta 1008 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 delta 2960 zcmb7GU2I!t8GgRw6Z`nsZj;hft=6IArbAPkI!@9A+J-d=Yqo6N65=!&QpbAYIEjgW zBHPVcE^stKL5P9YGflY|(+1oQrcOeG8&c3lg+yUOAZ{uUi$FqEhWObH+sgBP=kwBy zNibXAInVq5yzlwW&zJYFbvK~^e2fPh+52Zkrux(Otpe>0Y9Dxra{cQoS14~#9-7GY z^ga5}#UVhwLit>7dSrTS^YWdvzfJkd4E^sJzw?to$4itK{8hhppnUL)z^=WNKanr{ zE4V|w30QYieq>?QZ`Qu{mFs_{!!Q-+7E2cwz7)TfrNcM4b}TZ%Bcr#NaM$xdB(qfT z=XbuIxl95ifx#szqOql$jj~(zFRUPrQ}kb_ z>{a{+%7qtx@yu`7{hm6d9}aqD&TF?L!UR$0LL!p>g-oxi4haFqq@pG4lE{7*@! zr>CrM9k}w_9|oVYj|8cBS1=q;2d}Efx><8ly^V}@68qGjahL%Sv-T6o;N|S{JQO@1 zNjH;3q6>dw_qp<1f)C;nuB#Z4jY)QtwVq>i3<>N6`c=P5cd7o4bVoYE!=(D&(7R{# zVMr~#yFR4;Xg&AN9M{vV$Q8Djf3pEevrD>jOK2zM8^1KO}2`ZFksZyT)G{C5qua0gz5)MwoY1Fji^jXn6K z!EM_lR1|yhhSA61;NJ#2oOU=}s5oq8h$I*w5b7ulh~t<%k{A1EZuxfO&USr zkhRBP3p=b~gCm%>9yZv%&8H1D>pMmtMPFpM!7*$^#te3F)Q%b)#{s)lIDtO+-J_5!8W>`lEH1; zjd7w`r@3wnF|<3^40h1x{NCU=oVaVSi$n2U1}EUghYU`lJ3f}Hp0DK#Uan9pE_gG3 zt?18{3R8u}^CiF5o5}WOPmJ6Lb*6sEzP&mz8BRpjDDDr%Kh`BB|pFXUvXL++)VyF z_*wE$Y6=A`;yg-xLezqD$uq&5iCUl%dx9sE`+IVz(pKY>qW}*@)Oqx|8r1oir?xC{ zSf;Lug&>+bHd{nRdo1agGn9(-FVNdVj>y+in5jZ-4Ni z8c2`nx)ojTK4P)`fl)qrlqEJ8P91JGa1kq%rfCT|k1?NQ69(i-^tk4|-BpR6(q)CU zLayhDr9|l(Y zWEl8SrZmqib!L>zbKDuN>l(J_OOxK-CYj}!cpN#84;PGTnG$3sv(!)HeiAstv&bWu z;(r7WQy%9lRbnTokyptCwfE|Xag9UU7;WPJIi4S+ReU6OfwUTEwsuhg7ubJ|>N@|j zL*-f)xl>j+3)wsKdIC8j8SqEC%FHM+3nptTwvLr14SA+t;L6iQZmo*G$$TCQnyGBh z8i~j_Tl+&Oil^KtLQkyW?Go-Eu`jaRs*aW0O0s&~?BPx7@q!4cWqmKwAe{c!{?FXD zasK~(GsTi}=T|N#(w(!cStJwLfu}ff{cs4*CPsos6Wy{t@R0eN+aH&aOMi30OKxxQ z1J{kol=4`bL3OV}_ak`~L5L?98x>z0W&r2mls0 z1A~Vq_K%6~(d12gPjy?OXA#goP|Y~=PHAhQ>k^=kkauSaP7&9%U*swB{0#N$SC_w$ zza>v)^A~4oNiD&mML@)})ORFLPXHdbrkR^|&a|uy+@kK*i|6PtC&gZ%=>>ULu28O4 z%ru_R;eJ3kKbvu|hBOnRvUaev@^^wJTP7Rr({11ZN!CDS+?|xfEF?uTtKvt4>!p1)_9+bpgQog?;cMrLZ4;e9Okc zM1Xe{RX9il9K|f=P(lW>!)lj@ZNJ=N56G|9p!{ToPQgLQULZ2|L0&(eEx9vQN%{(k3=}n)e99Jk=mG*RLN>GZ%p`?r5A1J1 zwsLmX`Ru#1KSBP4C~{>oUo1VkNv%Y62iZQ24UE^8fpA?3^7`p)X(n<--wSyba*b>P z1mN8m_;_c<+EoDnjcwKgqURau5VXs0i(zqOHH-;%Ri9U7k{SfSA7cw-ZI0#uIqPmT z2SAXhrKJ+GqcBB8TcSfPGxMqksmj|PXsdk&Uf7O!HL>=3=L4I(Hv=2J8-b&7oeqFX zOgjf_h$6I%Xq(t38XCp6+J@SO0Hy=teAmMxa_SP}4`;i?&)T^MNsN!QP7L77dA(Dt zLPzK{zTZfKV5PlpF3%kHdiAX?Ge9AjpTia5&pM2abd|1(HFGHIghtiW09^z8PMD2! zhcNCmHr{#Xgb0OB8llkqd}AX4iVz&`q0JcP{re^y78Xt#3k#+>KTm*Sf&6@Dkk3QD z7cbuqHfwH7i_2Cpl@%~CDL$GIBp(N8GaBV%eUVR)c2YUEit5Q#KD892Ssx>)iau3X zpw(X}tkKi-HDeb$1`u#v8FX4nHxv$5NQf$0O}{FAhz$BeVT0-sFUg58PFfKaCan;b z(nlyL+7+&*m7;pY}hMYn%ozGc*$bkfdUE}#uDxaISS~{W~(e}1oS$o3Cmqw$Rbh0(t z9_?sv-x+%>aXGI{KJ28&#!GuWly$>SSys^mUC4=P97)?=zY$|wq zSd^wBW*egfolPUqW;uo?pv%*!cOkNKI88a}F)m{cK}y5lfwzSp-4gs+@-yY2ZAN54 z#+Qg=7^mdEIk`_-dPlvBk@kkT+&3rp+Y8LLyNI&EBg?Vgd}NDTqT@6P=^!jV=Q#3l zHf8{xK*uESN>v$na+NtS^SMp|bA`;uXU5Te)DL+;=I1&qnfuEbT$!Q?#vvJAgn_rW zsD+|(Sc|Crb>m8tr$I0+k0gnii5`Q@MEoO&Q#ZXLafv#yj>A?0txj^A(bFQT;r>iQ zS;V$XB7>ECJqG&#nD;|oOr=uGKXqvYS&GQWnUlB~<#YARv$;rXwF_nmB<`bxg&!8` zkuoIWo(w~OkoJMVA*?KS(;&Xxv>$RG{uprV05lf8gmpjl%7{LReOnwh_CJjEWmwsV zb333_BDZ{t9GXG>1*nVo@(ty)Oyj0Zq8EI3Mq~#PK-}Q}b;`)dF{3JLIkrfXE(|H8 zAH_()g`ZVUJ}?`zBboB`EPx2NvwT08B75>fVR~%!pNoHg*gl5sre!QYE6!@+vipzJ z!htZU3HcUbU{3#b|D%g8&VRo*gV>T^e$I=98v?`RcstBzy@=W23A0I#YvCI2<8aJ7 d6|NCI-nsCmP!D1-+K=|%GE1xG8^=$HNbXKqQ)#%-#rS*jhD%mH6~8}Jcuj#_>AmTR$?V2DI04@&J0Zsc?u(UgZ7=db zjs^5{8sE-$&o(Sh57WaG$8Y4xe;V;l=BUwO!q5(wsQ@7nmluL`L zRria*ChGNEn@`0NZJ?|NphuBZhWTq#Zt<>~pDFoDa+U>NGFQR6v^BrK9~^}}pa%VxWJZdR#jGo;3O)|<_$+6<}< z!>?8izczrlikS84r>joY8X5J{6)o>Y9AmV!eKP8ft3|!iSISG*#(EoT2&n^ZzsmXo MZta_v#w14m0T;WSO#lD@ delta 940 zcmYjPOGs2v82-*VcOLi7^+h&hJ{V&%8wVYR5CW4iluQz1e1Q^qbw-Dp$zilXqfm+- z^q}y#5Ngq)pjLs>rbUQE)TRE<+SF_8+uM=1~Q0>z-`^gh70yx38^l{=-5w`CkxU z9-#QZzREp-d6u~2x~P9?@)YmiVW^S70Wk>2UD5p8TTk25`RnF zPEU?G7{zVki^RPdXC@0TI*3mb51evZGs(L(YhBb4b!Eh}lT*`w))A%HpbE%S0q=>D z*QBKqf_W-n3=0ys(@Jn9Z5&|oy{D!OTXobh8NbL}+sX8h!-whVQ8y_JxY#NMZt~k%ohu{Au;e z%T`X7_@ZJENg1}PWxwT@k4#(ETIKS)8J1s6OWUgCH8Ub-%~IK8hCBx`Nh%4s(`@o6 zwK1HOU3RdTMyrMm#1xQ=tk$nq!_{H}zkuBe2?j1NuvS^ipA79FcdrW8-_X_$ODTmi z=rj=Lt5_wdRAYr*Gq5t6TS1#%iN$=p$k5vAGF)!?QY7SlQNMEECAe375?M@9%V|6K E7h9v8H2?qr