Ë
    å•Æj³  ã                   óN  — d Z ddlZddlZddlZddlmZ ddlmZ  ee«      j                  «       j                  j                  Z
e
dz  dz  Ze
dz  dz  Ze
dz  d	z  d
z  Zh d£ZdddddddddddddœZ ej                   d«      Zd„ Zd„ Zh d£h d£eedœZd„ Zedk(  r e«        yy)a   
Incorpora lo cosechado por el WD14 a los wildcards de la progresion.

Solo las POSES: el harvest da 42 tags contra los 10 de los wildcards NSFW, y la
repeticion era el problema. Las ESCENAS no se tocan: sus lineas son
composiciones con luz ('bedroom, candlelight, romantic') mientras que las del
harvest son tags sueltos genericos ('indoors', 'outdoors') mas algun basura.

OJO: este merge se aplico con el harvest ANTERIOR (53% conservado, sin bucket
camera). El harvest actual es mas limpio, asi que las pools de la progresion
tienen 5 poses y 14 estados que el harvest ya no produce. Re-ejecuta con
--dry-run y revisa el diff antes de --apply.

    python Engine/merge_harvest_wildcards.py            # dry-run
    python Engine/merge_harvest_wildcards.py --apply
é    N)Údatetime)ÚPathÚArchivosÚprogression_wildcardsÚwildcards_harvestÚ_legacyÚDatosÚ#progression_wildcards_antes_harvest>   ÚlyingÚarms_upÚon_backÚon_sideÚsittingÚfellatioÚkneelingÚstandingÚ	all_foursÚ	bent_overÚ	squattingÚ
on_stomachÚ
prone_boneÚ
spread_assÚ
straddlingÚfacing_awayÚgirl_on_topÚspread_legsÚleaning_backÚstanding_sexÚleaning_forwardÚsex_from_behindÚcowgirl_positionÚgrabbing_own_assÚhands_on_own_assÚreverse_cowgirl_positionÚsquatting_cowgirl_positionúgrabbing_another's_assÚmiradaÚencuadrezescena, ya esta en scenes.txtÚdebilzropa, no posturazya hay una equivalente)Úlooking_at_viewerÚlooking_backÚlooking_at_anotherÚfrom_behindÚon_bedÚleg_liftÚbra_pullÚgrabbing_own_breastÚlegs_upÚfeet_upÚarm_upÚstanding_on_one_legaN  ^(penis|nipples|uncensored|sex|pussy|vaginal|nude|completely_nude|cum.*|clothed_sex|breasts_out|ass_grab|erection|breasts_squeezed_together|ass_focus|ejaculation|after_sex|covered_nipples|underboob|pussy_peek|clothed_male_nude_female|sideboob|internal_cumshot|after_vaginal|pussy_juice|veiny_penis|mixed-sex_bathing|same-sex_bathing)$c                 óâ   — | j                  d¬«      j                  «       D �cg c]A  }|j                  «       r/|j                  «       j                  d«      s|j                  «       ‘ŒC c}S c c}w )Nz	utf-8-sig)ÚencodingÚ#)Ú	read_textÚ
splitlinesÚstripÚ
startswith)ÚpÚls     ú@C:\Users\Usuario\Downloads\NEW\Engine\merge_harvest_wildcards.pyÚreadr@   :   s]   € Ø Ÿ{™{°K˜{Ó@×KÑKÔMó <ÑM˜!Ø�w‰wŒy §¡£×!5Ñ!5°cÔ!:ð �G‰G�IÐMñ <ð <ùò <s   £AA,c                 óP   — | j                  dj                  |«      dz   dd¬«       y )NÚ
zutf-8)r7   Únewline)Ú
write_textÚjoin)r=   Úliness     r?   ÚwriterG   ?   s"   € Ø‡L�L�—‘˜5Ó! DÑ(°7ÀD€LÕIó    >   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r#   >   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r#   r$   r%   r&   )zstep4_presenting.txtzstep5_sexual.txtzstep6_explicit.txtzstep7_climax.txtc                  óÀ  ‡— t        j                  «       } | j                  dd¬«       | j                  «       }t	        t
        dz  «      }|D �cg c]  }|t        v sŒ|‘Œ }}|D �cg c]  }|t        vsŒ|‘Œ }}t	        t
        dz  «      D �cg c]  }t        j                  |«      sŒ|‘Œ }}t        dt        |«      › dt        |«      › dt        |«      › d	�«       |D ](  Št        d
‰d›dt        j                  ‰d«      › �«       Œ* t        dt        |«      › �«       t        t        «      }i }|D ]ˆ  }	t        |	z  }
|
j!                  «       sŒt	        |
«      }t        |«      }t        |	   }g }|D ]>  Š‰|vrŒt#        ˆfd„|D «       «      rŒ|j%                  ‰«       |j%                  ‰«       Œ@ |||f||	<   ŒŠ t        d«       d}|j'                  «       D ]m  \  }	\  }}}|t        |«      z  }t        d|	d›dt        |«      d›dt        |«      d›dt        |«      › d�	«       |sŒQt        ddj)                  |«      › �«       Œo |}t        ddd›dt        |«      d›d�«       t        d|t        |«      z   › �«       |j*                  st        d«       y t,        j!                  «       rt/        dt,        › �«      ‚t1        j2                  t        t,        «       |j'                  «       D ]  \  }	\  }}}t5        t        |	z  |«       Œ t5        t        dz  |«       t        d t,        › �«       t        d!t        |«      › d"�«       y c c}w c c}w c c}w )#Nz--applyÚ
store_true)Úactionzpose.txtz	state.txtz	harvest: z
 poses -> z utilizables, z descartadasz   -Ú26Ú zno es posturaz
