§
    kÃ¿a�ð  ã                   ó&  — d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZmZmZmZ ddlmZmZmZ ddlmZ g d	¢Zdd
lmZ dWd„Zd„ Zd„ Zd„ ZdZdZ dZ!dZ"e e!e"fZ#ee e!e"fZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,e,dz   Z-e,dz   Z.e,dz   Z/dZ0dZ1dZ2e2dz   Z3e,dz   Z4dZ5e1Z6dZ7e%e6d z   fZ8e%e6d!z   fZ9e%e6d"z   fZ:e%e6d#z   fZ;e%e6d$z   fZ<e%e6d%z   fZ=da>d&„ Z?da@d'„ ZAd(ZBd)ZCd*„ ZDd+„ ZEe.ZFe/ZGd,ZHe%e0fZIe%e3fZJd-ZKed.z   ZLed/z   ZMed0z   ZNed1z   ZOed2z   ZPdZQ eRd3¦  «        ZSeSd4hz  ZTeSd5hz  ZUdZV eRd6¦  «        ZW eRd7¦  «        ZX eRd8¦  «        ZYeYd9d4hz  ZZd:„ Z[ ej\        d;¦  «        Z] ej\        d<¦  «        Z^d,Z_ ej\        d=¦  «        Z` ej\        d>¦  «        Za ej\        d?¦  «        Zb ej\        d@¦  «        Zc ej\        d@¦  «        Zd ej\        dA¦  «        Ze ej\        dB¦  «        Zf ej\        dC¦  «        Zg ej\        dD¦  «        Zh ej\        dE¦  «        Zi G dF„ dG¦  «        Zj G dH„ dIek¦  «        Zl G dJ„ dKem¦  «        Zn ej\        dL¦  «        Zo G dM„ dNem¦  «        ZpdO„ Zq G dP„ dQe¦  «        Zr G dR„ dSer¦  «        ZsdT„ ZtdU„ ZuevdVk    r eu¦   «          dS dS )Xa€  
notation3.py - Standalone Notation3 Parser
Derived from CWM, the Closed World Machine

Authors of the original suite:

* Dan Connolly <@@>
* Tim Berners-Lee <@@>
* Yosi Scharf <@@>
* Joseph M. Reagle Jr. <reagle@w3.org>
* Rich Salz <rsalz@zolera.com>

http://www.w3.org/2000/10/swap/notation3.py

Copyright 2000-2007, World Wide Web Consortium.
Copyright 2001, MIT.
Copyright 2001, Zolera Systems Inc.

License: W3C Software License
http://www.w3.org/Consortium/Legal/copyright-software

Modified by Sean B. Palmer
Copyright 2007, Sean B. Palmer.

Modified to work with rdflib by Gunnar Aastrand Grimnes
Copyright 2010, Gunnar A. Grimnes

é    N)ÚDecimal)Úuuid4)ÚParserError)ÚURIRefÚBNodeÚLiteralÚVariableÚ_XSD_PFXÚ
_unique_id)ÚQuotedGraphÚConjunctiveGraphÚGraph)Ú	long_type)	Ú	BadSyntaxÚN3ParserÚTurtleParserÚ
splitFragPÚjoinÚbaseÚrunNamespaceÚ	uniqueURIÚhexify)ÚParserc                 óh   — |                       d¦  «        }|dk    r| d|…         | |d…         fS | dfS )z·split a URI reference before the fragment

    Punctuation is kept.

    e.g.

    >>> splitFragP("abc#def")
    ('abc', '#def')

    >>> splitFragP("abcdef")
    ('abcdef', '')

    ú#r   NÚ )Úrfind)ÚurirefÚpunctÚis      úB/usr/lib/python3/dist-packages/rdflib/plugins/parsers/notation3.pyr   r   ;   sC   € ð 	�Š�SÑÔ€AØˆA‚v€vØ�b�q�bŒz˜6 ! " "œ:Ð%Ð%à�rˆzÐó    c                 ó„  — |                      d¦  «        }|                      d¦  «        }|dk    r|dk     s||k     r|S |                       d¦  «        }|dk    sJ d| z  ¦   «         ‚t          |¦  «        \  }}|s| |z   S | |dz            dk    rt          d| ›d|›d�¦  «        ‚| |dz   |d	z   …         d
k    r|                       d|d	z   ¦  «        }n|dz   }|dk     rt          | ¦  «        }| dz   } |dd…         d
k    r| d|dz   …         |z   S |dd…         dk    r| d|…         |z   S |                      d¦  «        }	 |dd…         dk    r
|dd…         }|dk    rd}nL|dd	…         dk    s|dk    r7|d	d…         }|                      d||¦  «        }	|	dk    r| d|	dz   …         } |	}nnŒn| d|dz   …         |z   |z   S )a‹  join an absolute URI and URI reference
    (non-ascii characters are supported/doctested;
    haven't checked the details of the IRI spec though)

    ``here`` is assumed to be absolute.
    ``there`` is URI reference.

    >>> join('http://example/x/y/z', '../abc')
    'http://example/x/abc'

    Raise ValueError if there uses relative path
    syntax but here has no hierarchical path.

    >>> join('mid:foo@example', '../foo') # doctest: +NORMALIZE_WHITESPACE
    Traceback (most recent call last):
        raise ValueError(here)
    ValueError: Base <mid:foo@example> has no slash
    after colon - with relative '../foo'.

    >>> join('http://example/x/y/z', '')
    'http://example/x/y/z'

    >>> join('mid:foo@example', '#foo')
    'mid:foo@example#foo'

    We grok IRIs

    >>> len(u'Andr\xe9')
    5

    >>> join('http://example.org/', u'#Andr\xe9')
    u'http://example.org/#Andr\xe9'
    ú/ú:r   zBase uri '%s' is not absoluteé   zBase <z,> has no slash after colon - with relative 'z'.é   z//Né   z./ú.r   z../z..)Úfindr   Ú
ValueErrorÚlenr   )
ÚhereÚthereÚslashlÚcolonlÚbcolonlÚpathÚfragÚbpathÚslashrr    s
             r!   r   r   Q   sL  € ðL �ZŠZ˜‰_Œ_€FØ�ZŠZ˜‰_Œ_€Fð �‚{€{˜ š
˜
 f¨v¢o oØˆà�iŠi˜‰nŒn€GØ�aŠ<ˆ<ˆ<Ø'¨$Ñ.ñ Œ<ˆ<õ ˜EÑ"Ô"�J€Dˆ$Øð Ø�d‰{Ðð ˆG�a‰KÔ˜CÒÐÝˆjà-1¨T¨T°5°5°5ð:ñ
ô 
ð 	
ð
 ˆG�a‰K˜' A™+Ð%Ô&¨$Ò.Ð.Ø—	’	˜#˜w¨™{Ñ+Ô+ˆˆà˜!‘ˆð ˆq‚y€yÝ�D‘	”	ˆØ�c‰zˆð ˆRˆaˆR„y�DÒÐØ�M�g ‘k�MÔ" UÑ*Ð*ð ˆRˆaˆR„y�CÒÐØ�F�U�FŒ|˜eÑ#Ð#à�ZŠZ˜‰_Œ_€FðØ���Œ8�tÒÐØ˜˜˜”8ˆDØ�3Š;ˆ;ØˆDˆDØ�"�1�"ŒX˜ÒÐ $¨$¢, ,Ø˜˜˜”8ˆDØ—
’
˜3  vÑ.Ô.ˆAØ�AŠvˆvØ˜G˜a !™e˜G”}�Ø�øàðð ��&˜1‘*�Ô Ñ$ tÑ+Ð+r"   c                  óN   — dt          t          j        ¦   «         ¦  «        z   dz   S )a  The base URI for this process - the Web equiv of cwd

    Relative or absolute unix-standard filenames parsed relative to
    this yield the URI of the file.
    If we had a reliable way of getting a computer name,
    we should put it in the hostname just to prevent ambiguity

    úfile://r$   )Ú	_fixslashÚosÚgetcwd© r"   r!   r   r   ³   s"   € ð •y¥¤¡¤Ñ-Ô-Ñ-°Ñ3Ð3r"   c                 óv   — |                       dd¦  «        } | d         dk    r| d         dk    r
| dd…         } | S )z7Fix windowslike filename to unixlike - (#ifdef WINDOWS)ú\r$   r   r&   r%   r(   N)Úreplace)Úss    r!   r8   r8   À   s@   € à	�	Š	�$˜ÑÔ€AØˆ„tˆs‚{€{�q˜”t˜s’{�{ØˆaˆbˆbŒEˆØ€Hr"   r&   r(   r'   é   é   é   z#http://www.w3.org/2000/10/swap/log#ÚisÚforSomeÚforAllz/http://www.w3.org/1999/02/22-rdf-syntax-ns#typez+http://www.w3.org/1999/02/22-rdf-syntax-ns#zhttp://www.w3.org/2002/07/owl#ÚsameAsÚparsesToz$http://www.w3.org/TR/REC-rdf-syntax/z&http://www.w3.org/2000/10/swap/log.n3#ÚfirstÚrestÚliÚnilÚListÚEmptyc                  ót   — t           €+t          t          ¦   «         t          ¦   «         ¦  «        dz   a t           S )z;Returns a URI suitable as a namespace for run-local objectsNr   )ÚrunNamespaceValuer   r   r   r;   r"   r!   r   r   ò   s-   € õ Ð Ý ¥¡¤­©¬Ñ6Ô6¸Ñ<ÐÝÐr"   c                  ób   — t           dz  a t          ¦   «         dz   t          t           ¦  «        z   S )zA unique URIr&   Úu_)Únextur   Ústrr;   r"   r!   r   r   þ   s'   € õ 
ˆQ�J€EÝ‰>Œ>˜DÑ ¥3¥u¡:¤:Ñ-Ð-r"   Fé2   c                  ó   — d S ©Nr;   ©ÚargsÚkargss     r!   ÚBecauseOfDatarZ     ó   € à€Dr"   c                  ó   — d S rV   r;   rW   s     r!   ÚbecauseSubexpressionr]     r[   r"   r   z*http://www.w3.org/2000/10/swap/log#impliesÚbooleanÚdecimalÚdoubleÚfloatÚintegerz	
 !"#$&'()*,+/;<=>?@[\]^`{|}~r)   r%   ÚABCDEFabcdef0123456789z(_~.-!$&'()*+,;=/?#@%)z0123456789-ú+c                 ó¸   — 	 t          t          |                      d¦  «        d¦  «        ¦  «        S #  t          d|                      d¦  «        z   ¦  «        ‚xY w)Nr&   é   zInvalid unicode code point: )ÚchrÚintÚgroupÚ	Exception)Úms    r!   ÚunicodeExpandrl   9  sR   € ðEÝ•3�q—w’w˜q‘z”z 2Ñ&Ô&Ñ'Ô'Ð'øðEÝÐ6¸¿ºÀ¹¼ÑCÑDÔDÐDøøøs	   ‚/2 ²'Az\\u([0-9a-fA-F]{4})z\\U([0-9a-fA-F]{8})z[ \t]*(#[^\n]*)?\r?\nz[ \t]*(#[^\n]*)?$z[ \t]*z[-+]?[0-9]+z[-+]?[0-9]*\.[0-9]+z9[-+]?(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)(?:e|E)[-+]?[0-9]+z[0-9]+z[\\\r\n\"\']z[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*c                   ó  — e Zd Z	 	 	 	 	 	 d.d„Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Z	d/d„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd0d„Zd„ Zd„ Zd0d„Zd„ Zd„ Zd„ Zd „ Zd!„ Z d"„ Z!d#„ Z"d$„ Z#d%„ Z$d&„ Z%d'„ Z&d(„ Z'd)„ Z(d*„ Z)d+„ Z*d,„ Z+d-„ Z,dS )1Ú
SinkParserNr   Fc                 ó:  — i | _         |dk    rd|v sJ d|z  ¦   «         ‚|dz   | j         d<   || _        |r|                     |¦  «         || _        d| _        d| _        || _        g d¢| _        d| _        i | _	        i | _
        i | _        || _        || _        |rdnd| _        d	| _        t           r.t#          |                     |¦  «        | j        ¬
¦  «        | _        |r|| _        n|r|| _        nd	| _        | j        rd| j        v sJ ‚| j        s*| j        r| j        dz   | _        nt)          ¦   «         | _        |€A|s?| j        r|                     |dz   ¦  «        | _        n!|                     ¦   «         | _        n|| _        | j        | _        d	| _        d	S )zdnote: namespace names should *not* end in  # ;
        the  # will get added during qname processingr   r%   zDocument URI not absolute: <%s>r   r   )ÚaÚthisÚbindÚhasrC   ÚofÚtrueÚfalse)ú"ú')rw   N)Úbecausez#_gz	#_formula)Ú	_bindingsÚ_storeÚsetGenPrefixÚ_thisDocÚlinesÚstartOfLineÚ
