From 97bfb64bb1d0b19bf49c3cea020981b32610bb0a Mon Sep 17 00:00:00 2001 From: chai2010 Date: Fri, 15 Jun 2018 13:48:47 +0800 Subject: [PATCH] =?UTF-8?q?images:=20=E5=A2=9E=E5=8A=A0=20asm=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + images/Makefile | 8 ++- images/ch3-arch-amd64-01.ditaa.png | Bin 0 -> 20308 bytes images/ch3-arch-amd64-01.ditaa.txt | 29 ++++++++++ images/ch3-arch-amd64-02.ditaa.png | Bin 0 -> 24924 bytes images/ch3-arch-amd64-02.ditaa.txt | 29 ++++++++++ images/ch3-func-arg-01.ditaa.png | Bin 0 -> 30380 bytes images/ch3-func-arg-01.ditaa.txt | 50 ++++++++++++++++++ images/ch3-func-decl-01.ditaa.png | Bin 0 -> 14283 bytes images/ch3-func-decl-01.ditaa.txt | 25 +++++++++ images/ch3-func-decl-02.ditaa.png | Bin 0 -> 18890 bytes images/ch3-func-decl-02.ditaa.txt | 30 +++++++++++ images/ch3-pkg-var-decl-01.ditaa.png | Bin 0 -> 15547 bytes images/ch3-pkg-var-decl-01.ditaa.txt | 30 +++++++++++ images/ch3-pkg-var-decl-02.ditaa.png | Bin 0 -> 21713 bytes images/ch3-pkg-var-decl-02.ditaa.txt | 37 +++++++++++++ images/ch3-pkg-var-decl-03.ditaa.png | Bin 0 -> 27530 bytes images/ch3-pkg-var-decl-03.ditaa.txt | 37 +++++++++++++ .../ch6-controller-logic-dao-storage.uml.png | Bin 0 -> 39428 bytes 19 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 images/ch3-arch-amd64-01.ditaa.png create mode 100644 images/ch3-arch-amd64-01.ditaa.txt create mode 100644 images/ch3-arch-amd64-02.ditaa.png create mode 100644 images/ch3-arch-amd64-02.ditaa.txt create mode 100644 images/ch3-func-arg-01.ditaa.png create mode 100644 images/ch3-func-arg-01.ditaa.txt create mode 100644 images/ch3-func-decl-01.ditaa.png create mode 100644 images/ch3-func-decl-01.ditaa.txt create mode 100644 images/ch3-func-decl-02.ditaa.png create mode 100644 images/ch3-func-decl-02.ditaa.txt create mode 100644 images/ch3-pkg-var-decl-01.ditaa.png create mode 100644 images/ch3-pkg-var-decl-01.ditaa.txt create mode 100644 images/ch3-pkg-var-decl-02.ditaa.png create mode 100644 images/ch3-pkg-var-decl-02.ditaa.txt create mode 100644 images/ch3-pkg-var-decl-03.ditaa.png create mode 100644 images/ch3-pkg-var-decl-03.ditaa.txt create mode 100644 images/ch6-controller-logic-dao-storage.uml.png diff --git a/.gitignore b/.gitignore index 50474a3..28e4053 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ _book *.obj *.o a.out + +.oracle_jre_usage diff --git a/images/Makefile b/images/Makefile index 6a63adc..5631e5a 100644 --- a/images/Makefile +++ b/images/Makefile @@ -9,7 +9,10 @@ UML_PNG_FILES=$(patsubst %.plantuml,%.uml.png,$(UML_FILES)) DOT_FILES=$(wildcard ./*.dot) DOT_PNG_FILES=$(patsubst %.dot,%.dot.png,$(DOT_FILES)) -default: $(UML_PNG_FILES) $(DOT_PNG_FILES) +DITAA_FILES=$(wildcard ./*.ditaa.txt) +DITAA_PNG_FILES=$(patsubst %.ditaa.txt,%.ditaa.png,$(DITAA_FILES)) + +default: $(UML_PNG_FILES) $(DOT_PNG_FILES) $(DITAA_PNG_FILES) @echo "ok" logo: @@ -29,3 +32,6 @@ clean: %.dot.png: %.dot dot -Tpng -o $@ $< + +%.ditaa.png: %.ditaa.txt + docker run --rm -it -v `pwd`:/root chai2010/ibox:ditaa $< $@ diff --git a/images/ch3-arch-amd64-01.ditaa.png b/images/ch3-arch-amd64-01.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..b4ef8fbab7e01b0353a4ae72fd0a001c6020fbae GIT binary patch literal 20308 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 MoEkDq*7WiJ13qcsUjP6A literal 0 HcmV?d00001 diff --git a/images/ch3-arch-amd64-01.ditaa.txt b/images/ch3-arch-amd64-01.ditaa.txt new file mode 100644 index 0000000..ec6a868 --- /dev/null +++ b/images/ch3-arch-amd64-01.ditaa.txt @@ -0,0 +1,29 @@ + X86/AMD64 Architecture + ++----------+ +---------+ +--------------------+ +| cRED | high | FLAGS | | MOV/LEA | +| stack | ^ +---------+ +--------------------+ +| | | | | IP | | CMP/TEST/JMP/J[CC] | +| | | | +---------+ +--------------------+ +| v | | | PUSH/POP | ++----------+ | +---------+ +--------------------+ +| | | | AX | | CALL/RET | +| cAAA | | +---------+ +--------------------+ +| unused | | | BX | +| | | +---------+ +--------------------+ +| | | | CX | | ADD/SUB/MUL/DIV | ++----------+ | +---------+ +--------------------+ +| cYEL | | | DX | | AND/OR/XOR/NOT | +| heap | | +---------+ +--------------------+ +| | | | SI | | SHL/SHR | ++----------+ | +---------+ +--------------------+ +| cGRE | | | DI | +| data | | +---------+ +--------------------+ ++----------+ | | BP | | | +| cGRE | | +---------+ | | +| rodata | | | SP | | ...more ins... | ++----------+ | +---------+ | | +| cBLU | | | R8~R15 | | | +| text | low +---------+ +--------------------+ ++----------+ + Memory Register Instructions diff --git a/images/ch3-arch-amd64-02.ditaa.png b/images/ch3-arch-amd64-02.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9ab3f1c9991900c4b45732c3190ed39d98a5da GIT binary patch literal 24924 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

^4LomXS0|@{0q-emUs$yIy(n%)AT z_qRac!+84}pk152){C68{L=J%H0%hq>hl~OzhLhb9y73tIb2NynkUHEZ$jIP=I*L14hw4z%6d*q52o?5)=E>KeZY9JHWk10F|a%Mpg9*7=aj)p>W;u z&y}6kEf*dFqXaCck($_}| znK=^feBI=?MzTCnZH_$~Y_ofJ7R`t4&~ljPG`eZ;0YT-h!a_!Yp(Qr1tB z%c?&d@f|uszUBq+&n!29MZ!T$C55mcJh z)sQ)I4}4t;>CV6OZT?Y(p&%nDn*Tr39~pYDRq;p!qx?@X{~r$XoWt-D6M#REdA{sH`ctd+}O=J8VvVuBjHn9Ib_+@M(Rbl86Y2#{Rp literal 0 HcmV?d00001 diff --git a/images/ch3-arch-amd64-02.ditaa.txt b/images/ch3-arch-amd64-02.ditaa.txt new file mode 100644 index 0000000..75e1671 --- /dev/null +++ b/images/ch3-arch-amd64-02.ditaa.txt @@ -0,0 +1,29 @@ + Go's Assembler pseudo registers + ++----------+ +---------+ +--------------------+ +| cYEL | | FLAGS | | MOV/LEA | +| heap | +---------+ +---------+ +--------------------+ +| | | PC cBLU+-----+ IP cBLU| | CMP/TEST/JMP/J[CC] | ++----------+ +---------+ +---------+ +--------------------+ +| cRED | | PUSH/POP | +| stack | +---------+ +--------------------+ ++----------+ | AX | | CALL/RET | +| cRED | a+0(FP)+---------+ +---------+ +--------------------+ +| frame | <-=----+ FP cRED| | BX | ++----------+ +---------+ +---------+ +--------------------+ +| cRED | <-=----+ SP cRED| | CX | | ADD/SUB/MUL/DIV | +| local | t-8(SP)+---------+ +---------+ +--------------------+ +| | | | DX | | AND/OR/XOR/NOT | +| : | +---------+ +--------------------+ +| v | <-=--------+ | SI | | SHL/SHR | ++----------+ +0(SP) | +---------+ +--------------------+ +| cGRE | | | DI | +| data | | +---------+ +--------------------+ ++----------+ | | BP | | | +| cGRE | | +---------+ | | +| rodata | +-=---------+ SP cPNK| | ...more ins... | ++----------+ +---------+ +---------+ | | +| cBLU | +--+ SB cBLU| | R8~R15 | | | +| text | | +---------+ +---------+ +--------------------+ ++----------+ <-=-+ + Memory Pseudo Registers Real Register Instructions diff --git a/images/ch3-func-arg-01.ditaa.png b/images/ch3-func-arg-01.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..fc964ab67cbb3900d7dfc815b68696b47af596c9 GIT binary patch literal 30380 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 | a | | b | | + |8bit|8bit| 16bit | 32bit | + +----+----+--------+------------------+ <--=-0(FP) + ^ ^ + | | + | +-=-b+2(FP) + | + +-=-a+0(FP) diff --git a/images/ch3-func-decl-01.ditaa.png b/images/ch3-func-decl-01.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..1a12fa3b6cfafed8d695f1dd736683969ef3e924 GIT binary patch literal 14283 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 NO*OqcC8{=m{2!3az90Yq literal 0 HcmV?d00001 diff --git a/images/ch3-func-decl-01.ditaa.txt b/images/ch3-func-decl-01.ditaa.txt new file mode 100644 index 0000000..1abe344 --- /dev/null +++ b/images/ch3-func-decl-01.ditaa.txt @@ -0,0 +1,25 @@ + func Swap(a, b int) (int, int) + ++------+------+-------------------------------------------------------+-----------------------+ +| | | | | +| func | Swap | | (a, b int) (int, int) | +| cYEL | cGRE | cAAA | cRED | ++------+------+-------------------------------------------------------+-----------------------+ + | | | + : : : + v v v ++------+-------+-------+-----------------------------+------------+---+-----------------------+ +| | | | | | | | +| TEXT | ·Swap | (SB), | [NOSPLIT/WRAPPER/NEEDCTXT,] | $framesize | - | $32 | +| cYEL | cGRE | cGRE | cPNK | cRED | | cRED | ++------+-------+-------+-----------------------------+------------+---+-----------------------+ + | | | + : : +-------------------------------=-+ + | | | + v v v ++------+------------+------------+ +| | | | +| TEXT | ·Swap(SB), | $framesize | +| cYEL | cGRE | cRED | ++------+------------+------------+ + diff --git a/images/ch3-func-decl-02.ditaa.png b/images/ch3-func-decl-02.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..561f1af47134a149bf50b4035cc21e3c796a2303 GIT binary patch literal 18890 zcmbun1z1#F+cu1fB7#UrNtZ~M)KE%@fPm5=DIu*ebXiCW(&c~*-2wvA-XH>!LpMqe zC0#>(YY*P{^SsadzW?|C$M10f+dXTqz4E%w>%7i2!4K6GuU@%v1qTP`s?vRV4IG^F z`#3n~x-Opwcg#bV5^->pB9-LtYI%&V)?IsceF*V0;x=Kr*=@!(-C*BT(&e- z$+r|w9LNi~^;JWfrC2$eEhgMt37^5WePgCJ?dvRM^or4s`C*AL0vbNUIm=+WlUBV7 z%XZu?r*n8)66cg2G#W&HxGQKu-X;+@`|_y1R|w(O&G7DC`oZBrKbQ8N_e61xiMqT0 z_T;kPjNdiTviBdu(l3L*IH+^rSCAp93VWBB5eEMI0u6nFy~GJ3g07Jlz^{M1{co55 zYl;7RRmj)a7yW1D|Elrzc%64;R+iOm@h}=@L2pANBOVFbm#;$*PtM`U<1yMlu5l}@ ztsOTnkze_>>Q+92^`rPoD-Qpuo!<70NKb#-+e85v)I8Nr@p{b#1&#NJ7Fe#&WSYQ|9!byF4H{ zDJhOypY#jU1D%+RP)fcV(*#$pu%3K>Mnn3%|^UGQ{swyn&nQ=@EJiJY9g zlqr9J^YEjvUv4=}LPEFLm?yWi(D!iHCVBXi*=uL+W4B{VVf(6sG3B2NzApr~b=wEV z$GOXvhl=+S8}{zL^9x16utS36gV_xg4HVD8VLRQQ%osjQ<3?EsCN3>6#}3}I(3y@E zpq2K~YoF~%6e4w5>gOo8N%c-iPR@@g&dck~Hm-73Skv(J^*wjxZoBQU^Hyc7>Fif) zY7CcD6Y}?o^%e%>A5_T>^pWWOdmXMnJQ36wRLwp+1hS;NK*1Xe)t2a(ca!} z={8aA+O#Vo<+Y8j_1w~O-0ZGfdJG1cB(bolC~h$+=|(xzL5=IOPVh*nW$1%YoLpL4 zJG)||nww-iJUo-$U(B0Bc6WDQzC73VxL7d{(e+8_r1VBb&yfRL0_m>q+Y`4t%sdpK z-A8rTIJphOew09~o!A$(xU#aHXe*Lz3ETIpZ;4>wg}rmWceN_d~|ssyZlR*~wbZvW~7)8IzN|?y1~_ z>1lJ{vG)caGcy$gAL+2>yvtjhYmZm4RaaMca4781(b35xuRC15)XMoRP3dkh)4}); z^xW5Vji{v~R*5yC)1MM7cn!_`AzeY?7jcN`UX+m2HCelUcACW9GL`V$wBSb=*2y5t zEZZq!;oIm(JQ}x`Pjn^3?C9X~VV_%jdo>(%+8-}QeqZd%9tfFqGQXA_+aP!A)~(@c z*Zl6nuzN(e%li4!joWsIMn(>y9ck7*F-(Wulux)|48Gf_-b@wMo6%s)TK69Ry1_yy z08JkU2g=};kK>~^cj{stM3O^8LflqI=QcdFqQ+JS2OaF}YGk%`syeMS1q|@$1UNSc z^?e8Ov=ImdQa*3s0fml=vh={fKi@=SDqYhT5_1~cIINE;y{yjNqTsbx|HMO?kvEK&VAtNl91?J%3z#G5( zd!hy@F%3Ji0N#ff@r?vAI5?Or>f{E82Q7b@aP%t$?+#L%4(b{yvo1ES<1CtSuJZEs zKKQ2^RaMn#SYcrysBU6n;$QVN1zu~|88nRNHLCX9nxCj~|MLjejWNQoe}LP;`lcYF zGY7;7!^MsX>Mk5RQ2&e~G=g`)z5n`YAlCW)+e6SefoH*QsOZ^4q?+*WS6@QzjS*JD z1|yFySj^JG)TJ)pFU3fnqnTHWb8h);Y-~Kj zncPyVtFnP{+qQSzY`l_K7j;qUYn|Trvn=I!0))<*%T9_c`wIKZ(C#QWoJrcc(SzK- zz_hws`}1OxOR1&oV`Z)28_)ufXO~5$FPWxvcUP0i=l3P$E>g}fw0;Y&>f0gUR#J~% z9JSeXv#xi)=|l+3ZFrZ)zPSZ_yI48)(VJhL9vDItV0dYSasO zBDpI>*O&&(Gra^F1SPy*y1qK0b6wlz+enU;D`F9sZ+3;I;KeK{-S=t;@cljg|Gs8| zDDw6a8uXotjB0d@jU7w$-Wri&7Ys37kPzxQ41tNi!g1%%LL*g#Ke!pq-7`6<1{M-_ zr4rjDVX?sU#AnupY9vy2x=?2sm^cXEyh2melVmo3d0cdrM#RF(D&*3|GVzU!ygW{& zADx{J_V&O$6aY7=AK1iHhT%z(^z2=PCv{rYOq|R{tMBgYJP$dCgJNQYDJi?SlvRfA z!>;#a)MhU5ing4Wjs{db=D0XHd5vq)8y>I5$Cn23B_t%kPF|AAAHcT>blIF$ zO04%eD1AVA{ra=GKWzvZv5ym4cB?t&;pgW!eINTNDBSq@tC0^Od!lw?v{Ix^`j>Fz z!S-Y2$g@*(cdukJ-U)tm9OPRe@J<8XST5dFFkq`q_d=`;*hgYwy8Y6^?CR>#XR-_3 zseBs%3|zQy;c#zFS2`_@ngE6G>GF0YB;-mWxiw~v&%dqh;#u7i?CL4oBh({~m39J| znVF+2RKaSk$wD2*wH~ONoscp@08h`Ml#Ig}WQ;X5kis-J=d~U_WbFN9JCN7a)pY@n zDCZt;M2ipwl5BIn)}_XIPTA5jbGJegz+C9b|F9`IjQmnkQZ%BD8MM>qt0o5e`@?SH zt(}~_05&R!=uV^a$7^{8XCPlJs-OVtpnX11}y~j3kUP^^1$;s ztolZR8z;4-W z$5*}hYM4UXCd2Q;#~t@3>%4cK^iBHnzxa*WS+1fWMy!Vty&(Yj9=E!>TBqnS_5NL& zoxFG)xfYtYNix2e&wjsJ82lfqBk^*gKYK@`kUacQhshh4%n20esBpsMqewNLE%>6EUZTm&RL-D20Ykox4r zGbj>4C<(7M%Q>)YkIOZao4xtbSaH*x`y3H}n4uO!pd=jq-Yi4U-+KV~H!UqzC1^e=g53-Iss7`y*LZb?1-IRPkLQ}`S;?u{>;;>y##RT9GjbZeJ$iM;`-d?jvFp zzzDl-^p`IN{Y@G;W@kR)_DI9p@u`D0W|$HejOj5!jr-c*BxeK%3f~Xy5wJwo*VDtO z{yW~-tL@jbFfI7^r=fWRO8J5U-032$$#E{$dIDcR?xnfj+YMd{e&d93nW^+mR4G-;mgeDfx=&-xcXbq*!Z`m#QFZ5 zi&WdvpNHCgk;Z)SQ#kINz*YmNjS6-};a4>z>7lYzlg*W}ou0{zH;&S_C~2YhUWrzh zjt8L57NE{wer6&T)leLnGwWyYM*#) zx3{;&5NZyWgL+IaU%msMmIJ-Lf?~RbqCOVQoK38>>P!+l&di;x@iO*1n8O`I(mx-0 zM6|?_zqKj=ir<0XJEfz$XMYb)jKKXup@x8!n>SxsCRT~#_MD5=C3Ok~n2PlqbC#Rm zwx~N)Zo7!M!Qgv24sk?fi{6)M;Cwi5>i4PU28CZ@5n%!C9y*VMj21(ZQ79@=p_D2} zl1b>2ioQ_bFy574z%-5n-wD^uB`CVAmcm5M1W z;*-(&^^EHvy%`3iTe zUceL4(yzRZ;$w6%# zEEUILzH6#0rC3EPZF-jG<(;OUaL_9R+MWB#upyY_D;Uysei_%PaDyH8cK-wZjP_B< zt3_#DRMxfbHu@u&&JVFinPPdU;A7BH#Mf12e=2>LkS0TFJ`GZXdCH%^w_nqK;QkTf8cgp)#R=a%G9)JMS^Xzam5yfHp2zxq&7q#^NZ+P*WuJtSxLrLNdI{!4#NzQD|Weu{AbxIe@ zGpuClPWL0;HcuXnH5dur#@+te+I#v-X1`sTqD-HAS`I0J@faX>JN)``e>JS597oAp z@rqT6*o{tUB`o^9#5Jby-_hq}{LXOY+u3`#sjDVQ%LPg1p*597=5F7t zFQl%$*I@-d z0;cU`XRDh=r$FzM=`#zP>@8jY)4k`%gXBZ!S!wPLs<)t??zY{6z4eZ}6&liw;GcZx z5bcO*I&BHHr*P1T3MbqVChDQquj&#NvKOooY|6UPFpb{X9HuRyMr}~8R6DK4cO|BG zV#pBw{Z}7}iGm6Z&czLxlNk;HhhuoOy7lf{MZFtz6_(`d)ow&U$Ue_uD)x34-|5E!1I+TQI)w$q%lp?eW*b zxuxtV7zk$#aHv?2Vo6c}yAaAfju;L@?-S%Td`j_u`t%MQ7_{#}=y0nDfVtkokz3K( zsm3KwBhle+*tX`6`{p|d&z-|bKhV2pI_-Yj8~BZvU#glP+SWAKp_VdxBmOJd>}C;vaheN?D@<+zt69(o2sgIK6TD1Dw+>} z1Df%K_Z;RbwN+hHz=60*Zyz@YM-y)_s5;sM>4HU@jjW!8a5uLi!^$q0ypa*2!&8*WcW4Ndm|*~J zJMXEhsPxG+k|osFOFtq$UM&Iuk-7Y$yl-h)*@UC}Ix_ti9Ht#r@cWq7wB&x z=!Ca<&P9A3nTuD55wj!+fNf)9V?9A7Un0!`sEg7vHa=M-Zja-M9=9Tc!9Z5h)vG&G^1p_T{aTsp0hFoara&FY$7%*Y3rt8(X$Hyz3uNwE%X1uMNl z@-3@wYZEoPSuQRv<^A*XR>ArWeo}kq?!ez(Yq^r;T@$3PNYZpU9ev;NEzhON@$uVb zajae$PDJg#pE63>uf@}d&$VV?qdf3NU zqI2?hhbU`dVv?VkU-*L$2@(@y_g^_xZ&vwKO^j-Y&8YPxA6mU#O^>P-GHKsP8CZJr zxk+45t7Xd=MVOf4Aix3(R(5xHH#9T^AQcckfchqC8fLWQV&k6U&g8MA{~2~$M8wL< z3PYCFdMf)jyPLPu(sLmTiJYEp4o!;B!6Ym#*^1xWag1r0ps%=bk0D)HJn_NJwSF@N zMIAmaE(w6!_bRw42t;2FzwBx);eySlQEn`^qWXyL1v=~lA)vv;h3V+%oWl(a4f+21XFLk)1ZE=)D;;z5 zB6Eh&pDQbMwY53w)(_O8%{K%y5@~87Io+g6|`Ig^h;j)t-%qqsE_Zecv`eH9eFv9Tt z4PUnQ3=YmaSIu&wS65fp)~?O3tW4G!dgn_TAcg!-d`6zCsI-6m`V~;u1JXHmBMT=v zqD?e6ZpgD3do8jBHVJ5;9yu8WFSO}^yaXWicbtp@2B}Bb^Mpz*T74mN_x76Nyv5;4 z*at`D0dtBG?tjAWitAnLj&-td(w&M;7AkL9GP++sV!4(iUZP0pY9@*tsy~0$O5VvP z2_&NHT`SB>K^eDRnU9>`@Sxx`w%-pAw-u{lSX!QwepDQv#d(a@bJ7$ME(<3a((QwGZGHxQ%4fI4DMz8ar z!~u&9_Qi<3ak;Iwwe`Zw3wT<5v~mkHQhasWQ3cGQQoF-XQhhdqxu299C~n`^G`Uwn z_{hY>XE-+Q5Az?agEj z60C1}f%~?rRfz|-q1XMblMY+ppQp~=2r;PGy0ESc`t`@Pz0d>u72-6YpZBfqtXH5e z;GmQ=P>YL;BVV4g$QW?c0g?EU1_P{TDHdgXm#sDgQhsT6(0eorKeq6K-Aql$)#O6Y^+PAi9IItjP? zVHT~bj9DN5AckmpWSP@ceOMS_>Hs-O1#N098`#9af$QXhZdU@*rmU>2y4t{sjwrC> zhV%RWfqdQ2cnfRm_U8v<9|V)Z63Nw11hk5gi2d-#&-VKL;#j*Fc{1TN*jyPHL!)L{|?63NUXEhN;p2)8XeI5>DqD<8al@VLsk zd13xrH0!|3Mh^6zxDz!>PVs;xObe0lHmn+z~1nm~A0qLNhm6^igN)?lA&$iJhkUz*JXLBh$4A(I)_0rcLNs|k# zt+XuB`*Puon8jCfaw=}0iy~u*G1m`= z!&}8|9USU#|5dTh@=vVopX4lgoK7}s4@l6Cke>Z<9Y8UZ+qkwzc|l@VAM>nE3nJROj%pck_30ncP8&BKF4g^q>cf0 z5iBJUA4NsG>sx+xtg^tjhGi&7o20=R~sW!|bV%_4SkMmb2B>u)wCY^5bCs+{!_=1tbz_RO4oI z?0x>au8B#ig@&PFJKdSV0dHY?vtU5=h=DFul}B7$d}E*La&hX;_I8k~joh6#m*nnX zNmVFs^oHMr;I9T(@}JZVfR16ML>$T?!WG4HvJ1LaZ;3!CJvt286x11{W*(%rK7~^H zWOr9s_IcqsP(%2&DC=+Y9+U`zEtj~AY<&%l{)RPyea*1n#?N`a-54q|;^O1em9uO% z&HX-ad=6NeH(T@cI}jN`5)eSfgAp|$rYj1dQj{^hh_!}fi^<;HVIY_ZyY)9{jt#M6 z;(f>$SzcMGc^$G?k@ZzAjZk|o@33K(XoWXI13agGe7NmUt91K5&%uAsHA&-bWc+9& zW8<)H+y@CH8O}CCspgwyBUaHJOO+lLYP*fW6fVlj)f}#JgR^6yR(T$6X;w)_%&HtF zxrT!M=>4OQQ=bxDcvyS8Cm&|mHqJRa41Z!064Io}S5ebfPzY!?FEJ=oiRYDa|NTKa zkg>&yQY}St5f1CL0wIC_W*d8XgoFwa#IN0FGk$6Eb8k;&J>FAN*4jdz{VxS}H;B1v zWQI+1U3$mQ%|U>kS;$H(XGO92y6F9W%@)f8@)REsX;Bn-xAED5;?Yp<%n%UKPy+ zQCd#ug{`vRxI>D7EqiRK+dXGVlq^0ZJ6#oSR&j=0N7?ZLMn^|MZ`3hd}C>tjyUAJ=o(-SixMaV<4SIDy)u!yi5+pYw4 z(a8|FUlqRO8LBq)`W|y?+33(Es37 zFPUcF@oEIOh=8zy&waQe1A~}LQNSC|2bbt8Wb>tSfp)~J`;FviJT{Bt^IPeRZtmv< zsf&|cMT)W!`)N50N;|NV7V_{2y_GOp7Kkx3qeL{O5#45=S6efqj!E6z7U5fUky$dZ!edFAB0niTp6slIu zp)HXHaWrlK+-Zn4)x2!8=9^(#v|(8dqh$nrwIG8qE4jCgO|FQ92CB+q1L=Mt+E3}- z=H@02HKv2<&OEeb1&$*>=Rh3A8zXplM;i!{Lht!J+586bl)Lj%85p7|>NNCyF{79* zG;6+sH7lpzz;(m#JvDP=nwqv*BbHoDwZ^~suk-3#ynpiIozi!5g(Bc{91me z2@mppZ^Uw}CBs1ji2-$jgTlWK$ljwm6BrjQ!){P~vILe5adi$-J0H>|6!Bn-9X6Jw z{%f8H3*bBefMW`lU$9b2VH0l7Mt?XoAQE-Qf<9n~gVzjCQ`M8u4&we6WzSsjz^!vm zPxryc2(g--)24#JI)#NA@xCur7a%SqLaB=pNw!yc0ut9e!UK#jQI*YqK3bXuVegk6 z83ADjNbbFK1sZ@fw+uwl>v-ZQ=!a>HeG{TQGk3kg~tPC;N2@v#A>QiW&Gx{kWte*H?XjnNvKaWiT^NJp0!7kf>2fMO>6Z=BZ=*qL6kfBC|`ZdTPD!K z%*t{{UcEY>I50HX-gkdTGN-tBsG4s7kf*Jo)gW(tgYBN6Jh0eB0XZfFI7+NA+5eqez3f_Oe#C+1YSoR?tq zq(bT=rADt638{EdV!|SWWu50yc%drMdbz`NLD*U4EJIaN$_V8ln zCB7%0+@kGXwy;8`fH^eW3*$KYnS)bw@9c5L-~?M1+N z0kf&H+(&G>aEQUMMgt#_W1`?}JiF2=9wo%KuzWM@>SF?uFJQNRm*{U}f`JTF+A(E* zaSxObEKk-w3+Sc28Eyy&;=aKY8>Q4ZyUm^(pP2Ba{8vb`y3t+!ER~57D003~Ac!$+ z9#cv~1^Q%m4U(Qu-#IhN=_8m5UfMC$4xI;GAVQMapr}#FH*s*%U%tHtnb7;8UAGkN zFa1l_G))hTB(QKeIHVL_`b@x*-~h!Ecof*yJDYdGSVEu|++9z=1(p_63a;L?$|7i? z5}@c=Pz)}BxB>f6BbWee4L~vslv0qmH!=Vw4%u;>7jFWLbwD|A4_i8nSQ`#%{3d+c z=kJ#Si~f@kvS^@?c*%6TB8cF7dBFV-#wme_V zRSVwi{(BrX+Mt!uG7~xS{rkN&#G{MZ12}EC&{#eSgjI=A(3Kaj)gS&YdD6mbQhx** ze31|Ka%kY;s-{7?s;vAFNYkQoYvOX;`{mP_oo4;Jm|h{c z<_!7|G$GL1$C0P_|FB<7d(VU{pf9rT!9r$2k^DEl;$H?-IX0CWTAe6LXpG|9UAN{t z^L2}VxL|nxCEVc92HHr_LU|KNIs^2L62KJWPyAO?jIAk*4jLh{l~Y_|USN(M^Tz7| zzQW1hUq(hB8ko>7f(Eab{1{Lf&Yks#?19(;d;h7Y{R%2r29*Y_LeO=!#t0`vOdtJ~S{_cS1K$@EgiHcs8o&wAyq%?@z*PR7o5Eo<1J7dFJgoMq z=Q?C={uy^1eBfBlOc1sVsDts~&&wdg^k+qAg6e(>;QwPvASeO(J4nHQR`-iHSR-ft z=x^mEG@qbv=6@TjJB_k@`M8t_?POh5ucy8H_%jPfs1IPz7&*LTH}TqxES56A;iO!a zc|0;Ib0{NoDr3+)??3!_pFN;7M7)#R&cWLuS-P9S_{2=fGB`uI;&k!!SRGmw&^W>6 zvsX$=pToY{-;Sl;(~djcac-)+|X6 zrvHe)%c=kAhJXBsmS&zZ&n=$!BcL@JS*N?-rhdS6{NgGc7foWMk9Ye7H$;n%-qqtj zP^CQ8-&7Q8^RG3KV2!Y1h6v z-8ntxOH@sb3J1l7VbBaB$Eo!ho~Q}6Z=crg%hc%})ol4!{zP5O&C;s7bkLz091h?c zSpFa?VTA?wYvg#1Np3}36LP_>&_->8_H=GBNSW+CKo~4nadq2>ckre1<$4?L#hobR zc2FGKkU+Kq7{2#tN!JyQwLz}f7%P=N^G%h_a($ja8I!#QO!>)}%&91}D1aJ=2^IP2 zcxP3?-{7`iqsMEsE?RXY zZ>%0q&F?saI^@|&zE_7tMi4VYXIZd&8~jo0F*|y*K?<1%P~x0IU`Y|UI$JrAI|R8` z@P8yW{ffQ)=Tqx29u*;#pZrtbQa zFSB>&-D*g%Ib`_-5^n&eA(IjDKiA6}pI=!?3CTUda-}Z;#@ksY>a>m+K_yNgrudn@ z!=#P^KsfZO29%^Q~)}> zA~$!D|BdqX1}QM1P%s6`wusi%)dAcXz5vvvn;-lLWZ6PYqH)hE1k*l415TSL_M%Ws zfoD*aEoA03c80MpN{i?kCT%7$Ifoq&2)pdp@963_$Wi(J;pVZ4{r~9R^g}p0{j6`; zW&oy$ZW1d;`}1DNUQR&`M3h`^I9?sHv&{;>8Mw5>5vBAvh^P_DzXz$UgbN-I`a)nI9yVy)9FMLwLVK9odc}=cs3|F_sOpQMHtAZl;$5&0M zA7ip(-KfCo>fDhLtBqtc_wN$*Ik!}yvCOC3kW1u-N2IO3+CZi0Mh`Qgx4i z5GFVDJ6WnhvOak{W)ysGYmxqEo7B)c{Xg%)N z<(HirjGnDcPM@48$Y4+fmhCH%B_FOy--=Ronv#}EK%lN@M)il3eyW%br|V<8H~mBt z-XW(g3>Z5Wf0^f9KAwY3Dyurj=d;rCJ}eWs*yM-Uq4c9t+)S->YJ^O(*0@u4Z0}YS za9NvV>Zql76qsTVX&HdfyX4<=EegAcUJjGet+ru?pHR2Qs|!jN&ZxlUhb+kAd8v5{ zKbn3D|79&hV^2?-sM*4-oUPF;a#LNTGs*H%8S*AMxtqW>Fm;Q)a5-;HUEQ{&0qQ8u zF|U(@#|~sb%gtFx?Pk3laB#5D)o^;KXyJ8?dBC%SaKAz*05*$D-=&D<)(`fn2OdM) zIl(5}9nq)z+3!SyFXgiNKjyC+cPu9q4n5O1^eix@utsPo{Yd0LS^uyCNF*Kgk~aH_ z5mulG|B(VD8C#>ZY5lrxP{SR9-if zYAvXekz4bUEpjue)3mQmW-(rV?~yF^<~^62qQtM!N89Qw#>j5ppQ4S+_x>32KQO;- zEHDh&=aV!g^AD5l_e)yOgBAJ|-?+Lo5HS&ht&EMVd16)j}@MQHRzW*X!-e76F0$QsS?i5$Brn z%x7=w800ylkfSx{>#I5B&VlUp(l zcU_w_2Qy@l^|_y72$|j(OjZ^eaw%0~XD4x~&?&KEM8gusW%tSUS2N|-Y_VR@w_B7X zzNiI8&L_hmNje*(TGkGQ$L-nZ{c&pF3NT%hel@0G1s67Q@X9NCcL0W2`Q}@4I{)HX z_*E&fI)&`zzb*_c6r?r1r!ORH14l?W@40PKPdpjU{tpt`92p%M`D@JqM=9h%-vA;_ zbP+5w$`xvhlD~-Bfq1WzxHNV-J+F8YdzPS-ydw@xhnehsW)Gz zG~D5NX!~++GMOv!7S|0QenQ{B)Kx=?l=E_w99B)q^epFC{SlEDR>JD}*Cq~2Cm!}O z3Ug6^&qBwH6$V<#_;{l_?y7!Re%}y%j~5moNB0yQtT_{WB-$n#%1QYFs=HL^wYAyi zH!cGDjmjn4WNkC^mJcEc2W2BNU)vk%V%kvIvyG65l$6^5}-Duzw;Q<5Bf9Q-uU_x?UL@Cx=@{b;k6j);=jjsulez&kRHtKKWd|6^5LtTR83B z=3pU50JU)i20GtEmy7-kDML&*t5Q|yYk9BxSkK}lvM;#9A8@=*CBHoHAbbWe5PBqZ zI|ok+*MfGR8wZ0Uz6RsL;ZFm-_QvehI5?FLf4kF-(paSW|L(t$;di`jt{rP$=6m2X z07C~YkYCrc*wN0v>FydEM4H?EtF_TqsV%$OD}?*uWBY-Xhli#gn>GTkUAi<(EoW_^ zuR@ESI-SV%T5Yv=SnWr}A5jH&jRl0qQi}`>h`KlKugyOo$Py|wOJs2=wZ2B-@s-Hy6k z%a3eY25tI-``BT~vL`K;$K7)s)bW2A5jJG2%N$F-K<_`M!tS>-m23ts_LFl0I~cZbtY&r*+mpJ)faY&2FD5Y^X~Pz zxt>GsuYY|~OZlIrs@$E{O=FVodrSwr@4VU^@;^R_<#O*AeEXKuDFXi!KN75me}E{c zbrHS)!0iO#4g+l|e?F6VO&Z-x@T1sYDgm?I#}I^Hx88U)HY3l!f4jngvb^9tcNhTG zSUC_F+2B{`+WqP7ZJGGglWom9^p^>Gp2hjjDVwsW{((6Wtub6ZDj=xAN=%_nAcoqT zUH!I_{TZmfxNn$S`yQ)ryOnzH1xC$ojGz8|U37Ysst$N3*MaPXVD`z0`s2+)L#ezp z+u;C6fdHvcA)p7X6KEd)413@m&?S&4$4)Kud95)v0r>alXW;*zR-9qvfBFC!!aoxO z7RJBT6ith~@axr3JJ!BqBNO}J|EJSB8hJq%vCYFqQuXLR61|lFfhqaMd`W?w$&NVp z!5sH93Zydyh{V`Gg5h%%j|vYb63+l3j>^Bz0fCwo2&3-r#A9yAU)(AEaIs64wObaM za(t^otw)i4Fmmcm`y6RIAk~2aE?da?e=8dni|*;6FB-&9U8ghVQ~!xk@x6+C<)zeh-&wI#%OJIaP&L9`u&xO`B z{N9vi9XP}TWJYF3s2*x+DDb__){#m?usU`DIvvN&O}h+B_{tZ4V0dSGsL+s|44lRt zT+lHw;fn-3C7p;Nh=b+XmHtilMAGx>y+Ssqb+F*C2rCg$(fopNdMQpw*aJf0Kdeaj zH6WmRq@zPY&a+-sg>(4qSK~#cA6;E1+kNUryt-CaSsf`7?!5c7P_&I;B}ITkXO|Ji?&{f3k{!ZM~8%gMW!{(U{a1^KffsGBvAF^}iH4t6$7*=psuiXOYoIr9az8|!! z*q~hbrrXLe_N*^hnEO_Hzb8fw=SuisKpz&J0dhF;?E@ntiLtS4W#DTKAbB^$DEPR{ z{UF~#d`$oW&=jhzvom%vT`?k$O+7_2w?3UkDTqiOr+)h?L_a=1`0EZ(TG{kv0jRoj zFoVH(9XA5)8flf|1Pp{rTcMf65M{w`9QfiX_K49h9UxZ2vQi)cdz?0(CTusjZU{7I z*kb1t{*9cAB7w17V1#Y3g0H$zFC9}YiN1Em*u3c@Y%JY*HV1KNpsHV=X|M8}yc3-l zLy&dOU$2?io{iQA2vF;2Y2fvRn@2zKge)+_B_o170_Qd%9uUmuFe##PikJVJ(^y<# z6bwc&YM)EWYsA^nLF-hK;dAs{;14&1MDN=>bMmRjCx}iau=FwbJY?;=c#(o<$9u}< ze%P(>BVUXSo~kZR+a*NgIby^<1znkV^Fuin0fVJF@6d%#6`C6^rmqGw08zzyt=1Uy z{aYnkuP~R?<#1OvwLNq^Xu9>hf`Sb*@Jvub0@_twcnsHV1V9uP46xx*z6sAd5S3@2 z_P{f}*bdu4vI3eYRB$OeXNlU^wg(%S6vMd;F~;UD=R9D|CO-q_rfP^2YKgy z_wyulFNoKR$R@y-oiwnTfwbfG8+V+8)%^Yaff`XV8CX?A!!gx=%NPuhRLz64jbPCc zi}_-<0a*sV?qtNCmy;9Z)8boZHYn(#+h(7MeS0Z=xFU4rDr1$rqT`iKtvKsK$&{L! znl;&f64SPoqd!4wLCzAp!%_Iz=sPPt;Gl_B=ZznL+=sjxwDTd7708mI-_Utyh@%Jp zu(u&@?Z4jnUkm>8%>R!PaLB~qyf=lCK~UZV{QE|8D&zLRVCmd=1#pDm>zNePr3wg0*NAi>bdjdgq$@~oqCo`dEz*sMbdWAJSODor zuTmordJPZ~-U{eFo_o*vz5BiQ{&;>!*gI>lwf5R`%{j)Ha|goJ6iysFcMJl7oKRAf z(}X|{pMgLQ4gXFC&V0UadLwD;p=bg-1>4m-6n9T3ZBZ-A z9rxqG+z(=CaJrv~$$1jdxyzNdB4y+ENj6vWw=6dnD(zhPtZH5B8=0{Ix2aj4pV4|F zc<=J<=)_*d^Jl4#^Zq8vv5uoKiKBNBOHewWkQ9fTiwm%{bg?WN9cgTntSnN=_XTr# z73J}e7JP=o!LPfj8N%S>_do=g=6MwOQ;`e&f`Z$4d~oXDkAH0fVLJ^DDaav^tFS{q zdfY$tj~4~~?KqELppc=rR|jqKjXW1hC@3iSkvy!draf6Ye0+Qt`155?kVc|s*Y?y% zJAL{z;#Rg6g^1I4)j;7z7t%M`?A2I}gjt z%M0L^Qb>RMmben;ySv_{KHU<>TErBlU{Tq7SyRK& zMoUu@mV#)A}zp zdrQ81m5D?!1tWfBuhPA5RqjhQ_`F27Z4B}-tLe`AtS@2CWFx@hsC;0tnubP%;rER` z6Qusa1~)5(i07tlxe^TxjbG6<6Wp;RcnX-5v2k+Z##+jr)cWmf)Jty0y=$*JSZeSze4WWY zZpAnj$pm=)Q8Lm4@J?4xaYzixADGAunk-PHt^dALf{;hXJpugeA0H@C?XqHLt82w?x^C=Her|@f`!k-QRXoY=n*c60kSI zM_IzGIvpLIrkT z)|T-EX^Dr3B+fZ$Sz+fLQH*a1mW<223Ha9od(b2hiGsGOKEX%T~^tc?VyoXnT>CbP+W#TtoH8sGf zY})Usvxs4em3xIK(wI--*=h|b()I}KDBjK8 zmTqr+C74=$y*!kAn4-je?fb$|88RkDp98hddN1X-mprI-G@32CE;%Kx!ogQhN2jNw z<0>oy&UX6XH#Nl#a0HwnG$;_PD)3`$rzz^>_FF)pL5O>#bKsNg&lb>Q=l9S35AA^& z-GB*_MggCP{_K&0JRF>({_h6;w@$PhXkKfm1U0zjsm;?b1v`o}u$mgmuCVn6R86M~{^}3W$ zBKE#sj*3CyVu-U=UJ{Fn*$x)%t7CD(SjUs6DQEZh?P~|~e`f(Jq19>HbHY&;=%z!h zJf*js_ZXn&}+;|bZJ4Pg=d7ktQix%(NgM|f_d`lK(vA$F!VtSwO`IHb%@4fK=*KxdLxCc?D4||- zx$)btCX9SVPRRBJFj~Ibcz$dI+(ZqJ^W~TI-oT2Lu$PUL>X8D2XS+0>n}aA|8~ zVPWJ*j7;IEMv)`T!u)Ok?&=JUQpSr|_#R=@p;3LbEZ^9m(8)4{S07De^yapb!Outg zl($%0#<8PnO4bdib~g?YR0>hl)|D$zAvJP5#zds9;&HQ57wc^9;G6j$L$zSHisbUTIemC%C~VCS5Xv)iLkye6;Ym;T8Y7NoJPv^5l|V2TxPjc@+O3y?emPq-gr(l)dfvL?RKlH{9tc zKgSkl?3wE_+bQjM57Xr6&7Ij56LUhAxMDKhHewYdwhBwv^i1#3J?j>aAp4^Yu`@bf z>_8QaELx-&_9&d~k{_rMkj#_F6M`EPnP+cC_99ff*ifLg|eLmrX_ zlLIWn!K>_bYt!h^>UHzcmC0$}9O7w*rG`xOLjG184T`GWQC_lgnIGj-XEmC{QB)tM z%87#ARF^6+v9Dz&E=MGOE5uwECv8D3e) zPsgyJ>LRWpB+Zyda~XBgEZu0UU^*fN4(0LQ!F~08#J|4ULE$`IDoK5W{rFj-vC!$o znQr?V2|Y;V8N&0HlXQY|zLZaEUY>UQqvC@es+h)Hm$6I@W`sagj6Xw$F+0R6sa+P` z@v7)wDa^a&igL!IPzj z0-GrrQE?^Z3!bnftF0i{h`wEXL8@m{rN;=wTxcu?ih;s z(cQ9pmr%PhaZ|3m(K~lWX7WS7y>ocFZdm^&Sk0RyznVt;43>p6TH-h5kw|ux&HK#> z@wbZ&Zs|CyCY0QQ5p4U~C!iBk`62YWBLJK}FFuIs8Qn#a+RY4VGIzc_K04~tv9+q^ zEucMWfC_LRaI zA3GFaB*EK6N8>@W!9Mx5I@NqPuKet5%~~_rLqUjB)=NLw^Zpd(iq0+f=#w=K< zbI_?p#(FN~_jgo2zU5*aC46!f?3&Q5%*;#_3ibA_ynWodQQVKV&;GV;)AX8BN26V2 zVRl|#9`Gtj!5Z>d>4y2#(r?cp_%R&P^RUqn?2Q2nJL>lB+f%)YU5%~QwzjtKel(T* z+ok{?@&^AcA0tu0Unrb})Az;7rP7{Hre!N+V{{Z!$Jn&XW_q%bxlBxzA+(To#W9WZ zsQyQ11t7^0wW(KO1+$loA@fxqQo+MCp@Gbt4*hr+4WZ^d9T0UG^1J>%Al>JQKTz#E zvaklH<*{pM{~cCU`g7-E`HkWMi*PKT8Z~c@ZG;loY0|ssXlccqvE6#c?rD0GySk?e zn_A+8v$M0^&)Ysveek3APC$-=w*f19%F!K2%~>Bp--q_y10b+DXEz}{JUl6Bq`Ujg z(gpFaot>*QsbNjC(b1>Twa0b?2f5LN1qaM}^hGVV^Yi5k4>{kNJl3ZU5)grCcc{i+ zp50oR^h*ems&1MsvFWq6Y_!sUExoXFBQh~GFi`L%Jg6DdnNN0b{}J$D+VB0`y1BR6 z_u5_xrk0lvIB3y{*(WCUqQ7#an=9$+#+pzi$#{E=R5&|&e0V}$Pn}g-s;d@uR`AKu zCrM&%r%AhE<)fED-9+6B%;!XLr(IDRWHU{%UvXc^`cYAKPR`MX4UB`HUW^>wsOtfF zH9OYnUE8b80&7>_tsMy?BLPn1myX#l#T=3o`MJ1eU@-sptD8{eBI};4jxu<4T*ivz zqo+=-o{Kbkh93mZZX zGkeYpGW~vllWRX$7Cd|Q46rzBO7<*AM@J|Wx?9sd_BoK6mK_z!EW5bk2BoI9v9a04 zzubq}$1bhd&v&4%?<~1!n&ieMCeAySv$;O;DX~COEAKA4qN4_?s-#>BY&}UR`_LWQ z7blmwS?^3BCLTBfo<%Y@scXW<@9N0L%7PL1y6#quEtx{*X%)Fd8S5z_chEnKRKnQY z>|aJI=>R(eEEHT1_Q9_Aanj@=kBxZUybb|vr1I7y#(W_%4mGZmoJSS89*2`t)KOoa zBsbuN_%t8%OO!cM>*KdS90amSc^lV1xK-C)Et~!zg^Xx z7vy0Azw1M@4024+HPt3}RP5zl=mq-keVC*ShmX9@%i|Xn6`c`SmRzbbt#0^aPa29e zm8?obcT9{Qx;lzey%c->UfIeMzB5ua5Q-kYQriLO7G;&o!tHDswqH7%0Cv2xvf_iT zb#`{v^;Vo01xxd!fwunP>2nl4;%n3GeS4e0Xg>{x1&!2Gmfl+4`gp#k`!NEWh&1+4 z+M}$p>f*4G<^I_v@TORP`!WNz)9&UQw4@_ASfDFTZk8LQ?9| zuUDP%+?>}y*WS2s!^Q2+&uPd%xFSx`LlYMlXJ1yCnc2t@7V@JvGB$13G#rTawj1fs zat~$(&XrwxFjl)bQn|3!|8ph(B}SbmBlQNDvqXr1$iBKovJk+d_hl$Hu*o2hoX4LU z`F@h)p~?I03ukQGMXS^yPHf$Y;*#^18Wrj3>8p($w6vlUzio}n7peQO?gaD<*j2sj z+4Ooe@jC~>dtz-HINtu1r--0vL>6$;xw&@t@4r)p%_^7$7=?n_8rZe3M=5hH$V7xk z2Hk6*f^vfpP*_-)m6i4OZ9R#~MliaFm!1=_Es^e0=SCId<+y|PIOy24e`D9Sva-5y z!++Q3Hi^a-e&TP?o%GKwwcJr+k9JAv?(OxcHU@@BL35EpM_Zc>owBMIx=*(y=N)ZD zjQg!U-==88tZ+);iJO|H4!906oL7hGbE1GgQU#Q-!a|{a((TfZ>9;1`m8xteqH{3{ z%ndMn=&}9S30N^$JimRk@sslYa&VH9lY|ovnDGxrj39X-65ZYB)cP6;5$`R>D`iklZFm$F6*<&wTZnjKyEBLEEBQo3dN7Xc zY;20R7Y2$HJU9D*$k-Y$GWV2925#Ai1(KppL>zp_AdgQ;S$PM@l~0T{(Nlq($uBQk zX%6cHLig0TsB1Qw($Kj_2aj9A;RF51mQ?jMd`)-lug_4rVqL8DgxpuBjxu{)TCTCS zvvaN-ainu!M{iBM*vz}|K#nnwY2upI5(l{qgAe6U<({N-*$navw(zcMij0x(_cxDY(+%%d31ch#Rsd|>p{#Os$L7nkVNNJ3hCL*&e)e(wP2);Ifkx=r zfXODJx3QG3Gq8wme~#|Wg_Pp8)$0wYBAY%`Esg794n;g%`DQBxlv|2I#Fw}`HDz{@ zQ>60FhbNmZ;eO3Ug@wh-t8P-@_7mZLD)pg^b4YI=q~ZGqcgHel`EH+P;RW$PA_3mi zov9VVrak6g`9PBWN;ieoNi^QNIhJp*PSkF&djN5)z+(n+%p)q8GkTOTnpt@xfdEuL zjO#UJ{?E*ZPrZbXGM#0z< zPEDg%mp?5nj_$b!pjflN=(o1!(u)!K1RT;;9Y2D{?(Y~oiglV^teOl(XEjH`?qWZ)@=96 zf|27~Z?1JPy_o&(1h4ohT3Sv@OinG{tS`^VaS-E3H!zFU8!j*n_zgj9JMLjKRQVv? zKAnh(?e5mrpTT`>2Uy2^JeW>+Y82?!uA;1i2GWlxN?fCkb7*(q(M7J!H6ZI>yGFvbbs4eA^|m3$STm_EAMXYY9~Al;*l;n)H3L z+Y@lB`92#pL=kQfx~Q{Wy}C*sRVqh3hGcidTyS9m7{Oy}Jb*xag*2)hjr^jXaf)>? zxrSE2m|;CqQ_s=k)3XyhfYLG>`{4rRuBJnk7l>&=Q^`x0P*05CYn5p&)zO+n`-9ll z8|$^&$cdGH5B}a<7}8Vo-Cb#@7iRg41w!942c3FGEgr4qs$yhhBrpGrEgGS1S(e76 zp7FJSzdXxQfjyw+<131d)4t(*%CHG9W@ zdprLNOq^#qq^ey;a$~(qM?SAy0g7$Lk@?hcvGcH3xURp7zV^bm=$3EnDEmgbUUf0I zspd1`!2yQ{X#Y9dyn*WPg*^OGJQ_tn4k#Q7=ULhI8jSq-5w?-n^wFP^aFXXMx=lbb zOT?ykrai{{B`=cavIeYi%^8@}(5K>ureo~vYX{-!8L(I?FBC@_v=zgWi6!T}FHo!`X6Dd4md83QSsFi(sE0>t6ao@bb zwnpyFVdlQwD)X4O7Ec1=)g_c;etS%b&(4H8rZ~E*Z>=V;wVtycrwHVE`0g2dfPY(F z3J&_Q4&K%DQOHwG5Y2u6zTW}&%J=ETRcd9m`N5KA_t?bc$~VoJV>{FvOJ}THpYz5^ zxfc>=m{}>(;si~fjh5F7*zUSKs|kh+G*@r*8aR3^eXDkqkd_|#u>^GG13({ICW`r# z@fuaE&udL2=Gm!4EC*H{9U;qej6TNBY5#s4s~S7y0@ zinbdn1=@FGIVCOs`jGpUS50JOwy%^!&beD(myGw4_}gwUrOT~%v_(jXZ_xz@2qsGF8JN?iLIU53U9 z4!ic-;L^PE@8`ttPObd`V$1CpY~_PKsgzy7Jw!`{VmXsPgDq|zNsU$BkI|&ft*e_Z zaub+6qe6*Q*CEyhSfEh$oXh>_(p_wJery+&)bdr!FhOiLy}P8#e7NT=vc*qSvh!dYy`o)Q zUC>5;t%35+1PDHTcB8|Fvby2}Vzp8UJL9lWDcl|KUBW9p-^R7Mq|Z2e?<>d6jMe66 znfaoZUc!+$EBuxsVVgE8kL9Oda^54*U~jNyX54r|%#o3>yoBoJT=lBi!^x16-t@lMw$?5?`i+MUn|gPr zR

_9|&a&Gn2LIQ;pwl;}!Mp-bD>&HcLAdK$WYOKTu$23nkFBPGON?uni67D0Wl%c-ah~}mXV-SD+@&3f;K*n!-M(+*2wAdOf_leQiNshf6J+=2j!osWZE&Fwa6CyWYEPZo}TG?d{8zxPMKF4=quF6HTiubi>=( zpZM<4hTxOhNk8qvnbEux60c9{Q4w@4IuhQT%+UPW_01p-wY0}C+_s_~I)oxHe6=3Gj0r{v($@TetQ6dVY>7O=)gOV#+Mrooz|s*;W1_P(9PN`(~9 zMOLtLYm#<9QH23NVr6gdy+^25V79{zHDa2=n4}2}vOZG2M1Cjs?q}Zg&w|fFF~O^5 zZX}KWts+-R`?8zVpx|Vs>r%3`XX$*qA-|rkZZEbc8)z?2nbi1gl#G(3+%*{)*^5>c zcIyVa5V9!Z*G>OC5fH2WM%82=Ar!#$Rq++E66eh!1AVEQ}PU?3LX zVA&d<=516Hfk#tPrFdBB`h;soUxa3{b*;4)rKH>7Gi;Y;dM-Ydu;nF`;|0{4>7zS1 zo5mll$9IT*-wsB3u~4yf*Qs+6!=$o_M+L;i#dne((*8!EGG0%K4J$?jJ?O=cLRuwR z(5+V@!~BCNmIQ&OMcU1K7Vj6{tx)bdJTrGjhsjj$V6#C=GbkJp^i{CVK4H(|3T#Gf z@n{h;xAWoJ1&FB{3m7jku*DCAOCjnvu}X=A6^mP zA7@`b1d`3asK7tY;3qHn8}9H<88#3=qk(D?C!_`M}+=rImOuCM+5w*bBXIeI|# zw6%)|D$E`U$@eKK|UfbJo_@X4x^D0!0Un2Os=LV+OTQMRl%} zcFqEUp=@nmz~^EPghS1x|CmL=q{16cZ55Rlwwayy!bTta;7O2V5x}Y+(;Tqt zJJTn^;k#tQ#t_{G1I5RI)J^v2TB*B-fKmu#4|0nth?_i+QGER91R#>*9b`=VSx?Ag z0@-{toI&j*=z5>A|77K)uAg0}bOS{05Mb_ovOkqWQeI_$94S`t^w71zB170qqJkFGZf5-W)3jgn5`Vk)G%@V6%CJi5&DCw2qi?eQI|Yg2um7Bbf_M*zFwo z*2qx`^2g~Kkln>7I0T%iU6P?7KYwqqbjc1+uP^61fLUW@(5E<59zbV2@f5aB!|49dcIv3HX-MNv*%14|;>N)+<-hb94XS~#;+JJ)h%;YPV}0*J#n7E9$ek6$V3B2*$2mT3?!r%pyR;@t zh6pXCAKVVrPEfE52@8+dy8n_csvOmcJHpRdQ+zNES?Ixc@fbm~)wB^EU_!7wUVqoGzU>sbyTS=`L$Qx+*Lk}L#1+_o2}zM4M^%wt^f&w>wV(;EtBBJ0^2MCYEN z4O_I5!W%ROs;Q~*vn9xt0O1HYw7+essj+KW4^hmx^i$Q6+KYq(#J9%$VHuQ=Oy6cj zsY-y+^K)}IJgR^8`T8}BJ23`*Pl+pvqkB8-&K4*lamtN=b1+5_WA*g(#6(34O~LN) zXZ=Of`rGkAG0KS(C-(aVl^6SA0@(dORD0~}PC(K+s0}%2{9k61NSBgoM-C*Z{SEWq z=D-ey(;j=YKC@L-I>sFFLL9J$p~7>a&W>oXer* z+-n@&Ksf*egEkp4cty$zHu|!kE1-E?ahB1$E1bw2qAq3xV{B1En}2!y;j5ZH`!_o0 zk=m^ZK_&t@$Y;0GN1y)`ZM9hI1_}#+rA*)4scxR_;=^E^RbuBUs`^paIWc6Td&HEd zc^Q4AO)DSjAS_KFQ_Oh3*9ytTD578JyjSagPKAlrs+mg+VJGv64VCu zBETAfFoRnhp?`)r_h{2RA+n{E))vbdy4CZXEiT6YtqK=1)lSQOq4V@M4&JtG5_a}A z)dzfA>_qfd|6Z$Flu}!yexm}(rS{lEq_?Mz3RQxt4WbYzeQ1})Meqs;L zsFhVhVtAw*8~JC0hlkx3qy-3b5`HS(v+?oG`4w5dhKAbK)=RX;XLa6bFg&8^Q56U#uI5UMe`ORX z1*iao9Z-K@U;zMpE}wp(Sv!77>^o+`)=Hc;DiKgQ#=NtQ6fr5j-|!;h;@-iW+Pb1W1e>Oc4v3A^W(7} zk#KBzDL`*eTGN-&GAOe;t1hV7W1qepUz>J0iWnqP&(M$|86oj9im2{A)Fd*{vl*J) zJiZmk`Snf87s>D>-SBRc5c8oKluzHRtB&YZC^Yc`RQcvmX^6JK zGd{zaP5i9PC?YZvSW;@<|%=C38 zy8Ha>JlCZ(}%~CJ`+TrkpBk*h2hUndyeZ34@?FS##I#6}@&j?4t<#mIXO;N#Y z(b2lkovyc^bEmPc5BBkEfZa?XVhZ5c9u5M%`_62C!O9NzDt^}3VMx*ySauOQ0xV4; z5=mRSnj)qW1y!3f}*=VSSpv)X4E z#XH~Z$vnx*GId-ua*gp<<9f;yFNo@;KqGS#Or9G|@}%Mh-*3`TF=l8HF_ z7;!8HjvFpo+FJQuQSlZ$MKhOA&s=w9;&DJ@bR3u69Z&6`Fn@4Em?N6l{{ZDpr6tB5 zUEKCL(0jLrR@u|?(z414vQcWoQd`C6xD#t@M`zL9W4UE5xU?foVblEurgv2`@B!tA zm+D7DRPC4kc>VllMyNNyVeE z(SZ4>dm6cs zWh{x_{;1rHU}8CF@Dmb{`aLKH{n-Qr`(J8M_JjB@RVSeNJ|rN~sDG+J`H2~RsW<&O z+%E{^$3*wP`5(sq$)SJH;{AK^U_;GcM-M^5UL}<=tc5-Yg>)Aw*g-)yD5K!v;ZXr( zF(^pX;D9CO$~2rz{eH@4Mjt;n%7HhlmYS}MUF7ubHnXZ*G@PsJ(Hem{D3n zM!;dr-|$nScpykdMoUv?9bNkEz@D8a*Soboao)tz)6!xb#Wl4&1&k!*QY4KX)LdMK zTg9k!i_+CF!!ARAl)p5*a^b^8s}f7~x3RqE%1iZ&c6^sV+;Wc1;n!o)GyjH=@Y-5_ z|8VkS6r4VQ^X3daH9h8mIK##2REKk&d#Nk4Z&fm$iqDoEr@M4z@M897$<#dhvnEpY zspwk2`C|8{P_vgpt&C>{ibz(Ctx`g}ihEb2RaMzHMoRn9NpH%-E-=o*^n>< zQBKCL|5A?LW8lDxDO*xxFNqJZW8PTM@}52Iwq1+REG)cN0#b~Ijym6OW_kltTusrJM@ zyMQ{9de{yQ~W@~P4o|A}yqx6DX5S^N)7-eefv4kZNn=}9 zQ1{J^vafnr*1{z1aoeEKtT7ok>d?|WGysZ&ImGW?LP;13MpARj?p5Jz936Mgs&n;7 z2mJ~k)6z_#)JY~a2GR7RWe(l-Ay$Ls074cHPba+MyU42=!>*QYIu64T38se~(pl`v zELz!joYJz*$_-I;)Yv%7Wc}j%8g5WhPVBL;@<>S3q$yrb97Oq6w=3nx&Hj}qdu&?X zy}IL6v|;HRbUc>y4E&FskBgc3YEkB}H-!q|#>naGCnc7+*!h1zU?0?hL}V>f=NaX> z)3jyPjBky%BDlcIK1G&P8QIM~_yv{2mL+qbg3Q>VZK}~5V;GjcAaWSlT;Nfn0IZSk zL0ztaLMYvu`6oV5+IKRllQTN!irwue$2*opXGRBwHDDMFhK80lfRmKc-_sf`b-d|P zl9v1b1W?MUKUW0r2bp*YUifU=f%JdE1mW+RsIvkrQA&6W4^hsMW_m<#gIasFE zP-z6V?j3;XKC&az32@EGh=d`R%Mb6~%^IN2Dk%{W6x1M|P=^s32EGGio|kfEf_T@S zMzf6S=H(6KIkqIm8+Sc4XY^1LNgAXbnKc68=DP36x-=OUmOXGY;pEnW-#L13d1%v@ zpi@4)(GiHq&SMYlXY^U~VVSNgZ&JGF$3G#PZDCKeTC?;L)*Ys1(@h)d=d!;nrF&M} zEe*4CR<;o3jUPUIXl!iU4^UP0i}aE@VslqTD&NOMI0kuQjlPbC@PvUGZwi#-iB*e9RXAK0Q zDKa7NhNRlEsKY?)q%!6eajymm81Le}u{4_~_r0e`5JzNJzp$R#@SUnNo>wQj;tJq` zCl%PL$dzCKCxADd)Eh#LW_*QtvlG_QbZu>IprR-+5#e#S*b+8+)`?vk!B7Wkp-AZO zEfW|5)Zavs)!ZSKHUm2&DN!`D7hnes{x6~8|0y#4Q>^+i(f=Jx{V8qzDAwA4cjwPa z?q8wUyZa!a;!}2r>6)a2_;TP!hA@ z0g6H~>J>pj$K34)?Tv&a=u(4=HyI>@;}ydB8kAW(M;+Z4?=?VPaZ>+TT%8;<z)I;VY3tM0j88mQ768Pnr7Y3&a0@XXgbL2Wa9q5=d`pN z$$?W#;_k|St+4((to&1s{Z~QazX`UaCl6Fypbq}~3$#Et1a*pkEtLMVm;F-4gY3kg xFY1Dh{%k?&_i-kGdl1MGQpRR~;Hx}v(iEjb5CQ2#0qGD$dX-)SC<@XHS^5ObKlQBEAXzW9Q7aP|Dd3t zpjMEVQKO(Z0RHwvj_e0lL=NSDrl8Pxtso<%;fBE`QM;Y)t@)u4(@Lqp`hNez=f}~k zoGb@z;WFzj#jbb58e68bXQNHbaR-`XrL80PMjp>$_w!}n{m7yDsrbF-p zpeht6ZixkvjucqZsqfovbTjGfxJwG0bTnrs{oniTi{D2&!BCR^|4%o3@o)Y=%7}dC zBC65UmL!I&UTI5DXHDxAe(>J6p4n&Ewya9WP?DO0RN;dtya313py6SCAuE(T@k_|L z%eNKY9U#5MaW^c3n9IUcYXVlwZF{YsO-N7>A8+NpZBKr^gN!;lI;q^LGP+G@IFVJh zt9Ri`D1%)URxmt$W5Z2hYvX&^TA{juK~h436@T2Z!+s3RP0h_p3JT$&4Rkb&qCJT` zBI{-F&B<6J>*dazoE)qELJ8-&p1QzOCVkd|&H1iO>{A?`LnUTVAuAE<53NsxomkY; zNL}H3QFcPXShhz|DGma!Ob0J0=JCDr_;y!Tb3ViOd$S@UA_N{|Q&W#Z__=fEFhMM_ z#f5?iF)>p~_|~`^at<)>&B+)`MDqbDBDuI%55K;D@{MbEYg*ET(37KnC+(i2*u&+C zM&ddyHjoyw@m?pywhCK1Qsp`yASWCgwV@*=^@Mw6y>{2Y6y+@iMcQp`EEOwdWMs6J z@Dk}qtj1=$vr0-z*ycB<5w5i{O4yaHTND%>5Q-yrb~frIgHYmxnY7rV;ku~VtYnX- zhjIS?hhvR;5`WCbp18LnQ=mVU+iqi9DvK#IYfrWvsf=qi#X_8wQ0*%R_EFp-Qd~S+ z;kJ}I`v?CeqtndHFg?Az;+{0;!+syCv=ZG|Ty$gPqdB1c?pg5SrKqT=XU`7yI?g8H z-OI0$4fI2EwfjoXDeq<1zI+{BLW-0h>!cqo#N6E6ZRs<8^jM;VXCDV9%X%5-vs0)kaq3K5*n=Jx(wV4Tjhj{xcx|pNsfw2cU~UxT4}}P zLy=HPi1cewXUicAn3&dvBJt+KjCNXbE9~>$Y=#A)LeAZ|gV-pm-L`q}yU*yE>#%)5 z_BeRl1qOyZrdg{RJR`(Qn2W3V!L`?|Q|>EMDEaEAibR*iVa`ADMEP>$$u_(}ixVB4 zDLg=dq@}o6_oBCxuKB=!8k6SC|6?no=?J z$(VKgke%Id`MdJ+^3>FC3xg#ZI^fPNA}~r)iL~Sy4jiPxm;e=$-n&7%589PvyZiT2 zgaPv-CAdt^_)qzNp8l5WUkd(}@2N(~Q_Ja2($jAdFMKbZ|8|PHlRR(UdToV(hEVT4 zj!zqjd#{o+Xb^Fdy3;?~B|ZaHb>3!t{qXA9xYNuGXU@f?$a!EKk_({aa3 zPTQxKkzW)|VUCzXG(+cIzW5PKPKk2t!0$riv>l~sxA&K^era5t;8lQ`W{TJut5=Hf zR?e!&tj&H=F(kjo{xo>lYcWoddDENRGrgZ9>zBDd5rnxPRDXNf8wb~i3~>}+@d;q7 zTec>x94YX9-4N_M@eK1wQ4YZ@IHj#3k{*IF0mmnXeiimdc(1yfre?$QXX^OPUGM`L2Z_1CMW{OUI3cMV>Nt(RX-SsS-k7 z&oI-H*s3)3+sn~qWlk?%HZ4Xtxyjo_qaUVhX41Tyiz!q*Q8rI+b@PtwcJ?Dm9cz1B z;oNB9d8%d8+9-zak5=uT*rV0CONADLHXG^o8+nsESf&ualu!*C01U04o#Ugz+OG%$g8X`{>0A&2Y=lst+)SJR)1annJZv#z5T7=U-_Q=wb)FQqXD?U*zs|anntEkqbt{8oF-e<<)sQ={Emp4LWmh zyxklgTvr1BplV`b;_QqPMrmyaO%Sdd{#G#Joj;5i3LJ^1rC=+*!F6`#76-I%k%?s;Uco7^v3g;uqCZglj(|+g*!hEqu0m4Y0 z(UE)(U>el3tG3&O^J!LJSsH8KDVrz_v+!v}RqqHRX~laW4`({wP|`BV5H-%GrcJ)c zHS~HXYn5YLsuCvAx6vlHW>hG?(#nc$eq-r7u67p!ULSRnu&d`YSbQZshTnBWUm@H{fH*I?E4uAD%cAf_IE}T< z-Sy?Dvv)0V9lVFPQC6L~G?Ib2@_WCle*c>2;0x>VzyfGFF0vcCTR7uN@-vfKlW_3O zQL}Y%v90<~CV~~7#VsDw4~@Kw%aYVY-A9L}r*2&kJ=*~>&%qzHx3>?b=cBoebzHpa zI2bPI^Q|sw!q~nje|5Ee_XlM(7fqDoe1XE!l49WM&=y=;&5hS*bv}>#=S#be z5agH|7rNy}YLWz8^0kvzyqmI`mp?-#oLi;Mr~lyTZ#A<)NWxt1yJ#C3-}zEnT|HIG z$yt#m$3^WtN*!x5sUV`{{<5_t3JMj7>uZgBp5|OZ`c0J>>)2$2>TdM)^^ox4 z#4HEhTsSZ7L9Ab&6~btBrW5A1B->ztC{NnCB9ox8_-eE!p@b{IY3cRUmO@M8CHuCG zr8Z*RZZJ$fW@8e`yp`hB$$~?+x0(e`h!kbSAy)bhubNwyulCKL^Tj!*L*|S6HE*)9 z&DwEgIb-J@BeYJMFn2&CEygxird<~X-Z@M*73h`a9#}FS`SRsX+-QwwS$;O`i_trI z0zf+^9?da4{5B}v`+bd(9MRZ<%8ySDP=Z;YJ$PoctjgMJ{N;20?S*7BYAkj9kizg* zWWuyvJm0C^m8o6f;CqDiE@qvz7v65qO5_6(+jA&bBR_5J`r8)E?Wf7+W3M`;jbpt_ zc7%Sp`Hr3l;$k@twC2=y%eF2r$w8MQzNf-k5o{x0Us16&w?GKj`^z!gcugl6P|;mk z?;3M6fH-Cvi&(ojX!bpsPVS!9a6}06UzRrQmt20~GK~~T&=K&&-zw25fNTdy_AupI zEe@h{>0ufyC~l$kctl3AgIpM0WaQl>_lSXE+dLZ8X$Px9Qrj(!Z5K{PYeBZRaY<$< z?2K0IvK(8D|AJya*;TJ>nMx#}o4)Wfg;T7Gr5vOe%8`QNt2C zRnQSN62Jkj`Euc6_A4ES1IhDuh%vkd=XEh0%j5j(pedDGGg&$K2t~UNqZ=7zW447t zstE$;kI~4oa@xAMwMx@+#wFnWn9DmM?<#E>#n?aB&)bDnZgNLw`BzO2#Xma6-D$)3RzjF<5sdWBa z#i}aNi+>?@6k=XjW>@#(gkcEwM;1O1<;Kf(l7R`n8uR49{ZzqH4T-c&i67I3M419( z{6sUKC%S#w(8qvJqD_p`Gx|6K7ysO~nGdaIImt>YM45_VE5w|u6S~o}HH%e((`>zD zcw+6kC9Di!Jj>o(2~T{Yq|c}$7QB^zWn`Z7Y?7$6qG?`UUVjk`_jaPfahi3$A^dXj zhuUqdU40m{9B|KZM#K5`b4MjNiGGR9=Cf1#R6_fAt2ZS#16H!QU#DVXWr=i~GQ=nq z$kym5qc{=hq|@wR1{MjGc)Jn&x%S6nyP6KPT)%h_{)sE5AAtGlYH{4?L{}yzYr?w! z>7j3GMJ=zx`%qTF0MO;%UwJE4!8T_!nZaw_*eQs|hN^>`^m!g;pNy30y2<%3Wi zYtWrJG;i0L+-_+q1ckX)NUa4H)50dE#q826+PiF*gYE^kjEI?r5EH6x{hi8{E$)fH z)QLT>Xa*^f?UcgDsyC)3cV{c`?!|@vpN;O#rUtgHyWj5vV|^`V+f=GwRvuw&!!kFIoHoo#m5ldKgurzDpq)b(+Xiy1jwV&d$op$`%YpjTy>i)iAZM zFmY3>M94HC>k^3T{iX)CB^x%1cZknw#bB%=7M==x94L2_Hr}d{QNxIdRK-LSnj$d zFO~!B8p#2jn}jx>Tq)5lh`4|MK55(mzhXtycDp_ElBwSvnl6quLU%rJE9#Ee5yn+g z{XthD!z_x(NO;?2$d0(Hw`(r#v`-<oP{ zVxuYK+#Fr*`OWcamCo2sKT0b}-|^*cSMi;V4V<@DOn9rQzR&h4Nn)Jf%XC@3#}esv9*mJYl2*5|-2OW^U2u`^ z;R{^C--qXm%yx;j#7*hRQz%NdP6){qSTu-yB9!~Em!Gokxw8PNlH9-l#R&<`rkLC! zl3Yg;@+FsWv4dRv-~Im0zy06%w14q~fBLa3x5;QHfP`#P;0FON0qgYN{eA=2clcSe zTg0dL05T!@^Pt8Zkf%osv8RCZ1TaK%Q_~+*R8)WbG5S|DA-k7yKbDFY3oNj=x3?Gy z_$nhFh7Wq_tLeuwSTn>kG%PF+bd?{FSTtwu;Jmi8nV1cO1v7>>`>WY#A!xu%%-UNa9r+sLqR z*}W6}z<1QjV|dn{Qupu?Kf0r!$-iRc8Fx{2}gRe!W!z!H=CT2%m$9jt)fIU>tQdNin%N+``@%6yA zV1K@j%)9ecCGOOya>FNwYAesSLEpco)-fm z`5Bq_E8kl7UX819TVnY=by3CXsuA99zyv!R+5@lvtdyYkxC3INkO42|MACX4krv&1 zDVXIL0Bt?$9`pT0uG&k(6^;=oI1wMsr4~1$TDaJ{-FSG7Z z1F%95AQj^6pOd!dyWn2S=+*D_ zVMRJ6rhxdgi~|qK{XFW4tKqBNQafp7WhJ?@@yPHi$=u9g7g2m6uzjJwtW2um(<>UX z!SMaKX}AyTC-|JcoW!W50W{m053+!U2R2FS0@6h=`2M^o_4vcjykMAvl%!b=9DW(l z&(poRZj0tu>)ax;>?c)b&v@lZK($ELxYyLAi*Mk!{&Dfcp?~Bfl?{d?=|Gx3e>=sl zpzu$MZV^A8^>-rO45-E*1++wTbTr@|o#AuitdUz4p;q8Rlh$3 z3|r&^vfUD;35-ocBPu2)2xWcnH=<)wBb_{QrU7}9(CUI;7z9-3QZ!&ajegK^N^nYZ zDsVzM@2kr04K*4T?Dr?)%xWO|U|_)0W`@!QORdNm3r*5E6Ddd9eXHY9 z>kkZ=0+?#vV~2IH4;*OxT?wm)gfP<%5BG>)^n0r@Gepw;(%8tAH+4d-1zM7*F))o3pr@0LvQ0=}7zEv5>$b47C3*MshH zS9*ct^rDCdQgx)OW(vGEX{eG0?UR0pcO?C7s$bpmi)X}8UQzL)i{c92ftwpPsZHG2hkFihcchCIwCx{2Zj;n;EcFLYc~O zsjleGG&yzlpLKWxf7k$`duy07uT6)hgXD1!#yp?+^*H6G&6B52Sy@_MIZol50#-B9 z+yVLifs$DRBlPg&K}GN$Bv*t=4@4%S@Mlh+zI&cD{!W;~gd>xaZTaJ@1sP<)05fNP zf`5L)-Q9hC#Fcpxyc79?NB}MK=(|Uh;KK35v6fCUM@K<%#0Lzwy~X*bO9Vpjp27MFVimjq#>uHm(Yd9pkvomAK>Q{c+sU%72}D?a0XGE}T0Y zUNd5wMI9j64?#aBz5?Zty(5v($qSiHsc@TIxGr3pcw2*5xI;^T5?2unOc?r9xw`wG zw63N5H5>c#eM)?9j$ock=&K6BKhMS+Y%{MS@UxOa;z&N3F!|c);mejL&0%=^I2mFG z`dX14rX<}Q_QG)#}E8{z^T^;`i*H8uoN?>XD;lB7DbO1AlvIa-o?wMV>zq`;vi z^(=`82EX?HQ<8d?#Q5+1C*9$=_Gj8nMt`Trq__H2JfE7bH!`f56{H}!&ZPh3Ldl1{ z68~}M&-=eWkY0vd!QTq_Pxb4Z!hmH9;HqPDqHDlG6SuVVH#Kv$ZKY#ZU0`L9BC@Cx z_iG<9XMPrf&wbKX95&aKPro5iqN<9Uor;6)oDAh;e%DPU z=~5RWmQixo>s3=kugT@&oQ_`fDGt?ROyUEQn6i9m*~6pn>^tv$$<9u`j`bO=`QG`) z;!+kI#Hw27l7~?>Qkn`kWuP;O zWmcE5R_5lfbQ$RBvkDawKkekV6MP7tgYgk3o8jwcMEG2`Hu{U-kGT3wILHbK)Vs?f z+gG%a*;-;8cS04r=w9<@I4TC+vxc^+CSg9iyPILvjg9Lpip>QXOw`}x!8bQI9jDvY z{O~+8lc~>2BECth5_i%ZQ&*mtS8xQZRa}SML98WhoK=t^J}sRjaU6CuQiUB1Lf+$M zSTVOBUtgTKyo#loe!Gi;va_pTM18y)H&>`n-Y}z^i`9Ai05Rgd+4OnsRkB*mwSoqmZ1*N(qKq3BhASkHlaC&yv6^&e?kj!_-+p_Bi(vUO zn={2Y=Zwiio6qhm9`Zry0onM_b2m);3k|$G(7ale^@15f&LK(XM%SV6s>Xa)|3v(` zwD{bnHr#4dZT$^mbzfPPp&_Eus0>65w;##d9c_%zxn~GwXevFd`cN%#F)S#U2dp+Q z`2F23rAgi*M+b>Wi-gvlAD^mFhmySskxhzu`Q@&-S+JBcOXyC&VYk#XeE02zSGM(= z>a9H3_T2ZW!Xm-HeE$g|YcNPaza$9tv{6&gf!5)T)jn7HsG zG}2M{A|~tGTEArMV1ZuVYI9U{5`29mEy7UE$l_kX<65J~mWWKbmFWa^wUBRjbaVnS z+jrr+agIUpg}Id$3j;5gmVi*>`h4G7nYO=j;(&r_t7%$GsXURNKfdz4To_t4ZmiHi z1u9kj<92RSYpVcfV|Pp}V@%YyZ%#t>&f~YIBG^=tUUX+AAcuMM4hyG0dxh62&;$w` zgc;HHh1Jz@y`o^PsWP^0kGO4kF6RUi%Ge;bt*&2~DsDGIJvNGu4lJGNA1~Y{VZ8coH4rWRyIm%JZ?fS&+w-t2C}NQrJ9Moh z(fWnvXJMA>h0;zvsiT>9FLYg^>_XLC;;qbSFY1~dl!^A9@-b`I-#jg%O|m6N>`>J@ zQvcAT1IpPdy7)SL@ln_rE`(lnxpFNadj%r2HJtc4rau82qNhuCTDh3iEVEQ{hzhR~ zk6i1N3y#(V5}D7RN&d~u2g=<=@jM%jub46ytZrmuPvJS?fCJg^tFqiG2_xl8RQEq+ z@GA7(Xpi#H<|?c(dXH)!97lrUs2SpIqjPBlPjI%QfDXnu*rXu~;a%^pIrK6BV}>$) zc{coFg{hJ!U?3R#40&qA;3*!N_!irfl-cZ}hw zFJYV8+D6|#^z%XDnp==QO6JAb(~lxwGNh$4U3dMXGrT$=V6_d~caO0dM8ActyC160 zJ?KP#eRhcv(hVu_xqVR8IeFI6bumAt_RN{-3w<``<_=OPAOc+YJ~gbP_hZ1ZcH;*p ztzVgs3D`J996a0xyz zyW)h{I>vRj>zYsrZ`GJS&Bs?8Yefl6jC!T{Wk+Tr*lMD-S`+#|h2nFxOEM92PKko8 z6F+9x);MWp52W`) zsg+ixd@ongs;W}3g*sMU`X<0CRod|lW5p&a5!c-wdpSyr+E(#cw8neq`YhF~6J{Cj z?amf+3iwM$-WK3uI3|K^Zf%8s4;9+Vgy%k5h#e90j*DYoF3T=cs2OGjlhTF7HSZB9 z&3xLb>W*PnH$)&ph>LS)rUUs&+G8x@Y`whUiz8UQTD01jVM{_;{iZ0#R2Gu~riK_* znO14s=)JAW5=_(H>s|mSES>upz|6E>fHzoSw6B|OC^R||GQ1Sb0Sov4~J{Q9l>#{pU= zS4XG_M^^9-psKx2dhk8Ip3n-Iq?H8xc42IAK*ZQWY}fE*d#OBlo7|h)`#g8Vkka{| zJc-=ZWwaj+iR{pwl}IeQ_pmYk?8zlvoLV|F_>v|y39kG8eVvQJ6hu6H}FtCAfN5d##(>eoP}gulDNpK zVL$i$OC||SyJTBwxvQ4_MQM$yf$VI(lix>Y5#LN%WjZX!GM!e+C!P&(+2NEzEp}zv zdD{*^*nwYkh;^qss;iB4dIR-b}Og)@_PxV z+*YPqLFh(?xRnpz64sLs=#7ty8?x^SN}c)JrbX=H{77OQ+F6bVfNi9vc{pJUeE_ul_s!i`^ke*oSdXrq3*`iQZI@|3X(Ud%~BTdY@|_tyE{2PH0gh+sFRBJg6z>>~WSX z$ozc5(~{S_4~+W~J0w^N&zr*lFGr@vnzcf^y3}%f{=&wKoH=lNqQ?vlSAR^m!W_~P zf2tBdL%?nM;s>ouOU&9e@84Hwjl^B}{FO(|L(N|;LM>S>H!*16C5O2ZG@4U5c$4;y zY3tFE%inUxPo3@hP;&Rlo8n?M^t;AEE*NHxM4Y*owo9&ss)y}9c-FsHspAybN5>0` z?r1vfr}V?iK7c=BwR`b$qJ|(jQyX4QXr~SfufF6Vqc1=r3VjJAG7%UBkm?-THhG@m9bP0E~UWHpz=1}aT*AwE-e+fST@@zd|i&&+pQXnzGqbb@)ZBP zxBHkS4Cv52JUq(1t)xKX;656i<9D`<-PkY>|F#ZdZFeb{9t*fQ;v$!W;ljpJk;#)O^wIK7&9Bugm}&Q(e%e!)x*3MPeprgg z=DEo7I>PAmka`Kr3vA-!K8Wm{JBjSUrX}|T&s1V!5eP}wMSV&0v8RT-io#r+kO?GC zQj|lK`9+MUgEoSsThti~3=5Y5u{HFMPP7(Gf|Zk!wof^s)WB$W=X~7u3PRG(>NhCr zJhF@7I0g7jz)DVRZ5|GcyFs`as4SA%Yet&Q?DS3I_%@om3 zaOrQJSJzs=$JCYk9Gm62q{GkE6byVbO9W;I0C^34YYTI8Ajcxa8eVmEPl}w6Qy#L$ z2QZHo@cdZqMrdg2ntZPDghG=lw`V#EGeqG*(0IR@h6k&%&%XnVE( z1F7(C#G4ZFl4FUWSA{@8r)M!>j@X{4 z-s5z?SLIQ?OGsFls!FI%Sz+yGe&cU-s{B@fY5?;2EO9#`o}njSxgp=wp`wDF%^kB` z{3$|BKXGxYoL9d=zc{^-odiKD^h%FCmOpxl6dN@y8I)|tj~wsU_*iC0U({l!L|Ee| z5;fF;%t`c>Daaj;M51e6OL)e9a#od5WIxZqC%HKR zu^9nA!%RO0H6Nv|6^sOxIYr=kAplU<{rl6XGxKxjqwKG8(M*UIg3Dt>ig*2;R#; zY>o}y(1OU)&|#@m&vuR9_*-atU$?rvrD7;Qd&XF`EkHfXmXBL}cDZtf{oa=Kho^8B z!!U?$KC;UZ%f(wd3}!U2_ri5r$40DwI4XukYreDt4Um1ja;8h`dyxybu#P*mcEcOb zbH~+US?A--6eY+F@)+yrBFqCy{N$ghmr>=C!4TN2pkp?DEWe{sB~PMtso*TubFEh^35T_8pr;Se z2`Cac5zTNM8`+f7yA{b{ldH*XfLRs)RBBT%k<*x*57>z;=4n(`#=*Yi%EWH>r^vaqbsv5AX%sPYCM; z<&8F-`E?|$=UrNqzhKQUG9lryI+J}bZ3atKI*J}1&P=GTe+eh*e^{OjU@VMBq1KYk z5ddOumcYS}fj0^I>m|vn_)sQz(n<-uYy^)jf#+&LeIm7(r`xD|6B0jV=@qEBIs>li zjd!Fg=$^sBL2pkxMCGTv&AXc_HA5c*fIrSAgm(}Q(kpUYvL2Hs>D&OgQB-PgLBLo> zGez+-Ar}fA<2SJwXGJ}&n!_gFzwiO*^8i2`0Reh=23+w9GaRXX^CpP?d^TEngU<=C z24W%Qq)LNl%U`8@LM9CU4x84m|99B*vb$WUVs6g4t3e_T#;M+{MJumpu74D;BIN9R zULT#$!kzE&@p$yT?2+(IPK}b{53jmG!wn0Kx_z?4WQl(91{`l}oCS+dut!2qv&wB% zV%@kQu77*tEkqGFfpZqcs$X^o^lBK5ikNu%I!~Z|$b>ABEM$b1hw?Z*yZa3vakV}@zfk%1#xW^Rs38NGB?o_u zGhP@S${G=H@qQBQIJWtJ1XcO80qSc<+AUAe1_h~Nu(7hftF-B2`qOoxb(=kUSED$1 z3_QNp1r`B!g3Vw=pxgF%*&U*3E1|r4i|cv=SeCf7n1D92JOh)ptr)OSS_ei|671d3 zog%B!L2IBYlp*fVh6k-oGYHxc)QGi8CRMvTECC-XERp5EAo!UxLZ&8c=a1b3{)I;4 zHqTcOZNzgif@S<nDS6YvBNK!5!_1WL+_nCXAc#B*q2P@bhhh~ zRp1HlZRbo64AhhZN>kG>&|H}&7lvO6E8$rjxqqSIcrUNu)j6Yu2j82isi{Gf6~vFRh3`d_fl7%Cd=Ai(+NAMr7ut`K_T|~@ zsYx_#59df?6B1^V5jKaN{pE!X8BjYX{R!sGVF^HE5JZ>so-WvAxZIw%Oxl1Hhan>* z3hYYFzt?_La<1&H(^ISAl`r=IA}RXU&khJ-T_9)8Xp8t!sBs}=FSE}IB{s182xg`U{MWDXK z{@qwQknQ7H!>>=ty|ov22X^w$5qPp1$@l9|Nx)vI2_pDVj@C(omFl z0b7Hmd_BYqqWz;k_Q!T~L!5;{s26AmD6~Y8MVw$c9!qoy8=t7pdq!O{FLQS(%qN6NLKFfSwH5>szAB(zlLV0s5UCyV0oz?SB==Kbru#P* zN=lmW4i1ngZ9tUzH7fLNuhTcyZEdm8~7Iv3M(6r?>P^JaTH8}xg8t{ODL=C9MbAikuGcqD# zv3A$nrq7sv$>$*8nufum{MZ|F!hzs{n7+c9dXFTXkinXx!pZS&`p8>~O^mPELgu z==`HoC!+GfhMv-f8gVBvkxn4c!f+w^vQht8Cxpy2F<1TEQv#==<9;m`>fM<({Z*Kc&k^!5fMQRtb66i?o}6aB+rD2l9_hR|EFl-xm!ntNPc~61tX_== zYS8*+SQ!1TRa-WAdhNMm{_h^u2WC==PAc;jN zB&F<_DGrK&>9o&kY?SE>gwX-&+nBEX1qvBX0N*zV}NDj53jA}gG~f=w>8}L75BeZK&X8xzgGK*-K_zeRzF7Y6bd(uQ1jLIu1De{jm&n~m z#(jDz5V;3&2V?(16$chY{bjlIpQQc#>=|CRtt6eazZ84hGG5tdrS-?%upeTnF^o8{ z!SqDs_+13hGqJ6jsKH=%WkY_qiLdPcR9|xJnr<>*eh9n;ON8dw$2-K23omqCs*0XZ_?EH8+Lpm~ z2=hwMpL0yNjieR#1WuWbY;7F?q4T+U2C#3+bgg1+=G7tmqQrI{48AZP19lbr_r{AD z%Wu`JyWB6K=QVCi9+40b_+lQSsL20Eo0xhz?q>{v~NMP?nhW zT=cmcwu@tu5cWH_*^T?$-9H>>^_ZQ+I?%?2Rc=3ok!2 zF>{!)QGo zok^V0@4isoWKtPqVNm2)D~h4_)g0wOEaqWT;3u--?GR#4q8y+Z5bl|)V87EXHQ*HJ z7aRMyZ)){N-O!OO1`BH}kJ#&^n)|oeN&RrI_<|qaHec)N(gKt+Pv69iCrlm zshrvdlg4H_eZtJ}?ge)1`RQ)k`?tS`bno_KFZ99fZgpF5>1p>28K3K$Zux-*-&okF zWfUWS=^%Ejf~~IzhXA3`k>_y&c?rn2t8h{ncVRZGD0cRK9-$GLUOq?z=2Q2Rz$`_= zl6}zm6^Di!21jeM*yh`PcJvWfN+Pc4(BwgZU;we>BtJ&~0*}hUPfo>0O;~Vpa^6wk z0SExyoF84L%=yuDF_h zF@1iUc;&2kWu7jGiFYcTv#~Lo7Bj7ft-4e=n+VVH2_jNg_Mq(>k49{~uDH>TKZL?7 zFkoLn%v6J#a&s#=FJ02Tt!opRQ{zQ1>0%9>oq`@9Y3H2|pPRPI!RI(`yUI8UE$*4x#P$l5ZSzmH+SDm0m1Ldq4?}x z2D{a8M@JySDn20q*gyur;|iw2?V=jmp*9{bT8|6Z#4EUzS4>?I5HKD8IKNi$?P&xr z!!bc@o_2M)`t5F%jgD<$NhsUrdLaWUn5RnZw~BsPtW2ZjB0G+GhghqZ4lmx;c~sxD zx)pfp9y7AN3{&0h{bV0y&klzq!KJm9%N_nFyn_)Rybml|ozy{?Leu zVTFTy6Jc!|<$05kiErd+otsipKXqfQMa9s(1}`9J=;Fdhi@=r)@l~}%$TT|iK{oTZ ziB@#n1N1Ez*Lp@qo|sDrABcRWCq889E-@1-)ToQ_CNMhtPfhJuX`<5)$q;35i9*Ge z_iLXV_>P44F%i2x!}5hKHM;z%4_v^j0HRhN31u&xoIIDB#%BCcsx#!UUvujmZo*QI zhx78`W7=TbZ9=<)d#uiNj~@@JDX~_;f69miUmM-buXqzMjd9J`XYM-hyhI2hFzm)N zV_a>pH_oSB&^@Kl>A=7ckjE|tx@VV-3G1hc$CD^eJ`klFg~V-awoAGJ0UAIdjSEVA z(Ukhc#P;*i4zpcvr-s`?@gn(?4wpZqz_0e@&&Gy#_CzQrm^utVEwq2Cg0^o+N(yYC zprO6dv#Ljro(ZP+>>rxmG!w{z&ojFp#7Pk`tA}_;LR4Unmb)w6v*B|U@8w#Oz~@Ee z8=hf~VCeNR^vq*DT%OAlD!j3=bUM$V)WxSjtEH@AwDhez#q+`JluV@$)IS{U_?+Xl zQG-S3Tv}bM<98RH)<5#`IYloBxBvoB8Dx)6T)=l*+EnHxL>L`gPN>E#9B>_eBQcki zF?PLr_OiE6zd^G2&~y^Mu`Xt8i@neM^sIQX@zFUyJSqtvJv^XP^X0QNwkk)u`w^2_ zp`o(=aV%9e;1ladT=XK+Ll}pa8p0WpViA(NFd_HeftORIeqcRf`U18Y=88_&ZDm4t z<*6&y?hq8N|Or0bXYsknqL~yH~NXrk|OzG){jT1RrWtls>iI~4a;1t8Mb8%GZUo#4o@}f zCMNj1ypSdC&w=O8tB!r8qt6l>o4&78|B^aJbHLb=&m-%Li^lzto?#cTI=7eMu#Rz) zBc8-(*deICW3yBSyu{R5{kx!yZx6QfYd>U~zFe3V=Jxf;Vynqf5fOt`zQ>yrk;f3V z?oB{MXMpy4Y?fLSPVYWQMh$y;dPY26fM10*K` z0@9Q;A(86V9Vr`=&E2<#3f=2pKIt--A7UBfku^lPeax5O`gSc{y6@!W zEyBF=nss1{YVvRekD>6KG&VBZW9hRkqnPNfV*L*^JoK=1ey3aW`zJ*^%d!2#FX=HH zm-J$yz$Y?DfozxsS+>LV{c(c-Kt0kY)hyP^;|-(?DA2%nf<$HH0vV4fy#Q+w?VaVr z+C(4_IC2vEUC8~@TK(Vz)f@bG>(S@U%x1x1VN*ixBXVBK$Jn3YH?JCP6P1~Ms$1wi zFj@Y##%5)6uD!-<@$qj6QP?57^3AD($aWQLV7XH}+t)84`92;XVI-0>nhUo%0fccj zL$rE3iwM4a^k2D%KfS(J*T`VzAEJl< zg^&3AbAJ9N9mrnouZr&ZqL;U_;Lgs@H%wdJkCGqov+4k??Md5B#0D71a0%>SB@sSu zmN02)X+uLpeSQ5Zt_OBx;6(ly4A^&)4F?|>xp3V`MvU>Vxymhm2896~i6?C%Ab<0P z)O-+(**k6Ug}MH=Gk?wU+I$RyvQlAJuQL6;YF4MP2Vmoyk{i8RFlThxd^p>kzx@~N@FQ?s5 z?};R`-Lxc0!m|`?xy36dB7fg;+xuyGtjrGKp#*%7dx)AsyP&(0b3epbUedFy{2>pw z4LyUb!1wm|2S00q1cm}^uIc;RhP=`S4b!&7z`xCzaRym{AH=#0GF+z}EWlteCBN65 zXIswtXRLsEZ7`USd1Nh(ruOnTw@ds*zCC6LZ2<9@57GkrIK{4v-#ebac?VSTSnM4VaSi6f6DXSR!`)YLfxIzaX4InswGLZZBHgPf^JUU#t|Ht`+RzXkv z0-)~FI$wjY;Uy()FV!mwKmhwO7NWg{QOt0 zlb`yOF?RdgyLa!tIWh>@B8RZ_e1_m-92xJu{P6 z`>iiODaC%$7R2g4$oTg97_;!>l&&fehX>#KF~gqXyC7hx0f>puN5I=2+%U=&??LGd6DE@6J@|M(FU{FMazQ$^c?hCXEX~YGL6>Zs8*~V59ijcfr*( zkLM(oOhrNAP0HRK3DQRnK_NmnZ#Jw};m}-0u~AVI`EZviI8Znqn>s|UzJ|TG$k+i| z@eci%SCNs@Z%Ca%aoodewNno8kYS;r0_Q`)XBWdHcgja>UHc$@A07xMd_K~Skc94~ z1$|7m17HZG{syCakC!Id1gR|YHPZjR`+LUnH#hzdGX58(fAu7rqwlrD~7{iobzjuaVC|aAgd}BTA{|C6cak2ma literal 0 HcmV?d00001 diff --git a/images/ch3-pkg-var-decl-02.ditaa.txt b/images/ch3-pkg-var-decl-02.ditaa.txt new file mode 100644 index 0000000..90b37e8 --- /dev/null +++ b/images/ch3-pkg-var-decl-02.ditaa.txt @@ -0,0 +1,37 @@ + var num [2]int + ++----------+ +| | +| stack | +| cRED | ++----------+ +----------------+ +--------------------+ +| cAAA | | cGRE | | cPNK | +| unused | | var num [2]int | -=------------> | unsafe.Sizeof(num) | +| | | | | | ++----------+ +----------------+ +--------------------+ +| cAAA | | | +| heap | | | +| | | | ++----------+ | | +| cBLU | | | +| data | : | +| | v | ++----------+ +-------+--------------+---+------+-----+ | +| | | | | | | | | +|pkg·num[1]| <------=-- | DATA | ·num+8(SB) | / | 8, | $0 | | +| cBLU | | cBLU | cYEL | | cRED |cRED | | ++----------+ +-------+--------------+---+------+-----+ | +| | | | | | | | | +|pkg·num[0]| <------=-- | DATA | ·num+0(SB) | / | 8, | $0 | | +| cBLU | | cBLU | cYEL | | cRED |cRED | | ++----------+ <--+ +-------+--------------+---+------+-----+ | +| cBLU | | | +| data | +----------------=-+pkg·num : +| | | v ++----------+ +-------+------+-------+-----------------------+--------+ +| cYEL | | | | | | | +| text | | GLOBL | ·num | (SB), | NOPTR, | $16 | +| | | cBLU | cYEL | cYEL | cPNK | cRED | ++----------+ <--+ +-------+------+-------+-----------------------+--------+ + | | + +------------------------=-+SB diff --git a/images/ch3-pkg-var-decl-03.ditaa.png b/images/ch3-pkg-var-decl-03.ditaa.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e613d43ce4bbe22dcd117148036317b9a262e0 GIT binary patch literal 27530 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 CDeKMv literal 0 HcmV?d00001 diff --git a/images/ch3-pkg-var-decl-03.ditaa.txt b/images/ch3-pkg-var-decl-03.ditaa.txt new file mode 100644 index 0000000..5d1086d --- /dev/null +++ b/images/ch3-pkg-var-decl-03.ditaa.txt @@ -0,0 +1,37 @@ + var pt image.Point + ++----------+ +| | +| stack | +--------------------+ +-------------------+ +| cRED | | cGRE | | cPNK | ++----------+ | var pt image.Point | -=--------> | unsafe.Sizeof(pt) | +| cAAA | | | | | +| unused | +--------------------+ +-------------------+ +| | | | ++----------+ | | +| cAAA | | +=-unsafe.Offsetof(pt.Y) | +| heap | | +=-unsafe.Offsetof(pt.X) | +| | | | | ++----------+ | | unsafe.Sizeof(pt.Y) | +| cBLU | | | unsafe.Sizeof(pt.X) | +| data | : | | | +| | v v v | ++----------+ +-------+--------------+---+------+-----+ | +| | | | | | | | | +| pkg·pt.Y | <------=-- | DATA | ·pt+8(SB) | / | 8, | $0 | | +| cBLU | | cBLU | cYEL | | cRED |cRED | | ++----------+ +-------+--------------+---+------+-----+ | +| | | | | | | | | +| pkg·pt.X | <------=-- | DATA | ·pt+0(SB) | / | 8, | $0 | | +| cBLU | | cBLU | cYEL | | cRED |cRED | | ++----------+ <--+ +-------+--------------+---+------+-----+ | +| cBLU | | | +| data | +----------------=-+ : +| | pkg·pt | v ++----------+ +-------+------+-------+-----------------------+--------+ +| cYEL | | | | | | | +| text | | GLOBL | ·pt | (SB), | NOPTR, | $16 | +| | | cBLU | cYEL | cYEL | cPNK | cRED | ++----------+ <--+ +-------+------+-------+-----------------------+--------+ + | | + +------------------------=-+SB diff --git a/images/ch6-controller-logic-dao-storage.uml.png b/images/ch6-controller-logic-dao-storage.uml.png new file mode 100644 index 0000000000000000000000000000000000000000..fb24780ad85f6b1df8f41c91c490312a0c2cbe09 GIT binary patch literal 39428 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