Ë V''PÕ)ãóÔ—ddlZddlmZGd„de«ZGd„d«ZGd„de«ZGd „d e«ZGd „d e«Zd „Ze dk(r ddl m Z e ddd¬«ddl m Z e e«yy)éN)Ú Delegatorcóx—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z dZ d „Z d Z d „Z dd „Zdd „Zd„Zd„Zdd„Zd„Zd„Zy)Ú UndoDelegatoriècóN—tj|«|j«y©N)rÚ__init__Ú reset_undo©Úselfs ú#/usr/lib/python3.12/idlelib/undo.pyrzUndoDelegator.__init__s€Ü×ј4Ô Ø �‰Õócó\—|j�3|jd«|jd«|jd«tj||«|�U|j d|j «|j d|j «|j d|j«yy)Nz<>z<>z<>)ÚdelegateÚunbindrÚ setdelegateÚbindÚ undo_eventÚ redo_eventÚ dump_event)r rs r rzUndoDelegator.setdelegatesƒ€Ø �=‰=Ð $Ø �K‰K˜ Ô #Ø �K‰K˜ Ô #Ø �K‰KÐ-Ô .Ü×јd HÔ-Ø Ð Ø �I‰I�j $§/¡/Ô 2Ø �I‰I�j $§/¡/Ô 2Ø �I‰IÐ+¨T¯_©_Õ =ð r cóP—ddlm}||jd|j«td|jd¬«td|jd¬«td|j d¬«td|j ««||j|jd«y ) Nr)Úpprintzpointer:Ú )Úendzsaved:z can_merge:z get_saved():Úbreak)rÚundolistÚpointerÚprintÚsavedÚ can_mergeÚ get_saved)r Úeventrs r rzUndoDelegator.dump_event(sw€Ý!Ùˆt�}‰}˜]˜dŸl™lÐ+Ô,Ü ˆj˜$Ÿ,™,¨CÕ0Ü ˆh˜Ÿ ™ ¨Õ,Ü ˆl˜DŸN™N°Õ4Ü ˆn˜dŸn™nÓ.Ô/Ùˆt�}‰}˜TŸ\™\˜]Ð+Ô,Ør có^—d|_d|_g|_d|_|j d«y©Néÿÿÿÿré)Ú was_savedrrÚ undoblockÚ set_savedr s r r zUndoDelegator.reset_undo2s*€ØˆŒØˆŒ ؈Œ ؈ŒØ �‰�qÕr cóh—|r|j|_nd|_d|_|j«y)Nr$F)rrrÚ check_saved)r Úflags r r(zUndoDelegator.set_saved9s*€Ù ØŸ™ˆD�JàˆDŒJ؈ŒØ ×ÑÕr có4—|j|jk(Sr)rrr s r r zUndoDelegator.get_savedAs€Ø�z‰z˜TŸ\™\Ñ)Ð)r Ncó—||_yr)Úsaved_change_hook)r Úhooks r Úset_saved_change_hookz#UndoDelegator.set_saved_change_hookFs €Ø!%ˆÕr r$cóŒ—|j«}||jk7r%||_|jr|j«yyyr)r r&r.)r Úis_saveds r r*zUndoDelegator.check_savedKs@€Ø—>‘>Ó#ˆØ �t—~‘~Ò %Ø%ˆDŒNØ×%Ò%Ø×&Ñ&Õ(ð&ð &r có<—|jt|||««yr)ÚaddcmdÚ InsertCommand)r ÚindexÚcharsÚtagss r ÚinsertzUndoDelegator.insertRs€Ø � ‰ ”M %¨°Ó5Õ6r có:—|jt||««yr)r4Ú DeleteCommand©r Úindex1Úindex2s r ÚdeletezUndoDelegator.deleteUs€Ø � ‰ ”M &¨&Ó1Õ2r cót—|jdk(rt«|_|jj«y©Nr)r'ÚCommandSequenceÚ bump_depthr s r Úundo_block_startzUndoDelegator.undo_block_startcs(€Ø �>‰>˜QÒ Ü,Ó.ˆDŒNØ �‰×!Ñ!Õ#r cóè—|jjd«dk(rT|j}d|_t|«dkDr2t|«dk(r|jd«}|j |d«yyyr#)r'rCÚlenÚgetcmdr4©r Úcmds r Úundo_block_stopzUndoDelegator.undo_block_stophsf€Ø �>‰>× $Ñ $ RÓ (¨AÒ -Ø—.‘.ˆC؈DŒNÜ�3‹x˜!Š|Ü�s“8˜q’=àŸ*™* Q›-�Cð— ‘ ˜C Õ#ð ð .r có¼—|r|j|j«|jdk7r|jj|«y|jr=|j dkDr.|j |j dz }|j|«ry|g|j |j d|j|j kDrd|_|j dz|_t|j «|jkDrD|j d=|j dz |_|jdk\r|jdz |_d|_|j«y)Nrr%r$T) Údorr'ÚappendrrrÚmergerrFÚmax_undor*)r rIÚexecuteÚlastcmds r r4zUndoDelegator.addcmdts€Ù Ø �F‰F�4—=‘=Ô !Ø �>‰>˜QÒ Ø �N‰N× !Ñ ! #Ô &Ø Ø �>Š>˜dŸl™l¨QÒ.Ø—m‘m D§L¡L°¡NÑ3ˆGØ�}‰}˜SÔ!ØØ(+ uˆ� ‰ �d—l‘l�mÐ$Ø �:‰:˜Ÿ ™ Ò $؈DŒJØ—|‘| aÑ'ˆŒ Ü ˆt�}‰}Ó  § ¡ Ò -à— ‘ ˜aÐ ØŸ<™<¨!Ñ+ˆDŒLØ�z‰z˜QŠØ!ŸZ™Z¨!™^�” ؈ŒØ ×ÑÕr có—|jdk(r|j«y|j|jdz }|j|j«|jdz |_d|_|j «y)Nrrr%F)rÚbellrÚundorrr*©r r!rIs r rzUndoDelegator.undo_event‹sg€Ø �<‰<˜1Ò Ø �I‰IŒKØØ�m‰m˜DŸL™L¨1Ñ,Ñ-ˆØ �‰�—‘ÔØ—|‘| aÑ'ˆŒ ؈ŒØ ×ÑÔØr có(—|jt|j«k\r|j«y|j|j}|j |j «|jdz|_d|_|j«y)Nrr%F)rrFrrSÚredorrr*rUs r rzUndoDelegator.redo_event–sk€Ø �<‰<œ3˜tŸ}™}Ó-Ò -Ø �I‰IŒKØØ�m‰m˜DŸL™LÑ)ˆØ �‰�—‘ÔØ—|‘| aÑ'ˆŒ ؈ŒØ ×ÑÔØr r)T)Ú__name__Ú __module__Ú __qualname__rOrrrr r(r r.r0r&r*r9r?rDrJr4rr©r r rrsa„à€Hòò >òòòò*ðÐò&ð€Iò)ó7ó3ò$ò $óò. ó r rcóB—eZdZdZd d„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z y) ÚCommandNcó^—i|_i|_||_||_||_|r||_yyr)Ú marks_beforeÚ marks_afterr=r>r7r8)r r=r>r7r8s r rzCommand.__init__§s6€ØˆÔØˆÔØˆŒ ؈Œ ؈Œ ٠؈D�Ið r cóÈ—|jj}|j|j|j|j f}|j €|dd}|t |«zS)Nr$)Ú __class__rXr=r>r7r8Úrepr)r ÚsÚts r Ú__repr__zCommand.__repr__°sR€Ø �N‰N× #Ñ #ˆØ �[‰[˜$Ÿ+™+ t§z¡z°4·9±9Ð =ˆØ �9‰9Ð Ø�#�2�ˆAØ”4˜“7‰{Ðr có—yrr[©r Útexts r rLz Command.do·ó€Ø r có—yrr[rhs r rWz Command.redoºrjr có—yrr[rhs r rTz Command.undo½rjr có—yrAr[rHs r rNz Command.mergeÀs€Ør cót—i}|j«D]"}|dk7sŒ |dk7sŒ|j|«||<Œ$|S)Nr9Úcurrent)Ú mark_namesr6)r riÚmarksÚnames r Ú save_markszCommand.save_marksÃs@€ØˆØ—O‘OÖ%ˆDØ�xÓ D¨IÓ$5Ø"Ÿj™j¨Ó.��d’ ð&ðˆ r cóX—|j«D]\}}|j||«Œyr)ÚitemsÚmark_set)r rirqrrr6s r Ú set_markszCommand.set_marksÊs$€Ø Ÿ;™;ž=‰KˆD�%Ø �M‰M˜$ Õ &ñ)r r) rXrYrZr8rrfrLrWrTrNrsrwr[r r r]r]¢s1„ð €Dóòò ò ò òòó'r r]cój—eZdZd d„Zd„Zd„Zd„Zd„ZejejzdzZ d„Z y) r5Ncó6—tj||d||«yr©r]r)r r=r7r8s r rzInsertCommand.__init__Òs€Ü×ј˜v t¨U°DÕ9r cóÔ—|j|«|_|j|j«|_|j |jdd«r|jd«|_|j |j|j |j«|jd|jt|j «fz«|_ |j|«|_ y)NÚ>úend-1cz%s+%dc) rsr_r6r=Úcomparer9r7r8rFr>r`rhs r rLzInsertCommand.doÕsž€Ø ŸO™O¨DÓ1ˆÔØ—j‘j §¡Ó-ˆŒ Ø �<‰<˜Ÿ ™  S¨(Ô 3àŸ*™* XÓ.ˆDŒKØ � ‰ �D—K‘K §¡¨T¯Y©YÔ7Ø—j‘j ¨T¯[©[¼#¸d¿j¹j»/Ð,JÑ!JÓKˆŒ ØŸ?™?¨4Ó0ˆÕr cóø—|jd|j«|j|j|j|j«|j ||j «|jd«y©Nr9)rvr=r9r7r8rwr`Úseerhs r rWzInsertCommand.redoàsP€Ø � ‰ �h § ¡ Ô,Ø � ‰ �D—K‘K §¡¨T¯Y©YÔ7Ø �‰�t˜T×-Ñ-Ô.Ø �‰�Õr cóâ—|jd|j«|j|j|j«|j ||j «|j d«yr€)rvr=r?r>rwr_r�rhs r rTzInsertCommand.undoçsJ€Ø � ‰ �h § ¡ Ô,Ø � ‰ �D—K‘K §¡Ô-Ø �‰�t˜T×.Ñ.Ô/Ø �‰�Õr có¼—|j|jury|j|jk7ry|j|jk7ryt |j «dk7ry|j r;|j |j d«|j |j «k7ry|j|_|j |j z|_y)NFr%r$T)rbr>r=r8rFr7ÚclassifyrHs r rNzInsertCommand.mergeîs €Ø �>‰> §¡Ñ .ØØ �;‰;˜#Ÿ*™*Ò $ØØ �9‰9˜Ÿ™Ò ØÜ ˆs�y‰y‹>˜QÒ ØØ �:Š:Ø �=‰=˜Ÿ™ B™Ó (¨D¯M©M¸#¿)¹)Ó,DÒ DØØ—j‘jˆŒ Ø—Z‘Z #§)¡)Ñ+ˆŒ Ør Ú_có.—||jvry|dk(ryy)NÚ alphanumericÚ ÚnewlineÚ punctuation)r‡)r Úcs r r„zInsertCommand.classifys €Ø �×!Ñ!Ñ !Ø!Ø �Š9ØØr r) rXrYrZrrLrWrTrNÚstringÚ ascii_lettersÚdigitsr‡r„r[r r r5r5Ïs;„ó:ò1òòòð ×'Ñ'¨&¯-©-Ñ7¸#Ñ=€Lór r5có&—eZdZdd„Zd„Zd„Zd„Zy)r;Ncó6—tj|||dd«yrrzr<s r rzDeleteCommand.__init__ s€Ü×ј˜v v¨t°TÕ:r cóD—|j|«|_|j|j«|_|jr!|j|j«|_n#|j|jdz«|_|j |jdd«r|jd«|_|j |j|j«|_|j|j|j«|j|«|_ y)Nz +1cr|r}) rsr_r6r=r>r~Úgetr7r?r`rhs r rLzDeleteCommand.dosÀ€Ø ŸO™O¨DÓ1ˆÔØ—j‘j §¡Ó-ˆŒ Ø �;Š;ØŸ*™* T§[¡[Ó1ˆD�KàŸ*™* T§[¡[°6Ñ%9Ó:ˆDŒKØ �<‰<˜Ÿ ™  S¨(Ô 3àŸ*™* XÓ.ˆDŒKØ—X‘X˜dŸk™k¨4¯;©;Ó7ˆŒ Ø � ‰ �D—K‘K §¡Ô-ØŸ?™?¨4Ó0ˆÕr cóâ—|jd|j«|j|j|j«|j ||j «|j d«yr€)rvr=r?r>rwr`r�rhs r rWzDeleteCommand.redosJ€Ø � ‰ �h § ¡ Ô,Ø � ‰ �D—K‘K §¡Ô-Ø �‰�t˜T×-Ñ-Ô.Ø �‰�Õr cóâ—|jd|j«|j|j|j«|j ||j «|j d«yr€)rvr=r9r7rwr_r�rhs r rTzDeleteCommand.undo$sJ€Ø � ‰ �h § ¡ Ô,Ø � ‰ �D—K‘K §¡Ô,Ø �‰�t˜T×.Ñ.Ô/Ø �‰�Õr r)rXrYrZrrLrWrTr[r r r;r;s„ó;ò 1òór r;có>—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d d„Z y ) rBcó —g|_d|_yrA)ÚcmdsÚdepthr s r rzCommandSequence.__init__0s€ØˆŒ ؈� r có°—|jj}g}|jD]}|jd|›�«Œ|dzdj |«zdzS)Nz z( z, z ))rbrXr—rMÚjoin)r rdÚstrsrIs r rfzCommandSequence.__repr__4sS€Ø �N‰N× #Ñ #ˆØˆØ—9”9ˆCØ �K‰K˜$˜s˜g˜Õ 'ðà�5‰y˜5Ÿ:™: dÓ+Ñ+¨eÑ3Ð3r có,—t|j«Sr)rFr—r s r Ú__len__zCommandSequence.__len__;s€Ü�4—9‘9‹~Ðr có:—|jj|«yr)r—rMrHs r rMzCommandSequence.append>s€Ø � ‰ ×јÕr có —|j|Sr)r—)r Úis r rGzCommandSequence.getcmdAs€Ø�y‰y˜‰|Ðr cóH—|jD]}|j|«Œyr)r—rW)r rirIs r rWzCommandSequence.redoDs€Ø—9”9ˆCØ �H‰H�T�Nñr cór—|jdd}|j«|D]}|j|«Œyr)r—ÚreverserT)r rir—rIs r rTzCommandSequence.undoHs-€Ø�y‰y™ˆ|ˆØ � ‰ ŒÛˆCØ �H‰H�T�Nñr cóB—|j|z|_|jSr)r˜)r Úincrs r rCzCommandSequence.bump_depthNs€Ø—Z‘Z $Ñ&ˆŒ Ø�z‰zÐr N)r%) rXrYrZrrfr�rMrGrWrTrCr[r r rBrB,s*„òò4òòòòòô r rBcóJ‡ —ddlm}m}m}ddlm}||«}|j d«tt|j«jd«dd«\}}|jd||dzfz«||d ¬ «}|j«|j«||«} t«Š | j‰ «||d ˆ fd „¬ «} | jd¬«||dˆ fd„¬ «} | jd¬«||dˆ fd„¬ «} | jd¬«y)Nr)ÚToplevelÚTextÚButton)Ú PercolatorzTest UndoDelegatorÚ+r%z+%d+%dé¯é )ÚheightÚUndocó&•—‰jd«Sr)r©Úds€r Úz!_undo_delegator..bóø€°1·<±<ÀÔ3Er )riÚcommandÚleft)ÚsideÚRedocó&•—‰jd«Sr)rr±s€r r³z!_undo_delegator..dr´r ÚDumpcó&•—‰jd«Sr)rr±s€r r³z!_undo_delegator..fr´r )Útkinterr§r¨r©Úidlelib.percolatorrªÚtitleÚmapÚintÚgeometryÚsplitÚpackÚ focus_setrÚ insertfilter)Úparentr§r¨r©rªÚtopÚxÚyriÚprTrWÚdumpr²s @r Ú_undo_delegatorrÌSsøø€ß.Ñ.Ý-Ù �6Ó €C؇I�IÐ"Ô#Ü Œs�F—O‘OÓ%×+Ñ+¨CÓ0°°Ð4Ó 5�D€A€q؇L�L�˜Q  C¡˜LÑ(Ô)á �˜BÔ €D؇I�I„K؇N�NÔÙ�4Ó€AÜ‹€A؇N�N�1Ôá �#˜FÓ,EÔ F€D؇I�I�6€IÔÙ �#˜FÓ,EÔ F€D؇I�I�6€IÔÙ �#˜FÓ,EÔ F€D؇I�I�6€IÕr Ú__main__)Úmainzidlelib.idle_test.test_undoéF)Ú verbosityÚexit)Úrun)rŒÚidlelib.delegatorrrr]r5r;rBrÌrXÚunittestrÎÚidlelib.idle_test.htestrÒr[r r ÚrÖs{ðÛ å'ô$J�IôJ÷Z*'ñ*'ôZ6�Gô6ôr �Gô ôH$�gô$òNð. ˆzÒÝÙÐ &°!¸%Õ@å+ÙˆÕð r