_genPrefixÚkeywordsÚkeywordsSetÚ_anonymousNodesÚ
_variablesÚ_parentVariablesÚ_reasonÚturtleÚstring_delimitersÚ_reason2ÚtrackingrZ   Ú	newSymbolÚ_baseURIr   Ú
newFormulaÚ_formulaÚ_contextÚ_parentContext)ÚselfÚstoreÚopenFormulaÚthisDocÚbaseURIÚ	genPrefixÚwhyr‡   s           r!   Ú__init__zSinkParser.__init__X  sÚ  € ð ˆŒØ�bŠ=ˆ=Ø˜'�>�>�>Ð#DÀwÑ#N‘>”>�>Ø!(¨3¡ˆDŒN˜2ÑàˆŒØð 	*Ø×Ò˜yÑ)Ô)Ð)àˆŒØˆŒ
ØˆÔØ#ˆŒØQÐQÐQˆŒØˆÔØ!ˆÔàˆŒØ "ˆÔØˆŒàˆŒð 06Ð!A  ¸6ˆÔàˆŒåð 	Ý)Ø—’ Ñ(Ô(°$´,ðñ ô ˆDŒMð ð 	%Ø#ˆDŒMˆMàð %Ø '�”�à $�”à”=Ð8 C¨4¬=Ð$8Ð$8Ð$8Ð$8àŒð 	.ØŒ}ð .Ø"&¤-°%Ñ"7�”�å"+¡+¤+�”àÐ vÐØŒ}ð 3Ø %× 0Ò 0°¸;Ñ1FÑ GÔ G�”�à %× 0Ò 0Ñ 2Ô 2�”�à'ˆDŒMàœˆŒØ"ˆÔÐÐr"   c                 ó<   — d| j         | j        || j        z
  dz   fz  S )a)  String generated from position in file

        This is for repeatability when referring people to bnodes in a document.
        This has diagnostic uses less formally, as it should point one to which
        bnode the arbitrary identifier actually is. It gives the
        line and character number of the '[' charcacter or path character
        which introduced the blank node. The first blank node is boringly
        _L1C1. It used to be used only for tracking, but for tests in general
        it makes the canonical ordering of bnodes repeatable.z	%s_L%iC%ir&   )r€   r~   r   )r‘   r    s     r!   r-   zSinkParser.here¡  s(   € ð ˜dœo¨t¬z¸1¸tÔ?OÑ;OÐRSÑ;SÐTÑTÐTr"   c                 ó   — | j         S rV   )rŽ   ©r‘   s    r!   ÚformulazSinkParser.formula®  s
   € ØŒ}Ðr"   c                 óP   — |                       |                     ¦   «         ¦  «        S rV   )ÚloadBufÚread)r‘   Ústreams     r!   Ú
loadStreamzSinkParser.loadStream±  s   € Ø�|Š|˜FŸKšK™MœMÑ*Ô*Ð*r"   c                 ó|   — |                       ¦   «          |                      |¦  «         |                      ¦   «         S )z1Parses a buffer and returns its top level formula)ÚstartDocÚfeedÚendDoc)r‘   Úbufs     r!   rž   zSinkParser.loadBuf´  s,   € à�Š‰Œˆà�	Š	�#‰ŒˆØ�{Š{‰}Œ}Ðr"   c                 ó®  — t          |t          ¦  «        s\|                     d¦  «        }t          |¦  «        dk    r3|d         t          j                             d¦  «        k    r
|dd…         }n|}d}|dk    rY|                      ||¦  «        }|dk     rdS |                      ||¦  «        }|dk     r|                      ||d¦  «         |dk    °WdS dS )a  Feed an octet stream to the parser

        if BadSyntax is raised, the string
        passed in the exception object is the
        remainder after any statements have been parsed.
        So if there is more data to feed to the
        parser, it should be straightforward to recover.úutf-8r   r&   Nzexpected directive or statement)	Ú
