From 463a190a557845447c3a22f403b27caeca6b0b9b Mon Sep 17 00:00:00 2001
From: Michael R Sweet )Vjx3S0Bz`>N?~x}uMqtUS
zdBo(xv0Hbza>~a!+PD5Q%xp5ec(x;JlRv+3efIS1+r#(jK7M_U=GouhxRPIdsU)lv
z#(z=Gvmb#y<%b|n(X7PWf This chapter shows additional ways to use the Mini-XML
library in your programs. This chapter describes how to write programs that use Mini-XML to
+access data in an XML file. Mini-XML provides the following
+functionality: Mini-XML doesn't do validation or other types of processing
+on the data based upon schema files or other sources of
+definition information, nor does it support character entities
+other than those required by the XML specification. This chapter describes how to write programs that use
-Mini-XML to access data in an XML file. New nodes can be created using the mxmlNewElement(), mxmlNewInteger(), mxmlNewOpaque(), mxmlNewReal(), mxmlNewText() mxmlNewTextf() mxmlNewXML() functions. Only
-elements can have child nodes, and the top node must be an
-element, usually <?xml version="1.0"?>. Each node has a user_data member which allows you to
-associate application-specific data with each node as needed. Each node also has a user_data member which allows you
+to associate application-specific data with each node as needed. Node also have pointers for the node above (parent),
-below (child), to the left (prev), and to the
-right (next) of the current node. If you have an XML
-file like the following: New nodes are created using the mxmlNewElement, mxmlNewInteger, mxmlNewOpaque, mxmlNewReal, mxmlNewText mxmlNewTextf mxmlNewXML functions. Only
+elements can have child nodes, and the top node must be an element,
+usually the <?xml version="1.0"?> node created by
+mxmlNewXML(). Nodes have pointers to the node above (parent), below
+(child), left (prev), and right (next)
+of the current node. If you have an XML file like the following:6ciK{6%`g178e&67#J8C85tTH8XFrM
z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7
zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?
zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy
zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj
zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T
za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD
zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}
zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(
zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p
zxVX5vxw*Q!y1To(yu7@qDB6{5I*9?(4?1Dvpjzml1k8G)
zs#Rh~Hpo>WA+CBQ697a3+>#uIvtbq>hq(sFA#=T6mtqRR>O{heH59wj5;&=b(*??6
zltZ(Q1sbhD2B5c8IM)h
>5Zi`=ETpQyC5bs
zFRf`=6I(&CYsT_**((cNQ`6UP3*VTZ<($8LpX<)OPEl+3A3K
3 - More Mini-XML
-Programming Techniques
+More Mini-XML
+Programming Techniques
2 - Getting Started with
-Mini-XML
+Getting Started
+with Mini-XML
+
+
+
+
+
+The Basics
@@ -43,24 +73,64 @@ defines the node type (element, integer, opaque, real, or text)
which determines which value you want to look at in the value union.
+
+
+Value
+ Type
+ Node member
+
+
+Custom
+ void *
+ node->value.custom.data
+
+
+Element
+ char *
+ node->value.element.name
+
+
+Integer
+ int
+ node->value.integer
+
+
+Opaque (string)
+ char *
+ node->value.opaque
+
+
+Real
+ double
+ node->value.real
+
+
+Text
+ char *
+ node->value.text.string
+
<?xml version="1.0"?>
@@ -99,9 +169,9 @@ memory:
Once you are done with the XML data, use the mxmlDelete() -function to recursively free the memory that is used for a -particular node or the entire tree:
+href='#mxmlDelete'>mxmlDelete function to recursively +free the memory that is used for a particular node or the entire +tree:mxmlDelete(tree); @@ -184,7 +254,7 @@ processed just like one loaded from disk or a string.Loading XML
You load an XML file using the mxmlLoadFile() +href='#mxmlLoadFile'>mxmlLoadFile function:
@@ -221,7 +291,7 @@ values. Other standard callbacks include MXML_OPAQUE_CALLBACK, and MXML_REAL_CALLBACK. -The mxmlLoadString() +
The mxmlLoadString function loads XML node trees from a string:
@@ -245,7 +315,7 @@ is NULL.Saving XML
You save an XML file using the mxmlSaveFile() function:
+href='#mxmlSaveFile'>mxmlSaveFile function:FILE *fp; @@ -272,8 +342,8 @@ uses the MXML_NO_CALLBACK constant to specify that no special whitespace handling is required.The mxmlSaveAllocString(), -and mxmlSaveString() +href='#mxmlSaveAllocString'>mxmlSaveAllocString, +and mxmlSaveString functions save XML node trees to strings:
@@ -290,7 +360,7 @@ functions save XML node trees to strings:The first and last arguments are the same as used for -mxmlSaveFile(). The mxmlSaveString() function +mxmlSaveFile(). The mxmlSaveString function takes pointer and size arguments for saving the XML document to a fixed-size buffer, while mxmlSaveAllocString() returns a string buffer that was allocated using @@ -317,9 +387,9 @@ overrides the default wrap margin:
Finding and Iterating Nodes
The mxmlWalkPrev() +href='#mxmlWalkPrev'>mxmlWalkPrev and mxmlWalkNext()functions +href='#mxmlWalkNext'>mxmlWalkNextfunctions can be used to iterate through the XML node tree:
@@ -333,7 +403,7 @@ can be used to iterate through the XML node tree:In addition, you can find a named element/node using the mxmlFindElement() +href='#mxmlFindElement'>mxmlFindElement function:
diff --git a/doc/chapters.xcf.gz b/doc/chapters.xcf.gz new file mode 100644 index 0000000000000000000000000000000000000000..e12a94245bb8769ab24f5850bc6d04d4e8ba1f54 GIT binary patch literal 6565 zcmZ8@cQhPM^zVw^Ye=w&7G+sASUozc_uhN--h$oeU38*HNzpq?Hc^7;o#-K~vV=tl zp5ObvKi+$D&Yk(pna_M?&OP_e9p)qg!2fR8t)_&**#n)$Z=rc=-54~FZ>ty zUv$_gd1KRMMminejQM89M-;Dxm5iSK=&`=L|2O&%{X-0W+0@m1^XDq(!tm7a-2vo@ zedB)JQY5ZFOKcs1W^sV9{p^VsBfZL~9PfqTt*6umiOsm%&$hCNh@c>q3C>+@J^Q~G zQ0JfnRBG%T1H}0Ht)OYU&&+%P@N~Rb6Ugu)u*C~yvED40Vc6~#aC04SAl82X5_x5^ zI#2IaH05%SP!Sl#C$w0;V9Fg2y(HHr-J9lP0DF0$4^4q3kB^h#=IaNgvhxj{)qd1g zy%C!D2uu#3@L{}om|~GI>-gE_b(G*PZRryq{*#hp30d&KVO1($A^m)-=g}fXp2vp@ z`_qvs^>V)m@~;E$Ry_*E2ElGeOHb}q|9!$77{&ULGDy~=;>AQ$uheV59V=L_b-uR; zMr@1b@$?TG-3*wEd6{Xed@T`Q=&EZDsJIWabe}+t<@ueCq!#aJfXjzkTRjh5OqM#4 zW35+Rnhf42k<#|_o@*Voesl9zU8#nJdm- e^j!<}hw=44muHq& zmyXF(=vN5FXZkSwe@>TX$ZhO4R0d2!2eK1#O*zN7KQqpO7+m5hs`Mc|&-EU5c zH+{D Y5M*UvW-D$6CBC&8mpp}I2M4y z5>E6 Uk=+kiIF6dEjEQ*c{YQ#)UIaozcYSXI36J^zrKz zsEAKh)%{#nK2cRpk-(0V(2Q}xa8*%l%S1krKHk3%355yJf! IQ&}?qo z>u`M!P65#~oQAwwnDY+ m!XeSb|(Db{h`du?>xwkv={G)TR>>rf5S8w3?fb9LBP4rP$;A)7luL*8a z;Lk{c^_yQACE>PXj7W9U?59$Hulh=iqbl{>@#d%zDS|y4BEsi~ePhYCT*A=vmE-Wr zPs-E?Om^t67S4*}cX3hy1-h4_tmJJ^Fe!SV%udcwdu$aLlpfRX&t5(=Ho37Y;;eXdgJy_%sBMlgY)$C2WBl| zxQ)ine}ig1DddIf=N~te3f(y+YLd>BG?c2dK__*2;gM1MPO-%6y?KU>c~cA~92&x? zt|v*&{uQ3_n{eL>S<>$Up?rlTIw-bRR1Dax2c{C#%F@~2M)E|i$>gf0=$aD%m=VQf zuF*Z|s7B?;^lZQ^vqa&SrWDWi(&F4jlwY!yhx}~}ywaiq?At(|?(EOeOKnq#i-~*U zq~1G4N>=CFunwai84%$WxK<#O+1bFt2V)VXFp*zip@Zb!2K=HKb-F$%Rf!~?nC~lf z5iI^_S8u;m+b-nlnOadHTY2WkwG5q7q8Y2MDSTbi%-zFOcE=D~)%S8rCh@pzPlM*D zdhadGZBF@%#5?sV*2FulseKxRye_s9T8F0ECBED)QADXTzQOkm_A!f-t@-?g?)FE= zP;eEN4FV1!<_YXi77l>QZfq#y^8&*c<>BxIG9pG*{C%<}U~-VorcEq7h71C wQ7>7%}T=7NhFa6m=e5kXZ{;vt5)MRGHFe_LlSZbdDp!oCGNuj*+`18Z2MDYRC zvRis5Sy;KSk7P?UpT;9_4@e}$x9M}?>-YE|Wl;a1WJXw0qh`1_bFUXAgL+~2nLwsK z69Y|iXz#61lPe^Q?FFZ^h3RTO^HJ|+x3 l9tLvgAA(c7;$J9hx}VDf+Vl2)jd6$zlXLH1Gv>Nl_55%w7}5$!L@V=q z{5W*~iE|$d$7lTa6)8-XDj|NnQHd>$0!JR#z_IYPAy?7xdWpRN??yPMT(s_#NmAE3 z9}+CtK@&BX_!L^h9OQoWmTU_Ex{O=>&_|N)K1*y5LTQ>9tJ0|W@u56__*7=drZv_~ zC>cG~P~ex})dkZ&%1D@9QkBp5zfVxrNA-%ZOwWUxGwRa^?~Gs~u`Piec&;hix}vIn zs;?(BmF5+M{&`4b+Wx3v{@u(C5{h^vp;vFWVpn2&Ey6yb8o^H-cakJKHUyrAR(g#z zgy;kF4uy6bV>&Q3DWHRIpi>{sS}5;fS}4gwIAm!|`6MQCL)0lFsBTG={J5?kEB)3# zw@-v{cNLZ&a9=-Cy3{= kY9{09E zZw98PLt?*=@PTSoMM@BrXTt5$cX-7*{aS+`WH0_&bAKA6dXaV6*uD0~fyZ9ga{>Ji zFZ9mq5Rd+SD^q~v?~awD@uvgJ>w#g8Ga8<6KmBW70X`?~P&C10YC_$R6#ka5eSTt| z3&6aAwEo-msN+Iq!dN*+8TUV9{#6SmI;LO+rWXPc@8FOxBvmCMojAslE{&zr)^U|Z z!{^$-pNFO2kP>87l3YIN2Q1&B{dInoewD9)69ZobdVhq&0a9Ydru}S(E8&!rUuYtS z%Vky&S3!U$TCHt0eQ&008!(g<>nv?_@OtO#iYxXjk+;^kTS< b4vX(e z4t#-;(dUHjA?z1_Z;;`ON$mM}N5ho?YsQXd{g^ }YPv}2imPxd%1?kIscO( Z;BQv*#h-w@<7y@EY;Gs)p!I>!b*Zjvd z{kp<%8r>HOsrh)0gET2@o$RC_cC3&rhgTB5v;gfDXN|{mH9j|wct8XOf^(uV?B)ap z%i6D+bRO5U8OwKAy2%gpruxTCb2l?fLey)y!3sTPEd`ftW6x2KQWA+{j2UcL-}k9! z;sNQW0eZH>YK3;QOZ8>p@HaIfBWjp`VV@1s>~hH=DKa;gMinYs%g=IMo&L=_(HkUA zEYnasTHOT|8kB$11TX%hOzCV{=N~OI8Liu{k#=q@JJdLqNbqgR|MSyB1sdyW3wPCI z=nL!b|FM5%JEyeJ %vaIyO2l>?&1{Dgl}ZQv#ySB(WYsA2co zo`qvwu`1chvLq&k{_#a`>Za0AUHzA) bb!Z^->>L+)$M{QEc~BKv*|KmTM$DBRaU86#iq6k1duZ`b0s z8^%aTLx_1kJ)Bpv19^H@(Wo`Zf;4;TM~q)f!G LblnNN8%+qcB#q{!y}o3+ImQIaLsZTDtXY@sld?RK-#xwS3m^IF4ezlo81FFK)r zVPHBTk1PLE^g5 toaqeIq KGo-Ln~$4r#9yGKYa&}MIc z2v_Hq-5n(*1w*`qrq=4*_=77FE`qZEfYxlvD^?gn$V!~b??j(UrLkF~tw)GMKI^7g zeIGilRhC8+(Vg)?J3fXG){CIV>8(b#l@TpPxu--G$6Px*;Z0MP;X+^)Jg?2iJwIwz zghGn66)nekC45yG>bIzqA-(CwexE+mWrp(%xzW4)5@kGaE{$IB1r^cJhX98XC5nF$ zmRfy32*I+HPWe59sPc=yTM5P C3G7ub8XpXZGTgFbT$c}fk#*p zC&tgfCBb &O;B2O?@*gs#^(t$ zMy8;I87os( {@iAZiHIo;B wu+`EHbs*gGS9$xLvPEk_J>xm3 zx?G2%TBBcFzNn63;Hxi>I*vGk_nA7bPuI&VLhr6_Xcn>eG9M?gS+$z(v-p`;lyv>I zH8dM7mIe rb(` zymK<2RTEUu(dBm{^6oMhA=+yBQEv6jiO@SVH;*rV=8e)SZvl=EPXVD3AYR{x9!Ul8 z;n}4CVNXIHKLiR^e{D-mP<$tjCSc3p2isnt4jzk^QfBFjJZaQ?t@t~eIQSWm2D?FP zApAU{&D#CuZyQ)K(ryE3Y242Ds+N0f^w-KCtrKc&atx- Kauj``G^}W9 z+x7)3dNr#;O@#9IbD=YJcQe{HOT+;ZOZAIuxB$4*$yk=BSy{%QB{-~aSY%AxUSX_m(%B5UK&2?Td;*mNdnu?$>|YehP 00gA z`p=c?kfg58XmZxR<3lHPKzILXZfUJ>Cl3O<+z+HOCOz!nH#beLRPfDk*Fz^X#KH@1 zH1>OPhodU$W6V(5CQ+w)FCf9Z-*6j1gBGu&$J2>T9a;z5;0%aIGR~oJ>gXP+@1er= z)h|bcsXKc~eZyF*^;m|od}engs)~wBJUD$K@M*5td*(DaN1?l+5~Z*M$x~9ElVhR} zQscUF8p1IL)hR3{WHrC8b;Fsy#6 L;6h6B6k7Bj8`?eMirhb=gD31PrcnZ=Ay z@ IJ@S9}b`eHFYRQ)WOKmv>KmBm3 zjs{5b<>!V&f{9d}gzk7CWBVb2VO!xMW!Ho8xGtpXEad< Nwctx zU>OiB#UbUA$5x+=q7wPP;Txci)6@E)Litl$RYH0_SZr45GY*&k2TE4{5HbY|)Zmcv z$ivkqOQ}TuKWK}eZF-?i>SiECduq~ePdR!yHHvSgu5Zy=dF8I*)5SX=EO<;4s&nA3 zTobH!ZnZ|96al`ir8sd!dS}RSz`-oBql7&C;k6k&QWn6iQ7Y?78-jDnZzSB>V+9Uw zoS&g%b-lC66`j9vTq&w8*%WyRP3oQET0a|iRfZvmnCAN{(-BroMiZ6q5lveAuby`! zh%O5l6 pY`l9 ;hp(z#PRR|Nfh zl3i=Ko;!kr-IDv56z%dl=zzGpc>PhFm|~yww3F#}+xTWm7FGMYLtMLs`sr)Qi$cG} zkNW2AtKS6y1uoAbv)=ov3uQYm>vvXzv(xanR_Vx|NAzKx$D|<9RNum4*X3PgYkj&$ zPps_mH!jLHEr-dz9GSenCt5Le3u-0_j{MsFc&+ fXLM6K%_cfnrT>Nv$$xsB zaH-eROqEQF?hd9K3=>)_BaGD)@P?I9lN8%r;b4EikzWH6Iq3?d_2klgdT%3&d%$g? zi!2~AGHj^Rvoac4RsU ;%53ydlfyidvuHl{( z%QX=6*l*loqd9T>kYS{2Aty3#f;eDml+Yv_I~;wsJVxaC2~&KKB21o&gc@CfBgwJI zi}WPC&}guSNmCydWJSL9_19z49>L_l6@q0V86e+YjfUo>H9am6CmYrseEGKjnc#?- z3q7Bg(EXeQ_8ClH;CV1Ux0vms&67(U$6l);L`rT{uhvDWMud`0e5=!Neww?4uyx zx-UH&R6huN yr5GSC#&wD?0s{A+X}9aXgt#JvW~xLk}}xub-CmSui1-;Mvq2V z|HB7=F~?rxI%$g*ql8scNX2eQ;E=NhQz0u(a$>{;U?r6QNWFq^F4;PsA%TRRYTnwg z!k23!ZHw>Ad@%u^>fItz4tTAs@2}m&X@+`@F0%c&DkCh9KEAT{i=+B!{Hs^ya;~d> zRe_sX{YD2BH!W*|g`_{xioPU;rBJ-WMGN7~Jj <^QAr}| 6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@ dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r_{{R2~EC2ui04xD40YC`;0RIUbNU)&6g9sBUObCwGraohu Giuz( zv7^V2AVZ2ANwTC#k_;qlNRgw-m_D0$fm=wkrp=o;a~d>8<)qJ_K!XY$O0=la15}LZ zT*`DIsf$OWN}Wozs#U2BNHyI`a2}7VV8e Y#j*%2U={5 ze4JCOwyC6aSa2I$Q#G`@^C7529Vn`;FqQ17v40!w#hYNh7Hw77D?X5#@aK0=Fc;W5 zaFyx*Y(U>mHi5k9azOsCnO;u;_w!Y=U|-^z26ijx;~Ncwz0Pkf*sI9j50nFT=fVwx zT?PCVSkfifq4C@o*i~lWgCNZ`T?x;PfSolEX4nxw*d_4X0@&fB;fNWbgB=9VQGi`N zB$6oLbUHj&1a`=@IN}u8HS(M&*r{RTh_YZe!EZ8Pm&}hOdNUm~zri!zI7qh0BXj1I zrT{+E#S*2B67(~jj)x_JT?Shs*}!+xbrM&Q 2d~Q@p zo`7z4NS_(?K`2Lu1gdCGW*oXvAOA4v=tqStx~PJadIU{D!DTAa0(vZGDOdLFv4E!| zZLko0s1}6)3;uH8Qjco)00T%59=1x96*{e=>#tj`!WbaH7Aqeh*v->~vCP`l1X`me zv`PxiRvT0b!bV$LE^U}#EuSW|k&Cv`4%0@b-x9h(8!wW}m^xsjEAL5QsN?QH=6p5p zzE$yH4s)dND==JI@zoEt18ej_7@~}$T0ObU@d5$~XOx1MH%VHp6yn^g6F-a8+3cnW z =-Ti5WzkU_k>6Sb)M1X<#x9xoZ)s z^P55B84nC$#Sl-PUsPNg1*kE1j>v8?AR%)fXdT!G*u{7l5ZEDXwp+JM_l#?JGAGO1 zZFS6C{x!epGMzVglhtl AjJZD5zh^Hd>_&UB)HmdbSQw2VDfD`0m_U `uJiIHk~~(lobSr z*xk)OTc%h#k0BiZRYE0LT9hCNI6Of0QezIo T zbkU16>4%}l7^OZ)5RErvqo;Q0v8TzASz}lfIH-2VeZgRCwXtI#E0#yj6mgJ&%fVt| zxH$x9fCpa)L?&1fjB0@69PXe;J=}4QZ(O4ouh7IG(m(_dh*5DhWJ)#?HUTpn!&2Z# z1Pc*@qv@V=M$@1|f0$6%Oo$%%=Fm z4aK4(LA=!}CX}w4i$Mf231xzUTrpD%2qri+bB?lQ$^rw?*P#?pxphv*9OwQ#6c7Fp zvqN>ko{B1jqc(BKGC^)pvcSPl5C8;RSjrWI$^mY+ga$yBBL-Ee!8rgms5ea%NfLn8 zbOKQpNU1J_hzttjrh|?Lwgm!uV@@7Y`V&k{2Ok)?iv?!I98=KLB>A&jWPUN7R{V4% zl9&!NK(mbLRN|;0!OwJHXPF9Mhmla#$OHT_9Ywgt4%6vJ3$vP$QFzWZ2oNc6`bpLU z$c{Oq_|5Ie*46_gbvo5?&19y-h`Kt7Ireyt! s2lb~?Lw?NlVtj6A_(tUTrj9TatrBt%6E z?@$yOk}Q%bMGGImKtvaGAOZ<2fB_X4fe*gmh+*u5Tzw^!{!9Br8-N0;433h(vL=;* z?YWsZ&}cxWn!t-zeL#qJZp<@~JSkrM!$-d|X`ro{wO^@WAW&e|7tXwBn$%;?#iB4l zqRA`-w1KCUo<|wRsVi*` oep)@-kaQIN(NSXm40~J|(KL}X}L FMD3L )(ZDc z6rQdZbV9A8(nS=QIj>aS vjx{*AS=_Ek6PqQ0MNqn$zTjiEX10)78_NP_ zT{JZsYph-;1jfHgfFC%I@m%E8ST8&Xs)7EMf@}1gAosWetPwKsOeF#J-yg^!K+h-D z7G&?4ibBfLuaHNuzf7jqV5WR<5Bl504!V*=k>)8HzzzO~6ZN1_o}y`yf-2c}fH)Bh ztmh~sV|;{i0#^fpOW_YrHYvU4aeRUY8psu&Few<+XNQ6Svp0fV5e`FgD7 l04VX0S4RN_KZsk#^CntoBM6XV*kKO+Wfd%7B67kG+V*XrASeAWU16aF z^fMhOC~t){9mFt!VW9xzg&lk#Z~hsuhsEJtZXtTS(T3kv3)sO1aj{a&p$z4gd&MzR zb`b~I;XG7kfXq<}f^iDdu?{x&VdKFZ@}Osd5dq&+8 (}7VIHdnkc54^}0HCP*o@L@{A z9EArOnJ^vOU}1a392R&O*D)Q;M^<#l8!q4)@H8EGKwz=P8Sn5LuEQL?;9m^zMzzt0 zrD0{fu@8cHR7QXuY33SokT!Ld2iVbQuCb8Q0S9%Z3XJs|Xft4Kb!*cR0m3ncwc!kH z1tPQa9MW)8+vr3tKx5Cr{wB-;b4Miw;q@HlI2}bmRuB0l&+%T&F=bhWjl407zmW#m z!H7_0ki3yQ!qJY*feB=_U( v-OTwW7*bxn6wNcaI zP8^9H-9T0u$Q&Bx8XPtq>OfYa!W_2;8W4aT@<3L^SR9l08|?KyWJP_v(UNbGI=@9$ z0$Cf1=@tl3TUpgP(~*#%aX1V{R$Vw9!6+MjIUV;vR)fVH6!07v;Fn~z4cJkBmJtHj z(GFy_lG8zxuJHoc0XSKu4A_x`zmYj|LspVF9hV~<3|Jh%Kvp@)9I#g!e^?x j9eYq$=~x_bXBkXc8(;`k z2oQ^_K?}d3hP>eqpP5xO#~ZTg8Y(g!!a!iF$Q;6F8E;n{B;{Wnpk1Z$2-p!n1eOfb z@sFjkYQ>=qAC`-92^#A;9UVnr r6?u_*byFq;diSM21$kh;m8~~8W+IH9MkY^NPr#skb`g$19H-V zRK^O}(GUK<$reK(C#=A38t|C4fst%62y%iCr^#*&iXGW7msa5c=p`py;BV1|9jP#w zQ~?20DJN3tZwMfkfI8a-t8Z zKm{l=5*3gIwLqVMVh^pFb0!d&Hn **1*+;n EcWap?_S91CUUQ>7@xvaJ31; zaz4j83s3`V5DL@qV@$yh)ldp`Fa&$~Hu<;{ftM-nV-u@XxP; zcXpp-7q$FrLdF1;ZH{JG#R0oT=dzsQVmeQEx5Ux`**cfRZn= zD;WMVDyMt9W1+gE@)W!~7FjVtMH{?E(X=W9FUD&W^|DTCw7fszMwP}B& 6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@ dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r_{{R2~EC2ui04xD40YC`;0RIUbNU)&6g9sBUObCwGraohu Giuz( zv7^V2AVZ2ANwTC#k_;qlNRgw-m_D0$fm=wkrp=o;a~d>8<)qJ_K!XY$O0=la15}LZ zT*`DIsf$OWN}Wozs#U2BNHyI`a2}7VV8e ^R;>S}B9aadr@&QKz!CBs1QbVuFIXOcHw?VXG z1w<~P1I=2XX~m^q4{c4mw(Q%uKi1w2I=AoNyo0CxP5id-<4lVyUrrV|U*^!GOLaa_ zy7lWpsk_F`y?aRQ|GfT-AD 0pf|AS)tP^ zD7J{#Dxd-4;*3@SqTM`A(5T}`O`ruHPOGG_BZDcx_~Vbcv|+-KznRcRE=NX5(=cs( z$YgOFv@wj7!l?tsl@EfU4wng;^A(tAV#I?v&XJPln ZK9W-hnfHGbPsL`^^OZ5}s%(C^NC(a2W%rkTgyX@)E-i^T}I4~d$ z9}F`gceK;^DP3E|R3DhbWCLd%W>eXC?P4}K4Kr;7_Vkuv$O^S1GqjDgb|M1p1U>B` zwxL*b{y|GB>w!DGxoAQ`Clkv9KF7^y!9Zu)szp8Ly2!&njrREgEL`fi3D!(*u*WzW z>zD&n3^Fi-7@l+kG(tL(KJMy?id`1$vCG~d?X=n69PV=KE*9^-`wkZHfC@i6@v$2J zI(5n~FKP4UG7mj>`cB_h_0|^{dG^s^&plk;f1lv?;>SmR`NV~f{_fJRU!3~xhXsH9 zSItj rGN$u(f< XN@IeyDkqO)9q9*WySR=#@FaDv16+X{JY8VI<+I2z%L7^c2 zLX%YtO|v(Gm`#X191z %2pT<68d zFyLmOQDGVV(gf{*!(nS|%M7B%B^kx>DmDTdD!O>blWbrv$QwvDy4FXIfPrj*#7R3G z0Y?nZz!7yzq;R0I2{rJbguasi57e*;G)i)0mAs_!G|5R%esVWS>f8OCw5U_=Ws!}n z;3FgHN}F)3kRYq&K?Ye!j~ud=LF(m5iWJB_3ezWlq#ebMITVb!%#O@7N**_bqi9m4 zM^bvDHLo&9@HA|jVu_e@)Cf+ov@tl)EN5A!$(k{$^DSp&O%UJtmLhJ2i}e1y3mCb= zqI~wnNK3h*Kk=f)oDh;&8u-~>BxEq0NU>S5P}_s5Xp@dLi=xSskcw#1#Ac 0@4syh1SpcOeT^mC9=qnFEE_Wy*kwNB3EG`7DMfSuOu@XRw;LIpv zJ3N*b66c~H3Ph;7x&h#r>LNjP)K))`2MbXIMNAfI0gR~CjO_J7M_nNuQPL4F1e&G> zydhGVqfsBo$)p8bp&Gc-Q4`ojBLxgW6o?a V0bGyUI~`>f#+pldK0)_1Gaa7?*(9d`!`?x)%Sk)rC)yIw_o@5cYXgwUx3Ru zVDT0Bdk5xTg0r_^>os_K4~AZZn>S(QRoHkJ7G8#Zw_)9N*mfV5U5LdtVy~4rYbT~! zik-G%q_ucxFXmZ{XEtM$)!1V 8Q zRXVE492s0e2(@M|x2Tl_;pv_5tPy(>B$jp}G)5Sc5Vuu#Fmzi8R39A|QyP)dcUj^> z>VoOF0OlrP>oi*snG-sRS}b|m%0W*pm4 5Tg*r?twnw0LBr_>HBWv2!uTL#(T0P~|Sy`Q+lWS<8c`3PKlBCY)>9fu9 zgqca1EzI6F#hO_fwp23m{j#L#-%7e nMg%~Y^{{6q$Mwj2_0z{ G5CA(kB0q=# literal 0 HcmV?d00001 diff --git a/doc/hires/2.gif b/doc/hires/2.gif new file mode 100644 index 0000000000000000000000000000000000000000..4db284a5c17a10cac7d79113135956c3ea546cd3 GIT binary patch literal 4054 zcmV;{4=M0RNk%v~VJrbG0q05p000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@ dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r_{{R2~EC2ui04xD40YC`;0RIUbNU)&6g9sBUObCwGraohu Giuz( zv7^V2AVZ2ANwTC#k_;qlNRgw-m_D0$fm=wkrp=o;a~d>8<)qJ_K!XY$O0=la15}LZ zT*`DIsf$OWN}Wozs#U2BNHyI`a2}7VV8e dUyX!gyd1AbvaJprgrUZ`gCpx${yvn8i902rl$h z2s1saUftA`X{z8hypHN19qXF(3|TOWAjz`ZHRDm3O;k2 45k2X41LNA#%plA zI@?9j1r7^+BfCIq*2DgT#gsi6aXH@2i(fAldi341A$XU^zP{0B*^e*Ij>o?L|A=wo zT|a>VXyAcjA%Kf_0@Z=wgAf`;#XbxU^hSgjW+>7Ig;h9^FHmVHB8C&B;^9GbjHu#) z2$WIJi3gnm!HP7phkzURz<7`=!`0~HaS&{x<3Z81@Z*uQA%Mt`1+Ak5l2E?pfG z@cfK32erBTZVmPsHU8FdWK;i|3DL= zBzXqPS%lCO^d*4r2&!mb2yU>D6>diQqZK->BI%_NuF@DFn09&`Al}W>gr}sE)dX6C zu98Bjtd5j|rv8iel}j5Yw5p;BZR8SbcEhxBsI4n*(8e&kGNld}z$W_<80zF{&R5Dt zOB4_0L`RCW*ovhUU;V6_?Ew`80mmoHxYHOt(x}o06eCEMZ3_M1 zFQIfjoU U JLl 0bhojZIfqd%?F`ip2~7^#pP7U4st*Hc`2JZz?C@Mc;|LV+p&yn7 zP&h(9`%OWkhT!rOhkzRQ!(Tt@)W1C$4PVnM;E}ACCypubOk>ayIAHKVQo$fKz;R#& zZ52V!fNz7@$^m1X2g032Zz qm1zV|3U?BOd%iVLk%Ei{!|lZa9EOoA_X`@UbR;^ui2SD#-+v zz==eysUCV8Q4SKPA%uBoA9KK3RZ8Ft9d$#K8KNYHNN`Cev;_gKIMEeK_z@#i2#j`l zz&0vm2v%|=1`MhtVj9py?>NYo8Nr}(K46+pFlYt9JU|+}GlJRNEj!l&W-zitz}NJ^ zJLyPfJhGEWDS5{q$@C5=P2;HSm?N3&$PaP6;2o1CGg9fyP7L0OCIoCQI)473=b6mF zphV~sOnj)25&jva8(54%?j-1s@^B(hDAY$2I*~sF`A`idfD%LULPbU71bMvB1slbX z5#l+dID`~JVc6r4{9%TZ9tZ-NU{f|u;8FnLpc`zW2OVq59tcz-PV>kDPwjJsUasjI zIv6T@P=KE}nW9HZ4bK(m5hr-;G^*8s0;<*&3}Rw6JQeswoEjm@uf9eDaI4Zj }4^8y9{+gvw`BQ=OPpa(1tcbP2dHF5a3bMPBub!Q~pDQ;NaTLK1dA% zfdYhRQQOxdh+zbIqJhfMTRA-liv+o$feu>SH6iGS2a&B~F@@WjTy?ryqJmDUiCrl1 zsVVBvSa(IVfoAmu8f6`?ffx|L#*9|I|7n7Ez|mOvR%ZsnJQ1htiy2S}3Kinz?^QMs zN7ZG6gaR%K7;0$Qb~vKG3Es#I9AVVvE(98zPy-J-TT=<}Kn r!BuCQj!cjJ?&PmTxfF;NygJXHx {$%9KnkuXLHCT2Gdf!|f z_BuwmbUqGpw-Vkwucy3Ru~gG8kb^700TH60g)pM=4Ro|49`>k5JlcT{a71GmwHU=B z=AeZibYQO7g4I&En=B7_0Ta>a;%(013On$iInnxVP7q8g1n?jd 482rvUlz37in1UO37O$hSP6ozfO zHW=Lm6Y~zDTria&trj-LiK7Hvf_&RYRfye;{{fF_XQ`Y8!84N3pz3`OBoA5IGw`7F z1PU2EA%ch!`E&~<59IpcH2DIOfZL}i!4=~+S%+T!ebldO`$z-p0C`R<@uTX_dqq-E z`BK=Sfg1TvwLkKM%$xFr8u5bED!RnZx6+>#^&!n8(gdEqK?*-;;RYtqzylay0TIC9 z338~!GAPHUMy#j_t{YJxs`QRQjQl4JsDd)q H$zaqws-WkBvU4HK*wZ`t zSU@rxaKPJ4<274g5XEiD=I993Gzds}b`buN%sAgB9-zL<$D@ObWWFLh4xP;vypuv; zx-dFrAPx$=1CL~yS2;EyP8+kck7N>7IUPV83g8|1kW7HL8W1xZ`zL$hq)xLzO4;EJ z$>e!+LL5ur9k-B7-r#_*;W61UZmjeLe=ve1Sb`>af+(1RC3qag;2l-qXLeBn-}FZ? z2p6K@9kx(|a1jIyGEh3$77qXq-VqHy*cJ zw1kJeu?IR5552~RLg4@=q9ZIPi2gzm1Nl`U+<*ay2owk)2hF#I{`QC`K>|%RBnD%N zCV>ESz;!TUd7M}hF>noQB5 o7O%m=S6)iJVgici4^%PzrHE3?Oij8DRluv?f+Xkr{yj?^h+Kpn4iv0V~EJ>~MG* zc>oFEWID16k|&LGP$l_5{%aZ;0`~_a vVi{pf(Ftdx49J%vTg$LVg~XJznK;fB1Q!9F9=eT$GH>_B4Y!A ziuFNN&)F0RvS$Rxfs^cUfY)gg2T~ac5kzDuGCF1u3s;_2F_Ht(Zt6J|^`;PY@t#xR zn>EpX^l21McoW@{pF;sJTOpJFNfN)-6l*b{CZUpCk(da|5hBDH(bS+Fu`QkfnGM=O ztlC`9`Y>eNi9rbp&E&yYw{EtnH7pcot&thf^saW$SkWfK!Vr@3b{Hw z5rs*iS^A@u{PjQVDOtTDnAjyO@%eD>13!pGKlbyR4e<~WF%cE9m(P 6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@ dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r_{{R2~EC2ui04xD40YC`;0RIUbNU)&6g9sBUObCwGraohu Giuz( zv7^V2AVZ2ANwTC#k_;qlNRgw-m_D0$fm=wkrp=o;a~d>8<)qJ_K!XY$O0=la15}LZ zT*`DIsf$OWN}Wozs#U2BNHyI`a2}7VV8e &v+D!g4tf$DMJ|k>s&d9BbaZlwRP=V;u h60*`(C1I?Cc_yg#o|J0JAl+YA3+?*NFFbt!bt)d~N8f~zU6`cB%01kG grK^vE1o0d9YbZhQMVB}b=IbWUYE>S#~!yGB^)+?4)eD#BD zw+ 8|-*leHF>~YJqEq6$Kh!@A) zc-O$n{)f*@fOoDZ|C5gzf14|=J&I6JxVwQP p~^-pbD b%LUIx}(UZLd75nJ&Wq2@`(G6$iX|5cg#%1E2i*|1Vj43dH5#ILOzcY48-u6 z7Ocm9W5%#a>BR+E7Hk7yhz9%QQ3)1Ii#9YVSMwIg5h`tEb_^_C8&qSC!$i B6V^|4C4L~h63F3 zhz|_{j3!aSb@Ff*JzU5L038Vec+(quJnAkkcn~iVDv~%H#~*$}3>tbx(U1`1IDWXy z1vuK#kBF`}7DSAvu5*i$euOy=xXdh%g9DekiUi^bgH1z~nd{VYr)T =o|)&s(Zo*3}0&XJsnepSHEhXV!2`jWZh8Ul%a#P zmi2zfAc0%A^GZj}RW{b_#5?b*9R#SL3zdL|B^RYnzH%r5Wl*J^dSciSp@17P!a`$J z^o9?OW3Q9-4+O?>Aq`}fL=hDaJTUuN`zU~+%t=IPM}(#8WQU@I?fy*zp2Gm~^rNG} zypHjRBcJQ6qobA(kDQ1j!0Ql`q8xaTBxJJybzLWu9aY1F!VylyXyQU^b7>$hl#K@n zh6KdB&?JEB1rs#`YHUHkAmG%RqB=maG17!*sp0{A*@+#q)v8d7MGs*>;tf)$fe11X z0R>2a11ShX84_WO@D|G-GEfovR8#}#Srbn1;8uqu@T(OiAQ%_^5Uy&}go*M90>usS zYP8fN>ky7eW>B$XjDg-ENmn3HI1>^aEaRK>19E4ALP1!0rW;tJ#|N3l4O}(Tfk-k} z5ST+cglP;WkXA~YG{}pmH32WkA|IIY2QlV=)^pvMCXAgM{sUO>1T_eP6SE+OG{WJI zdECQ6{J_UN-Z74993vN`U<4hw-~$d^`CUE52|ZU!sX{eH9U5kIk2c`kv_Qk2l2#D| ze%P1}XSzbIWezw}`f2#g0E=)MajBofD{-MB(yMmM2Iiu|Y>+Y5RsjPfk=zbPkQ&z` znSmqVi{zz1V-srN!G!rL0UoGf6Pzyg3X!es#y0!e(U!JOp!HK=AD~(y)3!o-{cCT7 zMA*bGHVMs56cno1*6gN=u3veqc!z~q_j|Ry*)r>sad6*p0im;04e-0P`cA$oIB13y zqfskdHm8121t0#L3^K>l6emuoQ$z5KYv tPnk%xh zmjYy9hDhW>Ka5#NFf74_9mG^?Z_~-5gH?h#=)xW`>IX9d(a3W-Iw!ZLl>@e5orqB* z4r9&LAZ?OnSFxZI_)sA&d;qLO)1-u)vVbGP&dgDKfL5@g$(GNAf?gDx84(WEnGxc@ zEn(ml;vR@D&Ne3m8sy1R!UFaJUyyrnfl^r>2+KX(PsS?*5r^*3N{37&1hCBVH6g^7 znmj)q?E&;S=|>bGMUWixs0NEiJx;O_NFE7UAf->HEM(u5#}DaZb5~Ic>cRW1#GFSr zUbc$1Q2exD<9#fOpNUuG%I2q~9Nx7NFNXfkq0?KRFWrE?iu! q(bK)_5S~XJ4aSjjV77T!D*D-l6 zWe3c04+j$$AK)P3p)_CR49qbFgE0pWG74X%0nC95h=Bk|#T?G?Rad|qB7ztYcpdKW zRf=#Nq#+qjARhVfRlC<4ns6B);DujB4aZ>ym+=7N(GFiVWxW9emoWjh^HpqD8{H-t zB_JN6@KqMJ8V4vCx5pg57gfw5e*Slnh0MVZ4!BdyaTy2zhsPmJEq58^#T@=Xc$GL9 z4 )pd+kp#V$pCLaP09^i~r;Q%%u2d@AmaAFQwWsN1l zKGdK;;Aj$*;|V`kjwf+4;($!*=o8{H4`Yyd@8}_z@(%M@k3``t`7jC9sE G3X!$ z%?OYp(K!9^2oYeABf&oY;0Wx;kQt#u?%;Y7sS%@e3Hx-B2Y^c`a*@oG3lUk47e*Zb zi2w $99a?;&;_kPe2c<;KS>e@ zKm`hTC$~V4N68TyfQoRE4IBBCL4gC6_8{0$l~xH9BhZT<(hFTl6hcro7orGbITQ#` zbq}&+X(<$S^B~gjmP5e?7jijt2^5I%AQ+gJLD38k(gA)66wo9dY%rKW5qYZt3W)g= z%W)md(3n0U1LAQG9R&uMnVFionVi{~p2?X`=@u0r9`(>scX%AK2pVj79sJNy>4t~T zv4__I4;__loY8fz5qHc1JQS5C*MXMA!3p9ae+gw!*Fhe^Q31B78hr;)Lhv9;B^#OW zAXU&&2*6{#Q4O;GfdmiI4=)H%!ihDdp#pz+9JJt4IB=Jj0RucJ9w6vavGX8KfEZfv zA=+tEL+~M_6Bi8dQ6FNFE~N?|at?#?7EWa%N(fXI0A?Se3^^zk32+H;!VmKWRAzS} z?GT+;aRgQcC)F8MRfu78u#iWA0fB&8b^@GQWj}zj417QXTqzO?Py>1Jih%NqWEG#^ zrx{gKPb(sgJIWZ8I3f%{gA*cxL7EmUrXm}#O(e2WN!k?pkbf$Y16rgaC4iz)Y7@hN zh$AuvLz+xTx}^)z56+ZLTgW3Pz>Q>z5PCHvGvSUlQU&GNrooVX&m<6GihOM<5Wmof zHS&4?kahk%f&~m3q?h2OHeyTz(VR)b0=rgx>u>~=VtD_Mhe?6}b5Kr}w-0>~qq}4f z851fFU |%N>11q!04Z< dC&xJCpU_T5OpD$Y*83DQAqMS7Ll5I^mngOkuX~kb^K}+Th|ml8n8t{YklFQ z2I~`Iq#5+Gus>m6n{lNO3ld$l8eUPcAaNGgF-01?5m)pf?DDbkawilknHLKvPa&CE z5lk_!YL&N&E#%Ub>7qhHbdg5HOgy2ENl|P#6s+FXL*3eA+G3=*_AT$)d@STbr6xl( f)TcGk5DyU%6HyVX>Om>75-sr(F(HE;6A%D9XCJwp literal 0 HcmV?d00001 diff --git a/doc/hires/4.gif b/doc/hires/4.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb2b81142d0bdf8f766fd67f8721b5fcff1a4e8d GIT binary patch literal 3389 zcmV-D4Z`wANk%v~VJrbG0q0-<000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@ dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r_{{R2~EC2ui04xD40YC`;0RIUbNU)&6g9sBUObCwGraohu Giuz( zv7^V2AVZ2ANwTC#k_;qlNRgw-m_D0$fm=wkrp=o;a~d>8<)qJ_K!XY$O0=la15}LZ zT*`DIsf$OWN}Wozs#U2BNHyI`a2}7VV8e aeF@%RW$}U*&lrS|gmzyLV9u<0|*Vu~GLy-^i1Td}Y}RNaF^TOII$( z@|}{<3r^pj`i8&Cnt=Xhcg?;0;0fj`??OOy{Aly=-Oj3vt$|ec0^{okTc>in3|HZI z*?t5LrNeiK>Ei-f0v71tNfn?|nG$a`_~3;dA%II|Yv5%eh8OBl86%K=2%>`mrl=xQ zC(5?si!d(K;%hP1Xk&geqITnsFXrguVkZ75q;EkEX(WyK9eF?>N~Tt1j(z+CO_QWO z*&;Lr#YQENN&2|KLe6a|=6+V_w91%hCI=c~fTZc>Vu0W`PZMv}X;l+w@mSC*DcI>} zM=7kSXK1;!VZxvKnb1ZqgT6RS8(Jbt;0A3B( 8L*OkY0AA zkg6(GTJ6 X-$v UO|jaMi}# zvbNEh{y7HYjphue!U# L+LE{J%H8UQS1yDGGIOJ(TqXxT{ z`-OlSn{z%;KTL*>TpzU(eYfiR>D_3yu!A@TjNrgfyOA(Z1|99YQ+c~+ga`j-4v5KZ z{GW9*l?~GiJRtq_)K_o)_1I@m{fXJ&Gz`<3+&JUo3bh0J%NC@=V~z;4lhErpZ_((F zvKMsd%Lo`d|BogVR5{2ez=yYnWPyQ*3S)ctnUQ$#4`e}%0oEYekv360d;vjeN6Geb86ub@ic%Cw2Ha5@XDA?NLCoS*hL;#J z94w4tED8dIQ5kbkU?^Bj;{jTrkIEFnC~?dpAu3ak5=14BJahmzDsu{|0J4NguuKoE za>(G7qB6)x09YESx(&diGF=!8B^if?%7o)<3__zEGlGC(RK^c(+2q+^u#d#x1}>_k z8Y0GZmsko70^dl?aQtG+mo1?(!#H0pMM*=`852iyJEk%HrcBc@vzd^4CN!NU&1ojB zn%0yc-m;0oZE~|{qePO}!dakRlCwg@Jm+-GsZO@A(=(ui-8(TO0Xo%go{|1(0xx!l zPss4%A2F0?Ix(adfiz5Y{TvJw3IadIB@{39BgpqG_fWf#?;rtfXPOF1lb&dFOH|NF z>OMN8C^bbLks>LEHt?y)fl#ITVL<5;V^5fJXIbt6N8fBZn;H1-MQ!3~XMA`mRHRg> zW!b=7oR$scAyq11C?Yr8;fS3+^&>NIg!{hP6liQh4Lpda6eYj|HEd$0Tt$pm!7A1z zlGUteO{-1{bw8vkN`G=q2vx0m)sAF!t8!IbUxVT}Yc_STQHiSQ_=H%i1S)ApZR}W- zs bhomJ=vGh)T;#BnD`zUMas(w( IdSUC6wr(sov3*?@o3L509Y8c zD5N%79L{WjAnUfMOf< g%4Pt;oTBtxCj4@g0%t*dcZ^9g~jhz{(pl!w1 z2qtFYA(3sL7(0SChs2AK28<5iG*Ta4`>s)3(@0G~BDfT=u^)3S#mUmZJE%D}d>zPx z&i#oQNEqdlSi&-@sOULMX&E}GaG+JrNCnPe86aRp%cFcj{wovn4lSWMjaabEG9+0p zFh}_ima&8m#~J31*upZ>J+qyG`v7lLW*;#~;-G6=0+}Ud91{Q{pZk1(Usfg;!Yt0B zO^XN12x4fHuJTf88n*HDc>&a@3_V5w#Z5Q11D8xpHFPU!Q%BhcmKnvrT;10-SjG)t z40UZaQ5k>e;3sbmT>_9%nRQ@5JiO+q1zL(2W6&Ad(T3>^4wD#2z%kn-<$`6h&>nDW zbP<)w#|ny)Y_}m`7nS)21n_8Xaz-E=m5Ie4>pe;o2rw~wxDUV6=mg6cVJhv88g%&* zj}I7f;8J8oWun2dhYOph47f&RIuRg<)9?e;O3WGlCh74K20=JA2us3G_J+!!<9{8$ z_(wfanO|huVkNI#0+>;mM3iOa0mA@0Dl-Ll<~($@Nz6S?P_m;l4!eBWh67URbiYBO zGOB=O)!qGz%6M7pG8dx+$Wa+Hw`}WKTfq$x)8=7@eTh@33^Tsyc3Y1!5S6)v&Cq@{ zSX3s^XMcMM8=#HEAeu{pUmiUYLykxz-tJk M;*Vg#3 zMgD4)Z(8Pu*7=-;{$-^vS?V{|`c|QJ;jsQs6$Su!`@m1l1}ccq@S`RNzzZGs$LK(T zCjLU3;LJVEPnww=Q2q4p3 Y+B~dGw9R8&cb@76{ z0T?&&JT&+kQiT(*l7pT>D_a40K6n>U*A#0pgo80^dqI9kh*_bLDoyAXts)xf7ll_r zMy=r$R(KU>kyE;}g;CKvDiSJSNED`0BUM<2BY}lB@)T+)5?Ns_8u*67Wi6TVh6ms& zPJ=pD$U4fz6EBz)T;(|>7+Ry#f-K+kDBp)vloErmCpnZuQkbJT!gmu5@emO)5f!0* TOp_8T(Go8a6F=oG0RaFzVrx1^ literal 0 HcmV?d00001 diff --git a/doc/hires/5.gif b/doc/hires/5.gif new file mode 100644 index 0000000000000000000000000000000000000000..95bbc68db145c8246e332aa312687a6c28ac72b0 GIT binary patch literal 4146 zcmV-25Y6vLNk%v~VJrbG0p|b!1PBKO2?z!X2?q-b2n-7e4Gann4GRwr3=j_u5fBa% z5f2j*5EK&;6%-N{6%!X06c-m27#J2A85bHE7#kWH92*)P92*`T93LJXARitfARi(j zAR{6nBqJgvBqJszBPS*#Cnh8)CnYH;CMqc>D=H`~D=953DlRQ7FfT1JFfKANFEcVQ zG&3 1?KtDb~KtDo3Ktn=7L_ QdLw_RaI10R#jJ5 zR#;e9Sy@?ITUuOPTU}jTUS3^aUtVBfUtwTiVqsxpVq#=tVr67wW@Th&W@Tt+W@%_= zYH4U|YH4h1YHe(5Zf$IDZf$UHZgFsLa&d5Ta&dHXa&&Zab#-)hc6E1mc6fMqd3ktx zdU<<$dVG9)eSLg>etmy`et>{~fq{U6f`NmBf`o&Eg@lBLg@uQPhKPrViiwGfii(Vj zi;awoj*X3vj*gIzkCBj&l97^=larK`m6n#4mzS5An3$QFnVOoKo12`Sot>VZo}Zte zprD|kp`oIpp`)Xsq@<&zrKF~&rKhH*sHdl?sHm!`sjI50tgEZ7tgNoBt*@@Gu&=MN zu&}bRv9hwVv$M0bw6wLgwYIjlx3{;rxVX8wxw^W#ySux*yu7`=y}rJ_zrVl0z`()5 z!NS7A!^6YG#KgtL#m2_Q$H&LW$jHgb%FD{j%*)Kp%+1ct&d<)z(9h7((9zM+($dn? z)6>+{)YaA1*4Eb7*VowC*xA|H+S=ON+uPjS+}+*X-rnBd-{0Wi;Naom;o{=s lt)=jiC@>FMd}>gwz3>+J08?d|RE?e6dH@9^*N@bK~R@$&NW^Yioc^z`-h_4fAm z_xJbs`1twx`TF|$`}_O+{QUj>{r>*`|Ns942nPfR2LuQQ1PBKN2nPfR2LuQQ1PBKN z2nPfR2LuQQEC2ui04xD40YC`;0O<)FNU)&6g9sBUOlVD3Bs*J-%pg%=K>+|5Giuz( zv7^V2AVZ2ANwTC#k_8r2ATh(p7CVt-SzAc6rp=o;a~kBu FG+X$E+la5>!+Qr)ZE?_$Vz|{1OP;*+aaBVCtyy-9g0kn&G&fhZRzY;x zHlS0hCTMzU>DFRpAtnR6w(Z+g56DBT0=Mtqz)LPc94@%= ygP0clDqyy!!G$(2k+?H!XeLI@}&Uj<43L4zP{&J@a5|-nP8rMdgmNc z0#P93am{}Q3AW#Y967Pt6n1H0Ul|NmXkkcGuqVoe9CnzICFGsw;fM@Ifn78trl{Wo z*p;K=i|FBk-4-z3rVVyq)%FT`8q|230O^o-!e)Z7*A4?d{ ~<5IDh5Cfva9ZACql2(hy%N{R@f^&k@)xr zz4clc2|YB{I1Io2S{U$)77*;~xVLSA7%&V+T-2 ?Q1j+JRO%8QWN}6xK@ir3VGbfFctxr{pU@fT~h@lXwrE37#;0(lJ>{DkcY?I z9xsF4{vvo^Oz3Lw^eyoa*wrHVNo*vp_~MK=?)c-4=U3Yy*e!GTNoA{c4Qx`d*W2YM zfzVzMe(h1;CZG?6$d=BiAuLb={BTJ-WVR!sg IF|JGQVc^Np-TS?%L9;Li2V&PFU1gp 7AITU6}1v5#_30-(96(Z(-G_2MP_ENqajthPM zOnHV6KlTiq ZNxPsC6xcHe0 zg`gk^d=U)DxEc$wNFdXC5i{7>MGM&gUp`V39aF=hNZ{~AAJ}6ZEi{AbrKoO#1PzA_ zNg^^J1{OmcmIEY{fk@^`6^P-WB~R74!$@P3uNnaD4)Z%unhFz$se~y_MYzMf!)>e7 z)He{Lg;;(n5s0}(NdiEFLKG1(@c;%NZlF9{!bJv>0YOJv(270*qX|$nCRKiEm_A^{ z3gzHkG;kozsE8_&dy&T(x)~G^fO9ghH~=|IV!U&D214un$Qj(Jnk>X~BM| SjS%vzr;&xI&03F<+rFT@)m;`8) zYP6xuwiJP*^+|;>H<6leL|`xm5Jr3A5k6BQpaeM0sZMvw)1LYir;PLqUf46ydva(F z?7^r}88ia&Fk`74Vhna_2~`UX0z0#)s)bH~9dc;3LIl7LJif{x(XB=^WZlmlu#>N} z$|sQ684wNCfgK6h1_R{rgAZ?kojKGd4&))l5R*WjG?>Og qs-PH3qe7?7qbR^^RY7y=AOc>aL~B9MRqD4+r& zfWZ^wFbQB>XI0~PDTju~AX?~iHIEq40!n2eD;$?HxPYaHj35gSA@#X>`9qClBL)(6 z;6T{TNz;-fhJhgAMGg38cn$K69~^3^1Iglx4loE1y0a4fJk%Enazsk8AQei4hb2ak zt0o?#yRR}qALdx5c-SHgBdb< mMSuoWaDyQ@Aq!wUgB#{pN2BD?4s?h^8_L*) zDlYMdF(9D@2 @y6?H?4b%kOE1M3Esy0>01WblxkHYR5wK$o_$Apm zEr{WNJoRMTeA8E+*m0HFQh~Wh?-@PZGF7lZ%|wR75Kb0z{zzJ2h={J2CdG(^7;He? zdoI8RVu*y1-@KGK&$-U=ymOxS%x8tzDvWC0)x8RR<}|DMBW!jvJ^T0Qp#)HnV6OC3 z$gIRxX&NlD;$4 iit9L-iK@3%uh8) z?zL@}?3q>z+c&W0OOTIkoFW@WzRU*Bez&6IXgkNpT)~vJyF)P=ZyP;0#z~kvWX?kC zBtAgANrg$Y9&_hJJ~Ot7|5DUWci%)mpIr!oQxr9O<77V*PDu7rG*5rudp~33Z;j|< zaGNm5zy#59hw|BQhcD=F1%dX6uvYP!RA}1Hdy#tnJFXB5?eDxW>JQ07Qz7_ 6ooYBI K^n-B7 z2)RoUv8!$n4w0beB$5Qzt$rb}k0=1*7<<><>I1}V?%TLo1Y#5ccii0QFhHogZEAoR zb97ekkGbk$v;}zByy-CWF8pSsY8ZK_Q}LqV17cPIdDA2VF<+?sW=bF#3TWOk*ELLC zKK~eCASMo^R}2RvV}jHVMh%E*hU*6-qr(JZ_I8 #4b^}H5 Xb_@ce%-`aEm#oc zpj7d+MKfp+RIpU@l7k3AclVTVs}c|Ir!e+MPLZJ{z3>Jq0D~MM04}fweAOq+K~8H_ zAL{@J`85; B0|z<{a|4;Nrd;pQ2cFc`Sh9{#joO9KNMWAGRw5Is}1N^tcVVXzqoaCq494eQr? zR1pBgz#ePBiB>@XNw^x@aE77?6qC3bNsx+FVFu(e3a;3R(XkrpH;YptA=r_3xEK`% z01tiDi&F6k*s&qPcoeX=8o_XkN1+4Q(GARK6diya>JW`Z(E#LOjYMGpjirr4aRJx? z4&EpfD}Ws@H;yL31=vvv=m->#fE{ jLL9vzcI0=XJeP#YQGhwd{(qJSMoxETW=S=cd7K7TwuAs__aDwM1r$gW8lVX5uq85i zhh+i}tZ)V=P?8zZ07g& *~dG=q72Br*dtv>yR53O?8kA4MWt5PcTn19UicRHY)3fL0tL09JW)lOUJ- zF%!H;EaP!>sQ{Q9az}VXA|vpHD`yF1iJAkkg&cAL$Ix)_&;^3>MglQ#BtigkXKuXk zScfu3i1s2WaCzANg$=w&DQ8p=@nR)7pf~5l3_f5g`9}{L2O}F$2@-ic@307nDJauM z5PRq&FCYqwxisv+2nU%fjCT-EWGW0G2K7cO?m!Ai5S*uCMGJ9`rh)=>pbIt09_26! zSYTJ `h5SDo{57f{Kg&+kZ0GkDN6Qg&JWdRsBAw)1b7G-u5;8LSk zQ7&6CZaQid=+_i$@uNo(fq4;`MEVmuG Q&Lq_ zQ&m+|R#sJ4S5{b9S6NwDT3T6KTUuOPTU}jTUS3^aUtVBfUtwTiVqsxpVq#=tVr67w zW@Th&W@Tt+W@%_=YH4U|YH4h1YHe(5Zf$IDZf$UHZgFsLa&d5Ta&dHXa&&Zab#-)h zc6E1mc6fMqd3ktxdU<<$dwqR;etv#{fPaC3fP#X7gM)&EgM)>HgocHMhlYlThlh!X zh>D4ci;9Yji;InnjE;?skB*O#kdTs*k&}{=larH_l$4c~m6n#4mzS5An3$QFnVOoK zo12@QoSdDVot~bapP!(ip`oIpp`)Xsq@<&zrKF~&rKhH*sHdl?sHm!`sjI50tgEZ7 ztgNoBt*@@Gu&=MNu&}bRv9hwVv$M0bw6wLgwYIjlx3{;rxVX8wxw^W#ySux*yu7`= zy}rJ_zrVl0z`()5!NS7A!^6YG#Kp$O$H>UY$;rve%F4^i%goEn&CJct&Cbux&(P1% z(a_P+(bCe=)6>(`)YR40)z;S5*VotB*x1?G+1lFL+uPgR+}z#W-QM2b-{0Th;Nall z;o;)q;^X7v lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UE?(gpJ@bB>O@bU5S z^78WY^Yird^!4@i_V)Jo_xJet`1$$y`uh6&`}_R-{Qdp?{{H^||NjIC2LuQQ1PBKN z2nPfR2LuQQEC2ui04xD40YC`;0P_hPNU)&6g9sBUOqk79r95Ad&=^r+K>+|5Giuz( zv7^V2AVZ2ANwTC#k_8r27(oNcmpqkhWm`zIrp=o;a~k~h HX*(NLjn5`xfm@PD0 zNS#xw#<|Ua>8RN%yuR9GwL)WGu@17GFz{@lvVTVnfsgk C6E7W>Xre&xh#=yM zAE9;PizYGy8jCE>17kt;crg|Mlf2jyjTK7sA~p#iwnc}d0D0hc9d KGtjgY2Qh?#jbx={t(M5<{*TQr(SKFC-Kk^!o0S|UAD zh^i4X1qG)nN&ZdDWGYkF81d>y6)Yshtx*NAf*iECvl=vzEU^HuL0y p-Q9u A>1%U9;0ZZXMtt&l1V zT#gwdo|irlH)o6f)-|TLUJxp(lVuOT#yD5h0A8$oV=S>>75R;m#5F-TB`(tYRQq;V zO_-RatsWl7ALT@c*}isxdcj9ul*GoB09^;n)uX*prFIY94$RduzEM~(XN7Q*FelCW zQMth!Jsn`C2ZV>xFI525fDk)i;1&VQr9 WZN= u!CRz z_V|Pg0(LW+{A+ wxs z@&y@*Si%j(Se6GYArW3Q;~C8$K{i4s0A`4z90_udO4*S`c_>-yn)pXcK@nYIE2Oi& z0HbV#P?7gifvk9wNJu`6k)6?^CHwZMz8o=n6Uc!V@W6;r+(H@D;Kn%avyO6j0~^V} zMJXnshb`=212baV5}7hTz71dqnMenu r9Ob-~y!BnM#+3|BV#K %N&XOPBjpI#Zp2Qr z-BcKC3jlKDc2>q9>{{jFxp6oG36UMi1gzkRtwKr~6 5y+?LZBX;u62^D;f9O_V*>RIqObwjDQ|XQnntJx7n}_Mc6k$z3?$}n z%vmOEccUIj*kuIVh0vOKs{y~N2OAt9O91?EA{O#CBT;yf{xSj;6$SVK#3h>4nK@Dg zQ;7o=fWU$bLO_879AG6l2!kSU@lsQ1qDv(dlm_tnTh)lcObe)9qYm3>#{eU`N 1SJA5 u`<84v1Af)D70CErsZJwwev6upR@73y>{3v<>&;St3Ac#w} zLKxQo$2s0HyLq(Z9NbWbE>7`?IZR;&p%dK`bmGT32kcW#8Hc_6J*^7(nk&fIHo+}b zfT}h|(hKhr5+Ia~DMoxnEx_@Kq;+xgKp9=47 !FlOCC&ps#0zs?qxZ!=tEkBhlH81l3ursPA*qT5Z=MRaj|?!WmsjIf3G z>vZcy74N%uGTtF63cfs6 HO^`g>}KuTCf~i60{;F$Tr=9^5fea`vKA8Uc2U3-tX+kZS-lXF zZtDP)@N^**Zl)p{q}bZ}f$keE4Gjt^?D-&a$U+BIHxTP^Yl4z129bHU5&-d2fCVu? zg2H*ALM?&-feA4UBGx5d^lHu01k#6r2Jv`Gl4}A1L$`7PnIeKTp$!dSCNfiguYw0G zcoX=bPE^uuNY^M0U|uz76T-J5F0^T{q5~oLgESF1Kw=BE*C_jggi8@&K#~U#2PgP- zBhw%VGN3>s@d0o!43LsuD}n_62PXj#3@^fLM_~i+)gj!_R24D;J4hu0Fhd=J4}(B| zML`AK2O)AMgpDEq5d|UFZ~|k&1pb1=9P8(AX9ywIP+j2lV(Q^g{ss%`VGp+B7AIyL z_}~EkwqDG!3vkF5HJ~2Iac0cN8*?xigkl`ZaAq8Egq EFpSv2U&aw;$Os)mz#Ko;jL=aGoCpEZ_#Dq@9GGy8&ru7^VFTRw z8zW>K(-4lo(K*I(2 u#TpoQOtph@HiQWpdK$+kCU;BoLCeN@C1qA3(mC^ z+h7ZOpaXiSc^04^@9+}_U mr~534ke)gdZ2nRQVw)5hi*qY%ux;^ zF#@`PF5u7xvFCOq!W`p({wtz2H1}`_$@O(V#2l8j5nx~=9^?n37;zhrU>IQl++#+~ za8)A*1PQhPZWB-QpadgV1{i_>3&vXVa0C|@2vFD<@qkfhh6!Ei7`%{>b@d8k`4~EK zW{i=Rj&Tb+MplF9mW`1P`ej<)K$n|Qg==+IdifYq#aRQ1Gx3lMjbH{nZ~_^?00j^M z9 -1uc0J51 ?^L8jWWhci>e_2_bhm8~fK8 zuHaSU$Q-l)9Y$sx!a!CzX&kHg99qB})<9NI$s0TX9Vn2IWK{_2F(uETfV^=JWR+&j zp;p2%0L;-2WHpq`VL8ts0n8B&YqeyyL8HRaV<5U#7ib(U`W)?J9HZw|dtw}Q03E0S zp>RbF#<2^}5da>^8$$qBRK^=a^&8?rHvu|T;A0#ZG#dfHI>zw|g>{sxA%>VC2kNn& zb>*by8JGTW0R!sc4sYsJB4r$#5E>AWWyT?lk|iC?Q8bCM09 T8sAShoziK=1)5lfd=)+m)w8py(xZn+H= zn*Jv (ZVowFppXL_|5@iXT>MT?@5Dd622!IDr>pJnk z2dYXf6i5)qdM_Vf37P3Ru5h>0;#t+?wcEk~XRr*jA`XSHulE8@3xR^ZGz6D$Md~pR zwJ-)5W-&}R5cqdF1JD9vU tPg`*ftpEr~uz`F7fCm9K`bZ)7Y7@QGy64eyI6*P8 z3mzo16+w8r!jXziu@<}w9VW*Y4ja6Q(MgZtFvg1+diod_yS#6KNvq)%& ;76OY13yO*e ziHQn}i-|zQMWGNe38*+s0wM{6N=ZscOTpmMQZh2q2n1XfA#+R?A$LqxUhbHJyxegG zdBx)jN{Wgq%1Wv#%4(`A>S`()>Z*U#)KEies%s%Nw6%~YPiX0!)YjEGfzmyxhtfgo z>0;0*eT<%gKHAU#V`!*vWMqKF8X6lLnV4X4IAc>&6EjoXDKj(tU#HCR=BF(!&YZTg zwXwFdwK;2NYk&5v!#R6LhjUJj4$e-FF3wJ_F3xVQF6Z4`&!0c<;o;%s<>~G1<>TXX z;ezkQix>R-E)ocS{sjL^0RfjU1q5CWyh02LzCsKMz7iS|d^I%W+SSmoYgey_U5|_i zkBW?lj*5(qj=FIpIws~uY-|jP6dM;ux_LA1)~#E2?%a-#zjOC)d_uzA#KeT8q$CQN zoJ^slBq!fXNlCqznsz@eBR%~=#)GWPY-$cQH#aXoKfj=$kVc~w6%`d17nhWjl$Ms# z>17NCqrAMlqN1|8y1KTermnWOzOJsJzP_=cp{cR4xvBYKOH1p+hi$E`?QQKH9gm+p z>Fnz2>hA9D>FIg;^y#x_|2%*GFO$i9@uIh{udlzqe_&u>aBy&FXn15~^yTQwv6o}x zW8)L!6O$8@Q `(M9)Jvcb{_U+r@;o v?u~D*{mp7{>%kX3&dAmn-&HyXyuJ33xi;-?!X;*6ZxZ!*~ zKgeLkuGRBFBcU%%{%pb32LZk?S*@2(nwL7m9c4pCku6h?NSwWumvf(NtMxq& M&*mrjjM~d&xS3r(F?abEA%EEjXRd?rGFGcC= zjbRvo_Ne!(zan1ls6HbLPk!9s dZKG^7YmzqN~{IK!zn cY0J6XqD>j+zOF!3qs0Cn5b23{aviq z{#uq$fSi}DmEw?TSLype@A{RzRPZ$yWKv;7h5CKz<8#Or0dE`X4nrugVjwp@#5z%$ z2GOGFI;j?^Nj}G>W$XCaHXyAH-mSk;EKWJfbtjow*4EWYsP$s7i29OhZtI|lZ!XxD zdZDRHqM?KV{M>e-g;^sle|*{oda-r*rg~{xeV8=!IQ>BdzN1*@GeTxA%x-{aak()V zY!u_3+*$OTh0p*|-xC4PTvD2Q-dn7D!P)Ag$;8~b_qBj}(gEdpy!*OWC!n*QLcA;K zyQ8e8wOpe@pI$>1e~UR7>< zRoQX@FuE4qE*zMow%DySt+`a1<8luo&NO?)1zOCt8Ls5!MDmB-^pR#t z-37+aVoar5 JL{x-ST@e-V8xeG`{`#Y%B@~pah*)abKo%^Om>xzalT}FKARP z3-E8<2|ZYY@vQ)Xfk$@^S=Jtw`p>y(@kf0PEh|6RmKs1e&aC(y*+rK4Q(I5AJtmU< zmjIM0LElXV2`w-{&w4RU1OO1a5AY^!!$5^=iI8xi$>=12ET0oVaUS8Ss7L`=xDcb2 zcqF+y{NwLLFrI4`za$yt(h&>MuN?kKf(3w!E6L)EpGFY76jM3IWTIH&>F=t9=)5*_ z*ainU`AnJY>MO1QDH!<5$AJCXt+)whJe`1;XKV;2XnrCOewORSI9#bDjj|PtQ)+LN zmQ& hHxHs!3MC$Fg4L &K0-FSv zSoT>~)g1CV!_J8DYvsdT4s|QLk@)ok>bdNKnzXWd{snuXzoqaIPL~6AJ*WB&EeUQl z=H*OZ#!lL6mZYkaW+fNQn_<$FN7JqYa#GUZE^L;NL3WTR+=;Bs_OG%x$Z##!IuCbw z)!;e4=YDY6%$~R5LO`>vbJoqVDjkDnV8oK6fwED}L3E3fpw{6w#Upolmt^=c)FIZ+ zs6%jGGsM!}UR+zM$lLB*#y_LQpz4|7w1Min??r(x(T0 ;P*yja8?xLoSu z=C#K@Egzq_!6>qhJ=9|p7EqUocLDJ5VcMcOK&bRTEgfT!+VHvj(2G54Lw2Bu=Gdk5 z6I=ZUSEkE#mlz#}q-~FXzn;%D<4=0~n^(qjx;+2J!&m~J >XGQ zDq3sW2Sk){pE2(vn*H>*w%rjh#QEJvYRf}Ud-iHOh~g?a0Ww1im{fMv^-A8#iNgRO zt|m>qghe~a7pEnWI>7Hp+N?{BMNcRaa g z7wsA(kj}NuLPn(lPamm*m`Z_T;k&uagyB3rt2Eq62?NrgM4I{yYtY(#<;Egag#=7s zrrw^%ttvsfAiw#wl^lFO?X{8~K-;trNFej^$ybQzp$H$c ee!%JCR6o-U$BdDW-#|{EUamH_6~l z{Q<&D>J;t;Mb%@ 15z>@5b2lw_c}T5I8e zgf 8&2 zi>BVcjCrJOtZAyU907ZQ>0G!OWx{Dm5HCcJv$4;fW)_;|ErZHv<|9%p+WEX?-ZIvs zzVR&@6l)52!HymIZv}zP^If9ne0i?MMg#(Gzct&>P>|=|pX}lZI{wNT?4S}xl_LCu zvFi)AaX9Yaq%^Ku;TmQujB#d zuy6g}Un *B} z@tS39_+)cVnfiO#@^~a!Ce=q{QHAa)ytfM D=H`~D=953DlRQ6FD@)FFD)@JE;2DM zGcqtVGch$ZGB!0cHa0XjH#ImoHaR&rIyyKzJ2^Z&Iz2o)K0Q1?K0QD`K0!b~LP0=7 zLP11BLPbPFMnyzNMny zQdLw_RaI10R#jJ5R#;eAT3T6KTUuOPTU}jTUS3^aUtVBfUtwTiVqsxpVq#=tVr67w zW@Th&W@Tt+W@%_=YH4U|YH4h1YHe(5Zf$IDZf$UHZgFsLa&d5Ta&dHXa&&Zab#-)h zc6E1mc6fMqd3ktxdU<<$dVG9)eSLg>etmy`et>{~fq{U6f`NmBf`o&Eg@lBLg@uQP zhKPrUiHL}biHVDfij0ekjf{+rjg60vj*yR!k&uv*k&%; VZo}ZteprD|kp`oIpp`)Xsq@<&zrKP8)rl_Z %` zsj952tF5f8uC1-FuCKAMu(GkSva+(Xv$M3cw6(Rhwzjsnx3{>sxVgExy1Kf%ySu!+ zyuH1>zP`S{zrVo1z`?=6!otGC!^6bH#KpzM#>U3S$H&OX$jQmc%F4>i%FE2l%+1Wr z&dtux&d<=#(9zJ*(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lq(=H}<;=jiC@>FMd}>gwz3>+J08?d|RE?e6dH z@9^*N@bK~R@$&NW^Yioc^z`-h_4fAm_xJbs`1twx`TF|$`}_O+{QUj>{r>*`|Ns94 z2nPfR2LuQQEC2ui04xD40YC`;0Qm_VNU)&6g9sBUOvvpPCOu!0)F4q|K>+|5Giuz( zv7^V2AVZ2ANwTC#k_8r2AW &v*Y!gNaz!*y|Rkz}$0OgY}nc_}aim&Gm;$Sw3$ zLY-5q-b%@IRc;krNA0p&A-+Wuu0k+$uQozDvW> l0_?!S=j1wV%<9tz{g& O+QGWE{9*Gbz?cV<8bf6XazCSQB9(LRuILgbG6U352mU z* iMF>rt3l;$* zKk;-?mH>C)^XCqHhB(KcjMj#Rm3kz~!8wgq%G5X*@Tmts%Ou)S89rKCDL!L(y3sNP z4QDDy0WdL*sQ#N>6GZ^4f>gmmQ`CCY0!9FmOFRJD6AU6wK%i?;Q|NTcvCNu!N@IOA zE3JinKnPC~(`I{F5@^9n&?zKnEACMwJnJoIw4@QjxTc1X1}*2B=t~-^vRi8fY4{Q^ zU*>RO@4rKFVa~bYd x{Gxhi!?f^vg+8P`d!z6SaeHV#-2I|Df8-Wb1%RmY zr|-X)MZh*28iE)j8*YPn^HdE3p?<_Azz&4OU>{W$5GGgNEf8iQeo^m0c;t2lK %>zseeToTZzy?F}t|H9VSWz0;ggKQGLS>j2lV- zV&I7OS&9!rYG9Kf0FK>_P8$sP5()URfK?I6gn#;jsTMGhlQk; ~E?C%~mSMIp z+N%aZ+@UXWWkwZEL0>y;%rX|iga@=SE)QVBBGMSgzAVEGKfI%P0$>I{_OT%Ph?F4X zqz5GK?uv_)))vndwn+Z#3ozow3M^T-70l!~mE`2-Fxi zL@RC)jAc~g8|j!wJl0{3Z$Kj$vH*o4+AsweGyr>5WJ)ze#(*&3qH>HP#v3e9v1;JN z7yo)dAJ%b5d{{z& rLsNN9 PaZInrJ~M5v!SpR!suI)fn_S6j;qV##)lZ zt;Ph~8Nq5U!B&!_pf-Dg&M{OIkL%SnBtNYUTxGL?qHg9ME&MA<6yU+tFi$c!FzjYz zp;({v06>DX3m1f^8hCiFvOZCOH35_kE|8NdPY|PTpwUy%{zL)FF#gdzUQq@SoE9V( z$U-S}7a?|t(6vUvKr=SV894xVEGWPcadkouIh^#kZs9=0misLcKo>C?& Wo0wcUp zsayE =;4&U@KPvqz3bV0Yc+o>pT(k0q$5JLKxNR{+T0` f!IC2ck9z`F4vj(w8Em>MK*;w`@Puv! z<0TJXK*9}9c!38fkbnU&-~uABffeqciDgLEQhR99e}xo;`Mzi$53SJxE{rCT+WI(y zh*J`>>M8R5x-)F#6Z*_hs{knC*l95Yi9^fiR(2D;O=b7eb9q9*YSD$#k;{aEB8A znjU#*t*-J(5N!S{0c{9JLd!9SS&K`Y2Vu6z0w9AzC<#{IaD)z?d$4NLq$l(<01B2+ z20vh;6}@1_Hqh}7dKgL{^?=7ZzVQrTz@ig_NCOo9UI3o;K|v>qyl>q$)f98oOXdHn zz`*>dZkRKx0ETP~uWeqdBtVE8UgUX`T<}R4c~$5j0(87e@p7aGrvh_{V>MRkbj@me zyXja&(5r3~7c9b^+qTIvFkuE9*qi4Iz=0Vsk@K)OW$a}?yUo+S_O`p7Ch6KI*G=Ls zp52`wS>O8JhvIdx+j@ 6AAO)P+XI%s&T>=Q_IQ zx1;nwU2F9G;ns_Qj(P?WJwjb 6?S)i&Io5pl7Q(q>#0~r!v0Fk- zFMf?=&Xr}o?gC5bgDbibDz2Dg7mx@;3=aNWH*+l| sB8Q{Y;mFi z<|c %*`(SU^uvWg+%1`*;8P4E^^ z&{)SILokN`d$=0u0E>1}1EyFTsCZwGfFSCD7`k{InxJw4P*$~J4x)${9Dt3gfe#08 zUq)~o)qsD3kpSh#8F2Gn8dV$V5RS6p0P;{95q4fO*cmzS9D$`8%y3`YP#dkV9lWp_ z>~LQ!s2WwU9b&K=`e2Z?VT8{iSE?aa@3m#AVUD430IRVL_tlE4aRJ-WgQ-DT?{x{a zVFcUp1FMk-_r+(cVF}yu{*0<|0{2A#kE0sRC>s(mWt-t8Do2H>;gi7u3#)+y!+4Xa z(HgSxLaEVFHb)z^@d>UG34D{2Dwheq(GACh7zm(Vs$m6Ar$DtK2!G=nAXIhw V3fBv0{>`;2eDAa z_W=Lnn*4ANp`?5mu?5A5gS#M5xVaGqU 8 =m1ibhXj}Qp9o IDiFu& y2{vGhtfB*!u$vL$f$!A-MYkdQ zU s_>03mCrRnh<<5V;*IgdozuR`H1-j>a8V z1|aCbRtI?;NeUhDgCO<5R()9;h_)R{g&_FAR^I3vQpg=Z03mBNRuk$Q?ol2jf*{er zR#OEa<`AiOF(&}R3T(AG>BAi^i6D2tRw@Z0?eKe&F#!GvA=Wuon0g$j03DtXA>Qy; zCWs(`Kpd%B8-(yz7*HaNARE30Ax~IWCb=QLKxqx~VGz;?mBj$+2_g2N1Bf96(Rv*6 zF#ef;r6z_}mvHd`@@67Z3R }p94 zAf6`D3|YXhKj8pzP_vA34#Rp}7eJ#hLJV^-0~qNM3?KxE;I5Y94n3+^5Wr0hnil2o zoHatV3{n8O`nFAx3?3VNG^iq=fVWGLWL8oEr&=T92)H(}58WvwHE^3e<&lV+5WBFq zD)I$s7AHH9tdT1a^H8`#f(fNzDtEBC0|5u7G84JRCjlS{k;@28%ODnYQMwWU56g$K zRx55I5JYM!N06;x=ng2UD-AUeHo7VefS5yg3R`(B3(F6B*DNO>gm;Gw?jV77;7@UM4Q#Ni;zAh-kq)n0 zD;jVI)F3q6@CRk)FacnA2f>9E696ng2f0wP8 O5j6%uuQ z;kiBx9iZwM^*F@bF D=H`~D=953DlRQ6FD@)FFD)@JE;2DM zGcqtVGch$ZGB!0cHa0XjH#ImoHaR&rIyyKzJ2^Z&Iz2o)K0Q1?K0QD`K0!b~LP0=7 zLP11BLq NXb8>Wab9Hrec6N1l zcXoJqcX@eudU|<#dwP6)dwqR;etvy_e|~^~e}RF3f`WmAgMx&EgN1~IhJ}TPhK7iT zhlz-YiiwGfii(Vji;awoj*X3vj*pR$kdl#+lai8?larK`l$Dj0mX?;6mzS8Bn3 3T;r>Ci?sH&-{tE#H3 ztE;W7tgfxCudc4JudlJNu(GkSva+(Xv$M3cw6(Rhwzjsnx3{>sxVgExy1Kf%ySu!+ zyuH1>zP`S{zrVo1z`?=6!otGC!^6bH#KpzM#>U3S$H&OX$jQmc%F4>i%FE2l%+1Wr z&dtux&d<=#(9zJ*(b3Y<($mw^)YR0~)z#M4*4Nk9*x1 lq(=H}<;=jiC@>FMd}>gwz3>+J08?d|RE?e6dH z@9^*N@bK~R@$&NW^Yioc^z`-h_4fAm_xJbs`1twx`TF|$`}_O+{QUj>{r>*`|Ns94 z2nPfR2LuQQEC2ui04xD40YC`;0Qm_VNU)&6g9sBUOvvq)r957a)F4q|K>+|5Giuz( zv7^V2AVZ2ANwTC#k_8r2AW`Fpmpqnkaa%~Urp=o;a~cfh &v(?!E7oJOLlQkk>s%gLOI^dx#pV7a1{yU2D)kh zT%A*^#wn^aS#A|v8^y7Dp|clK103mAJ7F5xRbvAWN~bqLd@|w=0A^gEI|aj|!_C#4 z--^ caVOfI+FA7i+XE5Li&j6{M^Lf4|GcP`oPtI zpFleBXP`+P;P)A5tqeF&E(b 0D^n57ohwK$ L+1?aJc=JQ8BF@oG6f0eDF8V%qbXCe za5?Ho6)Y6Rs{SPjK!YB+#8cZjr;w2+tVTtllPSCg>!B%)@geN7!|{P1JVzkwELlgO zbt*rmknrraBauMtw2je%MhMs@83G!#a66zcXowoFl@*}ji@95wv&Fjfezb)-nu_yP zz5Eh|!;Qv$((k}xX~ma5*49hF4t@Ybk81P)lLrg|5S$SSK-y#}tOK|qExZcVqlW?4 zf{G9=fHJTP$f-3_F|6edWQms%@Wyh8y0{6bCH#0{WefQPxeqdyupvYW8ZbZr1RbnU z1RIn1Vvo=}lIbo_&K24M*gE|AgYO!FlR7cI9gEdi|8e_l3NOS23AX^E|3Db62 zolq&={vpjda<^FfG^aCg1XOp<-(XQ^oFCE+g5NfXU$sqj7szI$gMvhE6%zv*f!HfA zlBT&;0@yrYJw1sf!#IwPF4iA6$9@ntu9ww7da~cFN9}M0z<2I7WfA~|&56#tWC3Wg z4$JEl*pVB}-81;{=gDeEF7<5I4k=YY_Y(%qIYT|~J~YS0_^!9m93kja^-gskAXY-q z#x2o)RSyhU%gbzyfDV4_yB}Bv05B8{!wF~uN(0`&IuzBTQ)x HwVhU{3B~25gzEAeKSa2OjaUQ<>ur5wMtOYBDbY`p_f( zTi^;Be%L-Vs74%zA)>`xP(TzdqXtTZRSjMUJYR?{iUx|pyHv=RWhg=k55OW@9-st8 zP?3vVSw cV39n)k)O $xtzag``C}pL zCCJV|agl8kP+xl3wg7bC2U~y%Ds;gNZj2)x@0bTW%F&H#AR`u FLyiThhZ>eSssN-T zA$p{f02%?!o9IJ7!Rli{z(pno{Gyv&c?31d6oP_;(MwrCr(@v30#D^nAp8EhQW@l_ zntbd4QM8$vl_YRYe)i@Y4WN@H9@!(>yr> et0aR#Ig1`+(A7Thg z7oItw-*joCGdd@JD6!6~JOPirnE@nE0s{Pm!+UmlLv?g9Q<4CoI_tpcVB%? JoqB+fqsz%b#99c+b8qL9tRxwhT-UvZDRA^2+S_(*8 z8OH(AX;pJFF;)P$wKqA84g~Pig0V8AIZTkw67W-sv2xQm$&d~-29#H%W}rHh7*2x* z1ctE&qB^&5O##lKAx_lQ7WhfRWelbv6KYkM)hWYW7N89nv7@dSq5g!16gd_Y{4YoN zfGtKq;86`>VuMpbfFgQ3D0}EOBgzWWFxr3uwq`_Dc~~sS)Nx#mT-KnDDn@lTG6R@m z7e$!ZZbu67T^LbPyd2?bdHG?c<^UJH9uYv^y2*@$0)Ph9Q3ZTW(gM@PP98qsh_9N{ zgZ%;}0AIMRrdDyNk1V1&wJ>m07T^Wu4CokCkXuQ>(Hs* (hLLB=r{*l^F7s E_DIcTY& m7=iPZ&w$RJ+rb7`f7rIYepa>r`yC%!9L>X}KYy&R< z2W7B?$)Dbos87A>`@MSBx6XB%c#E7$=g7EXR(66MJ?UvL3DcdvUMt2uDq1us(C-cw zqNA}|d@qZ(a+mYK!=>l&dZOV6Geu3&eDRmLIgFSEdEi6~MJ=zqbYearBx>F~OvLKv z hX+Gu)zi- zL)^BOQgLiCpbDlCes#iui6CfrU>Lti(1rd5f<% 35^en8f>uHUua<)ep$!d)C??Z?N)iA=MuatSdTC;8U^gQouwqVV z6W!2YX+lD^W+h>8g*st_X>tqA*CUYthD-4Xbdm=s$0MKvBl_S9UXX1gp#VqF2o3Zi z!w`ZUas(2@BYGAh`alU3U=%Z;IQ|;a4U*y|Brt^%k_sVm33Eaf51<(i5)O-qC5{*& zel{TYKm}t#1T|zF+~7*+l_3Md25qqeLueep@L?Y?AkUDAZJ`JFQ3(>J4EXT}cL4(K zP#s;cUuu9KAte|Fa1G6&50xWc3DAnQK?ca9i^lN_=+y_+ae# OQ z4Xz;q%>fU|r(5OM8!;doI%OQ0b6kj68>|2v0f0NTfe*x{RSHlYRU;c>&>Tz!TkzK# z#v>aCKtHwd4yHI$gwPy|ARVXB9Nkz~vCte@ARW+S9K8TrW!4+@6djji9J``b?p7Nc zco_+zH)Az5#&M3o!2s3q{)%JeX`L~N!(jmU!2n~WV6_23!|_ ^00!SfdB~EVOr%-#(`15F^mJk zgGeO+6j&S602~D%ebqq+V^xvOF$S{X2pXb>TJ;3gkq?Ck8l0mc`lVF?z>~FM4Pa>( zN);l*P*;Y4AAB|#Brui(LJf7r04&)Yhe;e#PU4zLvm1M&{40vGf3A}Uf>0U&eL zF$ix_19$Zz^`Kispdt7$XJqjK^C2|H w%XqXz$fL;=SpZU2NK!#oefDHe+8K+=ihgG0`fsN=TnhLrVXSQDipneb96!ybo zJP>Xbx)dYHW48ERd0+z7!6Atj07)iKwQvzHP#wlFas(g=(8LWsX_md=H!p_-bSXRU zKm!{w1l4f`LRSG(5
VR-PkO1YVUMffRh(KH zrPdom5UQXN0RE*Kk!h-zVF%4Y1gt6<8bFhqv5~Pl7y__ty)l5|)tSBVPJ`idwSkN9 z^?l88R)dj3#_