
    ,hO                     `    d dgZ ddlmZ ddl  G d de      Z G d d      Z G d d       Zy	)
ScannerScannerError   )MarkedYAMLError)*c                       e Zd Zy)r   N)__name__
__module____qualname__     N/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/yaml/scanner.pyr   r       s    r   c                       e Zd Zd Zy)	SimpleKeyc                 X    || _         || _        || _        || _        || _        || _        y N)token_numberrequiredindexlinecolumnmark)selfr   r   r   r   r   r   s          r   __init__zSimpleKey.__init__&   s-    ( 
		r   N)r   r	   r
   r   r   r   r   r   r   #   s    r   r   c                   4   e 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 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# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@i d?d@dAdBdCdDdEdFdFdFdGdHdIdJdKdLdMdNdOdPdQdQdRdRdSdSdTdTdUdVdWdXdYdZd[d\iZAd]d^d_d`ZBda ZCdb ZDdc ZEdd ZFde ZGdf ZHdg ZIdh ZJdi ZKyj)kr   c                     d| _         d| _        g | _        | j                          d| _        d| _        g | _        d| _        i | _        y)zInitialize the scanner.F    TN)	done
flow_leveltokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr   s    r   r   zScanner.__init__0   s[     	   	!   , !% %'!r   c                     | j                         r!| j                          | j                         r!| j                  r%|sy|D ]  }t        | j                  d   |      s y y)NTr   F)need_more_tokensfetch_more_tokensr    
isinstance)r   choiceschoices      r   check_tokenzScanner.check_tokenq   s^    ##%""$ ##%;;!  dkk!nf5  r   c                     | j                         r!| j                          | j                         r!| j                  r| j                  d   S y )Nr   )r)   r*   r    r'   s    r   
peek_tokenzScanner.peek_token}   sB     ##%""$ ##%;;;;q>!r   c                     | j                         r!| j                          | j                         r!| j                  r0| xj                  dz  c_        | j                  j	                  d      S y )Nr   r   )r)   r*   r    r"   popr'   s    r   	get_tokenzScanner.get_token   sX    ##%""$ ##%;;";;??1%% r   c                     | j                   ry| j                  sy| j                          | j                         | j                  k(  ryy )NFT)r   r    stale_possible_simple_keysnext_possible_simple_keyr"   r'   s    r   r)   zScanner.need_more_tokens   sD    99{{ 	'')((*d.?.?? @r   c                 $   | j                          | j                          | j                  | j                         | j	                         }|dk(  r| j                         S |dk(  r | j                         r| j                         S |dk(  r | j                         r| j                         S |dk(  r | j                         r| j                         S |dk(  r| j                         S |dk(  r| j                         S |dk(  r| j                         S |dk(  r| j                         S |d	k(  r| j!                         S |dk(  r | j#                         r| j%                         S |d
k(  r | j'                         r| j)                         S |dk(  r | j+                         r| j-                         S |dk(  r| j/                         S |dk(  r| j1                         S |dk(  r| j3                         S |dk(  r| j4                  s| j7                         S |dk(  r| j4                  s| j9                         S |dk(  r| j;                         S |dk(  r| j=                         S | j?                         r| jA                         S tC        dd d|z  | jE                               )N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenz.found character %r that cannot start any token)#scan_to_next_tokenr5   unwind_indentr   peekfetch_stream_endcheck_directivefetch_directivecheck_document_startfetch_document_startcheck_document_endfetch_document_endfetch_flow_sequence_startfetch_flow_mapping_startfetch_flow_sequence_endfetch_flow_mapping_endfetch_flow_entrycheck_block_entryfetch_block_entry	check_key	fetch_keycheck_valuefetch_valuefetch_aliasfetch_anchor	fetch_tagr   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   get_markr   chs     r   r*   zScanner.fetch_more_tokens   s    	! 	'') 	4;;' YY[ :((** 9--/'')) 9224,,.. 9002**,, 91133 90022 9//11 9..00 9((** 9//1))++ 9)>>## 9))+##%% 9##%% 9$$&& 9>>## 9T__%%'' 9T__$$&& :$$&& :$$&& ##%% >@2E! 	!r   c                     d }| j                   D ]/  }| j                   |   }||j                  |k  s$|j                  }1 |S r   )r&   r   )r   min_token_numberlevelkeys       r   r6   z Scanner.next_possible_simple_key  sW      .. 	4E++E2C'3+;+;>N+N#&#3#3 	4  r   c                 @   t        | j                        D ]  }| j                  |   }|j                  | j                  k7  s| j                  |j                  z
  dkD  sH|j                  r&t        d|j                  d| j                               | j                  |=  y )Ni   while scanning a simple keycould not find expected ':')listr&   r   r   r   r   r   rg   )r   rl   rm   s      r   r5   z"Scanner.stale_possible_simple_keys  s     $334 	5E++E2Cxx499$zz#))+d2<<&'Dchh94==?L L--e4	5r   c           	      |   | j                    xr | j                  | j                  k(  }| j                  r| j	                          | j
                  t        | j                        z   }t        ||| j                  | j                  | j                  | j                               }|| j                  | j                   <   y y r   )r   r#   r   r%   remove_possible_simple_keyr"   lenr    r   r   r   rg   r&   )r   r   r   rm   s       r   save_possible_simple_keyz Scanner.save_possible_simple_key'  s     &E4;;$+++E   ++-,,S-==LL(JJ		4;;IC9<D%%doo6 !r   c                     | j                   | j                  v rc| j                  | j                      }|j                  r&t        d|j                  d| j                               | j                  | j                   = y y )Nro   rp   )r   r&   r   r   r   rg   )r   rm   s     r   rs   z"Scanner.remove_possible_simple_key8  sk    ??d777++DOO<C||"#@#((5t}}H H ))$//: 8r   c                    | j                   ry | j                  |kD  re| j                         }| j                  j	                         | _        | j
                  j                  t        ||             | j                  |kD  rdy y r   )r   r#   rg   r$   r2   r    appendBlockEndToken)r   r   r   s      r   rJ   zScanner.unwind_indentE  sb     ?? kkF"==?D,,**,DKKK}T489 kkF"r   c                 |    | j                   |k  r-| j                  j                  | j                          || _         yy)NTF)r#   r$   rx   )r   r   s     r   
