|G_Tc@sddlZddlZddlmZddlZddlZddlTddlZddlZddl Z ddl m Z ddl m Z ddl mZddl mZddl mZdd l mZdd l mZdd lmZdd l mZmZmZdd l mZdZdZedZdefdYZeZdZ defdYZ!dZ"dZ#ddl$Z$e$Z%[$defdYZ&dZ'idd6dd6dd 6Z(d!Z)d"Z*d#Z+e,d$krdd%l-m.Z.e.e e+ndS(&iN(tpython_version(t*(tMultiCallCreator(tidlever(t WindowList(t SearchDialog(t GrepDialog(t ReplaceDialog(tPyParse(tidleConf(t aboutDialogttextViewt configDialog(t macosxSupporticCstj\}}}}}d||f}|rB|d|f7}n|dkrb|d|f7}n'|dkr|d|d|f7}n|S(sYFormat sys.version_info to produce the Sphinx version string used to install the chm docss%s%ss%st candidatesrc%stfinali(tsyst version_info(tmajortminortmicrotleveltserialtrelease((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt_sphinx_versions  c CsSd}x|jdD]}|dk r5|jntj||\}}}|dtjkrgPntj||||}y |j}Wqtk rt d|j qXqW|dtjkrFt |}y |j }Wntk rqFXd}t jj|\}} | dkr'd} n|| }|dtjf}n|||fS(sCVersion of imp.find_module() that handles hierarchical module namest.isNo source for module s.pycs.pyN(tNonetsplittclosetimpt find_modulet PY_SOURCEt load_modulet__path__tAttributeErrort ImportErrort__name__t __import__t__file__tostpathtsplitext( tfullnameR(tfilettgttfilenametdescrtmoduletmtbasetext((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt _find_module%s2          t HelpDialogcBs;eZdZddZdZdZddZRS(cCsd|_d|_dS(N(Rtparenttdlg(tself((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt__init__Hs cCs9|jdkr|j|n|r5|j|ndS(s Display the help dialog. parent - parent widget for the help window near - a Toplevel widget (e.g. EditorWindow or PyShell) to use as a reference for placing the help window N(R6Rt show_dialogt nearwindow(R7R5tnear((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytdisplayLscCsr||_tjjtjjtjjtd}tj|d|dt |_ }|j d|j ddS(Nshelp.txttHelptmodals t+( R5R'R(tjointabspathtdirnameR&R t view_filetFalseR6tbindtdestroy(R7R5tfnR6((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR9Ys -"cCs\|j}|jd|jdf}|j|jd||j|jdS(Ni s=+%d+%d(R6t winfo_rootxt winfo_rootytwithdrawtgeometryt deiconifytlift(R7R;R6tgeom((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR:_s     cCsd|_d|_dS(N(RR6R5(R7tev((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRFjs N(R$t __module__R8RR<R9R:RF(((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR4Fs    cCstj|dS(N(t helpDialogR9(R5((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt _help_dialogost EditorWindowcBseZddlmZddlmZddlmZddlm Z m Z m Z ddl m Z ddlmZddlmZdZdddddZd Zd Zd Zd Zd ZddZdddddddgZejdkr dedZ<d?Z=d@Z>dAZ?dBZ@dCZAdDZBdEZCdFZDdGZEdHZFdIZGdJZHdKZIddLZJdMZKdNZLdOZMdPZNdQZOdRZPdSZQdTZRdUdVZSdWZTdUdXZUdYZVdZZWd[ZXd\ZYd]ZZd^Z[d_Z\d`Z]daZ^dbZ_ddcZ`ddddZadeZbddfZcddgZddhZediZfdjZgdkZheidlZjdmZkdnZldoZmdpZndqZodrZpdsZqdtZrduZsdvZtdwZudxZvdyZwdzZxd{Zyd|Zzd}Z{d~Z|RS(i(t Percolator(tColorDelegator(t UndoDelegator(t IOBindingtfilesystemencodingtencoding(tBindings(tToplevel(tMultiStatusBarc Cs tjdkrvtjjtjdd}tjj drddtj d }tjj drld}q d }tjj||dd}n}tjd d krtjjtjdd t }tjj |r |}q n*tjd kr tjjtjd }ntjj|}tjj |r_|t_tjd krsdtjt_qsqvdtj d t_ntj} ||_|p|j}||_y tjWntk rdt_nXt||_tj|d|j|_} |r|j|_|j|j_ni|_i|j_tjjtjd|_t | |_!} t"| dd|_#} tj$ddddd|_%idd6dd6dd6|j%d6tj$ddd ddd 6} t&d!krd"| d#|j/d5|j?|j/d6|j@|j/d7|jA|j/d8|jB|j/d9|jC|j/d:|jD|j/d;|jE|j/d<|jF|j/d=|jG|j/d>|jH|j/d?|jI|j/d@|jJ|j/dA|jK|j/dB|jL|j/dC|jM|j/dD|jN|j/dE|jO|j/dF|jPdG|j/dH|jPdI|j/dJ|jQ|j/dK|jR|j/dL|jS|r||j|<|rb||jT|>> tmenusrecent-files.lsttnametvbartmainRStwidthttypetintttextitpadxtnonetwraptheightg!@t wordprocessorttabstyletWM_DELETE_WINDOWs<>ss<3>s<>s<>s <>s<>s<>s<>s<>s<>s<>s<>cSsdS(Ntbreak((tevent((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytss<>s<>s<>s<>s<>s<>s <>s <>s<>s<>s<>s<>s<>s<>s<>s<>s<>s<>s<>sisis<>s<>s<>s<>s<>s<>s<>tcommandtsidetfilltyscrollcommandtnormals font-boldtbooltboldtfonts font-sizetexpandtIndents use-spacesii2ii@KLR+tlabels Recent Filest underlinetwindowstendi(i2ii@KL(RSthelp_urlRR'R(R@RtprefixtplatformtcountRtisdirRtisfiletnormpathR t CurrentThemetflisttroottps1R"tMenutmenubarRtListedToplevelttoptvarst tkinter_varst inversedictt instance_dictt GetUserCfgDirtrecent_files_pathtFramet text_framet ScrollbarRct GetOptionRet TkVersionRtTextRhtfocused_widgett createmenubartapply_bindingstprotocolRREt close_eventR tisAquaTktright_menu_eventtcuttcopytpastetcenter_insert_eventt help_dialogt python_docst about_dialogt config_dialogt open_modulet select_alltremove_selectiont find_eventtfind_again_eventtfind_in_files_eventtfind_selection_eventt replace_eventtgoto_line_eventtsmart_backspace_eventtnewline_and_indent_eventtsmart_indent_eventtindent_region_eventtdedent_region_eventtcomment_region_eventtuncomment_region_eventttabify_region_eventtuntabify_region_eventttoggle_tabs_eventtchange_indentwidth_eventtmove_at_edge_if_selectiont del_word_lefttdel_word_rightt home_callbacktdictt new_callbacktclose_all_callbacktopen_class_browsertopen_path_browsertset_status_bartyviewtpacktRIGHTtYtsettconfigtLEFTtBOTHtTOPt focus_settusetabsttabwidtht indentwidthtset_notabs_indentwidthRDtcontext_use_ps1tnum_context_linesRTtperRVtundot insertfiltertundo_block_starttundo_block_stoptset_saved_change_hooktsaved_change_hookRWtiotset_filename_change_hooktfilename_change_hooktrecent_files_menutmenudicttinsert_cascadetupdate_recent_files_listtcolortexiststloadfilet set_filenametResetColorizertset_indentation_paramstispythonsourcetload_extensionstgettindext add_separatort wmenu_endtregister_callbacktpostwindowsmenut tkMessageBoxtaskyesnottkSimpleDialogt askintegert showerrort_highlight_workaround(R7RR-tkeyRtdochometpyvertbasepathtchmfilet currentThemeRRRct text_optionsRht fontWeightt usespacesRRRRaR((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR8~s@                                         %            cstjjdsdS|jjddjddfdjdfdjdfddS( NR_s<>s s<>s csjd}|r|dkritjtjd}jd|jdjd|q|dkrjdddqndS(Ntseltoutthilitetsel_fixtins1.0R(t tag_rangesR t GetHighlightRt tag_configt tag_raisettag_addt tag_remove(tfocust sel_ranget HILITE_CONFIG(Rh(s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt highlight_fixls   cs dS(NR((RO(R(s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRryscs dS(NR((RO(R(s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRr{s(RRt startswithRht event_addRE(R7((RRhs0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRbs   cCsxt|ts| r|Sy|j|jSWnCtk rsy|j|jSWqttk ro|jdSXnXdS(s8convert filename to unicode in order to display it in Tks iso8859-1N(t isinstancetunicodetdecodeRXtUnicodeDecodeErrorRY(R7R-((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt_filename_to_unicode~s  cCs)|jj\}}|jj|dS(NRp(RtdefaultfilenameRtnew(R7RqRBtbasename((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCs||jd@dkr&|jdkr&dS|jjdr|jjdddr|jjdddrt|jjdjdd }nR|jjdd}x:tt |D]}||dkrPqqWt |}t|jjd jdd }||krd}nd t |d}|jd @dkr\|jj dddn|jjds|jj dd nY|jj|jjdd|jjd r|jj ddn|jj dd|jj|}|jjd}|jj|d|r)||}}n|jj ddd|jj d|||jj d ||jjd dS(NiitHometiomarks<=sinsert lineendsinsert linestartRit s tinsertsinsert linestart+tcRs1.0Rs sel.firstt my_anchortRp(Rs (tstatetkeysymRhRtcompareRgRRtxrangetlentstrRtmark_setR tsee(R7Rqtinsertpttlinetlineattdesttfirsttlast((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs>"( %  0cCs|j|j|_tjdkr@|jjdddtn|jjdddt|jjdddt|jjdtd t |j j d |j |j j d d d |j j|j dS( NR`t _padding1s RttcolumnsCol: ?R.sLn: ?Rus<>s s(R\Rt status_barRRt set_labelRRtBOTTOMtXRhREtset_line_and_columnRt after_idle(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs  cCsS|jjtjd\}}|jjdd||jjdd|dS(NRR4sCol: %sR.sLn: %s(RhRtINSERTRR5R6(R7RqR.R4((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR9s!R+t_Fileteditt_EdittformattF_ormattrunt_Runtoptionst_OptionsRt_Windowsthelpt_HelpR`t_WindowicCs|j}i|_}x_|jD]T\}}t|\}}t|d|||<}|jd|d|d|q Wtjrt|dd|d<}|jddd|n|j|jdj t |_ |j dS( NRbR}RaR~tapplet applicationtIDLERF( RRt menu_specstprepstrRt add_cascadeR t isCarbonTkt fill_menusRtENDtbase_helpmenu_lengthtreset_help_menu_entries(R7tmbarRRbR}R~Ra((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs     cCsk|jd}|jd}|dkr1d}n||jkrZ|j|jd|ntj|dS(NRRii(RRRRtdeleteRtadd_windows_to_menu(R7RaR((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs   c Cs%|jjdd|j|jf|js9|jn|j}||_tjd dk}|rz|jj ddnxr|j D]g}y|\}}}Wnt k rqnX|dkrqnt ||}|j|d|qW|j|j|j|r!|jj ddndS( NR s@%d,%diR_tcursortarrowR%tibeam(RhR+txtytrmenut make_rmenuRqRRRt rmenu_specst ValueErrorRtgetattrtentryconfigurettk_popuptx_rootty_root( R7RqR\tiswintitemR}t eventnamet verify_stateR%((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs(#      tCloses<>cCst|jdd}xg|jD]\}|d|d}}|dk rq|j|d}|jd|d|q|jqW||_dS(NttearoffiicSs|j|dS(N(tevent_generate(RhRg((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRssR}Rs(RRhR^Rt add_commandRR\(R7R\RfR}RgRs((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR]s cCs |jS(N(trmenu_check_copy(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytrmenu_check_cut#scCs=y|jjd}Wntk r*dSX|r5dSdSdS(Ns sel.firsttdisabledRw(RhRtTclError(R7tindx((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRm&s  cCs=y |jjjd|jdWntk r4dSXdSdS(Nstk::GetSelectiont CLIPBOARDRoRw(RhttktcallRp(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytrmenu_check_paste.s   cCstj|jddS(Ns About IDLE(R t AboutDialogR(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR6scCstj|jddS(NtSettings(R t ConfigDialogR(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR9scCs8|jr|j}n |j}tj|d|jdS(NR;(RRRQR<(R7RqR5((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR<s   cCsytjd dkreytj|jWqutk ra}tjdddt|d|j quXnt j |jdS(NiR_ttitlesDocument Start FailuretmessageR5Rp( RRR't startfileRt WindowsErrorRRR*Rht webbrowsertopen(R7Rqtwhy((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRCscCs|jjddS(Ns<>Rp(RhRk(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRNscCs*|jjdsdS|jjddS(NRs<>Rp(RhR Rk(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRRscCs$|jjd|jjddS(Ns <>R Rp(RhRkR,(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRYscCs=|jjddd|jjdd|jjddS(NRs1.0send-1cR Rp(RhR R+R,(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR^scCs*|jjddd|jjddS(NRs1.0RR (RhRR,(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRdscs:|jj|jjdfd}|S(sCursor move begins at start or end of selection When a left/right cursor key is pressed create and return to Tkinter a function which causes a cursor move from the associated edge of the selection. s sel.first+1cs sel.last-1ccsM|jd@dkrIyddWqItk rEqIXndS(Niis sel.firstR (R%Rp(Rq(t edge_indext edges_tabletself_text_indextself_text_mark_set(s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt move_at_edgess   (s sel.first+1cs sel.last-1c(RhRR+(R7RR((RRRRs0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRhs   cCs|jjddS(Ns Rp(RhRk(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR|scCs|jjddS(NsRp(RhRk(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCstj|jdS(NRp(RtfindRh(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCstj|jdS(NRp(Rt find_againRh(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCstj|jdS(NRp(Rtfind_selectionRh(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCs tj|j|j|jdS(NRp(RtgrepRhRR(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCstj|jdS(NRp(RtreplaceRh(R7Rq((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCsp|j}tjddd|}|dkr1dS|dkrK|jdS|jdd||jddS(NtGotosGo to line number:R5RpiR s%d.0(RhRRRtbellR+R,(R7RqRhtlineno((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs     c CsPy|jjdd}Wntk r2d}n X|j}tjddd|jd|}|ru|j}n|sdSy"t|\}}\}}}Wn9ttfk r}t j dt |d|jdSX|t j kr t j d d |d|jdS|r |jn|jr<|jj|n|jj|dS( Ns sel.firstssel.lastttModulesAEnter the name of a Python module to search on sys.path and open:R5t initialvalues Import errorsUnsupported types%s is not a source module(RhRRptstripRt askstringR3t NameErrorR#RRR*RRRRR~RR( R7RqRbtfR+tsuffixtmodeRftmsg((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs4    "   cCs|jj}|s<tjddd|j|jjdStjj |\}}tjj |\}}ddl m }|j |j ||gdS(Ns No filenames&This buffer has no associated filenametmasteri(t ClassBrowser(RR-RRRhRRR'R(RR)tidlelibRR(R7RqR-theadttailR1R2R((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs   cCs$ddlm}|j|jdS(Ni(t PathBrowser(RRR(R7RqR((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRscCsl|dk rh|dkrh|jjdd||jjddd|jjddd|jndS(NiR s%d.0Rs1.0Rs insert +1l(RRhR+RR tcenter(R7R((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytgotolines cCs| stjj|rtStjjtjj|\}}tjj|dkr]tSy&t|}|j}|j Wnt k rt SX|j do|j ddkS(Ns.pys.pyws#!tpythoni(s.pys.pyw(R'R(RtTrueR)RtnormcaseR~treadlineRtIOErrorRDRR(R7R-R1R2RR.((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs$   cCs)|jr%|jj|d|_ndS(N(Rtunregister_maybe_terminateR(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt close_hooks cCs ||_dS(N(R(R7R((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytset_close_hookscCsD|jr|jj|n|j|jj||jdS(N(Rtfilename_changed_editRRtupdate_windowlist_registryR(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRs   cCs}|jr dS|j|jjr4|j|_n|jry|jj|j|jj|j|jj|jndS(N( RRRR-RURt removefilterRR(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt _addcolorizers  cCs:|js dS|jj|jj|jd|_dS(N(Rt removecolorsRRR(R7((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt _rmcolorizers   c Cs|j|jtjddd}tj|d}tj|ddd}tj|d}|jjd |d d |d d |d |d d |d dS(sUpdate the colour themeRdtThemeRbRwRWtfgBgtfgRt foregroundt backgroundtinsertbackgroundtselectforegroundtselectbackgroundN(RRR RR RhR(R7tthemet normal_colorst cursor_colort select_colors((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR s      c Csnd}tjdddddr*d}n|jjdtjdddtjddd dd |fd S( s.Update the text widgets' font if it is changedRwRdRSs font-boldRfRxRyRzs font-sizeRgN(R RRhR(R7R((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt ResetFonts cCstj|j_}x-|jD]\}}|jj||q#Wx\|jD]N}tj|}|rSx0|jD]\}}|jj||q{WqSqSWdS(s/Remove the keybindings before they are changed.N( R tGetCurrentKeySetRZtdefault_keydefstitemsRht event_deletetget_standard_extension_namestGetExtensionBindings(R7tkeydefsRqtkeylistt extensionNametxkeydefs((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pytRemoveKeybindings)sc Cstj|j_}|jx9|jD]+}tj|}|r-|j|q-q-Wi}xd|jjD]V}i||d|D]3}|j|d}|j d|dd|qhWn||jd(sformatR@(srunRB(RCRD(swindowsRE(shelpRG(swindowsRH(Ris<>N(}R$RPtidlelib.PercolatorRTtidlelib.ColorDelegatorRUtidlelib.UndoDelegatorRVtidlelib.IOBindingRWRXRYRRZtTkinterR[tidlelib.MultiStatusBarR\RRR8RRRRRR9RLRRRRR\RR^R]RnRmRuRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSRRRRRRRRRRRRRRRRRRRRRRR!RRPR:R<R2RBRCRGRMRRRRRR`RRRRRRRRRzR|R{RXRRN(((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRSss    )                            !          $    *                  %      0 # k      cCstt|S(N(RgR (R((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRV9scCstd}}x]|D]U}|dkr:|d}|d}q|dkre|d}||d|}qPqW||fS(NiRis ((tsRRYRZtch((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRWAs       RcBs;eZdZdZejejd dZd ZRS( cCs6||_||_d|_|_d|_|_dS(Ni(RhRRtfinishedRt blkopenlinet indentedline(R7RhR((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR8Ys  cCsd|jr dS|jd}|_t|d}|jj|ddrMdS|jj||dS(NRis.0s>=Rs lineend+1c(RRR"RhR'R(R7RR ((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyR_s tclasstdeftfortifttrytwhilec Cs^|jr nN||kr0||kr0||_n*||krZ|jrZ||_d|_ndS(Ni(RRR( R7RfttokentstartRR.tINDENTtNAMEtOPENERS((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt tokeneaterhs   cCsmtj}|jt_z;ytj|j|jWntjtfk rNnXWd|t_X|j|j fS(N( t _tokenizettabsizeRttokenizeRRt TokenErrort SyntaxErrorRR(R7t save_tabsize((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRAts   (RRRRRR( R$RPR8RRRRRRA(((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRRs    cCs>|jd}|dkr4|| ||d}n||fS(NR(ii(R(RR((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRMs t[t bracketleftt]t bracketrightt/tslashcCs |j|}| s7tjr;|dddhkr;dS|d}tjdd|}tjdd |}tjd d|}tjd d |}tjd d|}tjdd|}tjdd|}tjdd|}tjdd|}|S(Ns<>s <>s<>Ris-[a-z]\bcSs|jjS(N(tgrouptupper(R0((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRrss\b\w+\bcSstj|j|jS(N(tkeynamesRR(R0((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyRrssKey-tCancels Ctrl-BreaksControl-sCtrl-R'R?s>>( RRtargvRR tsetupAppRSRhRERtmainloop(R5RR-R=((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyt_editor_windows  t__main__(RA(/RR'RRRRRRRR}tidlelib.MultiCallRRRRRRRRtidlelib.configHandlerR R R R R RERRR3tobjectR4RQRRRSRVRWRRRRMRRRRR$tidlelib.idle_test.htestRA(((s0/usr/local/lib/python2.7/idlelib/EditorWindow.pyts^         !(    2