\{[''>#C8 vsņ"ʝ]EѯuD;SFQ%L;+y{|xwm h =H+H-O)k(rI/CGZAϾ)OuRf^Y$p.MX-s>ipz}< bV~:0K{|dEn yadx"U)W6 n(QFc+(Y"A1q)XLC_ -YxTc  gfΫA~v2⸡ Ku?Hu:c T3+ʄ]^N@&D @~JϱUqc˫u0"Y$jSgWf3ʵ3CrA$%p6NoѠ9c&br?Ԝ!j8xYW@-._#T)8h\v?@^P#Qk6]Ⱥ*:Jn,пa޽arm!_f7fX_A(E) @X|nvH8]J*n G]v7&sݔ`WP˫E6 "?&+'yE?M ݛ^zG0 E@]~&.of1$dؗqOyёT{ZX<-)Z3 @_4TG{wȱ j APǕiࣗ!90]&{+3q||lyeՆ#|SYY]VЍjn!?QC3 p7iX5D~<ő%Il=ic6 zBIG֯ FYs 2Q];l$T+}D'ƫw9{> Rxl+FbM|D2شB `Sf esB"͊Xr'+XPnr'jP7 ץ5pm8T!H,.&̉HVD: >Rl}<1˛ksi;mҟ1%"#e3J]eM B+Sz^[(mx3y?u&;z{S(gj=ao(n P^x2F!7RBV4v MQSbt@@RDX~k c=wѐ0\ony"C'i:j /mO *kxLpO!8n[Ja9y^չ%\u* W!iXKٝFI֎*M{O*UXSa=6A!+JA#-nD*2 vӍ޻CX?h >R2xn:D4^zd[mP;fo:2 <#=uj!@p l˫8sY0>*b#Cy:;h];y " VG +`ܫ&4JD6A|ǭvi&3GR.6< 'P嵪ПEdK>5*m BG2G\;"T2"<9PzY#3hOlB{MDR& -G N@ _yJQ?PҎ!m +FS?M@`G!jH;sulZC.VtP*C{i51.܈PGx_VqFTqß8yKpDyO˗މ$s>G U3/U.HSŷ@?HVA+qq (R<~e¶n˸7IWW0.²ID]d\0 d,ZoֶD垢cF&UQgh+Nt/2(ma7tfK!iƷӋ$.c԰AIbf􈃌Xc%S_n6͋*[?rzUm6tݤ oeFM+E fgWIkG0k/ElxbFsbΈ}uvl5 +Z9Ia.' %Ig]'qysd Iby:ٹ.zzlQ"li 0E,@9I! kMRkIrhYۏSOpLzk|tV93wm@ztaeAj˾Nѳǻk 󀛶\[" (- _f 쨮^3z&`P5&:QǶ wF7wkrMرWd'C7_Z ,XHO{3IRؐqfrb-+!/vlL}` Jyg3GlROaZ74o6"'vݣ}~X%trAf +WMW n1 =>ػ:\#D^y%DyQ&c,#]xb 0<|ɎPyimц!i1& ͎Bܸe |?MO,E6#@w'Tѱ]MHm~?hx׳\O7+V?̼VjvgTjgVpmhuW ӱ5 21H3&S˩jp1R6+CbW.1vxl&CBRn%~<N^ԶWJ7 / cʡi4$)pJu8N]gxcGFO46!e>ϨBu0liUa%]qk)'LP&+W3'jwq'ߧrѵR|k`jڪ't(ۜ66c@ ^~۔R"mO+3fujBz<3PGs X6Y-y"%"Q- S5@QvpMJ0@d>-G Tdoe T݃x5}@kXqo3*kzFQ- Wy;Q/`qM܅}h9/4ߺ7 Uq1Mt;1?gK͋)yo!?#F5>|mA2eAk]!D!L8Ui~\oX]]f-yzGHbX֕ܧ}mH6}˒d /6wڍK^\'ȧ V_f(Z-g;C@Blp7PkMUc8Fu N(}E9ee-@Z' ŞT846$)eTޔmOl=Ai u ,8Чl8缝oF@xr$Xf CGt=&=-1 &₹j 4 a-/dndQVΐ:6A6ǧl]2d ܫ0 X闰ДT+5UFNېՁ|c=OYJ4u Ba^}B^wg] (n}|np*h!R%ovT3~[&@dfqx2lwqYU]$'d2lvܸ;缓|B֊nӄ1=wngy h>bC V9z94d!{^L5?( Mi`lpggyȣn"+٨X'OѼշKYaFLJAqCZF\øE2ܽ`&zG0X!_9'Dls:<{(Tm982< H.з3 «H1D dsq{C'Ҭ>j_jCW|nFvHIKVc 0qVs00o1[Z MJMver%/^\ ['6$5K+tN8AYNعiCiY{bXW.01}FC6gEV {Pƪ݈27s,Sȕ+x:$S;D |55F}.| GȦ/vM,q)Eԥ@cMT>BbT tV  ]׀謑lVޒw8 lUt7tBro/t?]C2zߵ]9I0̥R`0jV~(puJ/D[Gf@ W:$4S?&Aـy YJIDʽOts=(4#c]UXq! 8ƼdJP۵*\/ hĔ`q(ΣS0B] !i;qf}|TE> {SV2=~YA[gλuqbᆉپrlwB z\.H:xU|](pJa06wecEPg$qy bHݼr{om6Scr.&1əR5f:Pg7~{? ?Ϸͤ~m$7?ݨ&ge N1] RXr!= .!~k#qڃfOjIp*OlZe sVߗ1PTÒ +x]A,PуXqfy5a-!Dy4Ovq)I)C3`z׳rh#5Y,h뙎 Ly'3 eUKľ79ap>*'L&(t{Źfp{7_116~ʵ}M=c޺c)XbPҀ5`Qљ|((da4'_u@{=CW5HQـ#>@aY]fUd 7?1*%UXVX XJ(|':*Ew [tH!tNQVfX EW*V7u?ʁʩnP&ϬFҨ$-Z[.F0qK1{X .}6{Y[2?@}8amއ鶬8 ln=j(^.^S9jꂗHrs6Fpy=ѝE((/䥭QTa@=S4KBS[޺Z61CJ)؜.wu':tѓ艦eHIܔU\,AՅxa/]5CU3 iaZmC{l\ xHd`1Qބ}7bx/ϯbFbc qEnG5oVä9Nq4V 9aۣQ۹,ƲEhfJ&Tusf*}fo`%rs)nvA"[yAĕc]*O2Ual ]ŭB6dJa HKm6EyЍc+[m tvǓHP3!| j% W!ݢR'd+Gzn{W8t9P>sQ3wNٓrNtKLD~Xyu7mP]b轹&ޜ6Sqk 9x 􊿆F(Bzè-(]ǡR U! 'yڱrQXs6b޲6 eh @KBbĥZc]xrPίCfɯ=8iiw\%a]nU4bZ(IG!f{gӱ (?X EXuqL(,XfԌ5e؋CނqV$8wx]SdP/9{8k423k g>m Uց~&S=ϙ/Gl(B!ws빇/\O`:mDOm/MU5G XM x$Y4_,Ӧ)+wpMZ> ѾK;*5ޚˠNvSQ6C0MmL[bz=.)t55=:8_8\?D6p_&jCY)N#߫CsoIN&c 32O$ ahRM&[m-*[STns`ɯpd2P$3YPr+v bOh9% &")l8UO>GD|vrx\pޝ09 pn$Kϱ&0l3' ' Tȓ3Vì|a _^4$QrA$]ݬ Zϟq7Qͪ"ՍijZVS.yj@=#Fѝawb} 勤nv:CBOF / ׅ}ny1U{LJ/0zьLKl{fn?U4Csڸmɍ)Va:&Dy~r?vLKP,~98)qm/MLYϔ0Q>XRXYV.͑3gƒ[hDiy%4C4G_%QbVbe0(~>y$lѱt6D/3{8󭎖jt}j. T+dLvְ- 'ȿ'/}A:q0צآmZxHN M[A:YϷN]pYZҪ K|*_94D M?Rz|}V0htc۝Ozz9n;Ybg׺ 3;|[nɭIJțr wKnbg׋\>AMOFV) # KkACpmǡ p<S-ϯ#r QƁ+){/ni!GȐaW}zn=\r/ʨa>UUbW-Qִ s:yF-T\NT T̃ S|a68a+,@N#]J܄)tXFي3,f/R20ܴ}Jl1ѹHa)K1}4u]yo]1-0 ];"PdCeτ;!W[ L ;@>o|#Ty!JO{Vm6؁yw g1(VW\tI@~ߖRePE.t<;h$]L$Kx ]CBq;bTлyҟC'^t 줂f1T.i)z'3AJ8gdbN.[6gܓOo晱u_3A)Zvl^*w2U=[k~`UAld?+P#GMPVN`?$ vZV41ePR#!*ebw?M@ާfsJdUda4,b@-xa} %cO?J@fTP)[+zˇ2nV"`j9$g E!P-+YX`rB;S負7ձ\WbӜZUj45:k3LB/^{? ZmNy8Y-va7ɯ8*^2ct.+Q>Xj? h;+ׁ1 _a,p4;x`քDў> ;;ˁA3]6{!ek7ǻNDZ(5Jns۪.Ux7\(ėc}teͨ>GxTmjxV;Xw*tGo 7?iMLoC3?ҀQVҼ/tP`΄e}!hChR򒖑Ό@=^ꨈDH ۼecT^&57b~-4*rY8>9dm!dk L5BZ}f a¼AnbrfGKy|W+I@WxCOT<;F /!QM JufcɔcV;RTLyC,R䚎4PB}o*۽ivp "W)I+ڗuc!F"_] DF޴m13OW웽mШq%j* ͡x DWVã@bωKqfMRa?V倩i+ÜDicߑ|_HV }jĈܣe\"'MFyMV-=/eVn4v)(iWO>%>TYD'8[}E}i g!3g@xeeœqGMdwRR;%V<ޣ_:~Y^Rbx ˽|h/)>'a[q.SZWVY4DS wvBks|-1mCE4u.aǤC[~SF c%̈́:OiZJMƪ߸7m[M.KhķԭHW<Tځ ´>)J` uH X_J]d1#j7`/)#mCQ ZU& ܹ1\M|Sc&/ )G!ԝ;ٔ€€UGXq`Ђ1C@'@o:?Oe*6_a=Fޯ<`.יE fD͆D8¨AurBsSab In iVe᫥&&NDL!'ۖ&vcB.6Y9m'^sG(3gy\Y̚zaEpz0 e-6&5 (5*\$p NB 6F[pG;*{*k;#3khs[R8zUIkH=}Cbopgbn :E,Ǚ m*\CjBZqd ~2~h+$.P`1!o"|(?{ΫJ @h3S?(}A?nTpcq7+*ml$$%P߆Eox)R9 z>E3rM?\x󋠏үQ #4ݶY6XJ:" ƞ1c_TOTtbsQR"ڇH4ݓuFd(ˑ},b. /у%Uj#]Hf8v9Qc~2x[(ݿiw`"))JD0By{4L:Wyxot#0s㙴-|*s:%YF{ju-" S#hܓpvTeH?+^Af{l%2 .ֶb>C]53ǻTK11!(4pP˽*٧۩((&kG=@-EѩmU"Mxc/VN]J$qkRyt7N\Om"%aDFDntl!c)h03<{&QkWlo"MB>^u~wOz].BYA>(HE#A뎔d<󘊛i }kCD)C! vkv]A @ 9y;dbbGgd. D˱Ād9B4WB~AzDnVn9Df7K3B$#”u sa.3KV :(d92YA гP)GGɻ=jTG?׉;z8d+@gB RUޫ6͌+נU32MNZגPuX_@6^]m cJ$W7d;T9 nס&) ڼbyז c/r'N\#}_q SE 8_5tY'NkXcYLcpf )ת6ԃ?>v P-fIUaY"ba }H8^sRJq]AKA2;|˴UųH6߹e&Ӎ=I^9@"tO)3x@^@LyEm5/H}YE5"T0 ;:6hS&иJ,|P w55o&Gl<ޔtbS9PhѤ_9;`ja {|ŭXl)AԛjeZؑm8;>"#mK&`dgVy8bYnUIP#xk͘{Cu`y(Qe*9KR׊ n`/v_a=4+3KxT HF\yA`Yq፨Sq](F!Asucrʀx+qXm s7j= +A$C:P8L9 [\}D F֧`pH7uE ys} S۪%,c( t*ƏSnSJ=56;/ >

payload : 
data : 
name : 
name2 : 
name3 : 


xmlHashCreate ()

xmlHashTablePtr xmlHashCreate               (int size);

Create a new xmlHashTablePtr.

size : 
Returns : 


xmlHashFree ()

void        xmlHashFree                     (xmlHashTablePtr table,
                                             xmlHashDeallocator f);

Free the hash table and its contents. The userdata is deallocated with f if provided.

table : 
f : 


xmlHashAddEntry ()

int         xmlHashAddEntry                 (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the name. Duplicate names generate errors.

table : 
name : 
userdata : 
Returns : 


xmlHashUpdateEntry ()

int         xmlHashUpdateEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the name. Existing entry for this name will be removed and freed with f if found.

table : 
name : 
userdata : 
f : 
Returns : 


xmlHashAddEntry2 ()

int         xmlHashAddEntry2                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the (name, name2) tuple. Duplicate tuples generate errors.

table : 
name : 
name2 : 
userdata : 
Returns : 


xmlHashUpdateEntry2 ()

int         xmlHashUpdateEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the (name, name2) tuple. Existing entry for this tuple will be removed and freed with f if found.

table : 
name : 
name2 : 
userdata : 
f : 
Returns : 


xmlHashAddEntry3 ()

int         xmlHashAddEntry3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the tuple (name, name2, name3). Duplicate entries generate errors.

table : 
name : 
name2 : 
name3 : 
userdata : 
Returns : 


xmlHashUpdateEntry3 ()

int         xmlHashUpdateEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the tuple (name, name2, name3). Existing entry for this tuple will be removed and freed with f if found.

table : 
name : 
name2 : 
name3 : 
userdata : 
f : 
Returns : 


xmlHashRemoveEntry ()

int         xmlHashRemoveEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             xmlHashDeallocator f);

Find the userdata specified by the name and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.

table : 
name : 
f : 
Returns : 


xmlHashRemoveEntry2 ()

int         xmlHashRemoveEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             xmlHashDeallocator f);

Find the userdata specified by the (name, name2) tuple and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.

table : 
name : 
name2 : 
f : 
Returns : 


xmlHashRemoveEntry3 ()

int         xmlHashRemoveEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashDeallocator f);