states NSFW nuevos: c              3   ó&   •K  — | ]  }‰|v –— Œ
 y ­w)N© )Ú.0ÚlineÚts     €r?   Ú	<genexpr>zmain.<locals>.<genexpr>v   s   øè ø€ Ð1©S T�q˜D”y©Sùs   ƒz
plan por fichero:r   z  Ú3z -> z  (+Ú)z      z, z
  zstep_state.txtz   0 -> z%  (fichero nuevo, para los pasos 5-7)z
total de lineas anadidas: z%
[DRY-RUN] nada escrito. Usa --apply.z,[!] El backup ya existe, no lo sobrescribo: z
[OK] backup  -> z[OK] pools NSFW ampliados: z  ficheros + step_state.txt nuevo)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr@   ÚHARVÚ	POSE_KEEPÚSTATE_KEEP_REÚmatchÚprintÚlenÚPOSE_DROP_REASONÚgetÚlistÚ
STEP_POSESÚPROGÚexistsÚanyÚappendÚitemsrE   ÚapplyÚBACKUPÚ
SystemExitÚshutilÚcopytreerG   )ÚapÚargsÚharvest_posesrR   ÚkeepÚdroppedÚstatesÚtargetsÚplanÚnamer=   ÚcurÚnewÚallowedÚaddedÚtotal_addedÚ	state_news      `             r?   Úmainr}   Y   s+  ø€ Ü	×	 Ñ	 Ó	"€BØ‡O�O�I l€OÔ3Ø�=‰=‹?€Däœ 
Ñ*Ó+€MÙ$Ó7‘}�!¨¬YªŠA�}€DÐ7Ù'Ó>™-�Q¨1´IÒ+=Šq˜-€GÐ>Üœd [Ñ0Ô1ÓLÑ1�A´]×5HÑ5HÈÕ5KŠaÐ1€FÐLä	ˆI”c˜-Ó(Ð)¨´C¸³I°;¸nÜ�‹\ˆN˜,ð(ô )ãˆÜ��Q�r�F˜!Ô,×0Ñ0°°OÓDÐEÐFÕGð ä	Ð"¤3 v£; -Ð
0Ô1ä”:Ó€GØ€DÛˆÜ�4‰KˆØ�x‰xŒzØÜ�1‹gˆÜ�3‹iˆÜ˜TÑ"ˆØˆÛˆAØ˜ÑØÜÓ1©SÓ1Õ1Ø—
‘
˜1”Ø—‘˜Q•ð ð ˜3 Ð&ˆˆTŠ
ð ô  
Ð
Ô Ø€KØ#'§:¡:¦<ÑˆÑˆs�C˜Ø”s˜5“zÑ!ˆÜ��4˜�)˜1œS ›X a˜L¨¬S°«X°a¨L¸¼SÀ»Z¸LÈÐJÔKÚÜ�F˜4Ÿ9™9 UÓ+Ð,Ð-Õ.ð	 $0ð €IÜ	ˆDÐ! "Ð% X¬c°)«n¸QÐ-?ð @ ð !ô "ä	Ð(¨´s¸9³~Ñ)EÐ(FÐ
GÔHà�:Š:ÜÐ6Ô7Øä‡}�}„ÜÐGÌÀxÐPÓQÐQÜ
‡O�O”Dœ&Ô!à#'§:¡:¦<ÑˆÑˆs�C˜ÜŒd�T‰k˜3Õð $0ä	Œ$Ð!Ñ
! 9Ô-ä	Ðœv˜hÐ
'Ô(Ü	Ð'¬¨D«	 {Ð2RÐ
SÕTùòm 8ùÚ>ùÚLs$   ÁMÁMÁ'MÁ5MÂMÂ*MÚ__main__)Ú__doc__rV   Úrerl   r   Úpathlibr   Ú__file__ÚresolveÚparentÚBASErd   rZ   rj   r[   r`   Úcompiler\   r@   rG   rc   r}   Ú__name__rO   rH   r?   Ú<module>rˆ      sõ   ðñó  Û 	Û Ý Ý áˆHƒ~×ÑÓ×&Ñ&×-Ñ-€ØˆjÑÐ2Ñ2€ØˆjÑÐ.Ñ.€Ø	�	Ñ	˜GÑ	#Ð&KÑ	K€ò
€	ð "°8Ø"°:Ø-¸7Ø"Ð;MØ 7°gØ3ñÐ ð �—
‘
ðDó€ò<ò
Jòòð $Ø!ñ!€
ò(<Uð~ ˆzÒÙ…Fð rH   