isinstancerS   Údecoder,   ÚcodecsÚBOM_UTF8Ú	skipSpaceÚdirectiveOrStatementr   )r‘   Úoctetsr?   r    Újs        r!   r¤   zSinkParser.feed»  sÞ   € õ ˜&¥#Ñ&Ô&ð 	Ø—’˜gÑ&Ô&ˆAå�1‰vŒv˜Šzˆz˜a œd¥f¤o×&<Ò&<¸WÑ&EÔ&EÒEÐEØ�a�b�b”E�øàˆAàˆØ�1ŠfˆfØ—’˜q !Ñ$Ô$ˆAØ�1ŠuˆuØ�à×)Ò)¨!¨QÑ/Ô/ˆAØ�1Šuˆuà—’˜q !Ð%FÑGÔGÐGð �1Šfˆfˆfˆfˆfˆfr"   c                 óT  — |                       ||¦  «        }|dk     r|S | j        r|                      ||¦  «        }|dk    r|S |                      ||¦  «        }|dk    r|                      ||¦  «        S |                      ||¦  «        }|dk    r|                      ||¦  «        S |S ©Nr   )r­   r‡   ÚsparqlDirectiveÚ	directiveÚcheckDotÚ	statement)r‘   ÚargstrÚhr    r°   s        r!   r®   zSinkParser.directiveOrStatement×  sµ   € à�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHàŒ;ð 	Ø×$Ò$ V¨QÑ/Ô/ˆAØ�AŠvˆvØ�à�NŠN˜6 1Ñ%Ô%ˆØ�Š6ˆ6Ø—=’= ¨Ñ+Ô+Ð+à�NŠN˜6 1Ñ%Ô%ˆØ�Š6ˆ6Ø—=’= ¨Ñ+Ô+Ð+àˆr"   c                 óà   — |d         t           vsJ ‚||         dk    r|dz  }n|| j        vrdS |t          |¦  «        z   }|||…         |k    r||         t          v s|r||         dk    r|S dS )zñCheck for keyword.  Space must have been stripped on entry and
        we must not be at end of file.

        if colon, then keyword followed by colon is ok
        (@prefix:<blah> is ok, rdf:type shortcut a must be followed by ws)
        r   ú@r&   éÿÿÿÿr%   )Ú_notNameCharsr�   r,   Ú_notKeywordsChars)r‘   Útokr·   r    ÚcolonÚi_plus_len_toks         r!   r¾   zSinkParser.tokï  s�   € ð �1Œv�]Ð*Ð*Ð*Ð*Ø�!Œ9˜ÒÐØ�‰FˆAˆAà˜$œ-Ð'Ð'Ø�rà�S ™XœX™ˆà�1�^Ð#Ô$¨Ò+Ð+Ø˜Ô'Õ+<Ð<Ð<Øð =Ø  Ô0°CÒ7Ð7à!Ð!à�2r"   c                 óâ   — |d         t           vsJ ‚t          |¦  «        }||||z   …                              ¦   «         |                     ¦   «         k    r|||z            t          v r||z  }|S dS )z¤Check for SPARQL keyword.  Space must have been stripped on entry
        and we must not be at end of file.
        Case insensitive and not preceded by @
        r   r»   )r¼   r,   ÚlowerÚ_notQNameChars)r‘   r¾   r·   r    Úlen_toks        r!   Ú	sparqlTokzSinkParser.sparqlTok  sw   € ð �1Œv�]Ð*Ð*Ð*Ð*å�c‘(”(ˆØ�!�a˜'‘k�/Ô"×(Ò(Ñ*Ô*¨c¯iªi©k¬kÒ9Ð9Ø�1�w‘;Ô¥>Ð1Ð1à�‰LˆAØˆHà�2r"   c                 ó,  — |                       ||¦  «        }|dk     r|S g }|                      d||¦  «        }|dk    r|                      ||d¦  «         |                      d||¦  «        }|dk    rw| j        r|                      ||d¦  «         |                      |||| j        ¦  «        }|dk     r|                      ||d¦  «         |                      |d d …         ¦  «         |S |                      d||¦  «        }|dk    r“| j        r|                      ||d¦  «         |                      |||| j        ¦  «        }|dk     r|                      ||d	¦  «         |D ]6}|| j        vs	|| j	        v r"| j
                             |¦  «        | j        |<   Œ7|S |                      d
||¦  «        }|dk    ry| j        r|                      ||d¦  «         |                      |||| j        ¦  «        }|dk     r|                      ||d¦  «         |D ]}| j
                             |¦  «         Œ|S |                      d||d¬¦  «        }|dk    �rg }|                      |||¦  «        }|dk     r|                      ||d¦  «         |                      |||¦  «        }|dk     r|                      ||d¦  «         |                      |d         ¦  «        }| j        rt!          | j        |¦  «        }nd|vr|                      ||d|› d�¦  «         d|v sJ ‚|| j        |d         d         <   |                      |d         d         t'          |¦  «        ¦  «         |S |                      d||¦  «        }|dk    ršg }|                      |||¦  «        }|dk     r|                      ||d¦  «         |                      |d         ¦  «        }| j        rt!          | j        |¦  «        }n|                      ||d|z   dz   ¦  «         d|v sJ ‚|| _        |S dS )Nr   rr   z%keyword bind is obsolete: use @prefixr�   z%Found 'keywords' when in Turtle mode.z/'@keywords' needs comma separated list of wordsrE   z#Found 'forAll' when in Turtle mode.zBad variable list after @forAllrD   z$Found 'forSome' when in Turtle mode.z Bad variable list after @forSomeÚprefixT)r¿   úexpected qname after @prefixú'expected <uriref> after @prefix _qname_r&   r%   ú6With no base URI, cannot use relative URI in @prefix <ú>r   úexpected <uri> after @base ú>With no previous base URI, cannot use relative URI in @base  <r»   )r­   r¾   r   r‡   ÚcommaSeparatedListÚbareWordÚsetKeywordsÚuri_ref2r„   r…   r�   ÚnewUniversalÚdeclareExistentialÚqnameÚuriOfrŒ   r   rz   rr   r   )r‘   r·   r    r°   ÚresÚxÚtÚnss           r!   r´   zSinkParser.directive  s�  € Ø�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHØˆà�HŠH�V˜V QÑ'Ô'ˆØˆqŠ5ˆ5Ø�NŠN˜6 1Ð&MÑNÔNÐNà�HŠH�Z ¨Ñ+Ô+ˆØˆqŠ5ˆ5ØŒ{ð SØ—’˜v qÐ*QÑRÔRÐRà×'Ò'¨°°3¸¼ÑFÔFˆAØ�1ŠuˆuØ—’Ø˜AÐPñô ð ð ×Ò˜S   œVÑ$Ô$Ð$ØˆHà�HŠH�X˜v qÑ)Ô)ˆØˆqŠ5ˆ5ØŒ{ð QØ—’˜v qÐ*OÑPÔPÐPà×'Ò'¨°°3¸¼ÑFÔFˆAØ�1ŠuˆuØ—’˜v qÐ*KÑLÔLÐLØð Gð G�à˜DœOÐ+Ð+¨q°DÔ4IÐ/IÐ/IØ)-¬×)CÒ)CÀAÑ)FÔ)F�D”O AÑ&øØˆHà�HŠH�Y ¨Ñ*Ô*ˆØˆqŠ5ˆ5ØŒ{ð RØ—’˜v qÐ*PÑQÔQÐQà×'Ò'¨°°3¸¼ÑFÔFˆAØ�1ŠuˆuØ—’˜v qÐ*LÑMÔMÐMØð 4ð 4�Ø”×0Ò0°Ñ3Ô3Ð3Ð3ØˆHà�HŠH�X˜v q°ˆHÑ5Ô5ˆØ�Š6‰6ØˆAØ—
’
˜6 1 aÑ(Ô(ˆAØ�1ŠuˆuØ—’˜v qÐ*HÑIÔIÐIØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ—’˜v qÐ*SÑTÔTÐTØ—’˜A˜aœDÑ!Ô!ˆBàŒ}ð Ý˜$œ-¨Ñ,Ô,��Ø˜B��Ø—’ØØØRÈRÐRÐRÐRñô ð ð
 ˜"�9�9�9�9Ø&(ˆDŒN˜1˜Qœ4 œ7Ñ#Ø�IŠI�a˜”d˜1”g�v b™zœzÑ*Ô*Ð*ØˆHà�HŠH�V˜V QÑ'Ô'ˆØ�Š6ˆ6ØˆAØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ—’˜v qÐ*GÑHÔHÐHØ—’˜A˜aœDÑ!Ô!ˆBàŒ}ð 
Ý˜$œ-¨Ñ,Ô,��à—’ØØð1àñð ññô ð ð ˜"�9�9�9�9ØˆDŒMØˆHàˆrr"   c                 ó  — |                       ||¦  «        }|dk     r|S |                      d||¦  «        }|dk    �rg }|                      |||¦  «        }|dk     r|                      ||d¦  «         |                      |||¦  «        }|dk     r|                      ||d¦  «         |                      |d         ¦  «        }| j        rt          | j        |¦  «        }n!d|vr|                      ||d|z   dz   ¦  «         d|v sJ ‚|| j        |d         d         <   |  	                    |d         d         t          |¦  «        ¦  «         |S |                      d	||¦  «        }|dk    ršg }|                      |||¦  «        }|dk     r|                      ||d
¦  «         |                      |d         ¦  «        }| j        rt          | j        |¦  «        }n|                      ||d|z   dz   ¦  «         d|v sJ ‚|| _        |S dS )za
        turtle and trig support BASE/PREFIX without @ and without
        terminating .
        r   ÚPREFIXrÈ   rÉ   r&   r%   rÊ   rË   ÚBASErÌ   rÍ   r»   )r­   rÅ   rÔ   r   rÑ   rÕ   rŒ   r   rz   rr   r   )r‘   r·   r    r°   rØ   rÙ   s         r!   r³   zSinkParser.sparqlDirective{  sG  € ð �NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHà�NŠN˜8 V¨QÑ/Ô/ˆØ�Š6‰6ØˆAØ—
’
˜6 1 aÑ(Ô(ˆAØ�1ŠuˆuØ—’˜v qÐ*HÑIÔIÐIØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ—’˜v qÐ*SÑTÔTÐTØ—’˜A˜aœDÑ!Ô!ˆBàŒ}ð 
Ý˜$œ-¨Ñ,Ô,��Ø˜B��Ø—’ØØð2àñð ññô ð ð ˜"�9�9�9�9Ø&(ˆDŒN˜1˜Qœ4 œ7Ñ#Ø�IŠI�a˜”d˜1”g�v b™zœzÑ*Ô*Ð*ØˆHà�NŠN˜6 6¨1Ñ-Ô-ˆØ�Š6ˆ6ØˆAØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ—’˜v qÐ*GÑHÔHÐHØ—’˜A˜aœDÑ!Ô!ˆBàŒ}ð 
Ý˜$œ-¨Ñ,Ô,��à—’ØØð1àñð ññô ð ð ˜"�9�9�9�9ØˆDŒMØˆHàˆrr"   c                 ó¾   — t          |t          ¦  «        s
J d¦   «         ‚|dk    r| j                             |¦  «         d S | j                             ||¦  «         d S )Nz&Any unicode must be %x-encoded alreadyr   )r©   Úbytesr{   ÚsetDefaultNamespacerr   )r‘   ÚqnÚuris      r!   rr   zSinkParser.bindº  sd   € Ý˜#�uÑ%Ô%ÐOÐOÐ'OÑOÔOÐOØ�Š8ˆ8ØŒK×+Ò+¨CÑ0Ô0Ð0Ð0Ð0àŒK×Ò˜R Ñ%Ô%Ð%Ð%Ð%r"   c                 ó8   — |€	d| _         dS || _        d| _         dS )zTakes a list of stringsNr   r&   )r‚   r�   )r‘   Úks     r!   rÐ   zSinkParser.setKeywordsÁ  s*   € àˆ9Ø ˆDÔÐÐàˆDŒMØ ˆDÔÐÐr"   c                 óD   — | j                              | j        ¦  «         d S rV   )r{   r£   rŽ   r›   s    r!   r£   zSinkParser.startDocÉ  s    € àŒ×Ò˜Tœ]Ñ+Ô+Ð+Ð+Ð+r"   c                 óN   — | j                              | j        ¦  «         | j        S )z8Signal end of document and stop parsing. returns formula)r{   r¥   rŽ   r›   s    r!   r¥   zSinkParser.endDocÍ  s"   € àŒ×Ò˜4œ=Ñ)Ô)Ð)ØŒ}Ðr"   c                 óH   — | j                              || j        ¬¦  «         d S ©N©r—   )r{   ÚmakeStatementr‰   )r‘   Ú	quadruples     r!   ré   zSinkParser.makeStatementÒ  s'   € ð 	Œ×!Ò! )°´Ð!Ñ?Ô?Ð?Ð?Ð?r"   c                 ó¼   — g }|                       |||¦  «        }|dk     r|S |                      |||d         ¦  «        }|dk     r|                      ||d¦  «         |S )Nr   zexpected propertylist)ÚobjectÚproperty_listr   )r‘   r·   r    Úrr°   s        r!   r¶   zSinkParser.statement×  sj   € ØˆØ�KŠK˜  1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHà×Ò˜v q¨!¨A¬$Ñ/Ô/ˆàˆqŠ5ˆ5Ø�NŠN˜6 1Ð&=Ñ>Ô>Ð>Øˆr"   c                 ó0   — |                       |||¦  «        S rV   ©Úitem©r‘   r·   r    rÖ   s       r!   ÚsubjectzSinkParser.subjectã  ó   € Ø�yŠy˜  CÑ(Ô(Ð(r"   c                 óX  — |                       ||¦  «        }|dk     r|S g }|                      d||¦  «        }|dk    rq| j        r|                      ||d¦  «         |                      |||¦  «        }|dk     r|                      ||d¦  «         |                     d|d         f¦  «         |S |                      d||¦  «        }|dk    rÚ| j        r|                      ||d¦  «         |                      |||¦  «        }|dk     r|                      ||d¦  «         |                       ||¦  «        }|dk     r|                      ||d	¦  «         |}|                      d
||¦  «        }|dk     r|                      ||d¦  «         |                     d|d         f¦  «         |S |                      d||¦  «        }|dk    r|                     dt          f¦  «         |S |||dz   …         dk    rZ| j        r|                      ||d¦  «         |                     d| j                             t          dz   ¦  «        f¦  «         |dz   S ||         dk    rŠ| j        r|                      ||d¦  «         ||dz            dk    r<|                     d| j                             t          dz   ¦  «        f¦  «         |dz   S |                     dt          f¦  «         |dz   S |||dz   …         dk    rB| j        r|                      ||d¦  «         |                     dt          dz   f¦  «         |dz   S |                      |||¦  «        }|dk    r|                     d|d         f¦  «         |S |||dz   …         dk    s|||dz   …         dk    r|                      ||d¦  «         dS )z{has _prop_
        is _prop_ of
        a
        =
        _prop_
        >- prop ->
        <- prop -<
        _operator_r   rs   z"Found 'has' keyword in Turtle modezexpected property after 'has'ú->rC   z!Found 'is' keyword in Turtle modezexpected <property> after 'is'z/End of file found, expected property after 'is'rt   zexpected 'of' after 'is' <prop>z<-rp   r(   z<=zFound '<=' in Turtle mode. Úimpliesú=zFound '=' in Turtle moder&   rË   z:=zFound ':=' in Turtle modeÚbecomesz>-z>- ... -> syntax is obsolete.r»   )r­   r¾   r‡   r   ÚpropÚappendÚRDF_typer{   r‹   ÚLogic_NSÚDAML_sameAs)r‘   r·   r    rÖ   r°   rî   s         r!   ÚverbzSinkParser.verbæ  só  € ð �NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHàˆà�HŠH�U˜F AÑ&Ô&ˆØ�Š6ˆ6ØŒ{ð PØ—’˜v qÐ*NÑOÔOÐOà—	’	˜& ! QÑ'Ô'ˆAØ�1ŠuˆuØ—’˜v qÐ*IÑJÔJÐJØ�JŠJ˜˜a œd�|Ñ$Ô$Ð$ØˆHà�HŠH�T˜6 1Ñ%Ô%ˆØ�Š6ˆ6ØŒ{ð OØ—’˜v qÐ*MÑNÔNÐNà—	’	˜& ! QÑ'Ô'ˆAØ�1ŠuˆuØ—’˜v qÐ*JÑKÔKÐKØ—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ—’Ø˜AÐPñô ð ð ˆAØ—’˜˜v qÑ)Ô)ˆAØ�1ŠuˆuØ—’˜v qÐ*KÑLÔLÐLØ�JŠJ˜˜a œd�|Ñ$Ô$Ð$ØˆHà�HŠH�S˜& !Ñ$Ô$ˆØ�Š6ˆ6Ø�JŠJ˜�hÐ'Ñ(Ô(Ð(ØˆHà�!�a˜!‘e�)Ô Ò$Ð$ØŒ{ð IØ—’˜v qÐ*GÑHÔHÐHà�JŠJ˜˜dœk×3Ò3µH¸yÑ4HÑIÔIÐJÑKÔKÐKØ�q‘5ˆLà�!Œ9˜ÒÐØŒ{ð FØ—’˜v qÐ*DÑEÔEÐEØ�a˜!‘eŒ} Ò#Ð#Ø—
’
˜D $¤+×"7Ò"7½À9Ñ8LÑ"MÔ"MÐNÑOÔOÐOØ˜1‘u�Ø�JŠJ˜�kÐ*Ñ+Ô+Ð+Ø�q‘5ˆLà�!�a˜!‘e�)Ô Ò$Ð$ØŒ{ð GØ—’˜v qÐ*EÑFÔFÐFð �JŠJ˜�h¨Ñ2Ð3Ñ4Ô4Ð4Ø�q‘5ˆLà�IŠI�f˜a Ñ#Ô#ˆØ�Š6ˆ6Ø�JŠJ˜˜a œd�|Ñ$Ô$Ð$ØˆHà�!�a˜!‘e�)Ô Ò$Ð$¨¨q°1°q±5¨yÔ(9¸TÒ(AÐ(AØ�NŠN˜6 1Ð&EÑFÔFÐFàˆrr"   c                 ó0   — |                       |||¦  «        S rV   rð   rò   s       r!   rú   zSinkParser.prop<  rô   r"   c                 ó0   — |                       |||¦  «        S rV   )r2   rò   s       r!   rñ   zSinkParser.item?  rô   r"   c                 óP   — | j                              | j        || j        ¬¦  «        S rç   )r{   ÚnewBlankNoder�   r‰   )r‘   rá   s     r!   Ú	blankNodezSinkParser.blankNodeB  s#   € ØŒ{×'Ò'¨¬°sÀÄÐ'ÑNÔNÐNr"   c                 ó<  — |                       |||¦  «        }|dk     r|S ||         dv rò||         }|                     ¦   «         }|                      |                      |¦  «        ¬¦  «        }|                      ||dz   |¦  «        }|dk     r|                      ||d¦  «         |                     ¦   «         }|dk    r|                      | j        |||f¦  «         n|                      | j        |||f¦  «         |                     |¦  «         ||         dv °ò|S )zParse the path production.r   >   ú!ú^©rá   r&   z"EOF found in middle of path syntaxr  )	ÚnodeOrLiteralÚpopr  r-   Únoder   ré   r�   rû   )	r‘   r·   r    rÖ   r°   ÚchÚsubjÚobjÚpreds	            r!   r2   zSinkParser.pathE  s   € à×Ò˜v q¨#Ñ.Ô.ˆØˆqŠ5ˆ5ØˆHà�QŒi˜:Ð%Ð%Ø˜”ˆBØ—7’7‘9”9ˆDØ—.’. T§Y¢Y¨q¡\¤\�.Ñ2Ô2ˆCØ—	’	˜& ! a¡%¨Ñ-Ô-ˆAØ�1ŠuˆuØ—’˜v qÐ*NÑOÔOÐOØ—7’7‘9”9ˆDØ�SŠyˆyØ×"Ò" D¤M°4¸¸dÐ#CÑDÔDÐDÐDà×"Ò" D¤M°4¸¸sÐ#CÑDÔDÐDØ�JŠJ�s‰OŒOˆOð �QŒi˜:Ð%Ð%ð ˆr"   c                 ó¤   — | j                              |d¦  «        }|�|S | j                             | j        | j        ¬¦  «        }|| j         |<   |S )z?Remember or generate a term for one of these _: anonymous nodesNrè   )rƒ   Úgetr{   r  r�   r‰   )r‘   ÚlnÚterms      r!   ÚanonymousNodezSinkParser.anonymousNodeZ  sU   € àÔ#×'Ò'¨¨DÑ1Ô1ˆØÐØˆKØŒ{×'Ò'¨¬¸4¼=Ð'ÑIÔIˆØ#'ˆÔ˜RÑ Øˆr"   c                 óB  — |}|                       ||¦  «        }|dk     r|S |}||         }|dk    �rô|                      |¦  «        }|                       ||dz   ¦  «        }|dk     r|                      ||d¦  «         ||         dk    rá| j        r|                      ||d¦  «         |dz   }g }	|                      |||	¦  «        }|dk    rˆ|	d         }t          |	¦  «        dk    r(|	D ]%}
|                      | j        t          ||
f¦  «         Œ&|                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|dz  }n|                      ||d	¦  «         |€|  	                    |¬¦  «        }|  
                    |||¦  «        }|dk     r|                      ||d¦  «         |                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|                      ||d¦  «         |                     |¦  «         |dz   S | j        �s¢|dk    �r›||dz            }|dk    �r&|dz  }|dz   }g }d}	 |                       ||¦  «        }|dk     r|                      ||d¦  «         |||dz   …         dk    r|dz   }n˜|s*||         dk    r|dz  }n|                      ||d¦  «         nd}g }|                      |||¦  «        }|dk     r|                      ||d¦  «         |                     | j                             |d         ¦  «        ¦  «         Œâ|                     | j                             || j        ¦  «        ¦  «         |S |dz   }| j        }| j        | _        | j        }| j        }| j        | _        i | _        | j                             ¦   «         | _        | j        }t,          | _        |€| j                             ¦   «         }|| _        	 |                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|dz   }n4|                      ||¦  «        }|dk     r|                      ||d¦  «         Œy|| _        | j        | _        || _        | j        | _        || _        || _        |                     |                     ¦   «         ¦  «         |S |dk    �r| j        j        }||dz            }|dk    r| j        j        }|dz  }|dz   }g }	 |                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|dz   }njg }|                      |||¦  «        }|dk     r|                      ||d ¦  «         |                     | j                             |d         ¦  «        ¦  «         Œ¯|                      ||| j        ¦  «        ¦  «         |S |                      d!||¦  «        }|dk    r|                      ||d"¦  «         |                      d#||¦  «        }|dk    r|                     d¦  «         |S |                      d$||¦  «        }|dk    r|                     d¦  «         |S |€|                      |||¦  «        }|dk    r|S d%S )&z’Parse the <node> production.
        Space is now skipped once at the beginning
        instead of in multiple calls to self.skipSpace().
        r   ú[r&   zEOF after '['rø   z(Found '[=' or '[ =' when in turtle mode.z'EOF when objectList expected after [ = ú;zobjectList expected after [= Nr  zproperty_list expectedz,EOF when ']' expected after [ <propertyList>ú]z']' expectedú{ú$Tzneeded '$}', found end.r(   z$}ú,zexpected: ','Fzexpected item in set or '$}'zneeded '}', found end.ú}zexpected statement or '}'ú(zneeded ')', found end.ú)zexpected item in list or ')'rq   zEKeyword 'this' was ancient N3. Now use @forSome and @forAll keywords.ru   rv   r»   )r­   r-   r   r‡   Ú