add_indentzScanner.add_indent]  s1    ;;LL, DKr   c                     | j                         }| j                  j                  t        ||| j                               y )N)encoding)rg   r    rx   StreamStartTokenr}   r   r   s     r   r!   zScanner.fetch_stream_startg  s6    
 }} 	+D$]]$ 	%r   c                     | j                  d       | j                          d| _        i | _        | j	                         }| j
                  j                  t        ||             d| _        y )Nr   FT)	rJ   rs   r%   r&   rg   r    rx   StreamEndTokenr   r   s     r   rL   zScanner.fetch_stream_ends  sa     	2 	'') %$&! }} 	>$56 	r   c                     | j                  d       | j                          d| _        | j                  j	                  | j                                y )Nr   F)rJ   rs   r%   r    rx   scan_directiver'   s    r   rN   zScanner.fetch_directive  sE     	2 	'') % 	4..01r   c                 .    | j                  t               y r   )fetch_document_indicatorDocumentStartTokenr'   s    r   rP   zScanner.fetch_document_start  s    %%&89r   c                 .    | j                  t               y r   )r   DocumentEndTokenr'   s    r   rR   zScanner.fetch_document_end  s    %%&67r   c                     | j                  d       | j                          d| _        | j                         }| j	                  d       | j                         }| j
                  j                   |||             y )Nr   F   )rJ   rs   r%   rg   forwardr    rx   r   
TokenClass
start_markend_marks       r   r   z Scanner.fetch_document_indicator  sd     	2 	'') % ]]_
Q==?:j(;<r   c                 .    | j                  t               y r   )fetch_flow_collection_startFlowSequenceStartTokenr'   s    r   rS   z!Scanner.fetch_flow_sequence_start  s    (()?@r   c                 .    | j                  t               y r   )r   FlowMappingStartTokenr'   s    r   rT   z Scanner.fetch_flow_mapping_start  s    (()>?r   c                     | j                          | xj                  dz  c_        d| _        | j                         }| j	                          | j                         }| j
                  j                   |||             y )Nr   T)ru   r   r%   rg   r   r    rx   r   s       r   r   z#Scanner.fetch_flow_collection_start  sd     	%%' 	1 !% ]]_
