
    Zj                        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                              d          Z	g Z
ej        dd         D ]qZ ee          Z ej        d ee	           ee          gdd          Zej                                        r e j        ej                  ndd	gd
Ze                    d          dk    r#e
                     ee          ded            e j        e                                          Zd ed         D             Zd  edd          D             Zd  edd          D             Zed         D ]CZed         D ]8Zed         D ]Zeexx         dz  cc<   ed         D ]Zeexx         dz  cc<   9D e d eD                       Z! e d eD                       dz  Z" e d eD                       Z#e!dz   e$e"d          z   e#dz  z
   e d e%                                D                       dz  z    e d  e%                                D                       dz  z   Z&e
                     ee          d ej'        e(                                          )                                e! e*e"d          e#ee e*e&d          ed!
           se
+                    d" d#            e, e j-        de
d$d%dd&                     dS )'    N)Pathz*gacmai_20260717_184527_validate_outline.py   python3T)capture_outputtextfailedzno validator output)statuserrorsr	   passedF)patheligible
validationc                 4    g | ]}|d          D ]
}|d         S )
paragraphsbeat ).0partxs      e/data/video-pipeline/GacMaiAudio/project/gacmai_20260717_184527/artifacts/scripts/compare_outlines.py
<listcomp>r   	   s/    #a#a#a$dS_N`#a#aAfI#a#a#a#a    partsc                     i | ]	}d |dd
S )E02dr   r   r   is     r   
<dictcomp>r   	   sA      eI  eI  eIwxepijepepepqr  eI  eI  eIr   
   c                     i | ]	}d |dd
S )Ar   r   r   r   s     r   r   r   	   s]      Lo  Lo  Lo  _`  MX  QR  MX  MX  MX  YZ  Lo  Lo  Lor      r   evidence_idsauthority_idsc              #   d   K   | ]*t          fd t          d         D                       V  +dS )c              3       K   | ]}|v V  	d S Nr   )r   nbs     r   	<genexpr>z<genexpr>.<genexpr>   s'      ,,Q!q&,,,,,,r   castN)anydr   r*   s    @r   r+   r+      sD      <<c,,,,!F),,,,,<<<<<<r   c              #   4   K   | ]}t          |          V  d S r(   )lenr/   s     r   r+   r+      s)      D[D[PQSVVD[D[D[D[D[D[r      c              #   Z   K   | ]&}t          t          j        d |                    V  'dS )u;   ^(Cô|Họ|Mọi người|Một cuộc|Một tài liệu)\bN)boolresearchr/   s     r   r+   r+      sx        lN  lN  CDlpqsqz  |z  {|  r}  r}  m~  m~  lN  lN  lN  lN  lN  lNr      i,     c              #   "   K   | ]
}|d k    V  dS r   Nr   r   vs     r   r+   r+      sZ        zS  zS  CD  {|  }~  {~  zS  zS  zS  zS  zS  zSr   c              #   "   K   | ]
}|d k    V  dS r:   r   r;   s     r   r+   r+      sZ        Zs  Zs  cd  [\  ]^  [^  Zs  Zs  Zs  Zs  Zs  Zsr   )
r   r   sha256explicit_actor_beatsaverage_beat_charsgeneric_openingsevidence_distributionauthority_distributionmechanical_scorer   c                 Z    |                      dd          |                      dd          fS )Nr   FrD   )get)r   s    r   <lambda>rH      s(    j//6H0L0LM r   )keyreversezEmechanical ranking only; independent full-read audit remains blocking)r	   rankingnote)ensure_asciiindent).jsonsys
subprocesshashlibr5   pathlibr   __file__	with_name	validatorrowsargvnameprunstrcpstdoutstriploadsresultrG   append	read_textr.   beatsrangeear   r   ksumexplicitavggenericminvaluesscorer>   
read_bytes	hexdigestroundsortprintdumpsr   r   r   <module>rv      s   % % % % % % % % % % % % % % % % % % % %      
$x..
"
"#O
P
P	HQRRL 	j 	jD4::33y>>##a&& AQU[_```b  BD  BK  BQ  BQ  BS  BS  iMhrhlhrsus|h}h}h}  ck  vK  uL  YM  YMag
JJx(""4;;ss1vv\b/c/c#d#d#dem4:akkmm#a#a!G*#a#a#aU  eI  eI  }B  }B  CD  EG  }H  }H  eI  eI  eIbc  Lo  Lo  di  di  jk  lm  dn  dn  Lo  Lo  Lo  JKwZ ' 'T ' 'an%%qadddAgddddo&&qqtttQwtttt&' #<<e<<<
<
<D[D[UZD[D[D[A[A[\_A_Shkhk  lN  lN  HM  lN  lN  lN  iN  iN`g  U]  ^_  U_  `c  `c  dg  hk  `l  `l  Ul  mt  uv  mv  Uv  wz  wz  zS  zS  HI  HP  HP  HR  HR  zS  zS  zS  wS  wS  TV  wV  UV  WZ  WZ  Zs  Zs  hi  hp  hp  hr  hr  Zs  Zs  Zs  Ws  Ws  tv  Wv  Uv  OTSSVVt^W^ALLNN5S5S5]5]5_5_w  V[  V[  \_  `a  Vb  Vb  v}  VW  qr  FK  FK  LQ  RS  FT  FT  bh  i  i  j  j  j  j 		MMVZ	 [ [ [\a\ablbfblw  KO  W^  n_  n_  mr  z{  c|  c|  c|  ]}  ]}  ]}  ]}  ]}r   