objectListr,   ré   r�   rþ   r  rí   rû   rñ   r{   ÚinternÚnewSetr�   rƒ   r…   r„   Úcopyr‰   r]   r�   r®   ÚcloseÚnewListr¾   rÑ   )r‘   r·   r    rÖ   ÚsubjectAlreadyr  r°   r  ÚbnodeIDÚobjsr  Úch2rL   Ú	first_runrñ   ÚoldParentContextÚparentAnonymousNodesÚgrandParentVariablesÚreason2Ú
thing_types                       r!   r  zSinkParser.nodec  sK  € ð
 ˆà�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHØˆØ�AŒYˆà�Š9‰9Ø—i’i ‘l”lˆGØ—’˜v q¨1¡uÑ-Ô-ˆAØ�1ŠuˆuØ—’˜v q¨/Ñ:Ô:Ð:à�aŒy˜CÒÐØ”;ð Ø—N’NØ Ð#Mñô ð ð ˜‘E�Ø�Ø—O’O F¨A¨tÑ4Ô4�Ø˜’6�6Ø œ7�DÝ˜4‘y”y 1’}�}Ø#'ð Xð X˜CØ ×.Ò.°´½{ÈDÐRUÐ/VÑWÔWÐWÐWØŸš v¨qÑ1Ô1�AØ˜1’u�uØŸšØ" AÐ'Pñô ð ð ˜a”y CÒ'Ð'Ø˜Q™˜øà—N’N 6¨1Ð.MÑNÔNÐNàˆ|Ø—~’~¨'�~Ñ2Ô2�à×"Ò" 6¨1¨dÑ3Ô3ˆAØ�1ŠuˆuØ—’˜v qÐ*BÑCÔCÐCà—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ—’Ø˜AÐMñô ð ð �aŒy˜CÒÐØ—’˜v q¨.Ñ9Ô9Ð9Ø�JŠJ�tÑÔÐØ�q‘5ˆLàŒ{ñ F	˜r Sšy™yð ˜˜Q™”-ˆCØ�cŠz‰zà�Q‘�Ø˜‘E�Ø�Ø �	ð=ØŸš v¨qÑ1Ô1�AØ˜1’u�uØŸš v¨qÐ2KÑLÔLÐLØ˜a ! a¡%˜iÔ(¨DÒ0Ð0Ø ™E˜Øà$ð *Ø! !œ9¨Ò+Ð+Ø ™F˜A˜Aà ŸNšN¨6°1°oÑFÔFÐFÐFà$)˜	à�DØŸ	š	 &¨!¨TÑ2Ô2�AØ˜1’u�uØŸš v¨qÐ2PÑQÔQÐQØ—K’K ¤× 2Ò 2°4¸´7Ñ ;Ô ;Ñ<Ô<Ð<ð)=ð* —
’
˜4œ;×-Ò-¨d°D´MÑBÔBÑCÔCÐCØ�ð ˜‘E�Ø#'Ô#6Ð Ø&*¤m�Ô#Ø'+Ô';Ð$Ø'+Ô'<Ð$Ø(,¬�Ô%Ø')�Ô$Ø"&¤/×"6Ò"6Ñ"8Ô"8�”Øœ-�Ý 4�”Ø�<Øœ;×1Ò1Ñ3Ô3�DØ $�”ðOØŸš v¨qÑ1Ô1�AØ˜1’u�uØŸš v¨qÐ2JÑKÔKÐKà˜a”y CÒ'Ð'Ø ™E˜Øà×1Ò1°&¸!Ñ<Ô<�AØ˜1’u�uØŸš v¨qÐ2MÑNÔNÐNðOð (<�Ô$Ø"&Ô"7�”Ø(<�Ô%Ø $Ô 3�”Ø '�”Ø&6�Ô#Ø—
’
˜4Ÿ:š:™<œ<Ñ(Ô(Ð(Ø�à�Š9‰9ØœÔ,ˆJØ˜˜Q™”-ˆCØ�cŠzˆzØ!œ[Ô/�
Ø�Q‘�Ø�A‘ˆAàˆDð9Ø—N’N 6¨1Ñ-Ô-�Ø�q’5�5Ø—N’N 6¨1Ð.FÑGÔGÐGØ˜!”9 Ò#Ð#Ø˜A™�AØà�Ø—I’I˜f a¨Ñ.Ô.�Ø�q’5�5Ø—N’N 6¨1Ð.LÑMÔMÐMØ—’˜DœK×.Ò.¨t°A¬wÑ7Ô7Ñ8Ô8Ð8ð9ð �JŠJ�z�z $¨¬Ñ6Ô6Ñ7Ô7Ð7ØˆHà�HŠH�V˜V QÑ'Ô'ˆØ�Š6ˆ6Ø�NŠNØØð3ñô ð ð �HŠH�V˜V QÑ'Ô'ˆØ�Š6ˆ6Ø�JŠJ�tÑÔÐØˆHØ�HŠH�W˜f aÑ(Ô(ˆØ�Š6ˆ6Ø�JŠJ�uÑÔÐØˆHàˆ<Ø—’˜f a¨Ñ-Ô-ˆAØ�AŠvˆvØ�àˆrr"   c                 óV  — 	 	 |                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    rn|dz   }ŒF|||dz   …         dk    r]| j        r|                      ||d¦  «         |dz   }g }|                      ||||¦  «        }|dk     r|                      ||d¦  «         |}Œ¶|}g }|                      |||¦  «        }|dk    r|S g }|                      |||¦  «        }|dk     r|                      ||d	¦  «         |D ]P}|d         \  }	}
|	d
k    r|                      | j        |
||f¦  «         Œ2|                      | j        |
||f¦  «         ŒQ|                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|S |dz  }�Œ©)zUParse property list
        Leaves the terminating punctuation in the buffer
        r&   r   z-EOF found when expected verb in property listr  r(   z:-zFound in ':-' in Turtle modez!bad {} or () or [] node after :- zobjectList expectedrö   zEOF found in list of objects)r­   r   r‡   r  rÿ   r  ré   r�   )r‘   r·   r    r  r°   rÖ   Úvr'  r  ÚdiraÚsyms              r!   rí   zSinkParser.property_list  s  € ð+	ðØ—N’N 6¨1Ñ-Ô-�Ø�q’5�5Ø—N’NØ Ð#Rñô ð ð ˜!”9 Ò#Ð#ØØ˜‘E�ðð �a˜!˜a™%�iÔ  DÒ(Ð(Ø”;ð NØ—N’N 6¨1Ð.LÑMÔMÐMØ˜‘E�Ø�Ø—I’I˜f a¨¨dÑ3Ô3�Ø�q’5�5Ø—N’N 6¨1Ð.QÑRÔRÐRØ�ØØˆAØˆAØ—	’	˜& ! QÑ'Ô'ˆAØ�AŠvˆvØ�àˆDØ—’ ¨¨4Ñ0Ô0ˆAØ�1ŠuˆuØ—’˜v qÐ*?Ñ@Ô@Ð@Øð Hð H�Ø˜aœD‘	��cØ˜4’<�<Ø×&Ò&¨¬°s¸DÀ#Ð'FÑGÔGÐGÐGà×&Ò&¨¬°s¸CÀÐ'FÑGÔGÐGÐGà—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ—’˜v qÐ*HÑIÔIÐIØ�aŒy˜CÒÐØ�Ø�‰FˆAñW+	r"   c                 óx  — |                       ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|S  ||||¦  «        }|dk     rdS 	 |                       ||¦  «        }|dk     r|S ||         }|dk    r
|dk    rdS |S  |||dz   |¦  «        }|dk     r|                      ||d¦  «         Œd)zereturn value: -1 bad syntax; >1 new position in argstr
        res has things found appended
        r   z"EOF found expecting comma sep listr)   r»   r&   r  zbad list content©r­   r   )r‘   r·   r°   rÖ   Úwhatr    r  s          r!   rÎ   zSinkParser.commaSeparatedListJ  só   € ð �NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5Ø�NŠN˜6 1Ð&JÑKÔKÐKØ�!Œ9˜ÒÐØˆHØˆD�˜˜CÑ Ô ˆØˆqŠ5ˆ5Ø�2ð	>Ø—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ�Ø˜”ˆBØ�SŠyˆyØ˜’9�9Ø˜2Ø�Ø��V˜Q ™U CÑ(Ô(ˆAØ�1ŠuˆuØ—’˜v qÐ*<Ñ=Ô=Ð=ð	>r"   c                 ó
  — |                       |||¦  «        }|dk     rdS 	 |                      ||¦  «        }|dk     r|                      ||d¦  «         ||         dk    r|S |                       ||dz   |¦  «        }|dk     r|S Œd)Nr   r»   r&   zEOF found after objectr  )rì   r­   r   )r‘   r·   r    rÖ   r°   s        r!   r  zSinkParser.objectListd  s�   € Ø�KŠK˜  3Ñ'Ô'ˆØˆqŠ5ˆ5Ø�2ð	Ø—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ—’˜v qÐ*BÑCÔCÐCØ�aŒy˜CÒÐØ�Ø—’˜F A¨¡E¨3Ñ/Ô/ˆAØ�1ŠuˆuØ�ð	r"   c                 ó¶   — |                       ||¦  «        }|dk     r|S ||         }|dk    r|dz   S |dk    r|S |dk    r|S |                      ||d¦  «         d S )Nr   r)   r&   r  r  z.expected '.' or '}' or ']' at end of statementr4  )r‘   r·   r    r°   r  s        r!   rµ   zSinkParser.checkDotr  sw   € Ø�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5ØˆHØ�AŒYˆØ�Š9ˆ9Ø�q‘5ˆLØ�Š9ˆ9ØˆHØ�Š9ˆ9ØˆHØ�Š�v˜qÐ"RÑSÔSÐSÐSÐSr"   c                 ó†  — g }|                       |||¦  «        }|dk    rô|d         \  }}|€