==?:j(;<r   c                 .    | j                  t               y r   )fetch_flow_collection_endFlowSequenceEndTokenr'   s    r   rU   zScanner.fetch_flow_sequence_end  s    &&';<r   c                 .    | j                  t               y r   )r   FlowMappingEndTokenr'   s    r   rV   zScanner.fetch_flow_mapping_end  s    &&':;r   c                     | j                          | xj                  dz  c_        d| _        | j                         }| j	                          | j                         }| j
                  j                   |||             y )Nr   F)rs   r   r%   rg   r   r    rx   r   s       r   r   z!Scanner.fetch_flow_collection_end  sd     	'') 	1 !& ]]_
==?:j(;<r   c                     d| _         | j                          | j                         }| j                          | j                         }| j                  j                  t        ||             y NT)r%   rs   rg   r   r    rx   FlowEntryToken)r   r   r   s      r   rW   zScanner.fetch_flow_entry  sT     !% 	'') ]]_
==?>*h?@r   c                    | j                   sy| j                  st        d d d| j                               | j	                  | j
                        r7| j                         }| j                  j                  t        ||             n	 d| _        | j                          | j                         }| j                          | j                         }| j                  j                  t        ||             y )Nz%sequence entries are not allowed hereT)r   r%   r   rg   r{   r   r    rx   BlockSequenceStartTokenrs   r   BlockEntryTokenr   r   r   r   s       r   rY   zScanner.fetch_block_entry  s      (("4?) )
 t{{+}}""#:4#FG
  !% 	'') ]]_
==??:x@Ar   c                    | j                   sx| j                  st        d d d| j                               | j	                  | j
                        r5| j                         }| j                  j                  t        ||             | j                    | _        | j                          | j                         }| j                          | j                         }| j                  j                  t        ||             y )Nz!mapping keys are not allowed here)r   r%   r   rg   r{   r   r    rx   BlockMappingStartTokenrs   r   KeyTokenr   s       r   r[   zScanner.fetch_key  s      (("4;) )
 t{{+}}""#9$#EF %)OO 3 	'') ]]_
==?8J9:r   c                 F   | j                   | j                  v r| j                  | j                      }| j                  | j                   = | j                  j                  |j                  | j
                  z
  t        |j                  |j                               | j                   sl| j                  |j                        rQ| j                  j                  |j                  | j
                  z
  t        |j                  |j                               d| _        n| j                   s(| j                  st        d d d| j                               | j                   sP| j                  | j                        r5| j                         }| j                  j                  t        ||             | j                    | _        | j                          | j                         }| j!                          | j                         }| j                  j                  t#        ||             y )NFz#mapping values are not allowed here)r   r&   r    insertr   r"   r   r   r{   r   r   r%   r   rg   rx   rs   r   
ValueToken)r   rm   r   r   r   s        r   r]   zScanner.fetch_value!  s    ??d777 ++DOO<C))$//:KKs//0A0AASXXsxx02
 ????3::.KK&&s'7'78I8I'I2388SXXFH %*D! ?? ,,&tTA MMO- - ????4;;/==?DKK&&'=dD'IJ )-$7D! ++- ]]_
==?:j(;<r   c                     | j                          d| _        | j                  j                  | j	                  t
                     y NF)ru   r%   r    rx   scan_anchor
AliasTokenr'   s    r   r^   zScanner.fetch_aliasY  s9     	%%' !& 	4++J78r   c                     | j                          d| _        | j                  j                  | j	                  t
                     y r   )ru   r%   r    rx   r   AnchorTokenr'   s    r   r_   zScanner.fetch_anchord  s9     	%%' !& 	4++K89r   c                     | j                          d| _        | j                  j                  | j	                                y r   )ru   r%   r    rx   scan_tagr'   s    r   r`   zScanner.fetch_tago  s4     	%%' !& 	4==?+r   c                 (    | j                  d       y )NrE   stylefetch_block_scalarr'   s    r   ra   zScanner.fetch_literalz      c*r   c                 (    | j                  d       y )NrF   r   r   r'   s    r   rb   zScanner.fetch_folded}  r   r   c                     d| _         | j                          | j                  j                  | j	                  |             y r   )r%   rs   r    rx   scan_block_scalarr   r   s     r   r   zScanner.fetch_block_scalar  s9     !% 	'') 	411%89r   c                 (    | j                  d       y )NrG   r   fetch_flow_scalarr'   s    r   rc   zScanner.fetch_single  s    T*r   c                 (    | j                  d       y )NrH   r   r   r'   s    r   rd   zScanner.fetch_double  s    S)r   c                     | j                          d| _        | j                  j                  | j	                  |             y r   )ru   r%   r    rx   scan_flow_scalarr   s     r   r   zScanner.fetch_flow_scalar  s9     	%%' !& 	40078r   c                     | j                          d| _        | j                  j                  | j	                                y r   )ru   r%   r    rx   
