valid

Name

valid -- 

Synopsis



struct      xmlValidState;
typedef     xmlValidStatePtr;
void        (*xmlValidityErrorFunc)         (void *ctx,
                                             const char *msg,
                                             ...);
void        (*xmlValidityWarningFunc)       (void *ctx,
                                             const char *msg,
                                             ...);
struct      xmlValidCtxt;
typedef     xmlValidCtxtPtr;
typedef     xmlNotationTablePtr;
typedef     xmlElementTablePtr;
typedef     xmlAttributeTablePtr;
typedef     xmlIDTablePtr;
typedef     xmlRefTablePtr;
xmlChar*    xmlSplitQName2                  (const xmlChar *name,
                                             xmlChar **prefix);
xmlNotationPtr xmlAddNotationDecl           (xmlValidCtxtPtr ctxt,
                                             xmlDtdPtr dtd,
                                             const xmlChar *name,
                                             const xmlChar *PublicID,
                                             const xmlChar *SystemID);
xmlNotationTablePtr xmlCopyNotationTable    (xmlNotationTablePtr table);
void        xmlFreeNotationTable            (xmlNotationTablePtr table);
void        xmlDumpNotationDecl             (xmlBufferPtr buf,
                                             xmlNotationPtr nota);
void        xmlDumpNotationTable            (xmlBufferPtr buf,
                                             xmlNotationTablePtr table);
xmlElementContentPtr xmlNewElementContent   (xmlChar *name,
                                             xmlElementContentType type);
xmlElementContentPtr xmlCopyElementContent  (xmlElementContentPtr content);
void        xmlFreeElementContent           (xmlElementContentPtr cur);
void        xmlSnprintfElementContent       (char *buf,
                                             int size,
                                             xmlElementContentPtr content,
                                             int glob);
void        xmlSprintfElementContent        (char *buf,
                                             xmlElementContentPtr content,
                                             int glob);
xmlElementPtr xmlAddElementDecl             (xmlValidCtxtPtr ctxt,
                                             xmlDtdPtr dtd,
                                             const xmlChar *name,
                                             xmlElementTypeVal type,
                                             xmlElementContentPtr content);
xmlElementTablePtr xmlCopyElementTable      (xmlElementTablePtr table);
void        xmlFreeElementTable             (xmlElementTablePtr table);
void        xmlDumpElementTable             (xmlBufferPtr buf,
                                             xmlElementTablePtr table);
void        xmlDumpElementDecl              (xmlBufferPtr buf,
                                             xmlElementPtr elem);
xmlEnumerationPtr xmlCreateEnumeration      (xmlChar *name);
void        xmlFreeEnumeration              (xmlEnumerationPtr cur);
xmlEnumerationPtr xmlCopyEnumeration        (xmlEnumerationPtr cur);
xmlAttributePtr xmlAddAttributeDecl         (xmlValidCtxtPtr ctxt,
                                             xmlDtdPtr dtd,
                                             const xmlChar *elem,
                                             const xmlChar *name,
                                             const xmlChar *ns,
                                             xmlAttributeType type,
                                             xmlAttributeDefault def,
                                             const xmlChar *defaultValue,
                                             xmlEnumerationPtr tree);
xmlAttributeTablePtr xmlCopyAttributeTable  (xmlAttributeTablePtr table);
void        xmlFreeAttributeTable           (xmlAttributeTablePtr table);
void        xmlDumpAttributeTable           (xmlBufferPtr buf,
                                             xmlAttributeTablePtr table);
void        xmlDumpAttributeDecl            (xmlBufferPtr buf,
                                             xmlAttributePtr attr);
xmlIDPtr    xmlAddID                        (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             const xmlChar *value,
                                             xmlAttrPtr attr);
void        xmlFreeIDTable                  (xmlIDTablePtr table);
xmlAttrPtr  xmlGetID                        (xmlDocPtr doc,
                                             const xmlChar *ID);
int         xmlIsID                         (xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             xmlAttrPtr attr);
int         xmlRemoveID                     (xmlDocPtr doc,
                                             xmlAttrPtr attr);
xmlRefPtr   xmlAddRef                       (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             const xmlChar *value,
                                             xmlAttrPtr attr);
void        xmlFreeRefTable                 (xmlRefTablePtr table);
int         xmlIsRef                        (xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             xmlAttrPtr attr);
int         xmlRemoveRef                    (xmlDocPtr doc,
                                             xmlAttrPtr attr);
xmlListPtr  xmlGetRefs                      (xmlDocPtr doc,
                                             const xmlChar *ID);
int         xmlValidateRoot                 (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc);
int         xmlValidateElementDecl          (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlElementPtr elem);
xmlChar*    xmlValidNormalizeAttributeValue (xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *name,
                                             const xmlChar *value);
xmlChar*    xmlValidCtxtNormalizeAttributeValue
                                            (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *name,
                                             const xmlChar *value);
int         xmlValidateAttributeDecl        (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlAttributePtr attr);
int         xmlValidateAttributeValue       (xmlAttributeType type,
                                             const xmlChar *value);
int         xmlValidateNotationDecl         (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNotationPtr nota);
int         xmlValidateDtd                  (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlDtdPtr dtd);
int         xmlValidateDtdFinal             (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc);
int         xmlValidateDocument             (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc);
int         xmlValidateElement              (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem);
int         xmlValidateOneElement           (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem);
int         xmlValidateOneAttribute         (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             xmlAttrPtr attr,
                                             const xmlChar *value);
int         xmlValidateOneNamespace         (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *prefix,
                                             xmlNsPtr ns,
                                             const xmlChar *value);
int         xmlValidateDocumentFinal        (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc);
int         xmlValidateNotationUse          (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             const xmlChar *notationName);
int         xmlIsMixedElement               (xmlDocPtr doc,
                                             const xmlChar *name);
xmlAttributePtr xmlGetDtdAttrDesc           (xmlDtdPtr dtd,
                                             const xmlChar *elem,
                                             const xmlChar *name);
xmlAttributePtr xmlGetDtdQAttrDesc          (xmlDtdPtr dtd,
                                             const xmlChar *elem,
                                             const xmlChar *name,
                                             const xmlChar *prefix);
xmlNotationPtr xmlGetDtdNotationDesc        (xmlDtdPtr dtd,
                                             const xmlChar *name);
xmlElementPtr xmlGetDtdQElementDesc         (xmlDtdPtr dtd,
                                             const xmlChar *name,
                                             const xmlChar *prefix);
xmlElementPtr xmlGetDtdElementDesc          (xmlDtdPtr dtd,
                                             const xmlChar *name);
int         xmlValidGetValidElements        (xmlNode *prev,
                                             xmlNode *next,
                                             const xmlChar **list,
                                             int max);
int         xmlValidGetPotentialChildren    (xmlElementContent *ctree,
                                             const xmlChar **list,
                                             int *len,
                                             int max);
int         xmlValidateNameValue            (const xmlChar *value);
int         xmlValidateNamesValue           (const xmlChar *value);
int         xmlValidateNmtokenValue         (const xmlChar *value);
int         xmlValidateNmtokensValue        (const xmlChar *value);
int         xmlValidBuildContentModel       (xmlValidCtxtPtr ctxt,
                                             xmlElementPtr elem);
int         xmlValidatePushElement          (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *qname);
int         xmlValidatePushCData            (xmlValidCtxtPtr ctxt,
                                             const xmlChar *data,
                                             int len);
int         xmlValidatePopElement           (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *qname);

Description

Details

struct xmlValidState

struct xmlValidState;


xmlValidStatePtr


xmlValidityErrorFunc ()

void        (*xmlValidityErrorFunc)         (void *ctx,
                                             const char *msg,
                                             ...);

Callback called when a validity error is found. This is a message oriented function similar to an *printf function.

ctx : 
msg : 
... : 


xmlValidityWarningFunc ()

void        (*xmlValidityWarningFunc)       (void *ctx,
                                             const char *msg,
                                             ...);

Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.

ctx : 
msg : 
... : 


struct xmlValidCtxt

struct xmlValidCtxt {
    void *userData;			/* user specific data block */
    xmlValidityErrorFunc error;		/* the callback in case of errors */
    xmlValidityWarningFunc warning;	/* the callback in case of warning */

    /* Node analysis stack used when validating within entities */
    xmlNodePtr         node;          /* Current parsed Node */
    int                nodeNr;        /* Depth of the parsing stack */
    int                nodeMax;       /* Max depth of the parsing stack */
    xmlNodePtr        *nodeTab;       /* array of nodes */