J d¦   «         ‚	 | j        |         }n�# t          $ rt |dk    r,|                     |                      |¦  «        ¦  «         |cY S | j        s|dk    rt          | j        pdd¦  «        }n|  	                    ||d|z  ¦  «         Y nw xY w| j
                             ||z   ¦  «        }	|                     | j                             |	|	¦  «        ¦  «         |S |                      ||¦  «        }|dk     rdS ||         d	k    r>g }
|                      |||
¦  «        }|dk    r|                     |
d         ¦  «         |S dS ||         d
k    �r|dz   }|                     d|¦  «        }|dk    rä|||…         }t"                               t&          |¦  «        }t(                               t&          |¦  «        }| j        rt          | j        |¦  «        }nd|v s
J d¦   «         ‚||dz
           dk    r|dd…         dk    s|dz  }| j
                             |¦  «        }	|                     | j                             |	|	¦  «        ¦  «         |dz   S |  	                    ||d¦  «         dS | j        r“g }
|                      |||
¦  «        }|dk     rdS |
d         | j        v r |  	                    ||d|
d         z  ¦  «         |                     | j
                             | j        d         |
d         z   ¦  «        ¦  «         |S dS )zøGenerate uri from n3 representation.

        Note that the RDF convention of directly concatenating
        NS and local name is now used though I prefer inserting a '#'
        to make the namesapces look more like what XML folks expect.
        r   Nz	not used?Ú_r   r   zPrefix "%s:" not boundr»   ú?ú<r&   rË   r%   z0With no base URI, cannot deal with relative URIszunterminated URI referencezKeyword "%s" not allowed here.)rÔ   rŒ   Ú
ADDED_HASHrz   ÚKeyErrorrû   r  r‡   r   r   r{   r‹   r„   r  r­   Úvariabler*   ÚunicodeEscape8Úsubrl   ÚunicodeEscape4r‚   rÏ   r�   )r‘   r·   r    rÖ   rà   r°   Úpfxr  rÙ   Úsymbr0  ÚstÚurefs                r!   rÑ   zSinkParser.uri_ref2  s}  € ð ˆØ�JŠJ�v˜q "Ñ%Ô%ˆØ�Š6ˆ6Ø˜”e‰GˆC�Øˆ{Ø%˜+Ñ%Ô%Ð%ð	TØœ¨Ô,�B�BøÝð Tð Tð TØ˜c’z�zØŸ
š
 4×#5Ò#5°bÑ#9Ô#9Ñ:Ô:Ð:Ø ˜˜˜Øœ;ð T¨3°"ª9¨9Ý! $¤-Ð"5°2°sÑ;Ô;˜˜àŸš v¨qÐ2JÈcÑ2RÑSÔSÐSøøðTøøøð ”;×(Ò(¨¨b©Ñ1Ô1ˆDØ�JŠJ�t”×*Ò*¨4°Ñ6Ô6Ñ7Ô7Ð7ØˆHà�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5Ø�2à�!Œ9˜ÒÐØˆAØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ—
’
˜1˜Qœ4Ñ Ô Ð Ø�Ø�2à�AŒY˜#ÒÑØ�Q‘ˆBØ—’˜C Ñ$Ô$ˆAØ�AŠvˆvØ˜b ˜d”|�õ &×)Ò)­-¸Ñ>Ô>�Ý%×)Ò)­-¸Ñ>Ô>�à”=ð JÝ ¤¨tÑ4Ô4�D�Dð ˜t˜˜˜ØIñ $œ˜à˜!˜a™%”= CÒ'Ð'°°R°S°S´	¸SÒ0@Ð0@Ø˜C‘K�DØ”{×,Ò,¨TÑ2Ô2�Ø—
’
˜4œ?×.Ò.¨t°TÑ:Ô:Ñ;Ô;Ð;Ø˜1‘u�Ø�NŠN˜6 1Ð&BÑCÔCÐCÐCÐCàÔð 
	ØˆAØ—’˜f a¨Ñ+Ô+ˆAØ�1ŠuˆuØ�rØ�Œt�t”}Ð$Ð$Ø—’˜v qÐ*JÈQÈqÌTÑ*QÑRÔRÐRØ�JŠJ�t”{×,Ò,¨T¬^¸BÔ-?À!ÀAÄ$Ñ-FÑGÔGÑHÔHÐHØˆHà�2s   ¸A Á:CÂ?CÃCc                 ó”  — 	 	 ||         }|dv r|dz  }Œ|dvr|S n# t           $ r Y dS w xY w	 t                               ||¦  «        }|€n,| xj        dz  c_        |                     ¦   «         x| _        }ŒJt                               ||¦  «        }|�|                     ¦   «         }t                               ||¦  «        }|€|ndS )zjSkip white space, newlines and comments.
        return -1 if EOF, else position of first non-ws characterT>   ú	ú r&   >   ú
úr   r»   )Ú
IndexErrorÚeolÚmatchr~   Úendr   ÚwsÚeof)r‘   r·   r    r  rk   s        r!   r­   zSinkParser.skipSpaceË  só   € ð

	ðØ˜A”Y�Ø˜Ð$Ð$Ø˜‘F�AØØÐ0Ð0Ð0Ø�HØøÝð 	ð 	ð 	Ø�2�2ð	øøøð	+Ý—	’	˜& !Ñ$Ô$ˆAØˆyØØˆJŒJ˜!‰OˆJŒJØ#$§5¢5¡7¤7Ð*ˆDÔ˜qð	+õ �HŠH�V˜QÑÔˆØˆ=Ø—’‘”ˆAÝ�IŠI�f˜aÑ Ô ˆØ�Iˆqˆq 2Ð%s   ‚ œ
*©*c                 óT  — |                       ||¦  «        }|dk     rdS ||         dk    rdS |dz  }|}||         t          v r |                      ||d||         z  ¦  «         t          |¦  «        }||k     r)||         t          vr|dz  }||k     r||         t          v°| j        €�| j                             | j        dz   |||…         z   ¦  «        }|| j	        vr)| j
                             || j        ¬¦  «        | j	        |<   |                     | j	        |         ¦  «         |S | j                             | j        dz   |||…         z   ¦  «        }|| j        vr)| j                             || j        ¬¦  «        | j        |<   |                     | j        |         ¦  «         |S )	z?abc -> variable(:abc)r   r»   r:  r&   z#Variable name can't start with '%s'Nr   rè   )r­   ÚnumberCharsr   r,   r½   r�   r{   r‹   rŒ   r„   r�   rÒ   r‰   rû   r…   )r‘   r·   r    rÖ   r°   Ú
len_argstrÚvarURIs          r!   r>  zSinkParser.variableè  sÎ  € ð �NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5Ø�2à�!Œ9˜ÒÐØ�2Ø	ˆQ‰ˆØˆØ�!Œ9�Ð#Ð#Ø�NŠN˜6 1Ð&KÈfÐUVÌiÑ&WÑXÔXÐXÝ˜‘[”[ˆ
Ø�*Šnˆn ¨¤Õ2CÐ!CÐ!CØ�‰FˆAð �*Šnˆn ¨¤Õ2CÐ!CÐ!CàÔÐ&Ø”[×*Ò*¨4¬=¸3Ñ+>ÀÈÈ!ÈÄÑ+LÑMÔMˆFØ˜Tœ_Ð,Ð,Ø*.¬-×*DÒ*DØ ¤ð +Eñ +ô +�” Ñ'ð �JŠJ�t” vÔ.Ñ/Ô/Ð/ØˆHð
 ”×&Ò& t¤}°sÑ':¸VÀAÀaÀC¼[Ñ'HÑIÔIˆØ˜Ô.Ð.Ð.Ø,0Ô,?×,LÒ,LØ˜DœMð -Mñ -ô -ˆDÔ! &Ñ)ð 	�
Š
�4Ô(¨Ô0Ñ1Ô1Ð1Øˆr"   c                 ó<  — |                       ||¦  «        }|dk     rdS ||         t          v s||         t          v rdS |}t          |¦  «        }||k     r)||         t          vr|dz  }||k     r||         t          v°|                     |||…         ¦  «         |S )zabc -> :abcr   r»   r&   )r­   rR  r½   r,   rû   )r‘   r·   r    rÖ   r°   rS  s         r!   rÏ   zSinkParser.bareWord  s°   € à�NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5Ø�2à�!Œ9�Ð#Ð# v¨a¤yÕ4EÐ'EÐ'EØ�2ØˆÝ˜‘[”[ˆ
Ø�*Šnˆn ¨¤Õ2CÐ!CÐ!CØ�‰FˆAð �*Šnˆn ¨¤Õ2CÐ!CÐ!Cà�
Š
�6˜!˜A˜#”;ÑÔÐØˆr"   c                 ó�  — |                       ||¦  «        }|dk     rdS ||         }|t          v rdS t          |¦  «        }|t          vrc|}|dz  }	 ||         t          vr|dz  }||         t          v°n# t          $ r Y nw xY w||dz
           dk    r|dz  }||k    rdS |||…         }nd}||k     �re||         dk    �rX|}|dk    rt          }	nt
          }	|dz  }d}