scan_plainr'   s    r   rf   zScanner.fetch_plain  s5     	%%'
 !& 	4??,-r   c                 $    | j                   dk(  ryy )Nr   T)r   r'   s    r   rM   zScanner.check_directive  s     ;;! r   c                 v    | j                   dk(  r*| j                  d      dk(  r| j                  d      dv ryy y y )Nr   r   ---     	
  Tr   prefixrK   r'   s    r   rO   zScanner.check_document_start  D     ;;!{{1~&		!(CC D ' r   c                 v    | j                   dk(  r*| j                  d      dk(  r| j                  d      dv ryy y y )Nr   r   ...r   Tr   r'   s    r   rQ   zScanner.check_document_end  r   r   c                 (    | j                  d      dv S )Nr   r   )rK   r'   s    r   rX   zScanner.check_block_entry  s     yy|:::r   c                 B    | j                   ry| j                  d      dv S NTr   r   r   rK   r'   s    r   rZ   zScanner.check_key  $     ?? 99Q<#>>>r   c                 B    | j                   ry| j                  d      dv S r   r   r'   s    r   r\   zScanner.check_value  r   r   c                     | j                         }|dvxs/ | j                  d      dvxr |dk(  xs | j                   xr |dv S )Nu      	
  -?:,[]{}#&*!|>'"%@`r   r   r:   z?:)rK   r   rh   s     r   re   zScanner.check_plain  sW     YY[II QIIaL(CC P3YNt+>+M2:	Qr   c                    | j                   dk(  r#| j                         dk(  r| j                          d}|s| j                         dk(  r$| j                          | j                         dk(  r$| j                         dk(  r5| j                         dvr#| j                          | j                         dvr#| j                         r| j                  s
d| _        nd}|sy y )Nr   u   ﻿F #    
  T)r   rK   r   scan_line_breakr   r%   )r   founds     r   rI   zScanner.scan_to_next_token  s    ( ::?tyy{h6LLN))+$ ))+$yy{c!iik)AALLN iik)AA##%,0D) r   c                    | j                         }| j                          | j                  |      }d }|dk(  r"| j                  |      }| j                         }nl|dk(  r"| j	                  |      }| j                         }nE| j                         }| j                         dvr#| j                          | j                         dvr#| j                  |       t        ||||      S )NYAMLTAGr   )rg   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuerK   scan_directive_ignored_lineDirectiveToken)r   r   namevaluer   s        r   r   zScanner.scan_directive  s    ]]_
''
36>22:>E}}HU]11*=E}}H}}H))+%== ))+%==((4dE:x@@r   c                    d}| j                  |      }d|cxk  rdk  s n d|cxk  rdk  sn d|cxk  rdk  sn |dv rE|d	z  }| j                  |      }d|cxk  rdk  r"n d|cxk  rdk  r0n d|cxk  rdk  r>n |dv rE|st        d
|d|z  | j                               | j                  |      }| j	                  |       | j                         }|dvrt        d
|d|z  | j                               |S )Nr   09AZaz-_r   while scanning a directive6expected alphabetic or numeric character, but found %r     
  )rK   r   rg   r   r   )r   r   lengthri   r   s        r   r   zScanner.scan_directive_name&  s   YYvR3#"2s"2cR6F36F:aKF6"B R3#"2s"2cR6F36F: ;ZL--/+ + F#VYY[..;ZL--/+ + r   c                    | j                         dk(  r$| j                          | j                         dk(  r$| j                  |      }| j                         dk7  r-t        d|d| j                         z  | j	                               | j                          | j                  |      }| j                         dvr-t        d|d| j                         z  | j	                               ||fS )Nr   r;   r   z%expected a digit or '.', but found %rr   z%expected a digit or ' ', but found %r)rK   r   scan_yaml_directive_numberr   rg   )r   r   majorminors       r   r   z!Scanner.scan_yaml_directive_value;  s    iikS LLN iikS //
