Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15431264
D19407.id46429.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
15 KB
Referenced Files
None
Subscribers
None
D19407.id46429.diff
View Options
diff --git a/src/parser/ArcanistBundle.php b/src/parser/ArcanistBundle.php
--- a/src/parser/ArcanistBundle.php
+++ b/src/parser/ArcanistBundle.php
@@ -781,21 +781,46 @@
private function emitBinaryDiffBody($data) {
$eol = $this->getEOL('git');
+ return self::newBase85Data($data, $eol);
+ }
+
+ public static function newBase85Data($data, $eol, $mode = null) {
+ // The "32bit" and "64bit" modes are used by unit tests to verify that all
+ // of the encoding pathways here work identically. In these modes, we skip
+ // compression because `gzcompress()` may not be stable and we just want
+ // to test that the output matches some expected result.
+
+ if ($mode === null) {
+ if (!function_exists('gzcompress')) {
+ throw new Exception(
+ pht(
+ 'This patch has binary data. The PHP zlib extension is required '.
+ 'to apply patches with binary data to git. Install the PHP zlib '.
+ 'extension to continue.'));
+ }
- if (!function_exists('gzcompress')) {
- throw new Exception(
- pht(
- 'This patch has binary data. The PHP zlib extension is required to '.
- 'apply patches with binary data to git. Install the PHP zlib '.
- 'extension to continue.'));
+ $input = gzcompress($data);
+ } else {
+ switch ($mode) {
+ case '32bit':
+ $input = $data;
+ break;
+ case '64bit':
+ $input = $data;
+ break;
+ default:
+ throw new Exception(
+ pht(
+ 'Unsupported base85 encoding mode "%s".',
+ $mode));
+ }
}
// See emit_binary_diff_body() in diff.c for git's implementation.
$buf = '';
- $deflated = gzcompress($data);
- $lines = str_split($deflated, 52);
+ $lines = str_split($input, 52);
foreach ($lines as $line) {
$len = strlen($line);
// The first character encodes the line length.
@@ -811,7 +836,7 @@
return $buf;
}
- public static function encodeBase85($data) {
+ private static function encodeBase85($data) {
// This is implemented awkwardly in order to closely mirror git's
// implementation in base85.c
diff --git a/src/parser/__tests__/ArcanistBundleTestCase.php b/src/parser/__tests__/ArcanistBundleTestCase.php
--- a/src/parser/__tests__/ArcanistBundleTestCase.php
+++ b/src/parser/__tests__/ArcanistBundleTestCase.php
@@ -663,11 +663,7 @@
}
$expect = Filesystem::readFile(dirname(__FILE__).'/base85/expect1.txt');
- $expect = trim($expect);
-
- $this->assertEqual(
- $expect,
- ArcanistBundle::encodeBase85($data));
+ $this->assertBase85($expect, $data, pht('Byte Sequences'));
// This is just a large block of random binary data, it has no special
// significance.
@@ -948,11 +944,27 @@
"\xe8\x1d\xa4\x18\xf3\x73\x82\xb4\x50\x59\xc2\x34\x36\x05\xeb";
$expect = Filesystem::readFile(dirname(__FILE__).'/base85/expect2.txt');
- $expect = trim($expect);
- $this->assertEqual(
- $expect,
- ArcanistBundle::encodeBase85($data));
+ $this->assertBase85($expect, $data, pht('Random Data'));
+ }
+
+ private function assertBase85($expect, $data, $label) {
+ $modes = array(
+ '32bit',
+ );
+
+ // If this is a 64-bit machine, we can also test 64-bit mode.
+ $has_64bit = (PHP_INT_SIZE >= 8);
+ if ($has_64bit) {
+ $modes[] = '64bit';
+ }
+
+ foreach ($modes as $mode) {
+ $this->assertEqual(
+ $expect,
+ ArcanistBundle::newBase85Data($data, "\n", $mode),
+ pht('base85/%s: %s', $mode, $label));
+ }
}
}
diff --git a/src/parser/__tests__/base85/expect1.txt b/src/parser/__tests__/base85/expect1.txt
--- a/src/parser/__tests__/base85/expect1.txt
+++ b/src/parser/__tests__/base85/expect1.txt
@@ -1 +1,10 @@
-009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_|Ni~_`}+C#_xAPl^YZcV@9ypF>+0#~=jP?)<Kp4q-`?Ha+uGUK*Vfh4)6&t<&(6)v%gV{f$Hv9P!@|M9zrMY^ySll!x3;ykv$C<Uudc1EtE#D}r>3Q(qoSdppPrqZo0^%JmzI^3lai5;kB*Iui;9VehlYiOgMxv8e|~*@dwO|zcXoAjb8>NTZ*FaDYiem|XJ%z&V`5=oUtV2YTUuFIS5{S2Q&Le-PfkrtOG-&dM@B_NLqb77KR!J?J32WyH#RjiGcqwSFD@-CD=H}{CnhB%BO)OnA08bX8yXoH7Zw#16A}>+4-O3s3knGc2L=TM0|Eg6
+z009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSS
+zG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&
+zXlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJ
+zoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv
+z(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_|Ni~_
+z`}+C#_xAPl^YZcV@9ypF>+0#~=jP?)<Kp4q-`?Ha+uGUK*Vfh4)6&t<&(6)v%gV{f
+z$Hv9P!@|M9zrMY^ySll!x3;ykv$C<Uudc1EtE#D}r>3Q(qoSdppPrqZo0^%JmzI^3
+zlai5;kB*Iui;9VehlYiOgMxv8e|~*@dwO|zcXoAjb8>NTZ*FaDYiem|XJ%z&V`5=o
+zUtV2YTUuFIS5{S2Q&Le-PfkrtOG-&dM@B_NLqb77KR!J?J32WyH#RjiGcqwSFD@-C
+rD=H}{CnhB%BO)OnA08bX8yXoH7Zw#16A}>+4-O3s3knGc2L=TM0|Eg6
diff --git a/src/parser/__tests__/base85/expect2.txt b/src/parser/__tests__/base85/expect2.txt
--- a/src/parser/__tests__/base85/expect2.txt
+++ b/src/parser/__tests__/base85/expect2.txt
@@ -1 +1,79 @@
-R!p;F<w~CeqfFghg@zC?Kfx$b*s>bKc@>2*X8DfcAdeEEln%ePoVCCeLp`nS06Z4@b}#LjI(R<Ok@&F6xhekC4;FA4t=U2qw2#)0fMV%Lcb_<IKh_RFXlRqJb!~rjoPcSRB8RrXVr#2OxRL3WzXZZiFs|ysaE_7Cw(M3Ec-4xGQqer#Wg+a7tIvM*{cSC2xh|tZdrhVLC~b73dpgB5d}FEkjx-cPu<;J!(9#5f|6<kIMmsi$ij!3WEdQTK)_TjoYBQ>92uzlkiBndzvzrF7pc85OYN!or+OltA3#j&4DMoz+MC*`m*T=TX#p~V>o4xX8j?fF*jO&ndb2H~}CRa}UmEinhlcy-=3`TR^0nS64P8M`qHj-LqOyi!AEt(oVX*p*E*7#pV?z_}u&y1TfX_y+AS4*i$_8WF6*W-_4m0JelsAgdKNlrjhGMjWZz*h7#?1R!QX<$_mJ5SaM_5?U}w!(r<`h!-wHA2J7+$i*ENU7jaL3w8WVbSuRd)~x8kB_#T3Uv5!12;D?jVfx%QK8~A<wDy}VNMqOBXSZ(QxbwcL}Md@s;hpDaAxt8h62StoOu@>pA(5aB}K_Q9-tZnARK{f{I$vA+OdZ;pt5o{Xc7fed}wPPDpo3ff6$y0sj^Jwie=Ylt@HCMoahh-isB$=<WWb#B9R3mIU4U&(u#;xKZCk+)Ro7$qWw)yUH{#$8p3|H`i5VVI9<w`T7I`j)m&@yG6NAr=}8hmf@ggyT48~`B&yeZ$<ME_KCna0&LQL*TGl}I4kPby^v2THHrF89jX6f@{CHKO0@imS$d?}9Mc$LAbl6!CB#P+G=>WA(=1H*L6dGOKI7hI@9_)N}$ss&Cg->yp?Mjp^QAnIakZ|b^gjLd{Nc#O$5)rvF{2gZJLgQX#^gZetQ{#I}?%Q<EFw+Ff+N9mBm^yaox*G#i?M7Yi)HK44@2*ib4^2R-I@?ehzF&*DBtRLDifcqqo8a`EOT;5L@U!7qoetTl_dbS0n_G}Pz#yQ-hEK-Jwae6q#&TDuS1dFpkwg`!^oYuIR-O`U-%{_uv|JYGs`s|@eA>-I`5ZuqL}*VNT6>SfM@ZB2<@IJYNWNs>{x$K#<f#0H`)MG_^cI%EdQlX2q;3=FSv4f_<^JiI4bkY%oPYQ`c{w^Aqj&F5OIdRRv;MAdDmw6aoqn6Du^9P7Y4cS^tvI6b%g#5ch#)xX87Y;Fbq1Xsp7OV3m?1WhlK8lZ9$Z}sJ5t4Jhki!NjNj+Vse2J)51vArKH!Uho{@HlnxW#BuKO4{+>)6z{g@!AiD4`z;JAaQ=TJhA{5EE5CB<#DG2u-QF8D;^wrXwugPtr0FBL)a=cX7dgnsKo%)8sER9w7SYTPC&^jW8Mq^#|8j}}7>mk=y)@1C;B-{z;A2zjITne|!Z)rk=0$@k|eat6j!!_CnDY53n6@@5=qK)jdnNnUtjQbvEzL{N)g=cwz|gd~B$EM@nVz4DGj`)Wx%YUL_9@cM~aUpaNOZv^q+EX{W`>}y39;}|3bxoE*oaZCS*80rmHNmbwFuvy!5o(nhwpAc`^GzUZ}2(i?6#)J*Kwbcm)83AG`MN%EcPbGMMysihc)ZiJB1J;c%0LijuJ5D`y_amA<q}6|QN6@^($ST~032Y3IIN0yc^m-e|cHrBAs2eMd)HaZI-inaOTLl2?vmnlHT)8zpl{$G!VCy3h`;aa6w*^W=L3vTC=8y_;hk(AYi4W6+8P06^yBifv4>M)=o;ul#0z=Q=vS7hX>7_ic`avzZA4M|DIWLs1L~Uuo$ybc!^rSkraAEnoLEL!o_rIu)<9AWcB`@D6YX>l&&f8g7s<JNJkdlH`{v|d^e{C%}QSUv-qlXLU@~n`c9oWa}lT$k(gf3ES`%f|2(dtD$-0M<-j4SjiyaB}LXf~YHEx}>SnqL?IYRH;S{V`k4kWNMaf9kR(t-(4WspxzZu7MuDqix!f8|(6Ec0Tbd_Zmgjvw^X`fPW;q4%KKhKN=|&4#Fm4463OhOkrh72fk_a$?Pv2`dKb=z!$|#`noS<tEsfh+{-0j&kTpm@HQ*Xfm$Mkpioekj@mYWbhRD=Ki9}95$hd2be|>~q&@i#@GV@aL%&gMjplgZXIJpZ4wsx)BQUIE-$t0EuTH1stTDaoYM`*>lzvh6iGe<=Ph_{nQE|<50;vL-T&oTgM>_<;n^_u@l1y<RUvAU$r$-w(K67c}?8{QKTzZuyKNgr^sG?oOT4&@D1_t?hv=rdHdlMZG^2!U;s&O?w)-Enxdlkte8mS~PNYu|t^fDKl9ZUX6Y1Y7xx!ZD5Ea>yZ{6_V-8wCc>%p)|vC2HzC$7IyivuEujC(~!ay`Ou183bI>mVTwjyRw96m^cxT`(hRS=C>qwvUtaHk;z~kk!=JkLFvi*<d{^0nr?QCA^DLwAKd;E2{6}FV`94FEO6EQcr`Y8UA7K2Jw}K7^<*DD{VyE5?UgOoW89}|Igh=|d6nr!zvMmzRRG&FC^~H7HM^{EQY)-Z5ky!PA+)XyYPsBnU62tbh1<jMIB$yo67b2M@cgcn5lzmPDG6-!Ds0*wOiH4bTJOd<TwtOo6IgSW-dQSFWNZ|aiY|^JKcYk4_AMiHT)lb_+ZU*l&~%2KGY3fStQc)%VS8aKq@t^tS-u(989^Rlhpj+cX^b-Uwn@Gpt=JDf*<!3ZcHT0hvO$%t7bB~oH=L_;d2rTd4Q@?~pseFW9t!U8bY$2>(QKyGHZIv!ZjfWQ_m0LWqd)*)nmqph127R7k}q2$;ZB+4g2_?h6>4@|XRf27oP|-~M2Taiahbd=oU5AqAU9anEsK3Z6E#Fk5tn8s7pz3+Y6Ezph{iT?T3T9iqv>)Ckum(Pd!Th83c*X2%j3fC0}r^eQOC%fjcq#TPAsbHUP+VSkD*kP=X_l;#{~c=6jw*H1uYknC`ImtI$5@+1i)MeALd&&Q(}T-)wc5WXBiRh(s0ETW5IRdB;^5FQhbOPwBQx#5(UkOde!Ph!@FhF-3{J0l$Z@H`#djc&?w@C*(dXQtx#x|R9@@6Ds<lSPKzfB&rD!I=*4oYjQ#1W|54@E>Yg-n;pX^Tu@Lb2Eh7&8<@AlVZ8sF{RF{%mXh4YZLn-fGmUp7)Jg$GSnHQ%FZ{kBTn-oLx6>Ad^XjTiV1}?z(-kwyQy8m`2ZC;*;IxCwXL%A9bSY_<no|m}$18lH=qVe=6Bq2vpAwWeaardEXz7EJgo7!TXbN63xY`Pxn7F;ew3L*k*zPV|W{iQP|WF&0DJumaom)>AQ91R<kvq(jJ)zEQGt-quSA}0hmgc)XI@bmnz^BwBCx#Z=5?c?!yB*P^qae>0@RPD@T_c_gj-!h26JJe#h>NMETygG?EWMD+zwsu*um1-sk@bqydi}-=v4KIx1aKe_t*qh`(?2G-q$u={$yjeFH2{2yoXRc>Ratrh-g8$3c*_~~CrXWI4D+(_~nOk;knK`MpG6oU&8PPw$)*om3)vkJRjJ!RxUtEEFp*e607bLeLhEUia$ZT1f-0*P$+SpT=9CJ4D35Ln1CMCcFJ`+wU>+p@^I0IDfH~Ud8wDuAovW#YR05DtcS@~nBbO({-oVUq|*{M;J%dw|q2zigRZ3)-KzY5z>;2eX>_|K<-y9?&e8x9KK&1mA@#4Wm2$HyLQUdo#wb(WNpgzWVqC3t7ez5)JIrOawTGlQghM3W2oOtO`>eoLgthW?82cR*GX!7(h1N~nop3^_A+jMY#(iNn)?9H+K6!T^m5f6UV$bYO5cecIf_Nd)lbY|*~U`|+aI)Z~{xH3?hV25W7GQzHx}Q7RRx;&c1QK~&sbnF|UY)Z1{Qj{RHks6LzjSD3unDpu1O`3u=+4-lLq<!chgwoB0r=|wi*RBz1wwamHx-pIAd1X*Eq9&$HS{l>$7bgoq~YP^crMUmo-AeV9HRo05Qf+{CZ+*64t_d5Ou?_jbre7qCHJ=)j%xM6*1t`3@U)&M4#|J&xiMS8UWG5v7N*EERa1!47a9Tf0>klPN&+SK!z)L_}C$XhcswIg&aUu#yCoEs{v`Tj=3@tY)mOUfl!K@el;=V;o@woO})$*D2xTq@6<iPce)fH3sQER48}V%9Ugm7n?<@<=ENbIDU-lsaN)Y{u3Kw5}(X`zhB(XAyenI+{Q9nsx0YXGMA3iy89oSE|Q^|D7$vsD)Iwo#ECi=`o#bxK4IZfJ8=*UVb2|po%tY@6mPmKOo%+bHAncw1=`pzz-0>l`e`x`ol>VxwRU@fRhZ^<ISWvVR|BSjxvu`oRJ9GWvK!v##zWwG9XCmEUpfwHCy6i`SP7#<3-#-y8A%PjoxfMP?w#9pxQxUy07?j(jj{Z%!A<w0R%$M%j_L%w{H(i)KidEJI|k!xUJ4#6N9sfZ(19q^_5GsA|f3%s`|$ijLlGH6i5GOviK4Svx?<?xXI*+_oTIO`Yr2~iR`;cS<=C64hH02)e{p9a&GW#snzFHXf@5y)u!dL<gpp#@#BhCOglZe1O6f}#@vW|%3Q|X7c>YW@E2hYV4SokS1@k4Pu(SZ@1Bl`YuFGY!bDSZWRE~1;pn2UKZ*xt&16rU9*K4YZL7k&7KMNTrLp1?1THy;jPAVq2W<mPI;DG++1J+YE9uMT?5KolLiw^K$n$EdG&|XH*>Hh7)Lv$n8|EvBae||Yn6MVvyO)bsc|lfg!jIqjTgPZyxCucqd>P@DE(J`iIDy);i#{BAnlY?CJ#DM=T3*L)jycVHZ({DbbKQbMZwchXu9D~&nV?>x67=HW=9O4FMXmlLd0&Fgm56ieM#uoH!z$c<tDE?{MqH>yy#1N3Os9A2d|1D`QfOj53wdNXWv9z~>9RAmSyFo!v;r#!4LT85lBFUmyylk$5(Vdx<NB@@z98jXaU_6+$!5V*T#pFUQsEG`)*uK0c{86Iy`ZanvDw_pL?TJIw>^ZclJxot$;GllE1F}wih=|$_vtVNXEM=28fk91_+M?e<xYhm`WA{r{r1_SUuY}y;yj9J(!n_GgYOMfhLbWQ#uN;&wr+Q%AP=!_;?Bx%lN>sa(9&9NFxHM=OQr9rV(TcNUO&OS3TUg>`l7dw60n)PlOVX2jmpQT*)AEZ2DwgFj&$!T1lV;1I4Z}Wq>1ySiqtGDSZ@FWBe<^uNPSR7Z(0aJ<5q3U;!o<1t8~rz@6Y)j@%XuHsyjE)Awp;D)<jh^=pCdO^K*i<P+7t>HU;Yd
+zR!p;F<w~CeqfFghg@zC?Kfx$b*s>bKc@>2*X8DfcAdeEEln%ePoVCCeLp`nS06Z4@
+zb}#LjI(R<Ok@&F6xhekC4;FA4t=U2qw2#)0fMV%Lcb_<IKh_RFXlRqJb!~rjoPcSR
+zB8RrXVr#2OxRL3WzXZZiFs|ysaE_7Cw(M3Ec-4xGQqer#Wg+a7tIvM*{cSC2xh|tZ
+zdrhVLC~b73dpgB5d}FEkjx-cPu<;J!(9#5f|6<kIMmsi$ij!3WEdQTK)_TjoYBQ>9
+z2uzlkiBndzvzrF7pc85OYN!or+OltA3#j&4DMoz+MC*`m*T=TX#p~V>o4xX8j?fF*
+zjO&ndb2H~}CRa}UmEinhlcy-=3`TR^0nS64P8M`qHj-LqOyi!AEt(oVX*p*E*7#pV
+z?z_}u&y1TfX_y+AS4*i$_8WF6*W-_4m0JelsAgdKNlrjhGMjWZz*h7#?1R!QX<$_m
+zJ5SaM_5?U}w!(r<`h!-wHA2J7+$i*ENU7jaL3w8WVbSuRd)~x8kB_#T3Uv5!12;D?
+zjVfx%QK8~A<wDy}VNMqOBXSZ(QxbwcL}Md@s;hpDaAxt8h62StoOu@>pA(5aB}K_Q
+z9-tZnARK{f{I$vA+OdZ;pt5o{Xc7fed}wPPDpo3ff6$y0sj^Jwie=Ylt@HCMoahh-
+zisB$=<WWb#B9R3mIU4U&(u#;xKZCk+)Ro7$qWw)yUH{#$8p3|H`i5VVI9<w`T7I`j
+z)m&@yG6NAr=}8hmf@ggyT48~`B&yeZ$<ME_KCna0&LQL*TGl}I4kPby^v2THHrF89
+zjX6f@{CHKO0@imS$d?}9Mc$LAbl6!CB#P+G=>WA(=1H*L6dGOKI7hI@9_)N}$ss&C
+zg->yp?Mjp^QAnIakZ|b^gjLd{Nc#O$5)rvF{2gZJLgQX#^gZetQ{#I}?%Q<EFw+Ff
+z+N9mBm^yaox*G#i?M7Yi)HK44@2*ib4^2R-I@?ehzF&*DBtRLDifcqqo8a`EOT;5L
+z@U!7qoetTl_dbS0n_G}Pz#yQ-hEK-Jwae6q#&TDuS1dFpkwg`!^oYuIR-O`U-%{_u
+zv|JYGs`s|@eA>-I`5ZuqL}*VNT6>SfM@ZB2<@IJYNWNs>{x$K#<f#0H`)MG_^cI%E
+zdQlX2q;3=FSv4f_<^JiI4bkY%oPYQ`c{w^Aqj&F5OIdRRv;MAdDmw6aoqn6Du^9P7
+zY4cS^tvI6b%g#5ch#)xX87Y;Fbq1Xsp7OV3m?1WhlK8lZ9$Z}sJ5t4Jhki!NjNj+V
+zse2J)51vArKH!Uho{@HlnxW#BuKO4{+>)6z{g@!AiD4`z;JAaQ=TJhA{5EE5CB<#D
+zG2u-QF8D;^wrXwugPtr0FBL)a=cX7dgnsKo%)8sER9w7SYTPC&^jW8Mq^#|8j}}7>
+zmk=y)@1C;B-{z;A2zjITne|!Z)rk=0$@k|eat6j!!_CnDY53n6@@5=qK)jdnNnUtj
+zQbvEzL{N)g=cwz|gd~B$EM@nVz4DGj`)Wx%YUL_9@cM~aUpaNOZv^q+EX{W`>}y39
+z;}|3bxoE*oaZCS*80rmHNmbwFuvy!5o(nhwpAc`^GzUZ}2(i?6#)J*Kwbcm)83AG`
+zMN%EcPbGMMysihc)ZiJB1J;c%0LijuJ5D`y_amA<q}6|QN6@^($ST~032Y3IIN0yc
+z^m-e|cHrBAs2eMd)HaZI-inaOTLl2?vmnlHT)8zpl{$G!VCy3h`;aa6w*^W=L3vTC
+z=8y_;hk(AYi4W6+8P06^yBifv4>M)=o;ul#0z=Q=vS7hX>7_ic`avzZA4M|DIWLs1
+zL~Uuo$ybc!^rSkraAEnoLEL!o_rIu)<9AWcB`@D6YX>l&&f8g7s<JNJkdlH`{v|d^
+ze{C%}QSUv-qlXLU@~n`c9oWa}lT$k(gf3ES`%f|2(dtD$-0M<-j4SjiyaB}LXf~YH
+zEx}>SnqL?IYRH;S{V`k4kWNMaf9kR(t-(4WspxzZu7MuDqix!f8|(6Ec0Tbd_Zmgj
+zvw^X`fPW;q4%KKhKN=|&4#Fm4463OhOkrh72fk_a$?Pv2`dKb=z!$|#`noS<tEsfh
+z+{-0j&kTpm@HQ*Xfm$Mkpioekj@mYWbhRD=Ki9}95$hd2be|>~q&@i#@GV@aL%&gM
+zjplgZXIJpZ4wsx)BQUIE-$t0EuTH1stTDaoYM`*>lzvh6iGe<=Ph_{nQE|<50;vL-
+zT&oTgM>_<;n^_u@l1y<RUvAU$r$-w(K67c}?8{QKTzZuyKNgr^sG?oOT4&@D1_t?h
+zv=rdHdlMZG^2!U;s&O?w)-Enxdlkte8mS~PNYu|t^fDKl9ZUX6Y1Y7xx!ZD5Ea>yZ
+z{6_V-8wCc>%p)|vC2HzC$7IyivuEujC(~!ay`Ou183bI>mVTwjyRw96m^cxT`(hRS
+z=C>qwvUtaHk;z~kk!=JkLFvi*<d{^0nr?QCA^DLwAKd;E2{6}FV`94FEO6EQcr`Y8
+zUA7K2Jw}K7^<*DD{VyE5?UgOoW89}|Igh=|d6nr!zvMmzRRG&FC^~H7HM^{EQY)-Z
+z5ky!PA+)XyYPsBnU62tbh1<jMIB$yo67b2M@cgcn5lzmPDG6-!Ds0*wOiH4bTJOd<
+zTwtOo6IgSW-dQSFWNZ|aiY|^JKcYk4_AMiHT)lb_+ZU*l&~%2KGY3fStQc)%VS8aK
+zq@t^tS-u(989^Rlhpj+cX^b-Uwn@Gpt=JDf*<!3ZcHT0hvO$%t7bB~oH=L_;d2rTd
+z4Q@?~pseFW9t!U8bY$2>(QKyGHZIv!ZjfWQ_m0LWqd)*)nmqph127R7k}q2$;ZB+4
+zg2_?h6>4@|XRf27oP|-~M2Taiahbd=oU5AqAU9anEsK3Z6E#Fk5tn8s7pz3+Y6Ezp
+zh{iT?T3T9iqv>)Ckum(Pd!Th83c*X2%j3fC0}r^eQOC%fjcq#TPAsbHUP+VSkD*kP
+z=X_l;#{~c=6jw*H1uYknC`ImtI$5@+1i)MeALd&&Q(}T-)wc5WXBiRh(s0ETW5IRd
+zB;^5FQhbOPwBQx#5(UkOde!Ph!@FhF-3{J0l$Z@H`#djc&?w@C*(dXQtx#x|R9@@6
+zDs<lSPKzfB&rD!I=*4oYjQ#1W|54@E>Yg-n;pX^Tu@Lb2Eh7&8<@AlVZ8sF{RF{%m
+zXh4YZLn-fGmUp7)Jg$GSnHQ%FZ{kBTn-oLx6>Ad^XjTiV1}?z(-kwyQy8m`2ZC;*;
+zIxCwXL%A9bSY_<no|m}$18lH=qVe=6Bq2vpAwWeaardEXz7EJgo7!TXbN63xY`Pxn
+z7F;ew3L*k*zPV|W{iQP|WF&0DJumaom)>AQ91R<kvq(jJ)zEQGt-quSA}0hmgc)XI
+z@bmnz^BwBCx#Z=5?c?!yB*P^qae>0@RPD@T_c_gj-!h26JJe#h>NMETygG?EWMD+z
+zwsu*um1-sk@bqydi}-=v4KIx1aKe_t*qh`(?2G-q$u={$yjeFH2{2yoXRc>Ratrh-
+zg8$3c*_~~CrXWI4D+(_~nOk;knK`MpG6oU&8PPw$)*om3)vkJRjJ!RxUtEEFp*e60
+z7bLeLhEUia$ZT1f-0*P$+SpT=9CJ4D35Ln1CMCcFJ`+wU>+p@^I0IDfH~Ud8wDuAo
+zvW#YR05DtcS@~nBbO({-oVUq|*{M;J%dw|q2zigRZ3)-KzY5z>;2eX>_|K<-y9?&e
+z8x9KK&1mA@#4Wm2$HyLQUdo#wb(WNpgzWVqC3t7ez5)JIrOawTGlQghM3W2oOtO`>
+zeoLgthW?82cR*GX!7(h1N~nop3^_A+jMY#(iNn)?9H+K6!T^m5f6UV$bYO5cecIf_
+zNd)lbY|*~U`|+aI)Z~{xH3?hV25W7GQzHx}Q7RRx;&c1QK~&sbnF|UY)Z1{Qj{RHk
+zs6LzjSD3unDpu1O`3u=+4-lLq<!chgwoB0r=|wi*RBz1wwamHx-pIAd1X*Eq9&$HS
+z{l>$7bgoq~YP^crMUmo-AeV9HRo05Qf+{CZ+*64t_d5Ou?_jbre7qCHJ=)j%xM6*1
+zt`3@U)&M4#|J&xiMS8UWG5v7N*EERa1!47a9Tf0>klPN&+SK!z)L_}C$XhcswIg&a
+zUu#yCoEs{v`Tj=3@tY)mOUfl!K@el;=V;o@woO})$*D2xTq@6<iPce)fH3sQER48}
+zV%9Ugm7n?<@<=ENbIDU-lsaN)Y{u3Kw5}(X`zhB(XAyenI+{Q9nsx0YXGMA3iy89o
+zSE|Q^|D7$vsD)Iwo#ECi=`o#bxK4IZfJ8=*UVb2|po%tY@6mPmKOo%+bHAncw1=`p
+zzz-0>l`e`x`ol>VxwRU@fRhZ^<ISWvVR|BSjxvu`oRJ9GWvK!v##zWwG9XCmEUpfw
+zHCy6i`SP7#<3-#-y8A%PjoxfMP?w#9pxQxUy07?j(jj{Z%!A<w0R%$M%j_L%w{H(i
+z)KidEJI|k!xUJ4#6N9sfZ(19q^_5GsA|f3%s`|$ijLlGH6i5GOviK4Svx?<?xXI*+
+z_oTIO`Yr2~iR`;cS<=C64hH02)e{p9a&GW#snzFHXf@5y)u!dL<gpp#@#BhCOglZe
+z1O6f}#@vW|%3Q|X7c>YW@E2hYV4SokS1@k4Pu(SZ@1Bl`YuFGY!bDSZWRE~1;pn2U
+zKZ*xt&16rU9*K4YZL7k&7KMNTrLp1?1THy;jPAVq2W<mPI;DG++1J+YE9uMT?5Kol
+zLiw^K$n$EdG&|XH*>Hh7)Lv$n8|EvBae||Yn6MVvyO)bsc|lfg!jIqjTgPZyxCucq
+zd>P@DE(J`iIDy);i#{BAnlY?CJ#DM=T3*L)jycVHZ({DbbKQbMZwchXu9D~&nV?>x
+z67=HW=9O4FMXmlLd0&Fgm56ieM#uoH!z$c<tDE?{MqH>yy#1N3Os9A2d|1D`QfOj5
+z3wdNXWv9z~>9RAmSyFo!v;r#!4LT85lBFUmyylk$5(Vdx<NB@@z98jXaU_6+$!5V*
+zT#pFUQsEG`)*uK0c{86Iy`ZanvDw_pL?TJIw>^ZclJxot$;GllE1F}wih=|$_vtVN
+zXEM=28fk91_+M?e<xYhm`WA{r{r1_SUuY}y;yj9J(!n_GgYOMfhLbWQ#uN;&wr+Q%
+zAP=!_;?Bx%lN>sa(9&9NFxHM=OQr9rV(TcNUO&OS3TUg>`l7dw60n)PlOVX2jmpQT
+z*)AEZ2DwgFj&$!T1lV;1I4Z}Wq>1ySiqtGDSZ@FWBe<^uNPSR7Z(0aJ<5q3U;!o<1
+mt8~rz@6Y)j@%XuHsyjE)Awp;D)<jh^=pCdO^K*i<P+7t>HU;Yd
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 25, 11:24 AM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7711840
Default Alt Text
D19407.id46429.diff (15 KB)
Attached To
Mode
D19407: Restructure base85 unit tests to support inlining and multiple encoding pathways
Attached
Detach File
Event Timeline
Log In to Comment