|}d}||k     r¶||         }|d	k    r|
sd
}
||k     r||||…         z  }|dz   }n€||	vs|
ry|
r*|t          vr t          | j        | j	        ||d|z   ¦  «        ‚nJ|dk    rD||dz            t          vs||dz            t          vr t          | j        | j	        ||d|z   ¦  «        ‚d}
nn|dz  }||k     °¶|
rt          | j        | j	        ||d¦  «        ‚||dz
           dk    r t          |¦  «        dk    r||k    rdS |dz  }||k     r||||…         z  }|                     ||f¦  «         |S |r)| j        r"|| j        vr|                     d|f¦  «         |S dS )z†
        xyz:def -> ('xyz', 'def')
        If not in keywords and keywordsSet: def -> ('', 'def')
        :def -> ('', 'def')
        r   r»   r&   r)   r   r%   r9  Fr=   Tzillegal escape ú%r(   zillegal hex escape zqname cannot end with \)r­   ÚnumberCharsPlusr,   r¼   rK  rÃ   ÚescapeCharsr   r}   ÚlineÚhexCharsrû   r‚   r�   )r‘   r·   r    rÖ   ÚcrS  r°   r  rB  ÚallowedCharsÚ	lastslashÚstarts               r!   rÔ   zSinkParser.qname  s1  € ð �NŠN˜6 1Ñ%Ô%ˆØˆqŠ5ˆ5Ø�2à�1ŒIˆØ•ÐÐØ�2Ý˜‘[”[ˆ
Ø•MÐ!Ð!ØˆAØ�‰FˆAðØ˜Q”i¥}Ð4Ð4Ø˜‘F�Að ˜Q”i¥}Ð4Ð4øøåð ð ð Ø�ðøøøð �a˜!‘eŒ} Ò#Ð#Ø�Q‘�Ø˜’6�6Ø˜2Ø˜˜!˜”ˆBˆBð ˆBàˆzŠ>‰>˜f Qœi¨3Ò.Ñ.ØˆCà�cŠzˆzÝ,��å-�à�‰FˆAØˆIØˆEØˆBØ�j’.�.Ø˜1”I�Ø˜’9�9 Y�9Ø $�IØ˜q’y�yØ˜f U¨1 WœoÑ-˜Ø ™E�E�EØ˜lÐ*Ð*¨iÐ*Ø ð Ø¥KÐ/Ð/Ý"+Ø $¤Ø $¤	Ø &Ø !Ø 1°AÑ 5ñ#ô #ð ð 0ð ˜cš˜à" 1 q¡5œMµÐ9Ð9Ø% a¨!¡eœ}µHÐ<Ð<å"+Ø $¤Ø $¤	Ø &Ø !Ø 5¸Ñ 9ñ#ô #ð ð !&�I�IàØ�Q‘�ðA �j’.�.ðD ð ÝØ”M 4¤9¨f°aÐ9Sñô ð ð �a˜!‘eŒ} Ò#Ð#å�r‘7”7˜a’<�< E¨Q¢J JØ˜2Ø�Q‘�à�qŠyˆyØ�f˜U 1˜W”oÑ%�à�JŠJ˜˜R�yÑ!Ô!Ð!ØˆHð ð �dÔ&ð ¨2°T´]Ð+BÐ+BØ—
’
˜B ˜8Ñ$Ô$Ð$Ø�Ø�2s   Á#A6 Á6
BÂBc                 ó‚  — |                       |||¦  «        }|dk    r|S |                      ||¦  «        }|dk     rdS |}||         }|| j        v rn|dz  }|||dz   …         |k    r|}|dz  }n|}|dz  }|                      |||¦  «        \  }}|                     | j                             |¦  «        ¦  «         |S dS )Nr   r»   r'   r&   )ró   r­   rˆ   Ústrconstrû   r{   Ú
newLiteral)	r‘   r·   r    rÖ   r°   r  Úch_threeÚdelimr?   s	            r!   rì   zSinkParser.object‚  sæ   € Ø�LŠL˜  CÑ(Ô(ˆØ�Š6ˆ6ØˆHà—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ�rà�à˜”ˆBØ�TÔ+Ð+Ð+Ø ™6�Ø˜!˜a !™e˜)Ô$¨Ò0Ð0Ø$�EØ˜‘F�A�Aà�EØ˜‘F�Aà—}’} V¨Q°Ñ6Ô6‘��1à—
’
˜4œ;×1Ò1°!Ñ4Ô4Ñ5Ô5Ð5Ø�à�rr"   c                 ó  — |                       |||¦  «        }| j        }|dk    r|S |                      ||¦  «        }|dk     rdS |}||         }|t          v �rt                               ||¦  «        }|r@|                     ¦   «         }|                     t          |||…         ¦  «        ¦  «         |S t                               ||¦  «        }|r@|                     ¦   «         }|                     t          |||…         ¦  «        ¦  «         |S t                               ||¦  «        }|r@|                     ¦   «         }|                     t          |||…         ¦  «        ¦  «         |S |dz  }|| j        v �r|||dz   …         |k    r|}	|dz  }n|}	|dz  }d }
|                      |||	¦  «        \  }}d }||         dk    r[t                               ||dz   ¦  «        }|€t!          | j        |||d¦  «        ‚|                     ¦   «         }||dz   |…         }|}|||dz   …         dk    r$g }|                      ||dz   |¦  «        }|d         }
|                     | j                             ||
|¦  «        ¦  «         |S dS )	Nr   r»   r'   r&   rº   z3Bad language code syntax on string literal, after @r(   z^^)r  r~   r­   rX  Úexponent_syntaxrM  rN  rû   ra   Údecimal_syntaxr   Úinteger_syntaxr   rˆ   ra  Úlangcoder   r}   rÑ   r{   rb  )r‘   r·   r    rÖ   r°   Ú	startliner  rk   rc  rd  Údtr?   ÚlangÚres2s                 r!   r	  zSinkParser.nodeOrLiteralž  s®  € Ø�IŠI�f˜a Ñ%Ô%ˆØ”Jˆ	Ø�Š6ˆ6ØˆHà—’˜v qÑ)Ô)ˆAØ�1ŠuˆuØ�rà�à˜”ˆBØ•_Ð$Ñ$Ý#×)Ò)¨&°!Ñ4Ô4�Øð ØŸš™œ�AØ—J’J�u V¨A¨a¨C¤[Ñ1Ô1Ñ2Ô2Ð2Ø�Hå"×(Ò(¨°Ñ3Ô3�Øð ØŸš™œ�AØ—J’J�w v¨a°¨c¤{Ñ3Ô3Ñ4Ô4Ð4Ø�Hå"×(Ò(¨°Ñ3Ô3�Øð ØŸš™œ�AØ—J’J�y¨°°!°¬Ñ5Ô5Ñ6Ô6Ð6Ø�Hð ˜A‘vˆHØ�TÔ+Ð+Ñ+Ø˜!˜a !™e˜)Ô$¨Ò0Ð0Ø$�EØ˜‘F�A�Aà�EØ˜‘F�Aà�Ø—}’} V¨Q°Ñ6Ô6‘��1Ø�Ø˜!”9 Ò#Ð#Ý Ÿš v¨q°1©uÑ5Ô5�AØ�yÝ'Ø œMØ%Ø"ØØVñô ð ð Ÿš™œ�AØ! ! a¡%¨! )Ô,�DØ�AØ˜!˜a !™e˜)Ô$¨Ò,Ð,Ø�DØŸš f¨a°!©e°TÑ:Ô:�AØ˜aœ�BØ—
’
˜4œ;×1Ò1°!°R¸Ñ>Ô>Ñ?Ô?Ð?Ø�à�rr"   c                 ó@   — t          |t          ¦  «        r|d         S |S )Nr&   )r©   Útuple)r‘   r2  s     r!   rÕ   zSinkParser.uriOfâ  s"   € Ý�c�5Ñ!Ô!ð 	Ø�q”6ˆMàˆ
r"   c                 óò  — |d         }|dz  |dz  |dz  |dz  f\  }}}}|}	d}
| j         }t          |¦  «        }|	|k     �rŸ||	         |k    rx||k    r	|	dz   }||
fS ||k    rc||	|	dz   …         |k    r|	dz   }|
|z  }
||
fS ||	|	dz   …         |k    r|	dz   }|
|z  }
||
fS ||	|	dz   …         |k    r	|	dz   }||
fS |	dz  }	|
|z  }
Œ‹t                               ||	¦  «        }|s&J d||	d	z
  |	…         ›d
||	|	d	z   …         ›�¦   «         ‚|                     ¦   «         }	 |
||	|…         z  }
n~# t
          $ rq d}||	|…         D ]}|dt          |¦  «        z  z   }Œt          j        ¦   «         d          	                    ¦   «         }t          | j        |||	dd|›d|›�z   ¦  «        ‚w xY w||         }||k    r|}	�Œ�|dv r||k    r|