;99;#;Z;diikIMMO% % 	//
;99;77;Z;diikIMMO% % u~r   c                 V   | j                         }d|cxk  rdk  s!n t        d|d|z  | j                               d}d| j                  |      cxk  rdk  r%n n"|dz  }d| j                  |      cxk  rdk  r n t        | j	                  |            }| j                  |       |S )Nr   r   r   zexpected a digit, but found %rr   r   )rK   r   rg   intr   r   )r   r   ri   r   r   s        r   r   z"Scanner.scan_yaml_directive_numberL  s    YY[r S ;Z4r94==?L LTYYv&-#-aKF TYYv&-#-DKK'(Vr   c                 *   | j                         dk(  r$| j                          | j                         dk(  r$| j                  |      }| j                         dk(  r$| j                          | j                         dk(  r$| j                  |      }||fS )Nr   )rK   r   scan_tag_directive_handlescan_tag_directive_prefix)r   r   handler   s       r   r   z Scanner.scan_tag_directive_valueY  s{    iikS LLN iikS //
;iikS LLN iikS //
;r   c                     | j                  d|      }| j                         }|dk7  rt        d|d|z  | j                               |S )N	directiver   r   expected ' ', but found %r)scan_tag_handlerK   r   rg   r   r   r   ri   s       r   r   z!Scanner.scan_tag_directive_handlec  sO    $$[*=YY[9;Z025t}}H Hr   c                     | j                  d|      }| j                         }|dvrt        d|d|z  | j                               |S )Nr   r   r   r   )scan_tag_urirK   r   rg   r   s       r   r   z!Scanner.scan_tag_directive_prefixl  sQ    !!+z:YY[..;Z025t}}H Hr   c                    | j                         dk(  r$| j                          | j                         dk(  r$| j                         dk(  r5| j                         dvr#| j                          | j                         dvr#| j                         }|dvrt        d|d|z  | j                               | j	                          y )Nr   r   r   r   0expected a comment or a line break, but found %rrK   r   r   rg   r   r   r   ri   s      r   r   z#Scanner.scan_directive_ignored_lineu  s    iikS LLN iikS 99;#))+%== ))+%==YY[--;ZF"mmo/ / 	r   c                    | j                         }| j                         }|dk(  rd}nd}| j                          d}| j                  |      }d|cxk  rdk  s n d|cxk  rdk  sn d	|cxk  rd
k  sn |dv rE|dz  }| j                  |      }d|cxk  rdk  r"n d|cxk  rdk  r0n d	|cxk  rd
k  r>n |dv rE|s"t        d|z  |d|z  | j                               | j	                  |      }| j                  |       | j                         }|dvr"t        d|z  |d|z  | j                               | j                         } ||||      S )Nr   aliasanchorr   r   r   r   r   r   r   r   r   zwhile scanning an %sr   u     	
  ?:,]}%@`)rg   rK   r   r   r   )	r   r   r   	indicatorr   r   ri   r   r   s	            r   r   zScanner.scan_anchor  s`    ]]_
IIK	DDYYvR3#"2s"2cR6F36F:aKF6"B R3#"2s"2cR6F36F: 5<jL--/+ + F#VYY[885<jL--/+ + ==?%X66r   c                    | j                         }| j                  d      }|dk(  rvd }| j                  d       | j                  d|      }| j                         dk7  r-t	        d|d| j                         z  | j                               | j                          n|dv rd }d	}| j                          nfd}d
}|dvr#|d	k(  rd}n|dz  }| j                  |      }|dvr#d	}|r| j                  d|      }nd	}| j                          | j                  d|      }| j                         }|dvrt	        d|d|z  | j                               ||f}| j                         }t        |||      S )Nr   <   tagrF   zwhile parsing a tagzexpected '>', but found %rr   rD   Fr   Tzwhile scanning a tagr   )rg   rK   r   r   r   r   TagToken)	r   r   ri   r   suffixr   
use_handler   r   s	            r   r   zScanner.scan_tag  s}   ]]_
YYq\9FLLO&&uj9Fyy{c!"#8*4tyy{B) ) LLN..FFLLNFJ559!%J!YYv& 55 F--eZ@&&uj9FYY[..5z025t}}H H ==?z844r   c                    |dk(  rd}nd}g }| j                         }| j                          | j                  |      \  }}| j                  |       | j                  dz   }|dk  rd}|!| j                         \  }}	}
t        ||	      }n||z   dz
  }| j                  |      \  }}
