From 9c2d4090b3dd795e6bc755a439113a3149d4538d Mon Sep 17 00:00:00 2001 From: lolo859 Date: Mon, 2 Feb 2026 17:04:04 +0100 Subject: [PATCH] first commit --- ccc.cpp | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ccomp | Bin 0 -> 34240 bytes 2 files changed, 194 insertions(+) create mode 100644 ccc.cpp create mode 100755 ccomp diff --git a/ccc.cpp b/ccc.cpp new file mode 100644 index 0000000..dbfc340 --- /dev/null +++ b/ccc.cpp @@ -0,0 +1,194 @@ +#include +#include +#include +#include +using namespace std; +const vector tokens={ + "alignas", + "alignof", + "auto", + "bool", + "break", + "case", + "char", + "const", + "constexpr", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "false", + "float", + "for", + "goto", + "if", + "inline", + "int", + "long", + "nullptr", + "register", + "restrict", + "return", + "short", + "signed", + "sizeof", + "static", + "static_assert", + "struct", + "switch", + "thread_local", + "true", + "typedef", + "typeof", + "typeof_unqual", + "union", + "unsigned", + "void", + "volatile", + "while", + "#include <", + "#include \"", + "ifdef", + "elifdef", + "elifndef", + "define", + "undef", + "pragma", + "endif", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + "++", + "--", + "<<", + ">>", + "==", + "!=", + "<=", + ">=", + "->", + ";\n", + ", ", + ") {\n", + "unsigned int", + "unsigned long", + "unsigned char", + "unsigned short", + "long long", + "unsigned long long", + "signed char", + "long double", + "static int", + "static unsigned", + "static const", + "static char*", + "const char*", + "const int", + "extern int", + "volatile int", + "char*", + "char *", + "void*", + "void *", + "int *", + "int*", + "char**", + "char **", + "struct ", + "typedef struct", + "typedef enum", + "enum ", + "uint8", + "uint16", + "uint32", + "uint64", + "int8", + "int16", + "int32", + "int64", + "size_t", + "NULL", + ".h>", + ".h\"", + "int i=0;", + "int i = 0;", + "()", + "(", + ")", + "[]", + "[", + "]", + "{}", + "{", + "}", + "<", + ">", + "=", + "!", + "+", + "+", + "*", + "/", + "%", + "&", + "|", + "^", + "~", + ".", + ":", + ";", + "?", + " ", + "\n", + "\t", + "\n ", + "\n\t", + " ", + "uint8_t", + "uint16_t", + "uint32_t", + "uint64_t", + "int8_t", + "int16_t", + "int32_t", + "int64_t", + "int main(", + "#ifdef", + "#elifdef", + "#elifndef", + "#define", + "#undef", + "#pragma", + "#endif", + "printf(", + "malloc(", + "free(", + ");", + ");\n", + ");\n\t", + ");\n ", + "if (", + "while (", + "} else if (", + "} else {", + "for (", + "switch (", + "&&", + "||", + " && ", + " || ", +}; +int main() { + cout<OXys@{|L8wi=T$@izo%daPuRU|- zFyTFh)W6s;^F4d5wb$Nz?X`cLGiUF7#aX>PJ1a}*kS%Ty6syf~NRs*%V*553Wm=gS zFC5|;VG|=k$-&1VIfUv;V_&vnXv|}|5kN`@6)M;qDR?E5HR=))<}y!#gJTNcyF^7b zihLEPbZ5)2Wu}tTXii6U?5R=wo(&Fpp>aRgZ;&cPf%79WrR(E#eVk6C;B*?bU8s!o znZo*}jBp@EafLHvObCr6OM#F+dCMtA=tw~o6GEdkKNqKSaXO7QsU_J=lm~_S55tX_ zN=U{+L`<4dLdk2?FnbckGi^E%R7uz zD#RB&1XldoUHG1OwF6faZz1OK{y4(5e@Ai3_V`g5zlY*fs^dK}9;7%GPBqylUi|=)2to3PlhN)2of{p(wS>OI7abr8GVAD9i4gB^>OM?HY)U40Matj* ziG=8Y>)fkHeOB_O}n@j2>zc+RejoST^Yo0^ALRq~Uz64n;hSn2TxT1%( z)RQFTiuO^K0We)VHw?ZZbBuizHBp(nqT2>t(a3;nr*j~c(w!P5fr&5X0|s~GYhKsM zd{Q7Q^FU8{0&yw3IvDN5cpY2%*Lb{J<&3J@5?Myq#9Uq5Vj?ntk<1?5=b7CS!NxA3I0SXqVL9bq62je zWIfOm`8hFDib3MY17+rN{|-j(P8L;GPV@SqNM9d-{UFw@o39LYf}JBrUC}j1VCOyv zBHkOTphVGwh#rx3dCL|3kJv71%C2okMP$sY8_|fdTTWB!IFY(H_OxuNHAh`ph@y0| zQZ+}FLL~2vy@TW@rcy(5CbLl*Zs)(3ny8(JC|k6qM<(03rpFcixy%qFNVjVzWkF@9 za?5OJpi9Z-DF|{lwnR2$0aRXDa%XKG6yRF8W})GZqQB)z^LA|;l(sv=r3RHt!Lvl! zp^1<5pkJ{@)h0WIrm(9)|Dda@2QAYZdkF=yv}ZKZk80pU?JBGHCpgLL&NyWcQg7^= zWGoVqUIM#GFPWU;VbG3V!9Gz41=4}Smr2sjTGlIU|-k5!>BZR&P9^C(~;-u8k~3lP6Nl5y(-yhrFPX*QMNS$u4tkgCi^gRYKfJ! zWJ;>qJTuR9ZE|380@*9zwdjx164b8LH=X?$p2$sh!b#6khD7PiEeFrQpgmD)#5JrE zg}*0z+(y*$06NkO=t$2(3W%Pw)A=lwhqAR6DCU~u9OwoY<-rHm>$uUiyM|&1UV<5s zhxF#j)aRmyh|DebtmBMLygKDCN2QZSLmeP|hk)A{8dt==DTx^S@l{Z_#pz7EnVYSsDJ39FvYA+cUejo&?*NY19Va!gDF(2^y9+p zCbCs%wnfWe@S{XXEL*QPc9E&1dgMsdSE?D%HmO)my{IseJ+iLey)jE`dgm|H3e=-e zy53kPjY?6n-iH3_s2Ap^Ca9s3f+pSIXXtcr->%mR@2FUx?573D0U{VYqO#SHWQt1F z8!MzCd|}_jJ=9Ofyt;=5?C#Hy(@wGhSkAssor>fG`dnE(u7!s}H_GeX7YoUX63eXh z7v!2+tLpuz!D~dN!6}-pFAUE^_C@e4cJr&5B$CP24EbL+pd_ zZj50xOV%($8pQ*KskQTAj6vj?7-w%oW=VgAnJ6(n`BI2Xa41Am_`r!AqUe#Q>!d?A z98H!KzQSH}geovY_DAjIs?}xNC8W_z)T?)+L3YD*st<049x{4YEGseclY5vOuMa~4 zd8Xc8$^`TBjAp(>oItrvZ4g#q^4gmG2hq8CTBTV+9S}F}R z`O~}}E=;2g)h19D+yb;-CbSr{5q?YD&r#K(A zfU>NRB4$XC8@5sJ>uQo9N}((8GXvHDFpjP}}sV1HVMqe}TIG zqo2yIe?%D|ImeP_o>GCW=e3ZuQ z+}L*qc(_J$Ui(Km*m14Su5CmbZBr9@jUsL+H}+4^9$TfekXG!Cy@EI|Ysdv%(t3IZ z-JPmCY;PPs>`7Q4omAy(~2==Wr5YIw6QXF_)91j zQh=JA8B`@`LBz(WSX;3sIjf__SnBOWxufsDYJ*g)1E75i{|(bSANYNEEVPoyOz1o@rz-kyN?&g*eo9Jw zmXOGSM0FId)EjgD0luQv2NfGC?zE0MYM|l4h38$Qi}atk9A(3m?haVzP?@@%F`Hz- zS0caG<2(}PORJN`km)Yvl&N!)97}s+Psr{<%aS@+mR7c-F%lpdHI4KY8g3Dno!pBF zlC0H7YX3l%c;m2omV!KScVT`4MMk?2E?D4#1uj_Nf(0&E;DQA%Sm1&ME?7WWU|y@Q zp|oUPYvbHjpFh$$x3jEtZfS`<6tEXdfl2tLJ8e8s6Y}nR=Kid#2Va;b9uhgAXJwDf z%CTjOoSgjZym8|0jU-EHXjx3ZpHjFCpDFlE#peoquEgg{_*{jL4WDWFOvmS1d}iWv z$Jbwbv}Dhc2QK+%&kz4vdTr$Co3^joaq#Qg=2Y#QyWrht_MIxZ`YwMwR z-ncJb_&;ip#gO4;a3-hWmg9LwI(jaCSxrYLJEWuU#4oey=$8+nrxA}))5*^nLVny3 z^f!jkvww(k&Kjb=PYpr;Y>0Z%4W11jYj_?%TTX*loyv1a)GW}ne zerU9!lOIu-&U$9#J7m04e#7_Ru%zd=;}rcc(*r=F@3ZJxhVm2rAubR3CWW7(zC?eJ z^-oY_aTV-I^u?^Fmg%pseF}3NOi|$D@^9zzG%~l9%fEPnl5b+V9Z33jv3}}16xMOQ zPLFiR_?P83e*6NGpU|(*=I{s3*DAk<^*qb#4aT;Gp5U#;y^lyee#F#XO=As>1v zyvKU%EU)czn(OuHc!!kJ_I#G@Y}NlZ+w&Qgze%PNVh7VZxtuh%$Y2=FZ2`X#3cG`0 z!w|;p_2J?|!w9zo1DlOjufI9mVt9kWK(KbD2i#Tl;p+{<)7e>6R8-vH4*5Jt8ua;_ zt337Lq9RX=J7|Q1ZeKW5<#E=#@#VbUs4*JdVYjn3Lj^@e(BN^myFI?}7H1nu(b!ts zLAa_u&>E7I`f!QY-`JY26wW%7Y`!XM0EP9s+p1O@s|yWheJNEqgDMpjQ;7n8Xp4Bl zRWOay*|FNFFEhw`O@ZKMcd*g$g}p&{H~@pVn={O(kZk8gHUU-f49dC?DpWg4LuH_0 zS+TPtVeH!Fb@hRI!wCY+3SUs3(%^11+^wwvkCHrRCxJyPD7n$%YxD*yi{UJFE9>X8 zLl*f0Ap@QSh&O9g}OEr#E#dzds@2010V7Af#=R$bzpZGXK{4`*)Q z0-M8=GgLxu=0V>Id!2P{8R}S8#Ey2(RVbQ|>_ce1^YiqfoFD^tDuPjEhmaP5Crg`T z(8gtL?oK1*yT_ZcZR8;03$+JAN(aVDPaqP`w4;!zrE9BEJ<|@KMhym(g}R%x2AVOq zoZrl28B~grgUTBJW}m;&sPl#*ZC-)#6@G)!#M9|E&|aNB7>9-$n%rn!Y;*hkqRrdp zY2PA14uu;%bLPVTpZyv58|}n8GVgiPDUojejHLcMjh09VxFzA)Y73h^#dK zMki?5e5FxKuf$rI*5NjMYG-a4E1<~(8ig$Azm540#2`o$nz3QQ{dLm;79@pX1?K zdvJS|Ee<12q0ewgM4{w+#4>`feiMD7CIa=k428hD(G+;SMrwJ5*b5$j)%tV*>nVi63qSH&NI=D>qF`5XhHPK=4 zL|A8{)61(mY&6j?*F<28iLTeQCU)X73vG6`U|wpL+Y(DJU%+o`3I^J2{zz-9%@?xy z17TYSmI93;B}I8+cH&GtZa;~t8Ow$aU0&Yd^eq;`ZD0&|5G|Kxebx z9a0!*67EPiAQ}RJR?&c2Z03f;1!MDCU>MYEE)s&A8Bay z3U4bCdHs<#;qAm?(Jz|ZL}_XbxWfX=NYNZXF1{w=^W(9C7Z4V$0e`cg>b8f2BIs@Q zg^&^#7{q*@FfPIoC zR&sK97vOkBcuTt%1(ygN6b&>P5&zv0cdLl_(E#}7d^!TKdqK5nGpt zJC}&Xi_EH%>(0JF}JBNL~7ximJRrs?z3_5y}&C z__oc4;eCzj8xf>Z--p6x9Ntpu>){B+mtuLC2b-CC1vuvs8j+bBBGU+koq$E z0t4TmD>6Bn5f-b~R96do%MJLTsZkQ&lEOvm!nVYQOZ2A#F-zRBLEIrWhM*wjhKGMU}6|!Ll9#|3yHFb$dM3>H+3<;m@i68 zZ~;!40x5u~jj!*eJ`a}ajJTKy8*CM}nKNy|wsouR zECb{Rc-w};amGI~e#ZD0#;igmH&kb%Nc7J>ltrn+{ox*Y-02=wlW47gNzZzPR6Z_+ZnqUA7qR&?qd8p z;~vIG86RhSlJOrIpJLp{_j`4ep2N~aDJjVD7#t#@{jDKJ}#rS7NF`xSr<9No&jF&P_ zWt`4vXDniz&$xiGjIo??G2@Ml6^xaPPR13CRg5bwSi|v~8E;{%XI#U0E8}g9cQ9^X zG#K5C9!4)?Goz0&z!+rQ%=i_?9gGh%KEe1D<3BTgm+=RThZ%pw_*2GTGk(Z;lJOMd zUl>PV%MgXJjFT8IW}L$KCB|zRXEPQv-oUtmv4(Li<86%V8QqLoSBzLhd-Rs03F{0Nu_`ODvo z#|wbB16zQ5fjfY&0gnJr0#5>W{Chl3&-p(AE(TupRy@8Q=m2g7)&c(k*baOd_%iTU zz|VlEfjMu-<5%M5WHrzM^aD2n9|CR%?gQ=xeh=6K{1n&^9CtJxr<<};;0$2FJMlRE zeoz9WO^WM)4*>52J`H>mcm!DR6Vwyv0_Nf7=i9*RfPtUJ|TFa1c2DJ*3A?*YiLJun)KqIQ18(H}EL% z1>i@(qd?m)QEuR3U>V<(>E8yk?x_=5o%vZ;j2o5LjT_W__!Ip;c%U~Pp9vJpM&%Q& z5T9e9!Td7J!1pqI_P!3?M46Dke8QBQCXU^lw_V&gbWFk~d z$bT@qa{R~|WQZv7cj0pqe0e{u`8Or`-v`UHA+_=1Gz{V3KimjmUmDDc25uE6UPDa{p$L zTW=~8`ulT`qjpW?w<*cDf&UWt*O>XH^bYV}27i*7U!6?95&Y-Dm(MD6o8Fe>ZwLR| z;8&Z|XRnX~WYfLi_kk~em(=OQ$@D$oe+s^QHlX=cif=>ue(?LjuQlr@TP;uO$iWyk z4r8SJZBOf1ljP3;ev+= z@W%{MJ{!`kM;&v(pN;FBcT8>VP3nlTj!(^bWdB|Yke%~#g!mP73{}Pg@Q;8`KA7+m zlW)7ge-nH;R_HpqRsJ?ggZzI2ehn^jer76TwkuJFUC?nFGV4iR>&R9eoXYrZ@XIha zU2W#yp3LJ-<~N%8D|U_O%E?|wQZ~>BAkzsQhs`qN4?j?PD4&ZlxLt<1?IyEKwlh)A z67ZLTKa@|e2Hyex9CP}nr2a7Y)!Gy;G0{9hXzG)mg z2L4aLUuEWJt4?79?G*R|b2YtlkjS5G@LV#FDI@U`IbJf20L(aY!GE4s7LsSwG#F?YGRLtSfuF^=5(v&3U8A(O1m zy-z%?lg!G!MKn{NM8NPQ*H{##^DeTtiyoq7;X?txsieg5TT4ouWb>t*N>6Dp^a@N7 z7s3S#T(H0e3tX_k1q)oTz%W~&FxMe9zRM^W^}J2*C{WPx3QL^ckudY=od^o!6o|zm z9P(;B$KS*uL=^OI<@y{n{XQTfL&kX-A`Z+@ zaV+a(7-T*kAIb1Gmrt&ZK%w`_De$pxDuQoXdr*k+`x1H`Qp<+W&!1SGd`F$+`{z0c zgr+~vab0egf4-*pbjzy?hj*X0=C_zvcC@-GY$=gwJj?BMo&knu6b zeT*+MzRvh_#@{i1#yB#^AvIshIFqrIaXBLi;l-kITLD&?vus5R?0B)rR$N%Tps2X0 z$W~D2ZM3=EVP?!-FiTXdEiY*=Dqgry)U7QKM*M!fv}?l)OV+ev>DqF7IikVmPs?6$ zYk6Vk^^K*43rdS^cKf{0mQbU&Jv0wH9_G0ld~@+yh1c#8^|j^mMSW#?k*Hi=UUnA2 z<<;edXJN0XfQs6x@)A++EH4zkdVHl6f!+i~eli!nmMZx=MOOU|KR4*b3l6G`h4}rO z-ik=jq#g@R>a);bfAVG7PqWY#6*IEtyHQeZpAN=!GGAq$#&j}zyr^TpNGGGmkYhZS zq?769yy(z43h88i#OXC=Dx=GK>siXI%laPYDGQb63ns8D$+CQ zbn;&UJsTWt2d$5udl0>c?W5`R?3w6#{MU3BF0wEhce@>uMCGHf8lNnTntFVeM10+g z59!hKil+ZPF0!zrN00ZKz7H4a%Kw6tpDO6&ItqH6{8wC)elNEx-78c07@sULLC{fn z6b|r&Fo0{4*Ylem_j6E@boq`4JqzCbg4022QbIcUE2Kdt3Vr^hPGFaME)~{s^Lk02 zl9*Std=2Q+P$KJomWP?%J=P&bXL5p%nf|+r6kR?80dE;5D$?`*XhqlcZD4x;1Vyia zEQL3iZq+{x6A$TmB;O(B?D8AG1%XaJXAOHn&&RAD-snhSJ;QqHE>?7U&O#y1^!AAk z8JExWa8-bb)doH77Ck|@<|MSQW1f3Q5gFJnD#fu2s!2P|*hA9U?VrT_U!4yi%63w7wp$XAa?^H~4QkSG0nM>v?GfZish za$5J-{F>!cgb^7v3iipKAn3S9bGR6E(zA~1rPo>OnQrw5dViGUmyJ<+=-E7lg&2T{ zZrxvVAJb>Eyk58ciRlfK9Wwn~`7Ok)qtn}SJLsgJ4ymLdpKSr(BKhoGp~rm5#Md#F zUz_KUq-&UQdI3sGCuiq~?Kw&hnpK7sEN`t>56QEP8UBmqyScvd z*(U_9KnJ9Jt^2b!Fg>69#Zp$bAM|wkUuSvizO%7dXs45(0XpSt?Z3O2-Z#=AbJYFi z7}H-ItLQaco>}9S9_zlgcBc1?Qu0kKe;xWS`MF*X%w+o8kWW|64_J?NKi9koDqkm$ zZ%?tFZqU=|`CmiO53wF=eaB2x`g6vq@~>z8UuSwB_uoRMf5LR@KDDxZrDqS@b2-bq znLdK)`u^nsrd!9WkC=X%<-g2&uE7tKle4oE_fbq1Uj}_r_T_@ktu=@Fpi{fQKUvY6 znfW!QmvFtRnEnaVt@{v5U}VxWZKBe%isheR`Zm^6#Po3&rQhE-4Rq2ogZ<=5mTzJD zp?sy^!}K?qZk^X=!mnt4vCa$gK_~rIKinhbr-}n^rJvP{Z?L>|ocWOH- zRE8Tv(!Y`W1-hXOQKnnx*=Lw;?bn|(-MSC)#!Hoc>%Pt|rd$2thfLqdeoN~)3Im|$ zoAy^KDt;#bJzak(zywG2`c1AwifWlcrsuK$$lrhDGODrwLsv81>TgeguIs4tB>XPR zTleRlX1aAeyaf{+DF=Vk4(Rs`*ktPPsT)S<7+cq13KwH#qEM& zM~2x;Y{5!M&{9xCuf7-m>?D zh@FZ2zP%A{Gdy_N+Z%#pW58%`4K%o0jYe!B2pR53C*I?3Yj5?2y^YxTlUBmOo9;ft zEjI#s{o&viyf^G_^BRqjwze%uVv5PljwzxZQg8RPw_^`ib!j-T$?Hc!ZZ9b^Xu}e2 zXJrx}_AK0k7`FGivDr!PBgJ-AiWhc>N_!!dZAJCXODn38F4ACBsf|vkG2U#JMp#}~ zQR6h6tCrE$U;~dD45!ObMAx!9VJy3CRYgrzWkSu(%a_+XvAMQlX|*%cy|vcuYS^)g zja+Nx?hLsJv?_x=th5)oeu3e1VrwZjmgCDR@G*bL5EbG z)V#ou8$5XrU?7OC(8>Lc!&srDDj!^~vM8l`!)Uj^m1686=C-Bs%RPmtgxXaocXvDF z#yPbYP8eR=N)BI#QxqDNi7nWfwAf8`E7i{J+SSIg_M5RIoVG;PhfCE?p!0IGV%h^7 zbo-mV$*$-%{MagvEbA-bh}bWV9I-33>SlD>MxWn^gs@jfmLS=twCVZ03X)Vs=4B5| zzjHg)&|l=f_+jma*W>Y?7iNPGsg0egUf6j_dn_~B@1JgSb5WWOUR2oVO>FwDm0PJZ zJ(yq^8Y9h~=(8N|keZ><7z!BJ0@sKwT-4dh3?3mfaz%8Xp*%5#B;k$K94ps6NAmgD$xdkl|@GM|;4Q^u8a{-#_hN+FtoN}Og7%f3}Wyx8M8Y6=f zdE`Wqa=sH8U>HkD3wQI41p6v_NwLA>jCqk}xcRm+!vUv$q2XMe9CPaMsAP39pYSD5 z3OfJsrLw3B!=clO9-xo)8m1d_dN>A37)d@JuuNfi7B_r(Bo_qddW;|DZgor;tnChlP*ghfuGWLucA>tvJ7W=v z1~}JzoX+I*bLOamhiHlMYgn6B8zzJCAmtRc3~G!AS?7JqpDw<1cmqen@Ewl23{=&6 zJkpI`3Yv_wJk#c66L!YXa;S@f^X^+D?kLx}OBMwIoDLJo008{T^ zOh@6#)thxaYF@Bf4~V53l6viKmV{U?n9q^?f**otgP;4PlNiGF8MVW?oTFicP8MC= zuGgOOa8Y3oZD|X;8-U@U!WMlcU!uhmD|RS zS{~ z{IbgusQfV}2|Iq{Y{M_3!p?6a%e+8On8of6n9M@QaxH-Lk z@2HkDx(DyKn1fEIY2~;ur`PY9y@~fVDB$&^lwd8t16)e4?I&zRL9oehxo=cmsc(`s z2Nxor;oW|n-p1)|HYIh8h4DI_3>rBq>Tp5tr0Dc|zr&zSN%XKC@micLr%sR8DrC4F z-z1{b>-`f4W+=YiFQH;ehrT9kz=!rK==6Gj!j9{dRIP%F#ta8eb8~e|Dli5 z_i%bDKb2FLpUF5Tjo#x;mS69;czmvsaIv6Hr%~5`2d7`ka(e$pKd0CGJt!Tev8LYx znz{Y;`>Bq3O5q^h3p59tIfCma@G+;??-A?2Z?FH3y-sHJzh^D!I~O~oXy;;;Vlf%c z6m
3g^^=TFCXP}uL3Aawhw*qQDB8W^MS(e0PF+#yBt_(eDslO#n?UdpR?@oi48 z-*0zudYeVwTK^Bhr*~M`%@gmJ_tdC_*8Z;Ruknu%qjzj{di_58QBJSrl(uC1Yx-Zo zps`P<*YA7xae8eS-3&UNF4ssHpX{GV&-;z~ZdN&JITbrI|FM?zdcTtV+kQy2Lnma^ z`D?t`l3u@G*Uk-ZwKtX39HxRmx^(%sZ*)j@nA4Y85-6?|kzZGH{)I`Bywd4uelZ8F zPGi9k>A%JK->d~$iH>Td_wmX9bU1LoLtdV`MNyV%K^9175AFLbBB88a#k%ocEd_d? t4X@&zF@ETAjbzN>h@oPe^oyg+v=j&L#3yZUPCtLEiqXCTbFf6k{{@9l8C3uP literal 0 HcmV?d00001