
    0p]j              
         d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
  e
e                                          j        d         Zedz  Zd Zd Zd Zd	 Zd
 Zedk    rv ej         e                       dS # e$ rTZ e ej        dd ee          j         de dd          ej                    ej        d           Y dZ[dS dZ[ww xY wdS )    )annotationsN)Path   zscript/project-manifest.jsonc                   t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                 .                          d          S )Ni   )read)fs    script/check-semantic-markers.py<lambda>zsha.<locals>.<lambda>	   s    qvvk**     r   )hashlibsha256openiterupdate	hexdigest)phbr
   s      @r   shar      s    
>ffTll <a****3//;;a;< < < < < < < < < < < < < < <	s   ,A##A'*A'c                T   | d                              |          }|st          d|           t          |                                          rt          |          n	t          |z  }|                                                    t                                                     |S )Nactive_pathszmissing active_paths.)getRuntimeErrorr   is_absoluteROOTresolverelative_to)mkvr   s       r   r   r      s    ^	98Q8899
91gg!!##/4777a		0G0G0W0W0W_`X`r   c                   | j                             dd           t          j        |dd          dz                                   }t          j        | j         d| j        z   dz             \  }}	 t          j	        |d	          5 }|
                    |           |                                 t          j        |                                           d d d            n# 1 swxY w Y   t          j        ||            t          j                            |          rt          j        |           d S d S # t          j                            |          rt          j        |           w w xY w)
NT)parentsexist_okF   )ensure_asciiindent
.)dirprefixwb)parentmkdirjsondumpsencodetempfilemkstempnameosfdopenwriteflushfsyncfilenoreplacepathexistsunlink)r   odfdnr
   s         r   atomicrD      sy   d+++tz!VW/X/X/XY]/].e.e.g.gAmum}  CD  CK  SV  WX  W]  S]  ^a  Sa  nb  nb  nbhlhjkl$	yDHQqwwqzzz!'')))BHQXXZZ4H4H4HHHHHHHHHHHHHHHH*Qq///W^^A#ry|||||##RW^^A#ry||||#s1   3D; AC$D; $C((D; +C(,D; ;6E1c                    g }d|                                  |D ]N}fd|D             }d |D             }|sd|fc S t          |          }|                    |           |dz   Od|fS )Nr   c                `    g | ]*}                     |                                          +S  )findcasefold).0xlowstarts     r   
<listcomp>zordered.<locals>.<listcomp>   s/    666e$$666r   c                    g | ]
}|d k    |S )r   rG   )rJ   rK   s     r   rN   zordered.<locals>.<listcomp>   s$    <U<U<U1PQSTPTPTQPTPTPTr   Fr   T)rI   minappend)textgroupsposaliaseshitsr   rL   rM   s         @@r   orderedrW      s    aDMMOO & &W66666g666$<U<U<U<U<Ut	U3YII!cjjmmm!A#EESr   c                 .   t          j        t                                                    } t	          | d          }t	          | d          }t	          | d          }t          j        |                                          }t          |          }|                    d          dk    s0|                    d          dus|                    d          |k    rt          d	          |                    d
          t          dgddgddgddgddgddgddgddgddgdgddgg          \  }}d 	                    
                                d d!                                                   }t          fd"d#D                       }	|d$|v od%|v |	t          t                    d&z            k    |	d'k    ocd(t          d'|	d)z
            |	d*z                                            v o1d+t          d'|	d)z
            |	d*z                                            v d,                                v o+d-                                v pd.                                v d/                                v o+d0                                v pd1                                v d2d3d                                          v o;d4d3d                                          v pd5d3d                                          v d6}
t          |
                                          }|rdnd7||t#          |          t#          |          |d8 |
                                D             d9 |
                                D             t&          j                            t&          j        j                                                  d:	}t1          ||           t3          t          j        |d         ||d;         t#          |          d<d=>                     |rd'nd?S )@N	candidateproducer_close_receiptsemantic_markers_receiptstatus	completedwriter_closedTcandidate_sha256zproducer-close absent or stalezutf-8)encodingu	   mưa đáu   bảy mươi hai giờu   72 giờu   nửa đànu   một nửa đànu   neo trượtu	   mối neou   mười hai giờu   12 giờu   rút quyềnu   không được vàou	   sơn bítu
   lớp sơn   đóng hay mở   đóng cửa hay mởu   chim non cuốiu   con chim non cuốiu   ba tháng sauu   mùa chim năm sauu   mùa sau    c              3  f   K   | ]+}                                                     |          V  ,d S )N)rI   rfind)rJ   aliasts     r   	<genexpr>zmain.<locals>.<genexpr>"   s9      