Find the userdata specified by the (name, name2, name3) tuple and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.

table : 
name : 
name2 : 
name3 : 
f : 
Returns : 


xmlHashLookup ()

void*       xmlHashLookup                   (xmlHashTablePtr table,
                                             const xmlChar *name);

Find the userdata specified by the name.

table : 
name : 


xmlHashLookup2 ()

void*       xmlHashLookup2                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2);

Find the userdata specified by the (name, name2) tuple.

table : 
name : 
name2 : 


xmlHashLookup3 ()

void*       xmlHashLookup3                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3);

Find the userdata specified by the (name, name2, name3) tuple.

table : 
name : 
name2 : 
name3 : 


xmlHashCopy ()

xmlHashTablePtr xmlHashCopy                 (xmlHashTablePtr table,
                                             xmlHashCopier f);

Scan the hash table and applied f to each value.

table : 
f : 
Returns : 


xmlHashSize ()

int         xmlHashSize                     (xmlHashTablePtr table);

Query the number of elements installed in the hash table.

table : 
Returns : 


xmlHashScan ()

void        xmlHashScan                     (xmlHashTablePtr table,
                                             xmlHashScanner f,
                                             void *data);

Scan the hash table and applied f to each value.

table : 
f : 
data : 


xmlHashScan3 ()

void        xmlHashScan3                    (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScanner f,
                                             void *data);

Scan the hash table and applied f to each value matching (name, name2, name3) tuple. If one of the names is null, the comparison is considered to match.

table : 
name : 
name2 : 
name3 : 
f : 
data : 


xmlHashScanFull ()

void        xmlHashScanFull                 (xmlHashTablePtr table,
                                             xmlHashScannerFull f,
                                             void *data);

Scan the hash table and applied f to each value.

table : 
f : 
data : 


xmlHashScanFull3 ()

void        xmlHashScanFull3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScannerFull f,
                                             void *data);

Scan the hash table and applied f to each value matching (name, name2, name3) tuple. If one of the names is null, the comparison is considered to match.

table : 
name : 
name2 : 
name3 : 
f : 
data :