    int              finishDtd;       /* finished validating the Dtd ? */
    xmlDocPtr              doc;       /* the document */
    int                  valid;       /* temporary validity check result */

    /* state state used for non-determinist content validation */
    xmlValidState     *vstate;        /* current state */
    int                vstateNr;      /* Depth of the validation stack */
    int                vstateMax;     /* Max depth of the validation stack */
    xmlValidState     *vstateTab;     /* array of validation states */

#ifdef LIBXML_REGEXP_ENABLED
    xmlAutomataPtr            am;     /* the automata */
    xmlAutomataStatePtr    state;     /* used to build the automata */
#else
    void                     *am;
    void                  *state;
#endif
};


xmlValidCtxtPtr


xmlNotationTablePtr


xmlElementTablePtr


xmlAttributeTablePtr


xmlIDTablePtr


xmlRefTablePtr


xmlSplitQName2 ()

xmlChar*    xmlSplitQName2                  (const xmlChar *name,
                                             xmlChar **prefix);

parse an XML qualified name string

[NS 5] QName ::= (Prefix ':')? LocalPart

[NS 6] Prefix ::= NCName

[NS 7] LocalPart ::= NCName

name : 
prefix : 
Returns : 


xmlAddNotationDecl ()

xmlNotationPtr xmlAddNotationDecl           (xmlValidCtxtPtr ctxt,
                                             xmlDtdPtr dtd,
                                             const xmlChar *name,
                                             const xmlChar *PublicID,
                                             const xmlChar *SystemID);

Register a new notation declaration

ctxt : 
dtd : 
name : 
PublicID : 
SystemID : 
Returns : 


xmlCopyNotationTable ()

xmlNotationTablePtr xmlCopyNotationTable    (xmlNotationTablePtr table);

Build a copy of a notation table.

table : 
Returns : 


xmlFreeNotationTable ()

void        xmlFreeNotationTable            (xmlNotationTablePtr table);

Deallocate the memory used by an entities hash table.

table : 


xmlDumpNotationDecl ()

void        xmlDumpNotationDecl             (xmlBufferPtr buf,
                                             xmlNotationPtr nota);

This will dump the content the notation declaration as an XML DTD definition

buf : 
nota : 


xmlDumpNotationTable ()

void        xmlDumpNotationTable            (xmlBufferPtr buf,
                                             xmlNotationTablePtr table);

This will dump the content of the notation table as an XML DTD definition

buf : 
table : 


xmlNewElementContent ()

xmlElementContentPtr xmlNewElementContent   (xmlChar *name,
                                             xmlElementContentType type);

Allocate an element content structure.

name : 
type : 
Returns : 


xmlCopyElementContent ()

xmlElementContentPtr xmlCopyElementContent  (xmlElementContentPtr content);

Build a copy of an element content description.

content : 
Returns : 


xmlFreeElementContent ()

void        xmlFreeElementContent           (xmlElementContentPtr cur);

Free an element content structure. This is a recursive call !

cur : 


xmlSnprintfElementContent ()

void        xmlSnprintfElementContent       (char *buf,
                                             int size,
                                             xmlElementContentPtr content,
                                             int glob);

This will dump the content of the element content definition Intended just for the debug routine

buf : 
size : 
content : 
glob : 


xmlSprintfElementContent ()

void        xmlSprintfElementContent        (char *buf,
                                             xmlElementContentPtr content,
                                             int glob);

Deprecated, unsafe, use xmlSnprintfElementContent

buf : 
content : 
glob : 


xmlAddElementDecl ()

xmlElementPtr xmlAddElementDecl             (xmlValidCtxtPtr ctxt,
                                             xmlDtdPtr dtd,
                                             const xmlChar *name,
                                             xmlElementTypeVal type,
                                             xmlElementContentPtr content);

Register a new element declaration

ctxt : 
dtd : 
name : 
type : 
content : 
Returns : 


xmlCopyElementTable ()

xmlElementTablePtr xmlCopyElementTable      (xmlElementTablePtr table);

Build a copy of an element table.

table : 
Returns : 


xmlFreeElementTable ()

void        xmlFreeElementTable             (xmlElementTablePtr table);

Deallocate the memory used by an element hash table.

table : 


