
    n]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m	Z	  e	e
                                          j        d         Zedz  Zg 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.json)story_brief
charactersledgeroutlineidentity_registryreveal_ledgerc                   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/validate-authority.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    ^	:9a99:::1gg!!##/4777a(((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   objdatafdnr   s         r   atomicrJ      sB   d+++$*Se[\2]2]2]^b2b1j1j1l1lD183qv:c>:::A$	yDKQqwwt}}}QWWYYYrx

7K7K7KKKKKKKKKKKKKKKK*Qq///W^^A#ry|||||##RW^^A#ry||||#s1   3D; AC$D; $C((D; +C(,D; ;6E1c                 	   t          j        t                                                    fdt          D             } t          d          }d |                                 D             }|d                             d          }dt          d |	                                D                       |                    d          cxk    o>|d	                             d          cxk    o|d
                             d          k    nc |d                             d          ddgk    o |d                             d          ddgk    t          |d                             dg                     dk    o,t          |d	                             dg                     dk    t          |d                             dg                     dk    ot          |d                             dg                     dk    ot          |d                             dg                     dk    ot          |d                             d                    owt          |d                             d                    oOt          |d                             d                    o't          |d                             d                    |d                             di                               d           d!k    t          |d                             d"                    o,t          d# |d         d         d d$         D                       t          |d                             d%g                     d&k    t          |d	                             d'g                     d(k    d)
}t          |	                                          }|rd*nd+||d, | 	                                D             d- |                                D             d. |                                D             t          j                            t          j        j                                                  d/}t#          ||           t%          t          j        |d0         ||d1         t)          |          d2d34                     |rd5nd6S )7Nc                2    i | ]}|t          |          S  )r$   ).0r'   r&   s     r   
<dictcomp>zmain.<locals>.<dictcomp>   s#    *H*H*Ha1WQq\\*H*H*Hr   authority_receiptc                f    i | ].\  }}|t          j        |                    d                     /S )zutf-8)encoding)r6   loads	read_text)rN   r'   r   s      r   rO   zmain.<locals>.<dictcomp>   s6    NNN14:akk7k3344NNNr   r   canonical_titleTc              3  H   K   | ]}|                     d           dk    V  dS )statuslockedNr    )rN   r(   s     r   	<genexpr>zmain.<locals>.<genexpr>    s1      EE!%%//8+EEEEEEr   story_titler
   r   initial_target_wordsi)  i0  target_minutes(   <   r      entitiesr	   beats   r   
open_loops   foreshadow_reveal_payofftimeline	knowledgerelationshippropscold_open_contractactual_timeline_beat   consent_contractc              3     K   | ]C}|                     d           o)|                     d          o|                     d          V  DdS )
competenceboundarychange_proofNrY   )rN   cs     r   rZ   zmain.<locals>.<genexpr>&   s        MB  MB  VWQUUS_M`M`  NQefejejkuevev  NQ{|  |A  |A  BP  |Q  |Q  MB  MB  MB  MB  MB  MBr   r,   originality_differentiators   fictional_places   )

json_parse
all_lockedtitle_consistencytarget_rangecast_completearchitecture_completecold_open_catchupagency_consentoriginality_designfictional_world	completedfailedc                x    i | ]7}t          |                    t                              t          |          8S rM   )strr%   r#   r   )rN   r   s     r   rO   zmain.<locals>.<dictcomp>*   s      G@  G@  G@  lm  HK  LM  LY  LY  Z^  L_  L_  H`  H`  ad  ef  ag  ag  G@  G@  G@r   c                     i | ]\  }}|||d S ))verifiedvaluerM   rN   r'   r(   s      r   rO   zmain.<locals>.<dictcomp>*   sd      J@  J@  J@  jm  jk  lm  KL  YZ  cd  Me  Me  J@  J@  J@r   c                    g | ]	\  }}||
S rM   rM   r   s      r   
<listcomp>zmain.<locals>.<listcomp>*   sV      Lr  Lr  Lr  SV  ST  UV  pq  Lr  MN  Lr  Lr  Lrr   )rW   r   rU   hasheschecksblockers
checked_atrW   r   )rW   r   r   receiptFr-   r   r   )r6   rS   MANIFESTrT   KEYSr$   itemsr    allvalueslenbooldatetimenowtimezoneutc	isoformatrJ   printr7   r   )pathsoutr   titler   r   rr&   s          @r   mainr      s    :h  ""##*H*H*H*H4*H*H*HEWUVWjMkMkNNNNNm  !233EEV]]__EEEEEAEE-00  U  U  U  U&9L2M2Q2QRc2d2d  U  U  U  Uflm|f}  gB  gB  CT  gU  gU  U  U  U  U}%))*@AAE%=P  JU[\iUjUnUno  VA  VA  DF  GI  CJ  VJVL)--l2>>??B}s6ReKfKjKjkuvxKyKyGzGz|}G}VI.2272>>??C  dFS[L\L`L`amnpLqLqHrHrtuHu  dz}  E  FN  O  S  S  Tn  oq  r  r  {s  {s  uv  {v  d  {  @F  GO  @P  @T  @T  U_  @`  @`  {a  {a  d  fj  kq  rz  k{  k  k  @K  kL  kL  fM  fM  d  RV  W]  ^f  Wg  Wk  Wk  lz  W{  W{  R|  R|  d  AE  FL  MU  FV  FZ  FZ  [b  Fc  Fc  Ad  AdI&**+?CCGGH^__accvl+//0BCCDD  B  MB  MB  [a  bn  [o  p|  [}  ~@  @  ~@  [A  MB  MB  MB  JB  JB&/334QRTUUVVXYYv12667I"MMNNPQQ	 	 fmmoo

(+P;;\dw|  G@  G@  qv  q}  q}  q  q  G@  G@  G@  J@  J@  qw  q}  q}  q  q  J@  J@  J@  Lr  Lr  Z`  Zf  Zf  Zh  Zh  Lr  Lr  Lr  @H  @Q  @U  @U  V^  Vg  Vk  @l  @l  @v  @v  @x  @x  "y  "yqAuTZ!H+UVWaUbmpqtmumu v v  EJ  K  K  K  L  L  L  Ya  Th  TU  TU  gh  Mhr   __main__r   Fz: )rW   r   errorr   )file)
__future__r   r   r   r6   r<   sysr9   pathlibr   __file__r$   r*   r#   r   r   r   rJ   r   __name__exit	Exceptioner   r7   typestderrrM   r   r   <module>r      s   " " " " " " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1      	T(^^%a(	,	,XXX  
2 2 2
$ $ $h h h$ 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