d}| j                  |k(  rB| j                         dk7  r.|j                  |       | j                         dv}d}| j                  |      d	vr|dz  }| j                  |      d	vr|j                  | j                  |             | j                  |       | j                         }| j                  |      \  }}
| j                  |k(  rT| j                         dk7  rA|r-|d
k(  r(|r&| j                         dvr|s%|j                  d       n|j                  |       nn$| j                  |k(  r| j                         dk7  r.|dur|j                  |       |du r|j                  |       t        dj                  |      d||
|      S )NrF   TFr    r8    	r   r   
r   )rg   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner#   scan_block_scalar_indentationmaxscan_block_scalar_breaksr   rK   extendrx   r   r   ScalarTokenjoin)r   r   foldedchunksr   chomping	increment
min_indentbreaks
max_indentr   r#   
line_breakleading_non_spacer   s                  r   r   zScanner.scan_block_scalar  s,    C<FF]]_
 	"??
K)++J7 [[]
>J+/+M+M+O(FJZ0F	)!+F#<<VDFH
 kkV#		t(;MM&! $		5 8F))F#+CC! ))F#+CCMM$++f-.LL --/J#<<VDFH{{f$)< jD0-$))+U2J!c*MM*- G kkV#		t(;L 5 MM*%tMM&! 2776?E:x 	r   c                 R   d }d }| j                         }|dv rk|dk(  rd}nd}| j                          | j                         }|dv rt        |      }|dk(  rt        d|d| j	                               | j                          nn|dv rjt        |      }|dk(  rt        d|d| j	                               | j                          | j                         }|dv r|dk(  rd}nd}| j                          | j                         }|d	vrt        d|d
|z  | j	                               ||fS )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r   z9expected chomping or indentation indicators, but found %r)rK   r   r   r   rg   )r   r   r  r  ri   s        r   r  z$Scanner.scan_block_scalar_indicators  s8   	YY[:Sy LLNB\!G	>&'F
Z MMO- - <BIA~"#BJV) ) LLNBTz9#H$HYY[..>
O--/+ + ""r   c                    | j                         dk(  r$| j                          | j                         dk(  r$| j                         dk(  r5| j                         dvr#| j                          | j                         dvr#| j                         }|dvrt        d|d|z  | j                               | j	                          y )Nr   r   r   r'  r  r  r  s      r   r  z&Scanner.scan_block_scalar_ignored_lineD  s    iikS LLN iikS 99;#))+%== ))+%==YY[-->
FKMMO% % 	r   c                 Z   g }d}| j                         }| j                         dv r| j                         dk7  r0|j                  | j                                | j                         }n+| j	                          | j
                  |kD  r| j
                  }| j                         dv r|||fS )Nr       
  r   )rg   rK   rx   r   r   r   )r   r  r!  r   s       r   r  z%Scanner.scan_block_scalar_indentationR  s    
==?iik44yy{c!d2245==?;;+!%J iik44 z8++r   c                 *   g }| j                         }| j                  |k  rF| j                         dk(  r3| j                          | j                  |k  r| j                         dk(  r3| j                         dv r|j	                  | j                                | j                         }| j                  |k  rF| j                         dk(  r3| j                          | j                  |k  r| j                         dk(  r3| j                         dv r||fS )Nr   
   
  )rg   r   rK   r   rx   r   )r   r#   r  r   s       r   r  z Scanner.scan_block_scalar_breaksa  s    ==?kkF"tyy{c'9LLN kkF"tyy{c'9iik33MM$..01}}H++&499;#+= ++&499;#+= iik33
 xr   c                 
   |dk(  rd}nd}g }| j                         }| j                         }| j                          |j                  | j	                  ||             | j                         |k7  rV|j                  | j                  ||             |j                  | j	                  ||             | j                         |k7  rV| j                          | j                         }t        dj                  |      d|||      S )NrH   TFr  )rg   rK   r   r  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr  r  )r   r   doubler  r   quoter   s          r   r   zScanner.scan_flow_scalarn  s     C<FF]]_
		d66vzJKiikU"MM$66vzJKMM$::6:NO iikU" 	==?2776?E:x 	r   r   r8   r   bt	nr  vfrer   rH   \/N   _    Lu    Pu    r
        )xuUc           
         g }	 d}| j                  |      dvr|dz  }| j                  |      dvr|r1|j                  | j                  |             | j                  |       | j                         }|s=|dk(  r8| j                  d      dk(  r$|j                  d       | j                  d       n|r|dk(  s|s'|dv r#|j                  |       | j                          n|r|dk(  rz| j                          | j                         }|| j                  v r0|j                  | j                  |          | j                          n|| j
                  v r| j
                  |   }| j                          t        |      D ]E  }| j                  |      dvst        d	|d