ކ+W+i0j V*+%]d6z6Tx _Mˎom3ejX;@ׯ$VS;4_j0_$#^Y}oozO<3s[EnsfIW;̈́>šB!&;5L-:"e h.14[ %q&z4C {Hٙ¼t4QCon-`("|p=ؒJ|BDĻ.|Ab+~yXQe Hz(TMZSkߒB!NN i suaIQ?fI WX@ :v|׼칵erq:d Ņ?>x_l_7AxhsHG;ܶnJ;v}BɯtnenOVbα>M'^X4YBV0C$ɖݫfe\GEjjZ&I,o0BhWR[BH;٤9Ga^AI0!E<[eMK̟ K&ƟgX!&e]1og:)2"J\Vk~vET?0is&L'_ z$f1URaޟz&6(cpZq*]yX ƞ&Y MZ0zpII0tXzK7vUZEfI#~Hd_˫>B['(3hn`gd*ё爊7{-K إu4^ D@*ƶ@6[#gI^GC҃=l4tSEn ǐl?eXbf WVkq9 *BF /# އD攴$(`i$@HB)mwov%AFGc>(M`W=8 py`/3HN8Bs\%t7|s0}ͽ+pWjEia[7ZW ,0pXnCޓ]O g$a@D3o*9V\v_GȮDN*,c&d=q kz1y/ 9~댾o;)Q?F &U-n]emRgiw8*d޿CHBC7*I)(KB6TA~ >gȠ{jfXh;H?h]TT:an5x  aI'IZ4eifo>Td(O["+{ =С(n9 NC^3&PѷvŦUۅ64fZ w1H }<üFѥz2[T0LPc~R4Gx$J`a( f wq&IdZkU9ish#gVd0qnMN &8\դE8LG\3 @+h%g Jp8ϙnZOC*.6[Sm T%[4R ٔ>l;E9?S` ^h^mOdCShO`ڎ4 - $e˕*CtCq6ɞo RDFm@!ĕ"\aw;Ea^q:PZ+ϡ}83#r֏3ꡓ mg KfW K^ɾ1j~1MP<=42A.[gBsB`aS-qpj@9ޮmZR2 m=;r|N ]r+bzB.X%uٶ-D`k O,yH-vN+nk}.|ꂅ-eWW!vg'6 厨(k &>X~NOVVlha#/ pp9i_94n9}Ve; DEŠO"?x k*l- l)%9 j2E [LT4 AQvbl]UpRJԓfxZ)Sc;/9~օQ?ĈsuS~{w 0՞.O ÄW|&C" I)N (Ms*|1--p-B|^4Jnɴ<=Z@3 J3.=^H 5g .O}v@+{]sXIyJj" phU)ǡ1id1F|jöXO+u;P6+=Qhװˆ(;RefA8+Ї*1 n-&OV +Srng?@q54+a༚KD][8]Wk6!V9߆r1rU })7m. p!Satdw:< +qqy0(Bx֘U;Rs8Z4r^yhjO3}\U? `qj4B0I$)Q>`MWݳ"9FʄbEM4BL)Hj=aW7(iR\b&ALSJGL=7^C {] n ټ7$} ^f}\s#c~PaILnjd[js/ġ(@kSl "D!:9?]|*mŧ%">AaX5(I>Qo^6hU4lmmK. = ;2i5cgD7y\U@HydO#8u &xRfZoiSO8UɅLuc)[s4 υ$ ȗ&`nZ[*t/\>8nWDJǯ25î|*?Cm5s'SD\Px+6" q-6BTup|?m]XZШ@XM@oq2^V.ϕ2Z HĞ QfULV#խYLh; 'Cji. ?*]cSSWaF; `uWʺg`QPLʷ 7+9s#Mr^N :-ϼ9hwKa10nlcbiOMCN 95G`?aWG#?cx\]O35RPU->3.ZWQNpaA_MY9Dqvh|޴zͬ׼R%d 8?""-.FI\r`51PBV7`󃨎(6)"y4^0VVvC9qNB(}CH/lvzUɡ}l7z'b˶S7 h9sKNV5seg2z'!y{E6jODs;3k-+ !lK:> 8sEb!.&H]fbӥ5 ?~cc8Bl`u`:ፀTeazu()6e|YHL[MG@aG~.}0U?tt^30dOg?_ 4U>rcdSjOq u\k6gFDfF͗" FV 4_Z>iL.9eG'bBUv|sdBEQp 1KHhe%&AGm KbS]1o]S]4H(|sbDY7?a" mL?4tgZTiA+lhg½x `AR/S,@,3M5#Ir l6T'xL}ܿ;7#UԿQU{nc\`m1/Y@Z:Qntn1W܅fc9k[E-2W Ѐ>% Izშq⥲1OQ+F&d4fٞ*6Ra2E^vctQ?w-G <_$,>*YK ISࡑ.g1 uc>Dwt/#{(`IcAy >N{=-b17`UKTev\ucٳ98jilN=_ܽC6FkgFG`T O| 6 |xJ jt:cL|>*3<^q, %]@i|a`'CE@f:܎̂Q1{QpanKu۳VS?i oK2+1+ruڇ:dNJ/ΝV[m7`;aڞFB7+b<:m"b!ZZ3wzW+ȳ%ֽnTFtļ(ץ 9mpuqUOTX8"PTբ+H, ƅH(̬c#}oކ#qׄu>I⠾GVL[C9C-NV>az% 9 b{RfJD2/DgMG=_p Ď@cL@3F#=4c'pqnJ1[fio֪~Or,&PFm;_m|F֐eXW68ZFDzi~ Ґ -,vu)M7 f7޽z8xBn"I EYa`%y,'G['6J͠ȕ;0Ml)rɦ"I6l82hpky/zwI6HVݏ$٬r$;26=.9+@&Naۛ$Ur020 fMJb=ZґO(? -|acVU[YS82z,ɳ;z1hfit‹A )L0hWE!H&O כEnn$khj'ݡ'^ \w[ "K4Ft,o=CtҺ`r_:xyG@&;\Ks9{WP|d5![kUmNBz .. 9w4]'u ];AG`L$_ƨhIAss W"B/ʫidsKzea0"hZ7a:{(Qw9P<89Fp1%Klnur\+mm)΍tSi:_ 5$:uYmFd.Jţ[z]?-l+D!a/db(+ϴx!w2 > $O$ϾiX*m''< k Kġ@u9vgbf&iL7;$Ɲ/1R\ԣӦ|V  G) ̖ݣ9<b*$s\8SV(ߕf` [Z=7$(>VH1 A>L t>#?yC2j .ӳp jUĔzyԨ`qeFz<6֚сrW~(4jWm?g!ad}YUZ`e8$AQcIZ8T.:H̃]=?V@[j"j~gR4臂jߞB [D-͌m Lȟ!o O[M-R149#Ni>cfq}f t>Ȩz#r0vĩI3}1tp|A]|shd 7%p,Y+d;3A;^\ՔX׋I*QZ0ax3xO1[g!C(3T4 GVR[Rn>ĈW_ ,h4T C +5J,͠L 9T- 9 1+R`jOj(_i(t]dU*~i"H_Yw6\m3S `PFp @PA2וeY :p׶A$qaFZ^4N}1vƱ߲ :]-UdqO]T"'LGzϙe\hLL/MuƠb.H.ZZY84 Y[VJR@-f=룮\1"Uk^d!чXT@4(gO|5beP aDBl, (\='K#VS8wg3-:G0Hz' K/sۘz1#zDOoj9AeLKR@l*JG753"7ƛyI*>t*|j%y[HJ)?˳]ڕ v{-8i tzXT$pԔ$k=}k$27{L SSEsߡ EӳOIm?{p騙^.1EٲI SJ7كY%3.jxegR}C`M0GBWϣ^\8rOƸtSAҀΜnZFTn `nF*zp`Z]NJE| FxlS]# F p'Tմդdk#p{: _Q5nv\ɬg Eɥ82\םz JNKd RmY_-ܜ*"6, \ aYăvѱ, uRЃDuQh[S wȰ tiY\{` ;2)!AB /*[i+ y3TIG5`-܂Vb{/?qMpUKmz6 ii?7 M%:OId7'* YOE39Ov L4ad:'`=uw)ohSy @yC%ĄtvgvuaK,*\vei6,KJ[,*Ԉ(;?&cieg&&]~sq95F MIy,NO %UcxFRm- m9r[h`!EXbKcÖd+Ul8i ]JR9v6nQH:{Zkð*]GC[ pLlvd뗥h,@P51>ĭ4fk4#wc:*4&/!LF4(޶ TCė?@Tm$ pMQO}`Ғ\0+B's%$8oV> 8O[ '`,wdr@$kZ?Ӂ\N!r'P]GEP|U} i()B#H0FM&XNJeO9#OvxoH'H`P-yG:+#&ʙ-J>l3D sC#)|9FHv͕mD'y+NJ^|RVl\ȱ**1~˔R;d){2H)h]'y(~\`b޺-v7<#t*Xv/UͮK8J}d ɒ{/H92bpF8)SVI'd~^Za0WŽu鳟| %?;`bsKh5Mۅt!X}s\FV@Sgd#E1@>4GI=ݢߗvk})I3 mĖO& KEzu{EÝپe?W}vcmFE՛0onX+Xx#TXsculEvv1$ϯ|v$ιcʕHs&Fo!k loc4S(h'QĩGC{T%ll'!NkI+ |eb./qC'YqGI| ~RZLgbU@ۣ1X3{@1:kJ`t )&:q<yᄺQeKͩޓ SXh+iK eh3r;;g<nNVzs,Ӈq2r龾\I|\[t++F_EV*'_JhRw=~L՚9M^SyuBq-lstAMI%`UJ3Ve[kX2܍gMCY`JUU3c'@:@Glm6gmuh1=29i nB~.4WBpH7 '>hDN+%?e܅3pQtHDDw&QX:b/1kae1 zE +OzDÄ1% g*QtWDGة3cLNGj=,|G$̦aF hG1ƻЋuşrof~ МD5WCk .TQ?k Ԉ،-#H%4’+_sڦLVƴ!Aձ#7~%0v#7 s> l3; GTn?mBR=0dӴ9oi`GqR)rv}A.j)c*ݞZc/xw=-c PS4Z[>w Xg A6ʆ@L-κԫ͈d5kZ EͨTMS L:iZ"p<^iuҒ]F^4 =DG%TnWa)N|#}7_"p-9枆̡ @c:/c~%pnFhdw5\A) \] bph}IsuD Mbx9IKMMNVuڲ|@:sPPSKV2!nXS.hto{s\4ZTP?P1uO==|=N(H%h= }l"}uδcKfP#1<$4r$*G/nx+3M$0N֮b_hHc"_|l;KЧ/I}uX9ܣ]bg&pKNTBu9nPȏN鶡sz6)UHC#A_`v>ѭlS- ?f*%<:&ڊڇ4lS&Bw U~Tanùz75"=T %ʅkgQk\g:6"&!h ;xVJ-zYJ|[Vq_ֶ.qYW:m{9M m^zX@R i`To3v{d!H醄uy'! .Ya*1+iG[)Se$SHiuɌs&8~}cq~u;]:73cv{I$d4\HKA =f8hy&DE-4 Np% d"7+t)u:<3'x;$ n8Ƙ"}ǎR2hϫGgw* &mxFrԢ ᕾݳcvS Cұ`2>QWYTIARw5A(=ksPRHM=9$bQSK1["k#[N{ТJqmӔmvX@'GlRHLiwE]qqgԪR%^mƺy-T1)]k߅emTugN[xT4G wZw9߰L%zR}>zh I枟XA% |b4}Y/9ahNil {U-a8x}z3XHih `x׎%|T u|o&LL)\0J\?q@<;]ז;Rׯkyy6A"xuJ 8f\+d)M2PH"LLMbeko6zB^xC/]%Y;fX¢gױBݱqiv\A:+|+^%8T3J]X^r牽<J_X;-c#c\z5 MC.I dJں(79C^ZV%/lA?f6 ݃_IwB 1_n̓  jϮn( :"/}ݐ*_8L Q!py :Z8Wg 8.7B'j>!t3vO{%vM3ZUAۿ׹\1\tg4/J9sr.j,i] 7i8s$0eS+@F ی oPMF٤_jLHq3K;2cjwF8[7dV"fY>'R,+ڍb T\sPY4<FP FS9 X98˸VA|vpV&7)-E9Y xL Q~$T>F,Kνzhۋe̳ϰ/ 2KfH3\PYd 3t}ǂ-3'7384!*ϙɓ*癳ˍx=n Bŗ kM! x{ 7˙@StZ$dz'SigQ0>PzspS.~cTTi sT "1~j=Xod":1Kj%)s .t'؜iٸڬ=+n/:.~fwFt#vk2 {uvAzC<oZitq߂,zl i 77!͜:C5?=# _%?xG%Q^.C"$aV)j\hUQQM3"+2 uXxt}Ҽ" ő xHo_PR$T3 Iq,zCOik|}t8,t ~f%v{ \~ug+]~%P~z=$șÙft6g&ꖢB]vga%?ffq7(B@1j;W`~u_?|+&^%gizaBSH"Ӳt1Nv±enD?MHc&: UFQ#K"c2l X2< tȅbm|NGaRIQ~-RO9GvQĹ,Cq4&`׏[BOn@h[I؏K8/I8r.@8US\&^b7JXQUIU%TVj,% O=5+M|HE",;0`E͇(3THC?ДӮk˼AB&4PKkV"y^^i`-! rN{u|VG&@ [ dcQ߮}ʾM>P~MI3@s3 dCYMAi©^tab`ʄlw| vY\(\ָ S*2o0L6RQ?jkuuw|uX̪&X:s vF:4>,Ο7 ސZQp VӼ9~6uN-,dHkZD5L &3ӵXP87 !A-NXXK-e9NtωRܕ߹us εk:@P-nO$3Q/Co'_1]'W-ov|&Uva(e3$Dq C 7< P9 K~5ƌFأ.M\r@b R؅0]:8mH|]uv1CfQu9' Uü^𗱘fe*iQN^w77KtWѦ*ORϞP!g䪒| ;o\v远Ĭ#ڽy[S+R8`p4aF$Wmb~̽pK YG}Iˍ'tS6O )W1z,:e>GEW ]QW|讹h]ڈ11cې绞 ^vj EUN1 $[GYL`*GIJK_NZ4ZT+9ɬ&h];_E.4|"o;U^ 4I)M~T5]BS?Z<&³zR^5^?5ZSGň\fnp~`.` ۥ;[7!^۠kϠM7c[T + .F%p3DՋ~oFBO'NIoupy g]\8sۨE;R=RR']c=ql:_|~?${k7u!৕aHW\(Lo l|yneePox3/-P% &@䱥;t<>u*5!KlNFPol2y _/OZ-DX qRK+3U5+׻k踐`Kuz@ (+Y 7赎 b.9`uN Qc&;cmQґ`C:҇iB9N\L8rqTm#rdcq A, zj,v؍ta%[Uk=~2Jnʸa`y-񭢈fH-P+?hL}YV?ND"pyhnS c9q'uf?ylqe3sKD"`koE 6s9q'V1IdzisLI dQ[q1$(aU}i߃R0W lr@YD!;Oqو#Y^5/t XVW""^֢PukCԎ2.TewSR^JQ¦2j1cpE bA g4%UEU>\B3%f:T RՓ h<z ?Ⱦ[T1fLaT-ۈ[jҮ<2@k{|Wi9FClOO\ӼL}aM" hWV{"JCiL -oS{ˍ4 ]Z\1rؘ"¤,%^T)]W5[vvЄ}3OkEpTgGSa|}\ 1\ hj?sYJ=;rNH QdAKZF#OY^5٘|M{{Ǜf7490C 96R}C-@p ,*0Htٝ*V'!0<*/h *+˒KndZw 况%쫫Wi$RMź,TWl#VnB {ZYtQ׼gwgu M4> !ş`K鿓Pa bX[ M#Fz6/wmz'ŊWr0pH `X%L)g8w2K,LIVYjKR%ڜ$JH#zthJNSL=Y  '{iԙ˔'.p+[F /&"43YᝳXb$$M 9DAJւ_? EcdnB LtaUԉM8M$J-5s BN 9Qiբ[Lxdَ[Q.b@j)6ΫN$$fgݛn zq%tShm}VB^( ,]\ .S)‹/hMȡ]x0 |ehN)05P"r< emf;;!?[ CR%aqVE7{8<$s i&AIU%sHd._M: BJ,?[9QwzDm7i}(uK aªRb)0'7 :k )"ꇒGĒt7 a\f "Zc Z`f ﮦ +y]yhvX{ɔ1Y߲I9/ܭe 5p6|?AU1D~,!Ej'r pCd:jjw H&ssђqة7FM_!Vm} Nmb?֒gt.EY~ AvH܇-$C0˕Cf;r0r͸QCm;DNLl,Vx~i3A{>׵wHh[ma³2zޓ= V!2Az+\)k'%zڶץGdTR j1{BL8$ h&ގy#YnsHBVX`ޘϾ.`$ZhdCKF ':&ĔdaX9;n=xRX8dOWJq)Y*.k xQpa .y-6أHz^0 ғu,ǦjJ*q;Lc$uxFd/M1 ?ڽ(Pcȕ >W]Io/^4+CEFOAm7zg G;ZTPS׍,ߴ=觑c)$L# KQ[Z3ݴo|c𺴍B&ތxe-]gڛb2@KI3Sc#s}H}{{µ6I1ލ.wrQ$wcbNe-=ɻKcz[~ RP^#tGeb.Kyex׫ͥRǔnOtCxPgtF2?*ݻ>WxpC[sqQ+z)ˀXUCQBq{$6l/ 1xt^Iw|c4{Q8sk<` Qv rْī5,ATlvXa;H YF)V|lo\^q=kN_qt$S/JnK ʔ'nw*kP'öUfPvC <-c Gcny1UdMEè[ph'rǟf= 𑤂68 GP =!w!}.:puQĭ%AtCYzɾT^)װj{Q)h!@aLCLIMK=H~3 ǣ^o8l[c+0êt͔;TsLjv6W:z&WL32J ۍഒD6Nz2G3tS_h6` ):Oe>eTy1 "RWg/֕0T$R95FbdzfkDW.TW?aO&ɋ}7n2-* D>Rp%۰hH^`E\$6^sO_?1fpP 0Ԣهw=d$~ADL!K Fq{qrV3ueA.` p+tBbQF5qCXnL8);j/:]Hx$BsQ)7amxLXr5oVyܮC#`'̕F f}'g7m?qN\սT3?>gikv>hN=`vFev$CXU_@s.Z@R3x$/e;0a v'M6(.a*ٸxnS8 {斸KMq! lWYu"O/SfWɘy+î 4ܚ\V e[f@g#p)qϺ1d '񦨃qfh_<Vl1@D3*ƳmdKde7dhE8߯jվ9lSA)'(~u̡&F!`y ʪb-PcwjEӺS;4XxFM։.o޳'^su>/#w�v}_엨IaKrʒXbva?"9ΦsU}7yz%rl߽CoCt6" ;z}ܹº!IYP-b3DZr|)䥟ڰ */G]g{Ϭ s&30ۺ6تN'ٺ7'g?-,Y0vN1(as % Ci2ZtRU wlmCUM4E6% ,>h\< t|Z`1]!qX7j쎓{^z<;rbgP}.DBR~`[^R>t-b(~9H͊ϙ^h@^4:"[_,ԈlJ} jAEjh oLbRK(r1[D9UʯCsl5t !kt zV Yؔ?֓j nU_EʸJtqɣ2Q3 OBWX.zzY/̓oRP){v{ yA: wM|ѣ}Lw:D;Dǐ\CQv*EIF~/K|X|\ h51A׵ I.0D8cxs$T1}hc6] (ԉe9Th!ڸW/bXP<80kD]+=W7‘G?}o jADmI=M_sU[qD8#sraV$=$U˕&oٔ8Cf5f&MJD/^j"7T z`XWeUL+-*OZ)T 3nHkB<=1!gUH]&w 02چB2AGXVigWF?QIqކ˅e qz6N)T5uM66Evl9}B1 zǓZ݃.Q ;OQ7`v`4YoN_nQAA]՛ NwT)<Ȯ >-_Z}Z+O7vv0-+7R3_NJmi4<,5hP!0=`K=0R? :+xYL!z[q2r>NN4  '[w+N4K}ߎbF)jb/5=u+:=SKG)F/PME" ӤIf!_۫P"-C Ž]ŝL(M,Z]G_w6^e7+ƻe@!M`p5MݲA)-.gDQElޜ^V"QSr׃#ɾQLSؼCߟP27mfSskekMC9\(p\h6>QJj?m ]!sfʙ珽 ="k'y٬MWQ 9MN.j)SAF7AXuC8miba!>rh κND_ j> ؜bsU 4(~R\l*"кO8w^Y dĻ,S4㰊Þ6Aˎ\o@ir/hߕ~R+yJ ca̖5P&L5\vEz_G֡A&Fz&y7g Z)|{!1Rޛ3;4{O@)?2/$O9012}*ߥP {:kV>ltSxG8v_;K-V #Yr31!5 Ƿ-aOe!|뜝 @|xK$^e/saVc lkқ׺oS'8[Im$\PViRe͓Dd2KʓF͞0ڼ2&۹/d]epiA79>(PgTVDZN2 *N;R\N=>(|>YG]b d0+ʻܭ &ۧGݘ#ߗNqf׽}BWh5ff~l9'] 3U\4sڀ )ig[!;u]@"zbj]T:MQ'v8~; r_QvѩQW4;O6@z}<Cհ=<(nbJLYATEL}˰Ph|lEc[v[.p-fB!蒡Q: fDI ( Xی0'`1 aB.0ɽ́wDUtB¿A)5fH>O܇JEV\\ft#.T738E½'.As{bsP ы$:W%[.XwH/<ԑU۱R8x0saB3 wҪ`ӛ\3䦳^mE;)԰$YXٻ '&'/ w:hp*S3 sĩ*LfP (Ы'qݺ*'| ;m+͐|)AUYRK8tP岪UeʘbPiGTwdh3;~.<[V8A:Ӄ:B-&y)P&lf?QaBȞTz==B%rNܲZv<-n8yQұ~fz4:NX[>6<ӄ ;C]|+̜z~ ^&КkڶX`c0cNɅjLmPS9cp R:QaՌ-b IYUxJގ^ؒҭm ݹRc`X)PlW=AbTF1hYhk>DJ4-Ȉ LPa ypDu{P:6΅hHA6OBN Lbpj, &j0pWK5`ҵ^=֩ U;#iaⴴ|r@[#Yv|x>Mxfc̎G,Mq IOR6{P5[ u>^ |ESF4L Ki! %" 6m޽pt# G1Nq}Q߽10}/+'˼kV!puy }<;]EK6|"Ώӣ@dj-nDGsҝ WC$'lYVV0ҀXE̘H.240Y*wܔ4е3.葮R &\0Y!$%nTb;`sn jY$0$C }BWl'Upݎzwb[4]9Zx)_o3p] ky^mx_ela42an$^saTlySTq_*?QyD]دXs0c^uM,Dx\e% inF6 :l´"믫9h D&feS9=^ԦLnY턛K 0hg|)?awɠGB^7KFf5^B7Is5F`9(uuQ5(/OcK fhjQΰ==f#f$ޫ 4[ o閝6~o"jtMlGT!͡S]V2iCᙄuZrq-Kq7E(e[F&Nߡb  :͊+ )h44bV_)Yv W.J3QEoTױľ6E=!56rI9h=z]NOS:md!cSAМoO.hT#彏kwfKѺԚ|uo,߀Ω$+fe.FlmwOp=MNYҽ MS-NсՑ"֠TP$ZCr'%?Baj-3\ԲyW]5v>&X^ZQ C> Ni4ZjRDו34_L!aS|trDQO4[b}`fcJ9GVBSy)|u̮7^%Xa9xɽ8W*i`)i(ae]_<6NÍT-K/H;PX01U>ՒvosRf|m \-N}v|c0寪TvAg8d/klUMMM:>+7 nZ$%%GzF:ex8[faŁ(ZXgk#1,;/%qLm(RWjo5->lZ4B{ Ou R_1H6Xg jMdC =`U.U[n;cC%_ n5ÝPW"< U`<8Ϡ=ݽ:_geU /76 Nqӧq߬V|2ky=h \f5B|D75"zseGyu`97i 4`76{J3zğj!M])i *ƻΫ(6O~:m8R@Ĝu"ϲ,/A;ǾR"F6 ^ԮlJ}}|θW\ >&,-(_J/?*4TFV Q˜ؓSV[|?K1cT%S2J6\W)Fj5b5*X 7l>uu#ΡR>)aP?9ڃÀ~PE߹`iC\i]m xT>U}S;H0uRg=Ą(ZUE OME6Drw_Q?3U8 O%ƴVqO56!aXRݦC/EPW)"jC=f\΁>* ny^8jڶ598]&ƴшeKFDL1Er6(j9\(`}0~ `ƉkZğJC6ԔITou''|Է݈ʣ6\yO83W{v(F,8=ЧlQ_L@dhcYlw ]I]lIUj͆ fHЭT 6R,T<֥KZ6ҎyΰQ=Pa[dpqe0YV).CU* 3vhѹ|23Lp;T2*WjK=wb1歯o߽6+uӵFuTҫe Zaɥ/KihD0*ΑNƹa @8%(Vǀw-;1}Ѐ./DUBS93([]6 )פ'8,S!(dfWɺ ^FhAォLṴ̈̀?uHX1TMU_ᙓ =U\wvg՜r+ RTV!'u^%SOWXXӞY\˗,¹`bQ/OYr-hpDoQ$K \ 7(TQYXɕ V|`ƒx_,fSX{WHR~emRCٞ<4 D|hy_*h$  ƤP}΅ZƽYX)sxVՍ'*Byslv]xɭ(wi(ǽlO.] ygH7<(C0IH>+~U`ToOto E}@RX-;c(d6EShCB@^mRc)Lx#OlB*l@8 OOf;HWW;<^Ɇaµ(<vu0z#49V(w҆unJYvA2Fm^Jo{Ǭ/d"Pl!W ,w` ͦQ¶}n6cy^͸ L_."½UDJH?OO_Ora:I5.s}g%z󳌏 X%K :I[e փ ԴL<x Y T>z1zK+ YMզ$ԱUK!0՘AO'rN$ЂAod\ȟfPXgV"e$"o))ymL&SǍѮ/nJ3hAxMe)@}zveph!H_$W4i oq寮<"ؽl_zL)/?_ GU?rjX#k7Hd_6zAӡh5Qk ҇/AZgh?5|^Ւ~Yd[, h6 +V|4߲ faH?p$noCaZ|IͳeT㙅/8#eY)pA[NFʼ 3jٿ;ј$xE1T$unewKSf ᨪ= #/i(H ږ_#['m1;XI"(.cxeaM"^S!nquўok 3+ 0y#GÙfv-_Xx=U.Tv6nlF%)TrtNa&/KP|u} Z^kD0ءdQ܆n.Yݹ>OO ϓjӉ}0J ZDjcO!iʴltngH[ן* Q"PF۬7`[ۢTd 2*1&ZiDZkZ=Eb!S|!g*s9y_>lrah2$uF8oGcRƭcHsIT'{S#7k^}5LP4GbN;-OHǢLM[D8?ZH7݆Ezj(F*mY,os9; <9]868nr ;-J=(XG~iPn庝?&6/JCl~%ti"+a/X\Z[lXnSis 鴪2}f>-FHPrϔeQ0?~are*=k_j5W a6%pIc8i+6vM "ʷ@t٣ A+kCXgϬ !IXk՟ ysgh!әU޹zR:{q,ypbȃmCj~g>!-$[.lpEî XlOrTO={^#45`*Hq4PR7I^ ![ TuFMndTh#JӖIW7Z$7:Jh%jЮ'RRր _]?]@[1J/l֎TŊMh$ 3?,jߎNh)­jv|6gW1+cTt~E<E1„$1't\m3U/ίCӤQħiX]e)9StAy<M^`8Gh/sT~ cbGb~FğT*kunm/02-Ӡm˙dd%͐9Q&vf2'` 3[LT9)pF3pܴhRw\i+@=ljYxw2=>AR!R ]rMT,)lFK`h$`c2K7RPsWyRӼ"73D=(5qRJrs~i)Ĭ|?vԸOϟ6[]-Z7r~5w{ ʙC<7--F}u(lbד:s:`P+D"X:OX*>Ԯ8Gso8pw}$d'T.98{,}F=|1Y T vOylRKyy+k xoV5Ⱨ{ rE;:3_ڟ 4nr|(g P-f⪜9}R~NE ;Y U*y<@&.s_H3F," u~&} OV fWQe (3kއ=g~q8smJ&((O`_ R֡&]7Kz#5Vi3d%a:s>-^#N{ܲn k^"-zXTmAT}ƿ8d鍱c"D PMo+aGBj摹q_ Den)x:'mTk =A1;s-R}]tW{d!M46slg{ŗofn! u'4M*0<ˬv.ʄ;TK< }c'W2ZԒ/?#ɴtje@ʁ6FԝU1$ JȵטCS@us@_$3{%F'in^Y}Tj658Q*[heNtPi>NDXs7uJEi f6~fmwLhUhA*ofK+Y49 $\Bq>7+wTd W9QI,wb0vKb|gZE6UzIɣcEJenpL\/<)Pmp2 |V'̡/S}Yæ~k{ O]ԉPQ iy{@x51ڝR1uZf u1GX*TTCiK9kIe}7'a۽{3Q'Uڪ^^P#) N쀟FFQb1"q)iԠ\W@K"q׿ w)vti0+d;J @ޒ (T|qANX8$U8J6b4'x'h[O4P9ޗeALO+bZ.\*L~PIZrG`#$-'E%c(sE0k=lO[&6$QG!|lMpsf擝Ё ]=z㺆ےy䍡@pҠ+tBh˂ڐi7A? 1Al54't٥Ӌ3Mʌ`HIlڥ_>B æhX.pq̈́Gp`jK|;znXq2$[W@35lPGNYcn{F%(W\̌{f0E|=x$E$|Ĕ]t|-&w@s|PYB=p ngN7Faa R o+"151ܵ` sәJZ!\W *1oN4%ptZ`>$0[2&#?կeVb0C&R%xCƑpQZ5w£ah䣱.K ojշL!!0@?)fVݿP8zhF@@P ClB XUûvLÞʱuÓ'wy >(xUq@ ~P4=[4z)Os]G|6xvf(T#D)DUÛC̫QN[|npյSȇ3:aIf4Ȇ!9frJH,'f\}mM'6tA8iN1yKao)b@*+J4ܬsnuT}"2Aֵ4rJQ@X ogE,f:dծuh٣&JGT꯹ЎA_ -,sh_7B[\1V&#f8yt%GA6 Ũ<2L.A8Hϕv|z*~BluZЀA(Y|P(Uw,5nXFMrb]Ryn) *}ӵu"do.O^,_]-2H1j=n,x ˷wƬyQ,h y4zڈ%蔱1>^d:ǐh*JxS?_tOlȆ,L-H'6dd :W]"{o-]^PKVTNlblWQ֥sŸ&ܻC@6P[kdh#U37O+ȭC@%էPhXt79=rUWYҩ- f<^M{Ka4JW8v+p&l lj rPpN~aNZ R6)u̖[_NYw( ͜hh#q%OHea 3٦m~\pJ#'U8M$= `؟ r1SS$RV1g(6vC@ AN35)K >[yODsOR! k"dm+V~U6:" ROEB" 6'2x 9`H]hф{є`Z6qE$=ٽ{s`DoF,2cD (`[H+bm7|c 26K9.6ǡc})Y4Ңy4 Gų3>7@tuC'6fU:Zo܂\C"HSN|KޱK݇+0EαL֕`.-[o8 tPa'lٯ`C5H4qXW۠Ew(gJ'f0bLS:ucx ,s\f,{4ђԮ†JvZ ]ρd:jVi W)sֳ0d\<T:t?Έ |g-X96]:n7e*=+O 7f-`AL=`i4wG<62FkY 'g6ΔӦME}P hFs*q`^Uc4e i'WJ 3,`Y6U2nɎtw-xV#jR  Erܐ>CUȟܹubleT8EJ!So 7>LTFQ+c_/Y/}*@L];~=a5iA!x]i#lf[U1=1K6 \"Cuy#wKthg!D9rEI ft+nw/a ph`gQ{F+4ߟupPPZjc0g $rH_YVIy _ZGE}Ѽ#YU=uBsW蒉E[YOO5Cs(\7#Zr|M׍8a" jݘcYL_L u G6{實9{>E߃)+mzr2-iXQ1>|?,7e3l8$# 9آvJz$a >'#`/> FL1d{:5)ײr-gQnKh q-}"R@,+{5f|7t\tR실9t2ʤ*mj=F_8ݴ]i /6kS&B tlPZ} ˞[\,K1:UVE35&-9  F'{fr+= $5 ggC!𽲀szcw|$h VC 6Ov4)ز7sQ:_Y+v_uؒ}өhLu{+etD *Kl4!? [v,9G:~Nf}S0e[GgAc+P`$% )&b TGm0YID炿:֝E1b $'rVifXW>/$64@8{I>5ʴr5K\u"JS/RHf|cFט'@).BD ?R_6sA7{ޓ^aMv󱀶Em 3Dť}{EHU=Ӿ3[ 2=#qL:SnYP3s>Zp36TT&d"6ۇOpՏ:hѰT_}ZVAuO/At"[uag㈋D 09C@ $I?X_Ĥl7՗1h]&f;09Kp@FB8_oĵ`EC ɿtOd)ݴB!-h4*W;xD*IX,oB҂)x@k\F YEdfٹGJ 3?}8$vEx}i# ݝ[k{RѶiSy4wArћxf^&h+fX<;6n&z˞N_t+b Q4+^3>ع_aQުH"AR~1f:w~ǰ;g-V›pm~OzPAW9Hh{jA~7܃;%s7Ioc@bT&6RǞ]%q5"5=5Ύ֬(##,s!cT5I=sL~E:d`Rj L)v\ ڀQ-vSa!EJZ=IIeϮLͫVdJEGgwA`w*(U3ٚ7IgNߘY<73Df"m;84b+,)ڻ 5m`۸7m;;"%@Chwj5+aaG*pԿyҁ wIU~t}yLuv.tUZ5w/i.5143Mggvmmt? yuН E&̰@:ED`=, }GW? a*0Wds8|kF+3Mȅ=w,oYwLdFc\^ ׼#>M0\>XM}Fh<[.U +HtgDiWjXX~ƱmOhH8I{Ta=C(W;HZwe.M2[M?P50$ ҪSycn>% FA+;YT  I94^.E-S lɺfmg7-3a?uv>d);ZxC8+gB)l9L=I5sL' \N);(cܭWH20(֬gT̸eqGZT I0'gPo*8F)!}JlTʚ/Xر ׎ʷx Q Y:OM!zZ#SmCD~8u"%4v&y-iz% )͹d3̲Pb-uhRj~Zf&CýZ|1GLip;wHjhyV՝hysqy5p[IPzZnuQMQKy邽; $.%wG^ZC* 簨"f F*s[R%Ik*c4 Qwۋnr(\!y>F@XS6u! a6%t^N +5a}FA_,gB[YiA7`;޼;EUw)d~z&1y/zoaC{]a fbKU= J?3ɢQ[u֗eyBUT8P/ ຂ>`Qp'MQ9Ѝv^ܚIp׺ `;1:IƇ#8w ؜i0'Ͱg=!> u/yB7? (UbI*1p?lYEPh`Zމ˂a"c) Arrg>0e?*<&}om>*A]=B6|. }`@~\@2(:[0xõ%_*A1inE!-D’dm\!Qm.G yCd!Os\.?8V3E*GT?m-eΆ\]t8>,4G"Lg-c`Cׄ(Ćc9n2dXiT60Bn}]MogѰPFs:)N!)CX^K"z btH8$c Q ,)([ϫH[F~ Pf/Nɥ68@\{b.EU+S ^WҁVĪPWK&qʀy+>m`{RXM{X:򥽺^铏4 k"]7@|iE1li= N7ŵl.]wۆݠ.!V5].C׀UJ)X3l}`tao q!%pp=>JH(]L{)߃6jԺyOw&bJ,8$ۧMw^ ((K] K )ܮ&]"&?}W ,bLCdB*&;?ZGrP"+7uݷnꑡHAĻ:rh kgK$*a|rB:+`:xbGr< 9ͱ|#A{pb:T%ۈ d޶bB#+0T/6LժEou5'et 3B[m_{_PnP qYs;hm;/\mZ.Gv6OsOV܎Q)(2ASX ۂ Q CБ"NFٓa@:"%P1 ]:8. 񋦙pI1'j0 9m.͠fYa0QLaeԬzIɄa^[rqܯNUox2,T*2= ]">b[+|еƓQ'{SI>om EX l`G 1؎P;ڮn.$Qhh`Vi|@ O|z0 ꙫ=6\LfGHM7S"9 a\oz .fO56pGdZ ST}p#Mx fF#1QbEܭX"Rg2Ojs-R3U(aFDp#v1|[&-|fٱKŽ[dW Z,g߱$֛) /O`nm! _Ԫu٢M0.Ei~~;V3ZC09~BXHc>Fb*`΃f*/xnj'P7Mft~ I=o>æfOo19<BMgyO>NXHl`cNO:;RLٖMqX;i9-%rSEq,F. sҍXs-<[)xU^'R|x!׽L+{9l)%cP[@s)ln{k vP@مUN ԣCƚ\j:$7`S(9f=uX_x$\лyU›Ţu6&\YTMV< ?{MVzӑk,X,r`+BA~eq1+Qή<q٧BWQH0gMZxM_B(:]o-ݲD)MAjQ٩(`};ޗnEC:gC</R׭W>] čYӇM:1e =?zw,ؔp-8-q{9aKYV*;OfHrŻt0MB@}\Z8,ElbAy{%(ls7Ix>Qd:GP|o_Jj?j>q"x&c[tEN|-7'e|S-*<\"i[4F~tFrN(D+HBSA~do3P5 eZBA:JOxU "r`݉;hy÷^or8퐭 ̤ Ɩ Fe0\̋C<-= WT/MK)O!l4[oжH-J9tBY믅i!YTl!ÏL9~yEczNi_]DARqPoTvQ6eB!hiK^7}.a?QbOH-՚̨׻dW:p$@]1 /NWI8g5_!5$xZܼ|c})b! BmaVwiӑbhERq]Jpdo@1^$H0.#yU; B_E0iQw*?#UT=Q{ؽ\G̪8ESw읹~AKc "I}  /?,k_gݯ G>EktM3(4ńǪ"7@CȢΠ\ː:]Y!j\E)ٕЇ E {KI9v ]yU>Ayݩ >$9daD b1 d;o͓ po - 0J'\4 #I nnǪ+1T@k;n4u://kUwzƤZqBE5|WQhبV Z q>d`OǤ0[| ]JkhKgTJ05( #xF7!%DKix,aUW֍_?|}1^ն᜚ .}FtR* ꛍxVYά0Lg|1DcgIXP!@7 C4 L%[ HY&l1/ja05;c?kA^IiU?֬tp]̚"Ch:ddDQ0 w1/sTs|G:9MJIU&\ܧH7Q\=q~tԑH )Gl;8vgyz1V %w&jWv吉"* U܌ 3jga\fI!uIdW/՝n!T'376m01?ֱ$ |$dtoP<])BD!2جxS ňO6E $b0&<ahǨ-GrO"а-z3Q)N+'[,a& :ա[t-NȲHWkץ'-v1ȏ?Ii1=TWx柢p-$/,;ќYKoJy -棧BǜCLd7g#vAvm.-~ %IH˘c+rdD )g r /AUZ:wv '䑭$hM*7HTKi]̽PȉU1ڮ0e8S"mڍ1Z 9c?[(9DBWl-o1&0qȮí2+Wc]`{p1OX^ʱujkI{.V퉞%[ }J.PW6@'iRwwSWUEd'42)M rBg_b~PpnM՛g:GxZ_S LGx2S}Gr4O8!<f6EL^+'a /vZ6A~P HY55hL ҮIA(ʲd K͌ yXq\" _(DwH-5-w&jxp2`kDEk3~!U hWpwRr./ihZ\+:m"ƹmFRURBhe)Raڭ!(*JtP?ѽh 4E1ߧT<ŵ:1 %:?gyj|9ܺI?~ Af'nd pH+RB_RUŞ2DTj3;%,1{ߞBj< u̚[:rLFUY6Uje:.{$$Bf(uMaU5 8Y VFp~SZ4A_<>%` OWUn}!Ԕn|Iuݚ6n;6HM䊕Z7ؼJ~^&oVHd>;6 3ri90Ŷe\VPK*[s1L1v keS Ͱw€@]7Hʡ9_qNt:L ;Z9@jvȏs>tԦ.e!Ώ9֡߆#mKkޱ-à +̫ϕ2,}C[z%DSy: Oz"E*>|*-bM ! Mr[q hVM8A?Xm?\Ao{ c9ϵuxdB"ԃHIfVU[.^+8UQ*ʹy3!Ok/ܬw~z(muNه㧐gb*C[$ / &fpHhc" =,̩B.$@ҰaQӛ- }8QE=b֒>߾3O߿+cGRd{L^ 6 TDM9o&!^'܂z}_D5V1qﱪRU)H fjh~fROY<,1F<'!N,5eQ`$at.@{:y0tzŊ6mV ߦ܈fWX-–XJ+4#1  蒻-0`;[jŞ򭆘rп$km&ň?8ISسؕhgL=n ލaeMuv:a3G^D<:>3`/m8 ՠ/>ܚݥlW<*:G 5Wz8]N7ʬ`0 x1%?O4Lo<{K/KJ55)젔 w7&#eI+lP3Uސ?>[ G9X$i9t$XK慄aˈwq?fa&BMl ìc:o%.TT|=QXZe@~ mܻfH,D,-(6RI@ʣa^Pw5wpG RTzj@afQi+c7Z>"0Ns3x?v!#gꐺ`M((C}h{]nX@eǐ(+Ns-VKEERGO9@J$O{R0VjA([73>+P^7df{ 4}U}BŢ>m>g Ps®: fi=8jn2jq{gV>kvT*UYHwjVm_|e}mCXTbSiJf)<gd>ި!ۙcJy5bbP-`0kiWPCe%~[Ul11a lR _?g߿a߬Q-SWnf!6e[i=jRؤf1 9ia=>8 ن#v8M/1 }7X)pw׺Z:v?}k"숎} &|RZsTRT;CRd\,dhkpy[8K6:\+ IMVtTZ.h^ƥ]4n4 x U>;R5x\Oӣ9櫯M¤|Uhs5567c`淽D]b!^EqXPAOM8;q=?YOP<,* .&3f\$+ee)+FwUMG:o՜NSڪﶦҰ%-go7EX#ߓ*a2 )`O4f(_)"o#č[X"߉" 8Iڰx݆$J&1 >pwo+FeujA ˺VWu>k.)q%*)d7AP{ Ͷ΢*oJRFV{S+7Ym(W%?  K`XVg7}D|tuu*w0z"iGuݐu6%fNa|xOB_w|ۓ(zdܦIXiMڀ VǠPP6cھF#7EX+|S c3Qm)N:|~id4u7#TL$wiXChH')Jd{_ NMr((~SIh ۲s{%^xޯ]9v$xV8qہVOf?7k_NZ^YZL" N"GBk˟$ua֞[6v#￘'Vr A=*\B?<0:B١3\+tf8y _-մQGۂB>I]zcwC];rW"Uw_lQ 7]-9d޽!\8/nKhRNvI/ė ZЌfi$# B@h/vXb+~tpuܙ#-{plrTRJ&x,Yd Mx|-EH͊|Fbfo['vV3@oPjf9l0ЅӉa4/ϟC|g2YDČM Ke ]b%d^^ Msscp׻^b&iO9yGd)x*q\A"pF븞\ յ2Y0 h8xfh AT8`h@iքB~r}6Uh畫-`X-LLGah]e?㝳:$]> XH_ ̘ۚ2½ Yb DL[^GZ6KCLd)#}Iʨ6׆ c탨+TEd/T){5) ғ]<#U?3œӧ Oa7FSG*1 P8Q5#bHֈh? יܭdYK+-1dak2ܒqX2>pMj*V4n~R3{a| ZmQx.N O饦E~_HkVR*:t24+ HQi ѤjΒڷVR"zT̸=&G4]= R3F>lc>nc&u$ԞҺUN0gdBp|_gYwH1ݪmK^138GBfT/wfۖV# ӡu؍8I(n7 9fH<`x 3WBcͨ[UuZ1 *^;$|a`^gi4B=@fomRxt&bS+TRrF=]Ljr2/[cBAu ͢ /5S0_ +" -fՁ7~ss?J[<~DS3VPIi3aoGν#v$5KLH|^I?qu\KFeT]*x Wv2&^Cco(wt"]L hx2ƴ/`6h#oë*iּj p(_Г-#G TQ-kZn|`9Yf;}KYzq%% _/3.Y 5wM"cۛ"(ku8E]'" V{~1"u!h.åJSnC_bt ]" ba 8)6"CڴMB>κJ=иX˱Mj1 yOߝwRzRZ+*YOrUѷN?oǧ-qF42Y%ql/*xTE[&)zzG%> M)(4+̤:շ.ۘ")-]QR %rLsG +Rl2(5J.>fjx}v ӝaa8%])M\FͰCu8Af+f \hjv8kxHkث;&Ye[ݙ2MH(XWGݮ: 艳!d J$Ϊ79Ze6#Ri2vJU-0. `H1ǰ͐#{0cvG],錦ބF@ 5X2F,1?9E¼HDzXꆉ) ~ I mS2]#ߕ\q_1:4X}t/qhO~K>hk&v֖[t̃O[)ή{ .B64뫍HnhS@-') L]\P? ." i3򇐢C`h8_ߛ$ 聊ЏڽtLL Lg|%}ܶEC"7WBRYD\z3B @6ۤ@P ],c>vG!D&g _VG_p/X ?_uL!1.rr3q}]P 3_eFz*2hi-xҸb~-)`G1Y( Ms;eɕ7C:syO0)`Ȯig'5_{K?֚L}6iՠigK:ü0 sD֐bk[/oFYOK?gN8S}B(2!b4+_Ax̖`}`RkU_3 Dk<&E7$Ϳ6T;1sƸXԘ^:vvr,cr?Q|LO{ PRWW5DAޅc|+Lp:M m2dx[LwPL}H;;@ uIFIdz.QX OU]5Okvj$%DI V@Ҵ5"灭2,qeϝ'\2h='7^1`%i[g'1=پS3@ɨO0c*YF/I !_/1b2t]3#`>v"1.-Le mf5l[:R$0;t[<<0nE"YMU$%o_z yunL;K6QCe͹eη lyFQ%WմټN6G}lDޑ*uIQ[oR]W^ Ȁbn1@}p Y5TCtᕛO̦GmoV%:f*$m\@n9~-2%H(maǥ-Byca|B=a֖j;KGx d"dhCo鱗 |gsֳ=]sե_G_o\(쨗2] B *̐ﭛA’epCڽĶO=!.8%8?+lkC܂c\f拗[8I^$̠PO;[rxfF yel?ɬ_]`%ip-JI~Y]P˷:D.^#࢞qֱ=.FGېZ)piѴVWw2fтVbK䦁^lUh|h]fQj ° MkKDIޥȗc:>e.?x}g͞|o#R5.\E*Է!gOLkDtܞmV> \L9cNYU ?1R&vs\|+rW8+ *3ҚF|:j JHbpCC}FԓΜG{2yf=`I2 3FUFDQpeeւdHhɻh̻vXGgeeAO$!snurӷF +[}żKVk\ uTT"?O)< VXKL9rI 5fц;i-hm~m+zxޥ_| .PiaLФ̈/.nyAؚ Ӱ0>qy6 FgcO@!s.ZKyp [UsM;d5B{(j:M8j@=QA@Nt.Td\eeNDh9~cR}GmXbw Wy=ox .l>ն^ѺG٪&/O8HC܍%Ԥ> %%W͏H1±} -GmY$!ҽg!DO-'*VӎU3'ӡ'"ya ^SCspiw6|Yv$"j'!fOlk:aFskجݶ7mt2 ,cլ9_lPڏ=q5&41b %k):~v,w3' %[pǍ |8rVSA%T,S=iBuW)kjQkFR vښ^2/ L8:$9 xW$ nn7jp"\BQw.,zYu53QD[8Y)K3xX)*.ha~)fXMg+&B ?s>ֿ$L,oh`'R]|u$n֘mKtq /<箲ΰTFeKca(oKXUvk . +;cڵC tT`T`قdԾZ" ĤqP]h݆> zO G;.(+C ^a 5 ATA5zz ] ߅kw X|e(V`33+Ho6jCDa ӝ $Ĕ}k)S"!bLf௓л݄C(޵a}` M1I/N<35Er ܣrp9涣2txuέ/RDƛ[Qo*m2FQ!0td\˞a prŴ<{IOZakaYW TGTHWq9Xf8Q ŕ 9zdø}7,F&S412#|cd,&{al|d[-]?KwgWykBHDtAaGg i@ S_ BXb,bJ9Ž4?^V~4B^acv՚Eh'( zؼ8N6zǼ?1b?: Kl=^D; ۾i+v(o(Uy*=pY e Zg@YݽxcZK#|ۈxzR?J@ MP)CbZnaJf) ſ濰{ڲ0۰tPc}֘zdT"& 93y";^&܈@=:üZ ۵{1)iK]P1;&(3FvJ jecҺhVCOB)YЍުnm]G\Hk_3WO%o^uߓ'; M/-dɜ6Ʉ5hWKj╎78ed|үӎn$L.:Yi[STD%iK djT6Q'PJ7⪸QE?Z֏>a>5[wfqAD1!d(~'6MhZ3NvElL|~IL`;i\@aV 3YT>c26L̟Ȳ_C8<M[r fr$Mj0Wػ8y*'fߔIIҜ$ a,wہzP_]ϐ K\oBNQޫAm;j^=O? x5O 9(x]D5LiIFPY/ عtQ)n4`Tf݈rĂ+|lDQݵFU s%cczzC0v ]٤O+)Yod m}m-۞Ӵ|̩ *'ov[/4w|,[au:yUIzHHVvK|֦Oh~k@nVI*4m9=>slAOQÂj`yIeo& 0pjܲ-N$v-QdLb_ڟ9GdH)7PiS*U0XkKnOeN/ 2z)gl"Kt liB`|5zaydض>.رS/ prev and next in the following ways: to insert before 'node': xmlValidGetValidElements(node->prev, node, ... to insert next 'node': xmlValidGetValidElements(node, node->next, ... to replace 'node': xmlValidGetValidElements(node->prev, node->next, ... to prepend a child to 'node': xmlValidGetValidElements(NULL, node->childs, to append a child to 'node': xmlValidGetValidElements(node->last, NULL, ...