|z  }
|dz   }	�Œ—|dv r@||k    rt          | j        |||d¦  «        ‚| xj         dz  c_         |
|z  }
|dz   }	|	| _        nÄ|dk    r¾|dz   }	||	         }|st          | j        |||d¦  «        ‚d                     |¦  «        }|dk    rd|         }|
|z  }
|	dz  }	ni|dk    r#|                      ||	dz   |¦  «        \  }	}|
|z  }
n@|dk    r#|                      ||	dz   |¦  «        \  }	}|
|z  }
n|  
                    ||d¦  «         |	|k     �°Ÿ|  
                    ||d¦  «         dS )zRparse an N3 string constant delimited by delim.
        return index, val
        r   r(   r'   é   é   r   r&   z!Quote expected in string at ^ in é   r  z %02xz"Unicode error appending charactersrH  z to string, because
	>   rw   rx   >   rI  rJ  znewline found in string literalr=   zunterminated string literal (2)z
abfrtvn\"'z
	
\"'ÚuÚUz
bad escapezunterminated string literalN)r~   r,   ÚinterestingÚsearchr_  ÚUnicodeErrorÚordÚsysÚexc_infoÚ__str__r   r}   r   r*   ÚuEscapeÚUEscape)r‘   r·   r    rd  Údelim1Údelim2Údelim3Údelim4Údelim5r°   Úustrrj  rS  rk   Úerrr\  Ústreasonr  rã   Úuchs                       r!   ra  zSinkParser.strconstè  s3  € ð �q”ˆØ)/°!©°V¸a±ZÀÈ!ÁÈVÐVWÉZÐ)WÑ&ˆ�˜ àˆØˆØ”Jˆ	Ý˜‘[”[ˆ
Ø�*Šn‰nØ�aŒy˜FÒ"Ð"Ø˜F’?�?Ø˜A™�AØ˜d˜7�Nà˜V’O�Oà˜a ! a¡%˜iÔ(¨FÒ2Ð2Ø ™E˜Ø ™˜Ø  $˜w˜Ø˜a ! a¡%˜iÔ(¨FÒ2Ð2Ø ™E˜Ø ™˜Ø  $˜w˜Ø˜a ! a¡%˜iÔ(¨FÒ2Ð2Ø ™E˜Ø  $˜w˜ð ˜‘F�AØ˜F‘N�DØå×"Ò" 6¨1Ñ-Ô-ˆAàð ð ð Ø�q˜2‘v �zÔ"Ð"Ð"Ø�q˜1˜r™6�zÔ"Ð"ðñ ô ð ð
 —’‘	”	ˆAðØ˜˜q ˜sœÑ#��øÝð ð ð Ø�Ø  ! œð 3ð 3�AØ ­3¨q©6¬6Ñ!1Ñ2�C�CÝœ<™>œ>¨!Ô,×4Ò4Ñ6Ô6�ÝØ”MØØØØ8Ð8Ø8;¸¸¸X¸XÐFñGñô ð ðøøøð  ˜”ˆBØ�VŠ|ˆ|Ø�ÙØ�zÐ!Ð! b¨F¢l lØ˜‘
�Ø˜‘E�ÙØ�|Ð#Ð#Ø˜F’?�?Ý#ØœØ!ØØØ9ñô ð ð �
”
˜a‘�
”
Ø˜‘
�Ø˜‘E�Ø#$�Ô Ð à�t’�Ø˜‘E�Ø˜A”Y�Øð Ý#ØœØ!ØØØ9ñô ð ð #×'Ò'¨Ñ+Ô+�Ø˜’6�6Ø/°Ô2�CØ˜C‘K�DØ˜‘F�A�AØ˜3’Y�YØ ŸLšL¨°°Q±¸	ÑBÔB‘E�A�rØ˜B‘J�D�DØ˜3’Y�YØ ŸLšL¨°°Q±¸	ÑBÔB‘E�A�rØ˜B‘J�D�Dà—N’N 6¨1¨lÑ;Ô;Ð;ðA �*Šn‰nðD 	�Š�v˜qÐ"?Ñ@Ô@Ð@Ð@Ð@s   ÄD+ Ä+A;F&c                 ó  — t          |¦  «        ||z   k     rt          | j        |||d¦  «        ‚	 ||z   |                     t          d|z   ||||z   …         z   ¦  «        fS #  t          | j        |||d||||z   …         z   ¦  «        ‚xY w)Nzunterminated string literal(3)r=   zbad string literal hex escape: )r,   r   r}   r@  rl   )r‘   r·   r    rj  ÚregÚnrÇ   s          r!   Ú_unicodeEscapezSinkParser._unicodeEscapeW  s®   € Ýˆv‰;Œ;˜˜Q™ÒÐÝØ”˜y¨&°!Ð5Uñô ð ð		Ø�q‘5˜#Ÿ'š'¥-°¸±ÀÈÈAÐPQÉEÈ	ÔARÑ1RÑSÔSÐSÐSøð	ÝØ”ØØØØ1°F¸1¸qÀ1¹u¸9Ô4EÑEñô ð øøøs   °0A! Á!(B	c                 ó@   — |                       |||t          dd¦  «        S )Nrq  rt  )r‹  rA  ©r‘   r·   r    rj  s       r!   r}  zSinkParser.uEscapeg  ó    € Ø×"Ò" 6¨1¨i½ÈÈCÑPÔPÐPr"   c                 ó@   — |                       |||t          dd¦  «        S )Né   ru  )r‹  r?  r�  s       r!   r~  zSinkParser.UEscapej  rŽ  r"   c                 ó<   — t          | j        | j        |||¦  «        ‚rV   )r   r}   r~   )r‘   r·   r    Úmsgs       r!   r   zSinkParser.BadSyntaxm  s   € Ý˜œ t¤z°6¸1¸cÑBÔBÐBr"   )Nr   Nr   NF)FrV   )-Ú__name__Ú
__module__Ú__qualname__r˜   r-   rœ   r¡   rž   r¤   r®   r¾   rÅ   r´   r³   rr   rÐ   r£   r¥   ré   r¶   ró   rÿ   rú   rñ   r  r2   r  r  rí   rÎ   r  rµ   rÑ   r­   r>  rÏ   rÔ   rì   r	  rÕ   ra  r‹  r}  r~  r   r;   r"   r!   rn   rn   W  sõ  € € € € € ð ØØØØØðG#ð G#ð G#ð G#ðRUð Uð Uðð ð ð+ð +ð +ðð ð ðHð Hð Hð8ð ð ð0ð ð ð ð2ð ð ð"`ð `ð `ðD=ð =ð =ð~&ð &ð &ð!ð !ð !ð,ð ,ð ,ðð ð ð
@ð @ð @ð

ð 
ð 
ð)ð )ð )ðTð Tð Tðl)ð )ð )ð)ð )ð )ðOð Oð Oð Oðð ð ð*ð ð ðtð tð tð tðl/ð /ð /ðb>ð >ð >ð4ð ð ðTð Tð TðJð Jð JðX&ð &ð &ð:"ð "ð "ðHð ð ðeð eð eðNð ð ð8Bð Bð BðHð ð ðmAð mAð mAð^ð ð ð Qð Qð QðQð Qð QðCð Cð Cð Cð Cr"   rn   c                   ó0   — e Zd Zd„ Zd„ Zed„ ¦   «         ZdS )r   c                 ór   — |                      d¦  «        | _        || _        || _        || _        || _        d S ©Nr¨   )ÚencodeÚ_strÚ_iÚ_whyr~   Ú_uri)r‘   rá   r~   r·   r    r—   s         r!   r˜   zBadSyntax.__init__v  s5   € Ø—M’M 'Ñ*Ô*ˆŒ	ØˆŒØˆŒ	ØˆŒ
ØˆŒ	ˆ	ˆ	r"   c           
      óÚ   — | j         }| j        }d}|dk    rd}|dz
  }nd}t          |¦  «        |z
  dk    rd}nd}d| j        dz   | j        | j        ||||…         |||dz   …         |fz  S )Nr   é<   z...r   z8at line %i of <%s>:
Bad syntax (%s) at ^ in:
"%s%s^%s%s"r&   )rš  r›  r,   r~   r�  rœ  )r‘   r·   r    rD  ÚpreÚposts         r!   r|  zBadSyntax.__str__}  s›   € Ø”ˆØŒGˆØˆØˆrŠ6ˆ6ØˆCØ�R‘ˆBˆBàˆCÝˆv‰;Œ;˜‰?˜RÒÐØˆDˆDàˆDàKØŒJ˜‰NØŒIØŒIØØ�2�a�4ŒLØ�1�q˜2‘v�:ÔØðO
ñ 
ð 	
r"   c                 ó    — t          | ¦  «        S rV   )rS   r›   s    r!   ÚmessagezBadSyntax.message•  s   € å�4‰yŒyÐr"   N)r“  r”  r•  r˜   r|  Úpropertyr£  r;   r"   r!   r   r   u  sM   € € € € € ðð ð ð
ð 
ð 
ð0 ðð ñ „Xðð ð r"   r   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd
d„Zdd„Zd„ Z	d	„ Z
dS )ÚFormular   c                 ó  — t          ¦   «         j        | _        d| _        t          xj        dz  c_        t          j        | _        i | _        i | _        t          |j	        |  
                    ¦   «         ¬¦  «        | _        d S )Nr   r&   )r’   Ú
identifier)r   ÚhexÚuuidÚcounterr¦  ÚnumberÚexistentialsÚ
universalsr   r’   ÚidÚquotedgraph)r‘   Úparents     r!   r˜   zFormula.__init__ž  sc   € Ý‘G”G”KˆŒ	ØˆŒÝˆŒ˜!ÑˆŒÝ”nˆŒØˆÔØˆŒå&¨V¬\ÀdÇgÂgÁiÄiÐPÑPÔPˆÔÐÐr"   c                 ó   — d| j         z  S ©Nz_:Formula%s)r¬  r›   s    r!   r|  zFormula.__str__¨  s   € Ø˜tœ{Ñ*Ð*r"   c                 ó0   — t          d| j        z  ¦  «        S r³  )r   r¬  r›   s    r!   r¯  z
Formula.id«  s   € Ý�] T¤[Ñ0Ñ1Ô1Ð1r"   Nc                 óú   — |€0| xj         dz  c_         t          d| j        ›d| j         ›�¦  «        }nHt          |                     d¦  «                             ¦   «                              dd¦  «        ¦  «        }|S )Nr&   ÚfÚbr   r9  )r«  r   rª  Úsplitr
  r>   )r‘   rá   r—   Úbns       r!   r  zFormula.newBlankNode®  so   € Øˆ;ØˆLŒL˜AÑˆLŒLÝ� 4¤9 9 9¨d¬l¨lÐ;Ñ<Ô<ˆBˆBå�s—y’y ‘~”~×)Ò)Ñ+Ô+×3Ò3°C¸Ñ=Ô=Ñ>Ô>ˆBØˆ	r"   c                 ój   — t          |                     d¦  «                             ¦   «         ¦  «        S )Nr   )r	   r¸  r
  )r‘   rá   r—   s      r!   rÒ   zFormula.newUniversal¶  s&   € Ý˜Ÿ	š	 #™œ×*Ò*Ñ,Ô,Ñ-Ô-Ð-r"   c                 ó>   — |                       ¦   «         | j        |<   d S rV   )r  r­  )r‘   r×   s     r!   rÓ   zFormula.declareExistential¹  s!   € Ø#×0Ò0Ñ2Ô2ˆÔ˜!ÑÐÐr"   c                 ó   — | j         S rV   )r°  r›   s    r!   r#  zFormula.close¼  s   € àÔÐr"   )NNrV   )r“  r”  r•  r¬  r˜   r|  r¯  r  rÒ   rÓ   r#  r;   r"   r!   r¦  r¦  ›  s�   € € € € € Ø€FðQð Qð Qð+ð +ð +ð2ð 2ð 2ðð ð ð ð.ð .ð .ð .ð3ð 3ð 3ð ð  ð  ð  ð  r"   r¦  z([\x80-\xff])c                   ól   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Z	d	„ Z
d
„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚRDFSinkc                 ó`   — d | _         t          ¦   «         j        | _        d| _        || _        d S r²   )ÚrootFormular   r©  rª  r«  Úgraph)r‘   rÁ  s     r!   r˜   zRDFSink.__init__Å  s)   € ØˆÔÝ‘G”G”KˆŒ	ØˆŒØˆŒ
ˆ
ˆ
r"   c                 ó†   — t          | j        j        dd¦  «        }|st          d¦  «        ‚t	          | j        ¦  «        }|S )NÚformula_awareFz:Cannot create formula parser with non-formula-aware store.)ÚgetattrrÁ  r’   r   r¦  )r‘   Úfar¶  s      r!   r�   zRDFSink.newFormulaË  sK   € Ý�T”ZÔ% ¸Ñ>Ô>ˆØð 	ÝØLñô ð õ �D”JÑÔˆØˆr"   c                 ó6   — t          | j        j        |¦  «        S rV   )r   rÁ  r’   )r‘   r¨  s     r!   ÚnewGraphzRDFSink.newGraphÔ  s   € Ý�T”ZÔ% zÑ2Ô2Ð2r"   c                 ó,   — t          |d         ¦  «        S r²   )r   ©r‘   rX   s     r!   r‹   zRDFSink.newSymbol×  s   € Ý�d˜1”g‰ŒÐr"   Nc                 óž  — t          |t          ¦  «        r|                     |¦  «        S t          |t          ¦  «        s|€0| xj        dz  c_        t          d| j        ›d| j        ›�¦  «        }n[t          t          |d         ¦  «                             d¦  «         	                    ¦   «          
                    dd¦  «        ¦  «        }|S )Nr&   rŠ  r·  r   r   r9  )r©   r¦  r  r   r«  r   rª  rS   r¸  r
  r>   )r‘   Úargrá   r—   r¹  s        r!   r  zRDFSink.newBlankNodeÚ  s¶   € Ý�c�7Ñ#Ô#ð 	GØ×#Ò# CÑ(Ô(Ð(Ý˜�UÑ#Ô#ð 	G s {ØˆLŒL˜AÑˆLŒLÝ� 4¤9 9 9¨d¬l¨lÐ;Ñ<Ô<ˆBˆBå•s˜3˜qœ6‘{”{×(Ò(¨Ñ-Ô-×1Ò1Ñ3Ô3×;Ò;¸CÀÑEÔEÑFÔFˆBØˆ	r"   c                 óJ   — |rt          ||¬¦  «        S t          ||¬¦  «        S )N©Údatatype)rl  )r   )r‘   r?   rk  rl  s       r!   rb  zRDFSink.newLiteralä  s0   € Øð 	)Ý˜1 rÐ*Ñ*Ô*Ð*å˜1 4Ð(Ñ(Ô(Ð(r"   c                 óÖ  — |                       d¦  «        }|s|S |                       d¦  «        }|                       d¦  «        }|                      |¦  «        x}}|d d…         D ]K}|                      ||||f¦  «         |                      |¦  «        }	|                      ||||	f¦  «         |	}ŒL|                      ||||d         f¦  «         |                      ||||f¦  «         |S )Nz.http://www.w3.org/1999/02/22-rdf-syntax-ns#nilz0http://www.w3.org/1999/02/22-rdf-syntax-ns#firstz/http://www.w3.org/1999/02/22-rdf-syntax-ns#restr»   )r‹   r  ré   )
r‘   rŠ  r¶  rK   rH   rI   Úafrp   ÚneÚans
             r!   r$  zRDFSink.newListê  s  € Ø�nŠnÐMÑNÔNˆØð 	ØˆJà—’ÐQÑRÔRˆØ�~Š~ÐOÑPÔPˆØ×"Ò" 1Ñ%Ô%Ð%ˆˆQà�C�R�C”&ð 	ð 	ˆBØ×Ò  5¨!¨RÐ0Ñ1Ô1Ð1Ø×"Ò" 1Ñ%Ô%ˆBØ×Ò  4¨¨BÐ/Ñ0Ô0Ð0ØˆAˆAØ×Ò˜A˜u a¨¨2¬Ð/Ñ0Ô0Ð0Ø×Ò˜A˜t Q¨Ð,Ñ-Ô-Ð-Øˆ	r"   c                 ó    — t          |¦  «        S rV   )ÚsetrÉ  s     r!   r!  zRDFSink.newSetü  s   € Ý�4‰yŒyÐr"   c                 ó@   — d                      d„ |D ¦   «         ¦  «        S )Nr%   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rV   )Úrepr)Ú.0rŠ  s     r!   ú	<genexpr>z.RDFSink.setDefaultNamespace.<locals>.<genexpr>   s(   è è € Ð.Ð. A�˜Q™œÐ.Ð.Ð.Ð.Ð.Ð.r"   )r   rÉ  s     r!   rß   zRDFSink.setDefaultNamespaceÿ  s#   € Ø�xŠxÐ.Ð.¨Ð.Ñ.Ô.Ñ.Ô.Ð.r"   c                 óÂ  — |\  }}}}t          |d¦  «        rt          d¦  «        ‚|                      ||¦  «        }|                      ||¦  «        }|                      ||¦  «        }|| j        k    r| j                             |||f¦  «         d S t          |t          ¦  «        r|j                             |||f¦  «         d S |                     |||f¦  «         d S )Nrœ   zFormula used as predicate)	Úhasattrr   Ú	normaliserÀ  rÁ  Úaddr©   r¦  r°  )r‘   rê   r—   r¶  Úpr?   Úos          r!   ré   zRDFSink.makeStatement  sé   € Ø‰