|
|1::<<e$$
|
|
|
|
|
|r   )ra   rb   u   chọn đóngu   chọn mởu   đóngu   mởgffffff?r   u	   hạ linhi  i  u   dịch thầnu   dây an toànu
   tự khóau
   khóa dâyu   bảng điều khiểntraou   đưau
   mái kínhiHu   trờiu   đường bay)
beat_ordercold_open_has_choicecatchup_after_75_percentcatchup_repeats_peoplesafety_boundary_paid_offchoice_authority_paid_offending_echofailedc                     i | ]\  }}|||d S ))verifiedvaluerG   rJ   r!   r"   s      r   
<dictcomp>zmain.<locals>.<dictcomp>$   sd      ]S  ]S  ]S  }@  }~  @  ^_  lm  vw  `x  `x  ]S  ]S  ]Sr   c                    g | ]	\  }}||
S rG   rG   rv   s      r   rN   zmain.<locals>.<listcomp>$   sV      _E  _E  _E  fi  fg  hi  CD  _E  `a  _E  _E  _Er   )	r\   rt   r_   candidate_pathrZ   sequence_positionschecksblockers
checked_atr|   )r\   rt   r|   receiptFr'   r   )r0   loadsMP	read_textr   r   r   r   rW   joinsplitrI   maxintlenallvaluesstritemsdatetimenowtimezoneutc	isoformatrD   printr1   )r    ccpoutclosechseq	positionscoldcatchr{   rt   rrh   s                @r   mainr      s   :bllnn+ 6 6a'!D\:]:]rbijk  mG  cH  cH^a  OS  OY  Z\  Zf  Zf  Zh  Zh  Oi  Oi  IN  mp  qr  ms  ms  jl	IIh$$		/(B(B$(N(NRWR[R[\nRoRoqsRsRs  {G  Hh  {i  {i  ui;;;  wq;-IablHmo|  ~Q  oR  Tb  cn  So  qD  EO  pP  R`  aw  Qx  zE  FR  yS  Uf  g~  T  AR  Sh  @i  kz  j{  }Q  R\  |]  :^  0_  0_Y	hhqwwyy#((**

|
|
|
|2{
|
|
|||(d2B2UvQU~rwy|  ~A  BC  ~D  ~D  EH  ~H  zI  zI  sI  ch  jk  ck  ck  p{  @  AD  EF  GL  MQ  GQ  AR  AR  SX  Y]  S]  A]  ^  g  g  i  i  pi  ck  n}  AB  CF  GH  IN  OS  IS  CT  CT  UZ  [_  U_  C_  A`  Ai  Ai  Ak  Ak  nk  GV  Z[  Zd  Zd  Zf  Zf  Gf  Gi  lx  |}  |F  |F  |H  |H  lH  lh  LX  \]  \f  \f  \h  \h  Lh  F^  bc  bl  bl  bn  bn  Fn  Ff  tz  ~  ~H  ~H  ~J  ~J  tJ  te  NU  YZ  Yc  Yc  Ye  Ye  Ne  uA	  E	F	  G	L	  G	M	  G	M	  E	N	  E	W	  E	W	  E	Y	  E	Y	  uY	  uk
  _	g	  k	l	  m	r	  m	s	  m	s	  k	t	  k	}	  k	}	  k		  k		  _		  _	j
  C
R
  V
W
  X
]
  X
^
  X
^
  V
_
  V
h
  V
h
  V
j
  V
j
  C
j
  	l
  	l

fmmoo

(+P;;\dxz  MP  QR  MS  MS  mp  qs  mt  mt  JS  ]S  ]S  DJ  DP  DP  DR  DR  ]S  ]S  ]S  _E  _E  ms  my  my  m{  m{  _E  _E  _E  S[  Sd  Sh  Sh  iq  iz  i~  S  S  SI  SI  SK  SK  "L  "Lq  MS  TW  XY  MZ  MZ  MZ  [`  ae  ak  vw  x@  vA  MU  ab  cm  an  y|  }@  yA  yA  lB  lB  PU  aV  aV  aV  [W  [W  [W  dl  _s  _`  _`  rs  Xsr   __main__rr   Fz: )r\   rt   errorr   )file)
__future__r   r   r   r0   r6   resysr3   pathlibr   __file__r   r$   r   r   r   rD   rW   r   __name__exit	Exceptioner   r1   typestderrrG   r   r   <module>r      s   " " " " " " / / / / / / / / / / / / / / / / / / / / / / / / / / / /      	T(^^%a(D1O,O  
a a a$ $ $  s s s ZSXddff  a  a  auuZTZ(eW[W[\]W^W^WgTnTnklTnTn(o(o  ~C  D  D  D  JM  JT  U  U  U  U  V^  VY  V^  _`  Va  Va  Va  Va  Va  Va  Va  Va  Va  a s   +B C
A	CC