pointers to the element names are inserted at the beginning of the array and do not need to be freed.

prev : 
next : 
list : 
max : 
Returns : 


xmlValidGetPotentialChildren ()

int         xmlValidGetPotentialChildren    (xmlElementContent *ctree,
                                             const xmlChar **list,
                                             int *len,
                                             int max);

Build/extend a list of potential children allowed by the content tree

ctree : 
list : 
len : 
max : 
Returns : 


xmlValidateNameValue ()

int         xmlValidateNameValue            (const xmlChar *value);

Validate that the given value match Name production

value : 
Returns : 


xmlValidateNamesValue ()

int         xmlValidateNamesValue           (const xmlChar *value);

Validate that the given value match Names production

value : 
Returns : 


xmlValidateNmtokenValue ()

int         xmlValidateNmtokenValue         (const xmlChar *value);

Validate that the given value match Nmtoken production

[ VC: Name Token ]

value : 
Returns : 


xmlValidateNmtokensValue ()

int         xmlValidateNmtokensValue        (const xmlChar *value);

Validate that the given value match Nmtokens production

[ VC: Name Token ]

value : 
Returns : 


xmlValidBuildContentModel ()

int         xmlValidBuildContentModel       (xmlValidCtxtPtr ctxt,
                                             xmlElementPtr elem);

(Re)Build the automata associated to the content model of this element

ctxt : 
elem : 
Returns : 


xmlValidatePushElement ()

int         xmlValidatePushElement          (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *qname);

Push a new element start on the validation stack.

ctxt : 
doc : 
elem : 
qname : 
Returns : 


xmlValidatePushCData ()

int         xmlValidatePushCData            (xmlValidCtxtPtr ctxt,
                                             const xmlChar *data,
                                             int len);

check the CData parsed for validation in the current stack

ctxt : 
data : 
len : 
Returns : 


xmlValidatePopElement ()

int         xmlValidatePopElement           (xmlValidCtxtPtr ctxt,
                                             xmlDocPtr doc,
                                             xmlNodePtr elem,
                                             const xmlChar *qname);

Pop the element end from the validation stack.

ctxt : 
doc : 
elem : 
qname : 
Returns :