ˆˆ1ˆa�å�1�iÑ Ô ð 	;ÝÐ9Ñ:Ô:Ð:à�NŠN˜1˜aÑ Ô ˆØ�NŠN˜1˜aÑ Ô ˆØ�NŠN˜1˜aÑ Ô ˆà�Ô Ò Ð àŒJ�NŠN˜A˜q !˜9Ñ%Ô%Ð%Ð%Ð%Ý˜�7Ñ#Ô#ð 	ØŒM×Ò˜q ! Q˜iÑ(Ô(Ð(Ð(Ð(à�EŠE�1�a˜�)ÑÔÐÐÐr"   c                 óü  — t          |t          ¦  «        r"t          t          |d         ¦  «        ¦  «        S t          |t          ¦  «        r7t          t          |¦  «                             ¦   «         t          ¬¦  «        }|S t          |t          ¦  «        st          |t          ¦  «        r%t          t          |¦  «        t          ¬¦  «        }|S t          |t          ¦  «        r/t          |¦  «        }|dk    rd}t          |t          ¬¦  «        }|S t          |t          ¦  «        r%t          t          |¦  «        t          ¬¦  «        }|S t          |t          ¦  «        r||j        v r|j        |         S |S )Nr&   rÍ  z-0Ú0)r©   ro  r   rS   Úboolr   rÂ   ÚBOOLEAN_DATATYPErh   r   ÚINTEGER_DATATYPEr   ÚDECIMAL_DATATYPEra   ÚDOUBLE_DATATYPEr¦  r­  )r‘   r¶  rŠ  r?   Úvalues        r!   rÜ  zRDFSink.normalise  sJ  € Ý�a�ÑÔð 	%Ý�#˜a œd™)œ)Ñ$Ô$Ð$å�a�ÑÔð 	Ý�˜A™œŸš™œÕ1AÐBÑBÔBˆAØˆHå�a�ÑÔð 	¥¨A­yÑ!9Ô!9ð 	Ý�˜A™œÕ)9Ð:Ñ:Ô:ˆAØˆHå�a�Ñ!Ô!ð 	Ý˜‘F”FˆEØ˜Š}ˆ}Ø�Ý˜Õ(8Ð9Ñ9Ô9ˆAØˆHå�a�ÑÔð 	Ý�˜A™œ­Ð9Ñ9Ô9ˆAØˆHå�a�Ñ!Ô!ð 	)Ø�A”NÐ"Ð"Ø”~ aÔ(Ð(ð ˆr"   c                 ó   — |S rV   r;   )r‘   Ú	somethings     r!   r   zRDFSink.intern9  s   € ØÐr"   c                 ó   — d S rV   r;   )r‘   rB  rá   s      r!   rr   zRDFSink.bind<  ó   € Øˆr"   c                 ó   — || _         d S rV   )rÀ  ©r‘   rœ   s     r!   r£   zRDFSink.startDoc?  s   € Ø"ˆÔÐÐr"   c                 ó   — d S rV   r;   rí  s     r!   r¥   zRDFSink.endDocB  rë  r"   ©NNNrV   )r“  r”  r•  r˜   r�   rÇ  r‹   r  rb  r$  r!  rß   ré   rÜ  r   rr   r£   r¥   r;   r"   r!   r¾  r¾  Ä  s   € € € € € ðð ð ðð ð ð3ð 3ð 3ðð ð ðð ð ð ð)ð )ð )ðð ð ð$ð ð ð/ð /ð /ðð ð ð ð(!ð !ð !ðFð ð ðð ð ð#ð #ð #ðð ð ð ð r"   r¾  c                 óÚ   — d}| D ]R}t          |¦  «        dk    st          |¦  «        dk     rdt          |¦  «        z  }ndt          |¦  «        z  }||z   }ŒS|                     d¦  «        S )z�Use URL encoding to return an ASCII string
    corresponding to the given UTF8 string

    >>> hexify("http://example/a b")
    b'http://example/a%20b'

    r   é~   é!   z%%%02Xz%czlatin-1)ry  r™  )r„  r?   r  s      r!   r   r   L  ss   € ð 	€AØð ð ˆÝˆr‰7Œ7�SŠ=ˆ=�C ™GœG bšL˜LØ�C ™GœGÑ#ˆBˆBà�˜B™œ‘ˆBØ�‰FˆˆØ�8Š8�IÑÔÐr"   c                   ó    — e Zd ZdZd„ Zdd„ZdS )r   zK
    An RDFLib parser for Turtle

    See http://www.w3.org/TR/turtle/
    c                 ó   — d S rV   r;   r›   s    r!   r˜   zTurtleParser.__init__g  rë  r"   r¨   Tc                 óÖ  — |dvrt          d|z  ¦  «        ‚t          |¦  «        }|                     |                     ¦   «         p|                     ¦   «         pd¦  «        }t          |||¬¦  «        }|                     ¦   «         }|s|                     ¦   «         }|                     |¦  «         |j	         
                    ¦   «         D ]\  }	}
|                     |	|
¦  «         Œd S )Nr˜  z:N3/Turtle files are always utf-8 encoded, I was passed: %sr   )r•   r‡   )r   r¾  Ú
absolutizeÚgetPublicIdÚgetSystemIdrn   ÚgetCharacterStreamÚgetByteStreamr¡   rz   Úitemsrr   )r‘   ÚsourcerÁ  Úencodingr‡   Úsinkr•   rÞ  r    rÇ   Ú	namespaces              r!   ÚparsezTurtleParser.parsej  sý   € à˜?Ð*Ð*ÝØLÈxÑWñô ð õ �u‰~Œ~ˆà×"Ò" 6×#5Ò#5Ñ#7Ô#7Ð#U¸6×;MÒ;MÑ;OÔ;OÐ#UÐSUÑVÔVˆÝ�t W°VÐ<Ñ<Ô<ˆà×*Ò*Ñ,Ô,ˆØð 	,Ø×)Ò)Ñ+Ô+ˆFØ	�Š�VÑÔÐà!"¤×!2Ò!2Ñ!4Ô!4ð 	*ð 	*ÑˆF�IØ�JŠJ�v˜yÑ)Ô)Ð)Ð)ð	*ð 	*r"   N)r¨   T©r“  r”  r•  Ú__doc__r˜   r   r;   r"   r!   r   r   _  sA   € € € € € ðð ðð ð ð*ð *ð *ð *ð *ð *r"   r   c                   ó    — e Zd ZdZd„ Zdd„ZdS )r   z`
    An RDFLib parser for Notation3

    See http://www.w3.org/DesignIssues/Notation3.html

    c                 ó   — d S rV   r;   r›   s    r!   r˜   zN3Parser.__init__ˆ  rë  r"   r¨   c                 ó0  — t          |j        dd¦  «        }t          |j        dd¦  «        }|st          d¦  «        ‚|st          d¦  «        ‚t          |j        ¬¦  «        }||_        |j        |_        t                               | |||d¬¦  «         d S )NÚcontext_awareFrÃ  z-Cannot parse N3 into non-context-aware store.z-Cannot parse N3 into non-formula-aware store.)r’   )r‡   )rÄ  r’   r   r   Údefault_contextÚnamespace_managerr   r   )r‘   rü  rÁ  rý  ÚcarÅ  Ú
conj_graphs          r!   r   zN3Parser.parse‹  s¦   € õ �U”[ /°5Ñ9Ô9ˆÝ�U”[ /°5Ñ9Ô9ˆØð 	OÝÐMÑNÔNÐNØð 	OÝÐMÑNÔNÐNå%¨E¬KÐ8Ñ8Ô8ˆ
Ø%*ˆ
Ô"ð (-Ô'>ˆ
Ô$å×Ò˜4 ¨°XÀeÐÑLÔLÐLÐLÐLr"   N)r¨   r  r;   r"   r!   r   r     sG   € € € € € ðð ðð ð ðMð Mð Mð Mð Mð Mr"   r   c                  ó6   — dd l } |                      ¦   «          d S r²   )ÚdoctestÚtestmod)r  s    r!   Ú_testr  ž  s!   € Ø€N€N€Nà‡O‚OÑÔÐÐÐr"   c                  óf  — t          ¦   «         } t          | ¦  «        }dt          j                             t          j        ¦   «         t          j        d         ¦  «        z   }t          ||¬¦  «        }|j	        dz   |j
        d<   |                     ¦   «          t          t          j        d         d¦  «        }|                     ¦   «         }|                     ¦   «          |                     |¦  «         |                     ¦   «          |                      d¦  «        D ]}t%          |¦  «         Œd S )Nr7   r&   )r•   r   r   Úrbrï  )r   r¾  r9   r2   r   r:   rz  Úargvrn   rŒ   rz   r£   ÚopenrŸ   r#  r¤   r¥   ÚquadsÚprint)Úgrþ  Úbase_urirÞ  r¶  ÚrdbytesrØ   s          r!   Úmainr  ¤  sí   € ÝÑÔ€Aå�1‰:Œ:€DØ�2œ7Ÿ<š<­¬	©¬µS´X¸a´[ÑAÔAÑA€Hå�4 Ð*Ñ*Ô*€AØ”j 3Ñ&€A„K��OØ‡J‚J�L„L€Lå�SŒX�aŒ[˜$ÑÔ€AØ�fŠf‰hŒh€GØ‡G‚G�I„I€Ià‡F‚Fˆ7�O„O€OØ‡H‚H�J„J€JØ�WŠWÐ'Ñ(Ô(ð ð ˆåˆa‰Œˆˆðð r"   Ú__main__)r   )wr  rz  r9   Úrer«   r_   r   rª  r   Úrdflib.exceptionsr   Úrdflib.termr   r   r   r	   r
   r   Úrdflib.graphr   r   r   Úrdflib.compatr   Ú__all__Úrdflib.parserr   r   r   r   r8   ÚCONTEXTÚPREDÚSUBJÚOBJÚPARTSÚALL4ÚSYMBOLÚFORMULAÚLITERALÚ
LITERAL_DTÚLITERAL_LANGÚ	ANONYMOUSÚ
XMLLITERALrý   ÚNODE_MERGE_URIÚ
forSomeSymÚ	forAllSymÚRDF_type_URIÚ
RDF_NS_URIÚOWL_NSÚDAML_sameAs_URIÚparsesTo_URIÚRDF_specÚList_NSÚ_Old_Logic_NSÚN3_firstÚN3_restÚN3_liÚN3_nilÚN3_ListÚN3_EmptyrO   r   rR   r   rŠ   Úchatty_flagrZ   r]   ÚN3_forSome_URIÚN3_forAll_URIr<  rü   rþ   ÚLOG_implies_URIrã  rå  ræ  ÚFLOAT_DATATYPErä  Úoption_noregenrÔ  rÃ   r½   r¼   Ú_rdfnsr[  rY  rR  rX  rl   ÚcompilerA  r?  ÚN3CommentCharacterrL  rP  rO  Úsigned_integerrh  rg  rf  Údigitstringrv  ri  rn   ÚSyntaxErrorr   rì   r¦  Úr_hibyter¾  r   r   r   r  r  r“  r;   r"   r!   ú<module>rL     sÛ  ððð ð8 €
€
€
Ø 	€	€	€	Ø 	€	€	€	Ø €€€à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø #Ð #Ð #Ð #Ð #Ð #ð
ð 
ð 
€ð !Ð  Ð  Ð  Ð  Ð  ðð ð ð ð,_,ð _,ð _,ðD
4ð 
4ð 
4ðð ð ð €Ø€Ø€Ø€àˆd�Cˆ€Ø��d˜CÐ€à	
€Ø
€Ø
€Ø€
Ø€Ø€	Ø€
à0€Ø˜D‘€Ø˜	Ñ!€
Ø�xÑ€	à@€Ø:€
Ø	)€Ø˜8Ñ#€Ø˜*Ñ$€Ø1€à
€Ø8€à�G˜gÑ%Ð&€Ø�7˜VÑ#Ð
$€Ø	�˜4‘Ð €Ø
�'˜E‘/Ð	"€Ø�7˜VÑ#Ð
$€Ø�G˜gÑ%Ð&€ð Ð ðð ð ð 	
€ð.ð .ð .ð €Ø€ð
	ð 	ð 	ð
	ð 	ð 	ð
 €Ø€ð €
ð �LÐ!€Ø�Ð'€à>€à˜iÑ'Ð Ø˜iÑ'Ð Ø˜XÑ%€Ø˜GÑ#€Ø˜iÑ'Ð à€ð �Ð;Ñ<Ô<€Ø" c UÑ*Ð Ø # Ñ&€Ø	6€àˆ3Ð'Ñ(Ô(€ØˆcÐ*Ñ+Ô+€Øˆc�-Ñ Ô €Ø  c 
Ñ*€ðEð Eð Eð �”Ð2Ñ3Ô3€Ø�”Ð2Ñ3Ô3€ð Ð ð
 €b„jÐ)Ñ*Ô*€Ø€b„jÐ%Ñ&Ô&€Ø€R„Z�	ÑÔ€Ø�”˜NÑ+Ô+€Ø�”˜NÑ+Ô+€Ø�”Ð2Ñ3Ô3€Ø�"”*Ø@ñô €ð ˆbŒj˜Ñ#Ô#€ØˆbŒjÐ,Ñ-Ô-€Øˆ2Œ:Ð5Ñ6Ô6€ðWCð WCð WCð WCð WCñ WCô WCð WCð|("ð "ð "ð "ð "�ñ "ô "ð "ðL# ð # ð # ð # ð # ˆfñ # ô # ð # ðL ˆ2Œ:Ð&Ñ'Ô'€ðð ð ð ð ˆfñ ô ð ðPð ð ð&*ð *ð *ð *ð *�6ñ *ô *ð *ð@Mð Mð Mð Mð Mˆ|ñ Mô Mð Mð>ð ð ðð ð ð* ˆzÒÐØ€D�F„F€F€F€Fð Ðr"   