|| j                  |      fz  | j                                t        | j                  |      d      }|j                  t        |             | j                  |       nW|dv r2| j                          |j                  | j                  ||             n!t        d	|d|z  | j                               |S g)Nr   u   '"\  	
  r   rG   r
  z"\r@  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz@expected escape sequence of %d hexadecimal numbers, but found %r   r,  z!found unknown escape character %r)rK   rx   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   rg   r   chrr   r  scan_flow_scalar_breaks)r   r0  r   r  r   ri   kcodes           r   r.  z#Scanner.scan_flow_scalar_non_spaces  s#   F))F#+LL! ))F#+LLdkk&12V$BbDjTYYq\T-Ad#QR4ZB&Lb!B$JYY[111MM$":":2">?LLN4,,,!..r2FLLN"6] Q99Q</GG"./VXb$f)/1(>%?@D#Q QQ
 t{{62B7DMM#d),LL(11((*MM$">">vz"RS&'NPZ?"DdmmoW W M r   c                    g }d}| j                  |      dv r|dz  }| j                  |      dv r| j                  |      }| j                  |       | j                         }|dk(  rt        d|d| j	                               |dv r_| j                         }| j                  ||      }|dk7  r|j                  |       n|s|j                  d	       |j                  |       |S |j                  |       |S )
Nr   r  r   r8   while scanning a quoted scalarzfound unexpected end of streamr,  r  r   )	rK   r   r   r   rg   r   rT  rx   r  )	r   r0  r   r  r   whitespacesri   r"  r   s	            r   r/  zScanner.scan_flow_scalar_spaces  s    ii5(aKF ii5(kk&)VYY[:?4dmmoG G))--/J11&*EFT!j)c"MM&!  MM+&r   c                 p   g }	 | j                  d      }|dk(  s|dk(  r/| j                  d      dv rt        d|d| j                               | j                         dv r#| j	                          | j                         dv r#| j                         dv r |j                  | j                                n|S )	Nr   r   r   r   rX  z#found unexpected document separatorr  r,  )r   rK   r   rg   r   rx   r   )r   r0  r   r  r   s        r   rT  zScanner.scan_flow_scalar_breaks  s     [[^F%6U?		!(CC"#CZ=t}}P P))+& ))+&yy{44d2245 r   c                    g }| j                         }|}| j                  dz   }g }	 d}| j                         dk(  rn	 | j                  |      }|dv s<|dk(  r'| j                  |dz         d| j                  rdndz   v s| j                  r|d	v rn|dz  }X|dk(  rnd
| _        |j                  |       |j                  | j                  |             | j                  |       | j                         }| j                  ||      }|r.| j                         dk(  s| j                  s| j                  |k  rnt        dj                  |      d||      S )Nr   Tr   r   r   rB   z,[]{}r  z,?[]{}F)rg   r#   rK   r   r%   r  rx   r   r   scan_plain_spacesr   r  r  )r   r  r   r   r#   spacesr   ri   s           r   r   zScanner.scan_plain  sR    ]]_
Q
 Fyy{c!YYv&44#I $		&( 37R59__#8O !O OOh!  {$)D!MM&!MM$++f-.LL }}H++FJ?FTYY[C/ OOf0D/ 0 2776?D*hGGr   c                 2   g }d}| j                  |      dv r|dz  }| j                  |      dv r| j                  |      }| j                  |       | j                         }|dv r| j                         }d| _        | j                  d      }|dk(  s|dk(  r| j                  d      d	v ry g }	| j                         d
v r| j                         dk(  r| j                          nN|	j                  | j                                | j                  d      }|dk(  s|dk(  r| j                  d      d	v ry | j                         d
v r|dk7  r|j                  |       n|	s|j                  d       |j                  |	       |S |r|j                  |       |S )Nr   r   r   r,  Tr   r   r   r   r*  r  )rK   r   r   r   r%   rx   r  )
r   r#   r   r  r   rY  ri   r"  r   r   s
             r   r\  zScanner.scan_plain_spaces  sz    ii3&aKF ii3&kk&)VYY[''--/J$(D![[^F%6U?		!(CCF))+!8899;#%LLNMM$"6"6"89![[^F%6U? $		!0K K ))+!88 T!j)c"MM&!  MM+&r   c                 B   | j                         }|dk7  r"t        d|z  |d|z  | j                               d}| j                  |      }|dk7  rd|cxk  rdk  s n d|cxk  rd	k  sn d
|cxk  rdk  sn |dv rE|dz  }| j                  |      }d|cxk  rdk  r"n d|cxk  rd	k  r0n d
|cxk  rdk  r>n |dv rE|dk7  r3| j                  |       t        d|z  |d|z  | j                               |dz  }| j	                  |      }| j                  |       |S )NrD   while scanning a %szexpected '!', but found %rr   r   r   r   r   r   r   r   r   )rK   r   rg   r   r   )r   r   r   ri   r   r   s         r   r   zScanner.scan_tag_handleD  s0    YY[94t;Z025t}}H HYYv9"s"cR&63&6#:Js:JTz!YYv& "s"cR&63&6#:Js:JTz SyV$"#84#?4r94==?L LaKFF#Vr   c                    g }d}| j                  |      }d|cxk  rdk  s n d|cxk  rdk  sn d|cxk  rdk  sn |dv r|d	k(  rU|j                  | j                  |             | j                  |       d}|j                  | j	                  ||             n|d
z  }| j                  |      }d|cxk  rdk  r|n d|cxk  rdk  rn d|cxk  rdk  rn |dv r|r3|j                  | j                  |             | j                  |       d}|s"t        d|z  |d|z  | j                               dj                  |      S )Nr   r   r   r   r   r   r   z-;/?:@&=+$,_.!~*'()[]%r9   r   zwhile parsing a %szexpected URI, but found %rr  )rK   rx   r   r   scan_uri_escapesr   rg   r  )r   r   r   r  r   ri   s         r   r   zScanner.scan_tag_uri\  s<    YYvR3#"2s"2cR6F36F22Sydkk&12V$d33D*EF!6"B R3#"2s"2cR6F36F22 MM$++f-.LL F3d:J025t}}H Hwwvr   c           	      B   g }| j                         }| j                         dk(  r| j                          t        d      D ]F  }| j                  |      dvst	        d|z  |d| j                  |      z  | j                                |j                  t        | j                  d      d             | j                  d       | j                         dk(  r	 t        |      j                  d      }|S # t        $ r}t	        d|z  |t        |      |      d }~ww xY w)Nr9   r
  rN  r`  zCexpected URI escape sequence of 2 hexadecimal numbers, but found %rrO  zutf-8)rg   rK   r   rR  r   rx   r   r   bytesdecodeUnicodeDecodeErrorstr)r   r   r   codesr   rU  r   excs           r   rb  zScanner.scan_uri_escapesu  s	   }}iikS LLN1X =99Q<'??&'<t'CZa"iil+,0MMO= ==
 LLT[[^R01LLO iikS 	Y%L''0E  " 	Y4t;ZSSWXX	Ys   C6 6	D?DDc                     | j                         }|dv r7| j                  d      dk(  r| j                  d       y| j                          y|dv r| j                          |S y)Nu   
r
  z
r  u     r  )rK   r   r   rh   s     r   r   zScanner.scan_line_break  s^     YY[{{1~'Q  >!LLNIr   N)Lr   r	   r
   r   r.   r0   r3   r)   r*   r6   r5   ru   rs   rJ   r{   r!   rL   rN   rP   rR   r   rS   rT   r   rU   rV   r   rW   rY   r[   r]   r^   r_   r`   ra   rb   r   rc   rd   r   rf   rM   rO   rQ   rX   rZ   r\   re   rI   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   rP  rQ  r.  r/  rT  r   r\  r   r   rb  r   r   r   r   r   r   .   sh   ='B
&	h!X 5 ="	;:0	%&
2:8= A@="=<="ABB;86=p	9	:	,++	:+*	9.;
??Q*!FA&*" "7H'5RJX&#P, 0 	 		
 	 	 	 	 	 	 	 	 	 	 	  	!" 	#$ 	%, L)V0$'HR#J02&r   N)__all__errorr   r    r   r   r   r   r   r   <module>rm     s9   6 n
% " 	? 		 	m mr   