+
    i                   <j   R t ^ RIHt ^ RIHt ]'       g   R]9   d   ^RIH	t	 M^ RI	t	 ^ RI
tR tR tR tR	 t ! R
 R]4      t^ RIt]	P(                  t^ RIHtHtHt ^ RItR R ltR R lt ! R R]4      t]	P<                  ! ]4        ! R R]4      t]	P@                  ! ]4       R R lt!R R lt"R R lt#R R lt$R R lt%R t&R  t'R! R" lt(R# R$ lt)R% t*ERR& lt+R' R( lt,R) R* lt-R+ t.R, t/R- t0R. R/ lt1R0 t2ERR1 R2 llt3R3 t4R4 t5R5 R6 lt6R7 R8 lt7R9 t8R: t9 ! R; R<]4      t:]	Pv                  ! ]:4        ! R= R>]4      t<]	Pz                  ! ]<4       R? R@ lt>RA RB lt?ERRC lt@ ! RD RE]4      tA]	P                  ! ]A4       RF RG ltCRH RI ltDRJ tERK RL ltFERRM RN lltGRO RP ltH]	P                  tIRQ RR ltJRS RT ltKRU RV ltL ! RW RX]4      tM]	P                  ! ]M4        ! RY RZ]4      tO]	P                  ! ]O4        ! R[ R\]4      tQ]	P                  ! ]Q4        ! R] R^]4      tS]	P                  ! ]S4        ! R_ R`]4      tU]	P                  ! ]U4       ]	P                  tW ]	P                  tX]	P                  tY]	P                  tZ]	P                  t[]	P                  t\]	P                  t]]	P                  t^]	P                  t_]	P                  t`]	P                  ta]	P                  tb]	P                  tc ]	P                  td ]	P                  te ]	P                  tf ]	P                  tg ]	P                  th ]	P                  ti ]	P                  tj ]	P                  tk ]	P                  tl ]	P                  tm ]	P                  tn ]	P                  to ]	P                  tp ]	P                  tq]	P                  tr ]	P                  ts ]	P                  tt ]	P                  tu ]	P                  tv ]	P                  tw ]	P                  tx ]	P                  ty ]	P                  tz ]	P                  t{ ]	P                  t| ]	P                  t} ]	P                  t~ ]	P                  t]	EP                   t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP
                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                   t ]	EP"                  t ]	EP$                  t ]	EP&                  t]	EP(                  t]	EP*                  t]	EP,                  t]	EP.                  t ]	EP0                  t ]	EP2                  t ]	EP4                  t ]	EP6                  t ]	EP8                  t ]	EP:                  t ]	EP<                  t ]	EP>                  t ]	EP@                  t ]	EPB                  t ]	EPD                  t]	EPF                  t ]	EPH                  t ]	EPJ                  t ]	EPL                  t ]	EPN                  t ]	EPP                  t ]	EPR                  t ]	EPT                  t ]	EPV                  t ]	EPX                  t ]	EPZ                  t ]	EP\                  t ]	EP^                  t ]	EP`                  t ]	EPb                  t ]	EPd                  t ]	EPf                  t ]	EPh                  t ]	EPj                  t]	EPl                  t]	EPn                  t ]	EPp                  t ]	EPr                  t ]	EPt                  t ]	EPv                  t ]	EPx                  t ]	EPz                  t ]	EP|                  t ]	EP~                  t ]	EP                  t]	EP                  t]	EP                  t ]	EP                  t ]	EP                  t Ra Rb ltERRc Rd llt ! Re Rf]4      t]	EP                  ! ]4       ]	EP                  t]EP                  t]	EP                  tRg Rh ltRi Rj lt ! Rk Rl]4      t]	EP                  ! ]4        ! Rm Rn]4      t]	EP                  ! ]4        ! Ro Rp]4      t]	EP                  ! ]4       Rq Rr ltRs Rt ltRu Rv lt ! Rw Rx]4      t]	EP                  ! ]4       ]	EP                  t ]	EP                  t Ry Rz ltR{ R| ltR} R~ ltR R ltR R lt ! R R]4      t]	EP                  ! ]4        ! R R]U4      t]	EP                  ! ]4       ]	EP                  t]	EP                  t]	EP                  t]	EP                  t ! R R]4      t]	EP                  ! ]4        ! R R]4      t]	EP                  ! ]4        ! R R]4      t]	EP                  ! ]4        ! R R]4      t]	EP                  ! ]4       ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                   Et  ]	EP                  Et ]	EP                  Et]	EP                  Et ]	EP                  Et  ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et	]	EP                  ! E]	4        ! R RE]	4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                   ! E]4       ERR R llEtERR R llEtR R lEtR R lEt]	EP*                  Et ]	EP,                  Et ]	EP.                  Et ]	EP0                  Et ]	EP2                  Et ]	EP4                  Et ]	EP6                  Et ]	EP8                  Et ]	EP:                  Et ]	EP<                  Et ]	EP>                  Et ]	EP@                  Et  ]	EPB                  Et! ]	EPD                  Et" ]	EPF                  Et# ]	EPH                  Et$ ]	EPJ                  Et% ]	EPL                  Et& ]	EPN                  Et' ]	EPP                  Et( ]	EPR                  Et) ]	EPT                  Et* ]	EPV                  Et+ ]	EPX                  Et, ]	EPZ                  Et- ]	EP\                  Et. ]	EP^                  Et/ ]	EP`                  Et0 ]	EPb                  Et1 ]	EPd                  Et2 ]	EPf                  Et3 ]	EPh                  Et4 ]	EPj                  Et5 ]	EPl                  Et6 ]	EPn                  Et7 ]	EPp                  Et8 ]	EPr                  Et9 ]	EPt                  Et: ]	EPv                  Et; ]	EPx                  Et< ]	EPz                  Et= ]	EP|                  Et> ]	EP~                  Et? ]	EP                  Et@ ]	EP                  EtA ]	EP                  EtB ]	EP                  EtC ]	EP                  EtD ]	EP                  EtE ]	EP                  EtF ]	EP                  EtG ]	EP                  EtH ]	EP                  EtI ]	EP                  EtJ ]	EP                  EtK ]	EP                  EtL ]	EP                  EtM ]	EP                  EtN ]	EP                  EtO R R lEtP]	EP                  EtQ ]	EP                  EtR ]	EP                  EtS ]	EP                  EtT ]	EP                  EtU ]	EP                  EtV ]	EP                  EtW ]	EP                  EtX ]	EP                  EtY ]	EP                  EtZ ]	EP                  Et[ ]	EP                  Et\ ]	EP                  Et] ]	EP                  Et^ ]	EP                  Et_ ]	EP                  Et` ]	EP                  Eta ]	EP                  Etb ]	EP                  Etc ]	EP                  Etd ]	EP                  Ete ]	EP                  Etf ]	EP                  Etg ]	EP                  Eth ]	EP                  Eti ]	EP                  Etj ]	EP                  Etk ]	EP                  Etl ]	EP                  Etm ]	EP                  Etn ]	EP                  Eto ]	EP                  Etp ]	EP                  Etq ]	EP                  Etr ]	EP                  Ets ]	EP                  Ett ]	EP                  Etu ]	EP                  Etv R R lEtw]	EP                  Etx ]	EP                  Ety ]	EP                  Etz ]	EP                  Et{ ]	EP                  Et| ]	EP                  Et} ]	EP                  Et~]	EP                  Et ]	EP                   Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP
                  Et]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et]	EP                   Et ]	EP"                  Et]	EP$                  Et]	EP&                  Et]	EP(                  Et]	EP*                  Et]	EP,                  Et]	EP.                  Et ]	EP0                  Et ]	EP2                  Et ]	EP4                  Et]	EP6                  Et]	EP8                  Et]	EP:                  Et ]	EP<                  Et ]	EP>                  Et ]	EP@                  Et ]	EPB                  Et ]	EPD                  Et ]	EPF                  Et ]	EPH                  Et ]	EPJ                  Et ]	EPL                  Et]	EPN                  Et ]	EPP                  Et ]	EPR                  Et ]	EPT                  Et ]	EPV                  Et ]	EPX                  Et ]	EPZ                  Et  ! R R]4      Et]	EP^                  ! E]4        ! R R]4      Et]	EPb                  ! E]4       ]	EPd                  Et]	EPf                  Et ]	EPh                  Et ]	EPj                  Et ]	EPl                  Et ]	EPn                  Et ]	EPp                  Et ]	EPr                  Et]	EPt                  Et]	EPv                  Et]	EPx                  Et ! R R]4      Et]	EP|                  ! E]4        ! R R]4      Et]	EP                  ! E]4       ]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et  ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                  ! E]4       ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                   Et  ]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP
                  Et]	EP                  Et]	EP                  Et ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et
]	EP                  ! E]
4        ! R R]4      Et]	EP                  ! E]4        ! R R]4      Et]	EP                  ! E]4       ]	EP                   Et ]	EP"                  Et ]	EP$                  Et ]	EP&                  Et  ! R R]4      Et]	EP*                  ! E]4       ]	EP,                  Et ]	EP.                  Et ]	EP0                  Et]	EP2                  Et ]	EP4                  Et ]	EP6                  Et  ! R R]4      Et]	EP:                  ! E]4        ! R R]4      Et]	EP>                  ! E]4       ]	EP@                  Et  ]	EPB                  Et! ]	EPD                  Et" ]	EPF                  Et# ]	EPH                  Et$ ]	EPJ                  Et% ]	EPL                  Et&  ! R R]4      Et']	EPP                  ! E]'4       ]	EPR                  Et) ]	EPT                  Et* ]	EPV                  Et+ ]	EPX                  Et, ]	EPZ                  Et- ]	EP\                  Et. ]	EP^                  Et/ ]	EP`                  Et0 ]	EPb                  Et1 ]	EPd                  Et2 ]	EPf                  Et3 ]	EPh                  Et4 ]	EPj                  Et5 ]	EPl                  Et6 ]	EPn                  Et7 ]	EPp                  Et8 ]	EPr                  Et9 ]	EPt                  Et: ]	EPv                  Et; R R lEt<R R lEt=R R lEt>R R lEt?R R lEt@R R lEtAR R lEtBR R lEtCR R lEtDR R lEtER R lEtFR R lEtGR R lEtHR R lEtIR R lEtJR R lEtKR R lEtLR R lEtMR R lEtNR R lEtOR R lEtPERR lEtQR R lEtRR EtS ! R R]4      EtT]	EP                  ! E]T4       R R lEtVERR R llEtWR R lEtXERR R llEtYR R lEtZERR ER  llEt[ER ER lEt\ER ER lEt]ER ER lEt^ER ER lEt_ERER	 ER
 llEt`ER ER lEtaER ER lEtbER ER lEtcER ER lEtdER ER lEteER ER lEtfERER ER llEtgER ER lEthER ER lEtiER ER lEtjER ER  lEtkER! ER" lEtlER# ER$ lEtmER% ER& lEtnER' EtoERER( ER) llEtpER* ER+ lEtqER, ER- lEtrER. ER/ lEtsER0 ER1 lEttER2 ER3 lEtuER4 ER5 lEtvER6 ER7 lEtwER8 ER9 lEtxER: ER; lEtyER< ER= lEtzER> ER? lEt{ER@ ERA lEt|ERB ERC lEt}ERD ERE lEt~ERF ERG lEtERH ERI lEtERJ ERK lEtERL ERM lEtERN ERO lEtERP ERQ lEtERR ERS lEtERT ERU lEtERV ERW lEtERX ERY lEtERZ ER[ lEtER\ ER] lEtER^ ER_ lEtER` ERa lEtERb ERc lEtERERd ERe llEtERf ERg lEtERh ERi lEtERj ERk lEtERl EtERm ERn lEtERERo ERp llEtERq ERr lEtERs EtERt ERu lEtERv ERw lEtERERx ERy llEtERz ER{ lEtER| ER} lEtER~ ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtERER ER llEtERER ER llEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtERER ER llEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEt]q3ER ER llEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEt]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ER  ER lEtER ER lEt]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ER ER lEtER ER lEt ! ER ER	]4      Et]	EP                  ! E]4       ER
 ER lEtER ER lEtER ER lEtER ER lEt ! ER ER]4      Et]	EP                  ! E]4       ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  EtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEt ]	EP                  Et ER ER lEt]	EP                  Et]	EP                  Et]	EP
                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et	]	EP                  Et
]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                   Et]	EP"                  Et]	EP$                  Et]	EP&                  Et]	EP(                  Et]	EP*                  Et]	EP,                  Et]	EP.                  Et]	EP0                  Et]	EP2                  Et]	EP4                  Et]	EP6                  Et]	EP8                  Et]	EP:                  Et]	EP<                  Et]	EP>                  Et]	EP@                  Et ]	EPB                  Et!]	EPD                  Et"]	EPF                  Et#]	EPH                  Et$]	EPJ                  Et%]	EPL                  Et&]	EPN                  Et']	EPP                  Et(]	EPR                  Et)]	EPT                  Et*]	EPV                  Et+]	EPX                  Et,]	EPZ                  Et-]	EP\                  Et.]	EP^                  Et/]	EP`                  Et0]	EPb                  Et1]	EPd                  Et2]	EPf                  Et3]	EPh                  Et4]	EPj                  Et5]	EPl                  Et6]	EPn                  Et7]	EPp                  Et8]	EPr                  Et9]	EPt                  Et:]	EPv                  Et;]	EPx                  Et<]	EPz                  Et=]	EP|                  Et>]	EP~                  Et?]	EP                  Et@]	EP                  EtA]	EP                  EtB]	EP                  EtC]	EP                  EtD]	EP                  EtE]	EP                  EtF]	EP                  EtG]	EP                  EtH]	EP                  EtI]	EP                  EtJ]	EP                  EtK]	EP                  EtL]	EP                  EtM]	EP                  EtN]	EP                  EtO]	EP                  EtP]	EP                  EtQ]	EP                  EtR]	EP                  EtS]	EP                  EtT]	EP                  EtU]	EP                  EtV]	EP                  EtW]	EP                  EtX]	EP                  EtY]	EP                  EtZ]	EP                  Et[]	EP                  Et\]	EP                  Et]]	EP                  Et^]	EP                  Et_]	EP                  Et`]	EP                  Eta]	EP                  Etb]	EP                  Etc]	EP                  Etd]	EP                  Ete]	EP                  Etf]	EP                  Etg]	EP                  Eth]	EP                  Eti]	EP                  Etj]	EP                  Etk]	EP                  Etl]	EP                  Etm]	EP                  Etn]	EP                  Eto]	EP                  Etp]	EP                  Etq]	EP                  Etr]	EP                  Ets]	EP                  Ett]	EP                  Etu]	EP                  Etv]	EP                  Etw]	EP                  Etx]	EP                  Ety]	EP                  Etz]	EP                  Et{]	EP                  Et|]	EP                  Et}ER  ER! lEt~ER" ER# lEtER$ ER% lEtER& ER' lEt ! ER( ER)]4      Et]	EP                  ! E]4       ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E],          Et ^E] ,          Et ^E]",          Et ^E]#,          Et ^E]$,          Et ^E]%,          Et ^E]&,          Et ^E]',          Et ^E](,          Et ^E]),          Et ^E]*,          Et ^E]+,          Et ^E],,          Et ^E]-,          Et ^E].,          Et ^E]/,          Et ^E]0,          Et ^E]1,          Et ^E]2,          Et ^E]3,          Et ^E]4,          Et ^E]5,          Et ^E]6,          Et ^E]7,          Et ^E]8,          Et ^E]9,          Et ^E]:,          Et ^E];,          Et ^E]<,          Et ^E]=,          Et ^E]>,          Et ^E]?,          Et ^E]B,          Et ^E]C,          Et ^E]D,          Et ^E]E,          Et ^E]F,          Et ^E]G,          Et ^E]H,          Et ^E]I,          Et ^E]J,          Et ^E]K,          Et ^E]L,          Et ^E]M,          Et ^E]O,          Et E]E],          E],          E],          E],          E],          Et E]E],          E],          Et ER*Et ERER+ lEtER, ER- lEtER. ER/ lEtER0 ER1 lEtER2 ER3 lEt ! ER4 ER5]4      Et ! ER6 ER74      Et ! ER8 ER9]4      Et^ REIEtE]EP                  ! ]<ER:ER;ER< 4       ^ ER=EIEHEt ^EtE]~EtE] EtE]EtE]EtE]EtE]EtE]EtE],EtE]Et^Et^/Et^0Et^E],          Et^E],          Et^E],          Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  EtER> ER? lEtER@ ERA lEtERB ERC lEtERD ERE lEtERF ERG lEtERH ERI lEtERJ ERK lEtERL ERM lEt]	EP                  Et^ RI	t	 ! ERN ERO]4      EtE]EtE]EtE]EtE]EtE]EtE]EtE]EtE]EtE]EtE]EtERP ERQ lEtERR ERS lEtERT ERU lEtERV ERW lEtERX ERY lEtERZ ER[ lEtER\ ER] lEtER^ ER_ lEtER` ERa lEtERb ERc lEtERd ERe lEtERf ERg lEtERh ERi lEtERj ERk lEtERl ERm lEt ERn ERo lEtERp ERq lEtERr ERs lEtERt ERu lEtERv ERw lEt^ RIt^ RIt^ REIEt^ REIEt ^ REIEt^ REIEtE]EP                  ! E]EP                  E]EP                  E]EP                  4      EtE]EP                  ! E]EP                  E]EP                  E]EP                  4      Et ! ERx ERy]EP                  4      Et ! ERz ER{]4      Et ^ REIEtE]EP$                  ER|8H  E]EP&                  En        E]EP                  ! E]EP                  4      ! ]	EP                  ! 4       4      EtE]EP,                  .E]En        E]EP                  ! E]EP                  4      ! ]	EP                  ! 4       4      EtE]EP,                  E]EP2                  .E]En        ER EtER EtER EtER ER lEtER ER lEt^ RIt ! ER ER]EP>                  4      Et  ! ER ER]4      Et!]	EPD                  ! E]!4        ! ER ERE]!4      Et#^ RItE]#]En#        ER ER lEt$ER ER lEt%^ RI	t	 ! ER ERE]#4      Et&ER ER lEt'ER ER lEt(ER ER lEt)ER ER lEt*ER ER lEt+ER ER lEt,ER ER lEt-ER ER lEt.ER ER lEt/ER ER lEt0ER ER lEt1ER ER lEt2ER ER lEt3ER ER lEt4ER ER lEt5ER ER lEt6ER ER lEt7ER ER lEt8ER ER lEt9 ! ER ER]4      Et:ER ER lEt;ER ER lEt<ER ER lEt=ER ER lEt>^ RIt^ RIt ! ER ER]4      Et?]EP                  EtA]EP                  EtC]EP                  EtER#   ] d	    ^ RIt E4LLi ; i    E]EP                  ! E]EP                  E]EP                  E]EP                  4      EtE]EP                  ! E]EP                  E]EP                  E]EP                  4      Et ELG   R;EtEt  ELS; i; i   ER} EtER~ Et ELo; i(  ap  Defines the interface between the kernel and the UI.

It contains:
* the UI dispatcher notification codes (ui_notification_t)
* convenience functions for UI services
* structures which hold information about the lines (disassembly, structures, enums) generated by the kernel
* functions to interact with the user (dialog boxes)
* some string and conversion functions.
)annotations)version_info.)_ida_kernwinNc                     R V P                   P                  4       ,           pRV P                  P
                  : RV P                  P                  : RV: R2#   \        P                   d    Rp LPi ; i)z	proxy of  <r   z; z >)this__repr____builtin__	Exception	__class__
__module____name__)selfstrthiss   & CC:\Users\user\Downloads\ida93sp2\portable_win\python\ida_kernwin.py
_swig_reprr      sg    		 2 2 44 "^^669     s   !A A43A4c                   a  V 3R  lpV# )c                  < VR 8X  d   S! WV4       R# VR8X  d   V P                   P                  V4       R# \        W4      '       d5   \        \	        \        V 4      V4      \        4      '       d   S! WV4       R# \        RV ,          4      h)r	   thisownz(You cannot add instance attributes to %sN)r	   ownhasattr
isinstancegetattrtypepropertyAttributeError)r   namevaluesets   &&&r   set_instance_attrE_swig_setattr_nondynamic_instance_variable.<locals>.set_instance_attr!   su    6>E"YIIMM% T  ZT
D0I& &E" !K"       )r    r!   s   f r   *_swig_setattr_nondynamic_instance_variabler%      s    
 r#   c                   a  V 3R  lpV# )c                   < \        W4      '       d+   \        \        W4      \        4      '       g   S! WV4       R# \	        R V ,          4      h)z%You cannot add class attributes to %sN)r   r   r   r   r   )clsr   r   r    s   &&&r   set_class_attr?_swig_setattr_nondynamic_class_variable.<locals>.set_class_attr1   s:    3j1CX&N&N5! !H3!NOOr#   r$   )r    r)   s   f r   '_swig_setattr_nondynamic_class_variabler+   /   s    P
 r#   c                   a  V 3R lpV# )zlClass decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclassc                p   < S! V P                   V P                  V P                  P                  4       4      # N)r   	__bases____dict__copy)r(   	metaclasss   &r   wrapper$_swig_add_metaclass.<locals>.wrapper<   s'    s}}cll6G6G6IJJr#   r$   )r2   r3   s   f r   _swig_add_metaclassr5   9   s    KNr#   c                  >    ] tR t^AtRt]! ]P                  4      tRtR# )_SwigNonDynamicMetazKMeta class to enforce nondynamic attributes (no new attributes) for a classr$   N)	r   r   __qualname____firstlineno____doc__r+   r   __setattr____static_attributes__r$   r#   r   r7   r7   A   s    U9$:J:JKKr#   r7   )TupleListUnionc                    V ^8  d   QhRRRR/# )   arg1z'dirspec_t const *'returnNoner$   )formats   "r   __annotate__rF   L        > >*= > >r#   c                .    \         P                  ! V 4      # r.   )r   _kludge_force_declare_dirspec_trB   s   &r   rI   rI   L       77==r#   c                    V ^8  d   QhRRRR/# )rA   rB   z'dirtree_t const *'rC   rD   r$   )rE   s   "r   rF   rF   P   rG   r#   c                .    \         P                  ! V 4      # r.   )r   _kludge_force_declare_dirtree_trJ   s   &r   rN   rN   P   rK   r#   c                     ] tR t^Tt]! R R RR7      t]tR t]	P                  tR R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ lt R0 R1 lt!R2 R3 lt"R4 R5 lt#R6 R7 lt$R8 R9 lt%R: R; lt&R< R= lt'R> R? lt(R@ RA lt)]*PV                  t,]*PZ                  t.]*P^                  t0RBt1RC# )Dchooser_row_info_vec_tc                	6    V P                   P                  4       # r.   r	   r   xs   &r   <lambda>chooser_row_info_vec_t.<lambda>U       r#   c                	8    V P                   P                  V4      # r.   rR   rT   vs   &&r   rU   rV   U       AFFJJqMr#   The membership flagdocc                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   chooser_row_info_vec_t_swiginitnew_chooser_row_info_vec_tr   argss   &*r   __init__chooser_row_info_vec_t.__init__Y   s'    44T<&&<'(,<. 	/r#   c                   V ^8  d   QhRR/# )rA   rC   z'chooser_row_info_t &'r$   )rE   s   "r   rF   #chooser_row_info_vec_t.__annotate__^   s     J J!7 Jr#   c                	2    \         P                  ! V .VO5!  # r.   )r    chooser_row_info_vec_t_push_backrb   s   &*r   	push_back chooser_row_info_vec_t.push_back^       <<TIDIIr#   c                   V ^8  d   QhRR/# rA   rC   rD   r$   )rE   s   "r   rF   rg   a        B B Br#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_pop_backr   s   &r   pop_backchooser_row_info_vec_t.pop_backa       ;;DAAr#   c                   V ^8  d   QhRR/# rA   rC   intr$   )rE   s   "r   rF   rg   d   s     > >S >r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_sizerr   s   &r   sizechooser_row_info_vec_t.sized       77==r#   c                   V ^8  d   QhRR/# rA   rC   boolr$   )rE   s   "r   rF   rg   g        ? ?d ?r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_emptyrr   s   &r   emptychooser_row_info_vec_t.emptyg       88>>r#   c                    V ^8  d   QhRRRR/# )rA   _idxrx   rC   'chooser_row_info_t const &'r$   )rE   s   "r   rF   rg   j   s     B Bs B: Br#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_atr   r   s   &&r   atchooser_row_info_vec_t.atj   s    55dAAr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rg   m   s     @ @t @r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_qclearrr   s   &r   qclearchooser_row_info_vec_t.qclearm       99$??r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rg   p   r   r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_clearrr   s   &r   clearchooser_row_info_vec_t.clearp   r   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rg   s   s     G Gd Gr#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_resizerb   s   &*r   resizechooser_row_info_vec_t.resizes       99$FFFr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rg   v   s     E ED Er#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_growrb   s   &*r   growchooser_row_info_vec_t.growv       77DtDDr#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rg   y   s     B B Br#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_capacityrr   s   &r   capacitychooser_row_info_vec_t.capacityy   ru   r#   c                    V ^8  d   QhRRRR/# rA   cntrx   rC   rD   r$   )rE   s   "r   rF   rg   |   s     F F3 F$ Fr#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_reserver   r   s   &&r   reservechooser_row_info_vec_t.reserve|       ::4EEr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rg      ro   r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_truncaterr   s   &r   truncatechooser_row_info_vec_t.truncate   ru   r#   c                    V ^8  d   QhRRRR/# )rA   r'chooser_row_info_vec_t'rC   rD   r$   )rE   s   "r   rF   rg      s     A A. A$ Ar#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_swapr   r   s   &&r   swapchooser_row_info_vec_t.swap       77@@r#   c                   V ^8  d   QhRR/# )rA   rC   z'chooser_row_info_t *'r$   )rE   s   "r   rF   rg      s     A A. Ar#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t_extractrr   s   &r   extractchooser_row_info_vec_t.extract       ::4@@r#   c               $    V ^8  d   QhRRRRRR/# )rA   s'chooser_row_info_t'lenrx   rC   rD   r$   )rE   s   "r   rF   rg      s'     H H, H3 H$ Hr#   c                	0    \         P                  ! WV4      # r.   )r   chooser_row_info_vec_t_injectr   r   r   s   &&&r   injectchooser_row_info_vec_t.inject   s    99$3GGr#   c                    V ^8  d   QhRRRR/# rA   r   r   rC   r   r$   )rE   s   "r   rF   rg           C C0 CD Cr#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t___eq__r   s   &&r   __eq__chooser_row_info_vec_t.__eq__       99$BBr#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   rg      r   r#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t___ne__r   s   &&r   __ne__chooser_row_info_vec_t.__ne__   r   r#   c                   V ^8  d   QhRR/# rA   rC   z/'qvector< chooser_row_info_t >::const_iterator'r$   )rE   s   "r   rF   rg      s     F FL Fr#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_beginrb   s   &*r   beginchooser_row_info_vec_t.begin       88EEEr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rg      s     D DJ Dr#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_endrb   s   &*r   endchooser_row_info_vec_t.end       66tCdCCr#   c               $    V ^8  d   QhRRRRRR/# )rA   itr   rT   rC   )'qvector< chooser_row_info_t >::iterator'r$   )rE   s   "r   rF   rg      s)     G G- G2F G5Gr#   c                	0    \         P                  ! WV4      # r.   )r   chooser_row_info_vec_t_insertr   r   rT   s   &&&r   insertchooser_row_info_vec_t.insert   s    99$AFFr#   c                   V ^8  d   QhRR/# )rA   rC   r   r$   )rE   s   "r   rF   rg      s     F FF Fr#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_eraserb   s   &*r   erasechooser_row_info_vec_t.erase   r   r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rg      s     E EK Er#   c                	2    \         P                  ! V .VO5!  # r.   )r   chooser_row_info_vec_t_findrb   s   &*r   findchooser_row_info_vec_t.find   r   r#   c                    V ^8  d   QhRRRR/# rA   rT   r   rC   r   r$   )rE   s   "r   rF   rg      s     @ @) @T @r#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_hasr   rT   s   &&r   haschooser_row_info_vec_t.has       66t??r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   rg      s     G G0 GD Gr#   c                	.    \         P                  ! W4      # r.   )r   !chooser_row_info_vec_t_add_uniquer  s   &&r   
add_unique!chooser_row_info_vec_t.add_unique       ==dFFr#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   rg      s     A A* Ad Ar#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t__delr  s   &&r   _delchooser_row_info_vec_t._del   r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rg      s     A A Ar#   c                	.    \         P                  ! V 4      # r.   )r   chooser_row_info_vec_t___len__rr   s   &r   __len__chooser_row_info_vec_t.__len__   r   r#   c                    V ^8  d   QhRRRR/# )rA   irx   rC   r   r$   )rE   s   "r   rF   rg      s     H HS H$@ Hr#   c                	.    \         P                  ! W4      # r.   )r   "chooser_row_info_vec_t___getitem__r   r  s   &&r   __getitem__"chooser_row_info_vec_t.__getitem__   s    >>tGGr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   r   rC   rD   r$   )rE   s   "r   rF   rg      s'     K KS K%9 KT Kr#   c                	0    \         P                  ! WV4      # r.   )r   "chooser_row_info_vec_t___setitem__r   r  rZ   s   &&&r   __setitem__"chooser_row_info_vec_t.__setitem__   s    >>tJJr#   c                    V ^8  d   QhRRRR/# )rA   rT   r   rC   rD   r$   )rE   s   "r   rF   rg      s     C C, C Cr#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_appendr  s   &&r   appendchooser_row_info_vec_t.append   r   r#   c                    V ^8  d   QhRRRR/# )rA   rT   r   rC   rD   r$   )rE   s   "r   rF   rg      r   r#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_vec_t_extendr  s   &&r   extendchooser_row_info_vec_t.extend   r   r#   r$   N)2r   r   r8   r9   r   r   r   r
   rd   r   delete_chooser_row_info_vec_t__swig_destroy__rj   rs   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*  
ida_idaapi_qvector_frontfront_qvector_backback_bounded_getitem_iterator__iter__r<   r$   r#   r   rP   rP   T   s    -/I!#GH/ $AAJB>?B@?GEBFBAAHCCFDGFE@GAAHKCC%%E##D33Hr#   rP   c                     ] tR t^t]! R R RR7      t]tR t]	P                  tR R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ lt R0 R1 lt!R2 R3 lt"R4 R5 lt#R6 R7 lt$R8 R9 lt%R: R; lt&R< R= lt'R> R? lt(R@ RA lt)]*PV                  t,]*PZ                  t.]*P^                  t0RBt1RC# )Dtagged_line_section_vec_tc                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   "tagged_line_section_vec_t.<lambda>   rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r8     r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   "tagged_line_section_vec_t_swiginitnew_tagged_line_section_vec_trb   s   &*r   rd   "tagged_line_section_vec_t.__init__   s'    77l))?*+/?1 	2r#   c                   V ^8  d   QhRR/# )rA   rC   z'tagged_line_section_t &'r$   )rE   s   "r   rF   &tagged_line_section_vec_t.__annotate__   s     M M!: Mr#   c                	2    \         P                  ! V .VO5!  # r.   )r   #tagged_line_section_vec_t_push_backrb   s   &*r   rj   #tagged_line_section_vec_t.push_back   s    ??LtLLr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?          E E Er#   c                	.    \         P                  ! V 4      # r.   )r   "tagged_line_section_vec_t_pop_backrr   s   &r   rs   "tagged_line_section_vec_t.pop_back       >>tDDr#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r?     s     A AS Ar#   c                	.    \         P                  ! V 4      # r.   )r   tagged_line_section_vec_t_sizerr   s   &r   r{   tagged_line_section_vec_t.size   r   r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r?          B Bd Br#   c                	.    \         P                  ! V 4      # r.   )r   tagged_line_section_vec_t_emptyrr   s   &r   r   tagged_line_section_vec_t.empty   ru   r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'tagged_line_section_t const &'r$   )rE   s   "r   rF   r?     s     E Es E= Er#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_vec_t_atr   s   &&r   r   tagged_line_section_vec_t.at   s    88DDr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?     s     C Ct Cr#   c                	.    \         P                  ! V 4      # r.   )r    tagged_line_section_vec_t_qclearrr   s   &r   r    tagged_line_section_vec_t.qclear   s    <<TBBr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?     rN  r#   c                	.    \         P                  ! V 4      # r.   )r   tagged_line_section_vec_t_clearrr   s   &r   r   tagged_line_section_vec_t.clear   ru   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?     s     J Jd Jr#   c                	2    \         P                  ! V .VO5!  # r.   )r    tagged_line_section_vec_t_resizerb   s   &*r   r    tagged_line_section_vec_t.resize   rl   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?     s     H HD Hr#   c                	2    \         P                  ! V .VO5!  # r.   )r   tagged_line_section_vec_t_growrb   s   &*r   r   tagged_line_section_vec_t.grow       ::4G$GGr#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r?     s     E E Er#   c                	.    \         P                  ! V 4      # r.   )r   "tagged_line_section_vec_t_capacityrr   s   &r   r   "tagged_line_section_vec_t.capacity   rH  r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   r?     s     I I3 I$ Ir#   c                	.    \         P                  ! W4      # r.   )r   !tagged_line_section_vec_t_reserver   s   &&r   r   !tagged_line_section_vec_t.reserve   s    ==dHHr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r?     rD  r#   c                	.    \         P                  ! V 4      # r.   )r   "tagged_line_section_vec_t_truncaterr   s   &r   r   "tagged_line_section_vec_t.truncate   rH  r#   c                    V ^8  d   QhRRRR/# )rA   r   'tagged_line_section_vec_t'rC   rD   r$   )rE   s   "r   rF   r?     s     D D1 DT Dr#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_vec_t_swapr   s   &&r   r   tagged_line_section_vec_t.swap       ::4CCr#   c                   V ^8  d   QhRR/# )rA   rC   z'tagged_line_section_t *'r$   )rE   s   "r   rF   r?     s     D D1 Dr#   c                	.    \         P                  ! V 4      # r.   )r   !tagged_line_section_vec_t_extractrr   s   &r   r   !tagged_line_section_vec_t.extract       ==dCCr#   c               $    V ^8  d   QhRRRRRR/# )rA   r   'tagged_line_section_t'r   rx   rC   rD   r$   )rE   s   "r   rF   r?     s'     K K/ Kc KT Kr#   c                	0    \         P                  ! WV4      # r.   )r    tagged_line_section_vec_t_injectr   s   &&&r   r    tagged_line_section_vec_t.inject   s    <<TcJJr#   c                    V ^8  d   QhRRRR/# rA   r   ru  rC   r   r$   )rE   s   "r   rF   r?          F F3 Ft Fr#   c                	.    \         P                  ! W4      # r.   )r    tagged_line_section_vec_t___eq__r   s   &&r   r    tagged_line_section_vec_t.__eq__       <<TEEr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r?     r  r#   c                	.    \         P                  ! W4      # r.   )r    tagged_line_section_vec_t___ne__r   s   &&r   r    tagged_line_section_vec_t.__ne__   r  r#   c                   V ^8  d   QhRR/# rA   rC   z2'qvector< tagged_line_section_t >::const_iterator'r$   )rE   s   "r   rF   r?     s     I I>Ir#   c                	2    \         P                  ! V .VO5!  # r.   )r   tagged_line_section_vec_t_beginrb   s   &*r   r   tagged_line_section_vec_t.begin   s    ;;DH4HHr#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r?    s     G GM Gr#   c                	2    \         P                  ! V .VO5!  # r.   )r   tagged_line_section_vec_t_endrb   s   &*r   r   tagged_line_section_vec_t.end  r   r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  rT   rC   ,'qvector< tagged_line_section_t >::iterator'r$   )rE   s   "r   rF   r?    s)     J J0 J5L J8Jr#   c                	0    \         P                  ! WV4      # r.   )r    tagged_line_section_vec_t_insertr   s   &&&r   r    tagged_line_section_vec_t.insert  s    <<TqIIr#   c                   V ^8  d   QhRR/# )rA   rC   r  r$   )rE   s   "r   rF   r?    s     I II Ir#   c                	2    \         P                  ! V .VO5!  # r.   )r   tagged_line_section_vec_t_eraserb   s   &*r   r   tagged_line_section_vec_t.erase      ;;DH4HHr#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r?    s     H HN Hr#   c                	2    \         P                  ! V .VO5!  # r.   )r   tagged_line_section_vec_t_findrb   s   &*r   r   tagged_line_section_vec_t.find  rg  r#   c                    V ^8  d   QhRRRR/# rA   rT   r  rC   r   r$   )rE   s   "r   rF   r?    s     C C, C Cr#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_vec_t_hasr  s   &&r   r  tagged_line_section_vec_t.has  r   r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r?    s     J J3 Jt Jr#   c                	.    \         P                  ! W4      # r.   )r   $tagged_line_section_vec_t_add_uniquer  s   &&r   r  $tagged_line_section_vec_t.add_unique      @@IIr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r?    s     D D- D Dr#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_vec_t__delr  s   &&r   r  tagged_line_section_vec_t._del  ry  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r?    s     D D Dr#   c                	.    \         P                  ! V 4      # r.   )r   !tagged_line_section_vec_t___len__rr   s   &r   r  !tagged_line_section_vec_t.__len__  r~  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   rS  r$   )rE   s   "r   rF   r?    s     K KS K$C Kr#   c                	.    \         P                  ! W4      # r.   )r   %tagged_line_section_vec_t___getitem__r  s   &&r   r  %tagged_line_section_vec_t.__getitem__  s    AA$JJr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   r  rC   rD   r$   )rE   s   "r   rF   r?    s'     N NS N%< N Nr#   c                	0    \         P                  ! WV4      # r.   )r   %tagged_line_section_vec_t___setitem__r  s   &&&r   r   %tagged_line_section_vec_t.__setitem__  s    AA$1MMr#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r?     s     F F/ F4 Fr#   c                	.    \         P                  ! W4      # r.   )r    tagged_line_section_vec_t_appendr  s   &&r   r%   tagged_line_section_vec_t.append   r  r#   c                    V ^8  d   QhRRRR/# )rA   rT   ru  rC   rD   r$   )rE   s   "r   rF   r?  #  r  r#   c                	.    \         P                  ! W4      # r.   )r    tagged_line_section_vec_t_extendr  s   &&r   r*   tagged_line_section_vec_t.extend#  r  r#   r$   N)2r   r   r8   r9   r   r   r   r
   rd   r    delete_tagged_line_section_vec_tr-  rj   rs   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/  r0  r1  r2  r3  r4  r<   r$   r#   r   r6  r6     s   -/I!#GH2 $DDMEABECBJHEIEDDKFFIGJIHCJDDKNFF%%E##D33Hr#   r6  c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF   -  s     + + +r#   c                 ,    \         P                  ! 4       # r.   )r   refresh_choosersr$   r#   r   r  r  -      ((**r#   c                   V ^8  d   QhRR/# rA   rC   'PyObject *'r$   )rE   s   "r   rF   rF   1  s     1 1| 1r#   c                 ,    \         P                  ! 4       # r.   r   textctrl_info_t_creater$   r#   r   r  r  1  s    ..00r#   c                    V ^8  d   QhRRRR/# )rA   py_objr  rC   r   r$   )rE   s   "r   rF   rF   5  s     8 8L 8D 8r#   c                .    \         P                  ! V 4      # r.   r   textctrl_info_t_destroyr  s   &r   r  r  5  s    //77r#   c                    V ^8  d   QhRRRR/# )rA   _selfr  rC   z'textctrl_info_t *'r$   )rE   s   "r   rF   rF   9  s     9 9\ 95H 9r#   c                .    \         P                  ! V 4      # r.   )r   textctrl_info_t_get_clinkr  s   &r   r  r  9      11%88r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   r$   )rE   s   "r   rF   rF   =  s     = = = =r#   c                .    \         P                  ! V 4      # r.   r   textctrl_info_t_get_clink_ptrr  s   &r   r  r  =  s    55e<<r#   c                .    \         P                  ! W4      # )aA  Register a timer

:param interval: Interval in milliseconds
:param callback: A Python callable that takes no parameters and returns an integer.
                 The callback may return:
                 -1   : to unregister the timer
                 >= 0 : the new or same timer interval
:returns: None or a timer object)r   register_timer)intervalcallbacks   &&r   r  r  A  s     &&x::r#   c                .    \         P                  ! V 4      # )zUnregister a timer

NOTE: After the timer has been deleted, the timer_obj will become invalid.

:param timer_obj: a timer object previously returned by a register_timer()
:returns: Boolean)r   unregister_timer)	timer_objs   &r   r  r  M  s     ((33r#   c                    V ^8  d   QhRRRR/# )rA   maskrx   rC   rD   r$   )rE   s   "r   rF   rF   W  s     . .# . .r#   c                .    \         P                  ! V 4      # )z6Deprecated. Please use `mark_builtin_widgets` instead.)r   request_refreshr  s   &r   r  r  W  s    ''--r#   c                    V ^8  d   QhRRRR/# )rA   r  'builtin_widgets_mask_t'rC   r   r$   )rE   s   "r   rF   rF   \  s     3 37 34 3r#   c                .    \         P                  ! V 4      # r.   )r   is_refresh_requestedr  s   &r   r  r  \  s    ,,T22r#   c                 ,    \         P                  ! 4       # )zJOpens the signature chooser

:returns: None or the selected signature name)r   choose_idasgnr$   r#   r   r  r  `  s     %%''r#   c                .    \         P                  ! W4      # )a  Returns the currently highlighted identifier and flags

:param v: The UI widget to operate on
:param flags: Optionally specify a slot (see kernwin.hpp), current otherwise
:returns: a tuple (text, flags), or None if nothing
         is highlighted or in case of error.)r   get_highlight)rZ   flagss   &&r   r  r  g  s     %%a//r#   c                    V ^8  d   QhRRRR/# )rA   filenamestrrC   rx   r$   )rE   s   "r   rF   rF   q  s     9 9S 9C 9r#   c                .    \         P                  ! V 4      # r.   )r   py_load_custom_icon_fn)r  s   &r   r  r  q  s    ..x88r#   c               $    V ^8  d   QhRRRRRR/# )rA   datar  rE   r  rC   rx   r$   )rE   s   "r   rF   rF   u  s!     ? ?< ? ? ?r#   c                .    \         P                  ! W4      # r.   )r   py_load_custom_icon_data)r  rE   s   &&r   r  r  u  s    00>>r#   c                |    \        V \        4      '       d   V P                  R4      p \        P                  ! V 4      # )zIDisplay a message in the message window

:param message: message to printUTF-8)r   bytesdecoder   msgmessages   &r   r  r  y  s0     '5!!..)G$$r#   c                |    \        V \        4      '       d   V P                  R4      p \        P                  ! V 4      # )zLDisplay a message in a warning message box

:param message: message to printr  )r   r  r  r   warningr  s   &r   r
  r
    s0     '5!!..)((r#   c                |    \        V \        4      '       d   V P                  R4      p \        P                  ! V 4      # )zVDisplay a fatal message in a message box and quit IDA

:param format: message to printr  )r   r  r  r   errorr  s   &r   r  r    s0     '5!!..)g&&r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   max_sizerx   defvalr  promptrC   zUnion[str, None]r$   )rE   s   "r   rF   rF     s)     ; ;s ;C ; ;8H ;r#   c                0    \         P                  ! WV4      # )zAsks for a long text

:param max_size: Maximum text length, 0 for unlimited
:param defval: The default value
:param prompt: The prompt value
:returns: None or the entered string)r   ask_text)r  r  r  s   &&&r   r  r    s       6::r#   c                0    \         P                  ! WV4      # )zAsks for a long text

:param defval: The default value
:param hist:   history id
:param prompt: The prompt value
:returns: None or the entered string)r   ask_str)r  histr  s   &&&r   r  r    s     f55r#   c                    V ^8  d   QhRRRR/# )rA   r   r  r  rx   r$   )rE   s   "r   rF   rF     s     7 7C 7 7r#   c                .    \         P                  ! W4      # )zdInvokes an IDA UI action by name

:param name:  action name
:param flags: reserved
:returns: Boolean)r   process_ui_action)r   r  s   &&r   r  r    s     ))$66r#   c                .    \         P                  ! V 4      # )zDeletes a previously registered function hotkey

:param ctx: Hotkey context previously returned by add_hotkey()

:returns: Boolean.)r   
del_hotkey)ctxs   &r   r  r    s     ""3''r#   c                .    \         P                  ! W4      # )zAssociates a function call with a hotkey.
Callable 'callable' will be called each time the hotkey is pressed

:param hotkey: The hotkey
:param callable: Callable

:returns: Context object on success or None on failure.)r   
add_hotkey)hotkeycallables   &&r   r  r    s     ""644r#   c                   V ^8  d   QhRR/# )rA   rC   zTuple[bool, str]r$   )rE   s   "r   rF   rF     s     9 9'7 9r#   c                .    \         P                  ! V 4      # )zjTake a database snapshot.

:param snapshot: the snapshot object
:returns: a tuple (success, error-message))r   take_database_snapshot)snapshots   &r   r"  r"    s    
 ..x88r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     	P 	Pd 	Pr#   c                0    \         P                  ! WV4      # )a  Restore a database snapshot.

Note: This call is asynchronous. When it is completed, the callback will be triggered.

:param snapshot: the snapshot object
:param callback: a callback function
:param userdata: payload to pass to the callback
:returns: success)r   restore_database_snapshot)r#  r  userdatas   &&&r   r&  r&    s     11(hOOr#   c                .    \         P                  ! W4      # )a+  Executes a function in the context of the main thread.
If the current thread not the main thread, then the call is queued and
executed afterwards.

:param callable: A python callable object, must return an integer value
:param reqf: one of MFF_ flags
:returns: -1 or the return value of the callable)r   execute_sync)r  reqfs   &&r   r)  r)    s     $$X44r#   c                .    \         P                  ! V 4      # )a  Inserts a list of callables into the UI message processing queue.
When the UI is ready it will call one callable.
A callable can request to be called more than once if it returns True.

NOTE: A callable should return True if it wants to be called more than once.

:param callable_list: A list of python callable objects.
:returns: Boolean. False if the list contains a non callable item)r   execute_ui_requests)callable_lists   &r   r,  r,    s     ++M::r#   c                  F    ] tR tRt]! R R RR7      tR t]tR R lt	R	t
R
# )jobj_wrapper_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   jobj_wrapper_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r1    r[   r#   r\   r]   c                	    \        R 4      h)zNo constructor definedr   r   rc   kwargss   &*,r   rd   jobj_wrapper_t.__init__  s    566r#   c                   V ^8  d   QhRR/# )rA   rC   dictr$   )rE   s   "r   rF   jobj_wrapper_t.__annotate__  s     : : :r#   c                .    \         P                  ! V 4      # )zeRetrieve the contents of this object, as a dict

:returns: a dict containing all kvp's in this object)r   jobj_wrapper_t_get_dictrr   s   &r   get_dictjobj_wrapper_t.get_dict  s     33D99r#   r$   N)r   r   r8   r9   r   r   rd   r   r
   r=  r<   r$   r#   r   r/  r/    s)    -/I!#G7H: :r#   r/  c                  2   ] tR tRt]! R R RR7      t]tRWR R lltR R	 lt	R
 R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 lt RXR9 R: llt!RXR; R< llt"R= R> lt#R? R@ lt$RA RB lt%RC RD lt&RE RF lt'RG RH lt(RI RJ lt)RK RL lt*RM RN lt+RO RP lt,RQ RR lt-RS RT lt.]/P`                  t1RU t2RVt3R8# )YUI_Hooksi  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   UI_Hooks.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rB    r[   r#   r\   r]   c                    V ^8  d   QhRRRR/# rA   _flagsrx   _hkcb_flagsr$   )rE   s   "r   rF   UI_Hooks.__annotate__       ) )s )3 )r#   c                	    V P                   \        8X  d   R pMT p\        P                  ! V \        P                  ! W1V4      4       R # r.   )r   r@  r   UI_Hooks_swiginitnew_UI_Hooksr   rF  rG  r  s   &&& r   rd   UI_Hooks.__init__  s:    >>X%EE&&t\-F-F;.( 	)r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rH    s     0 0T 0r#   c                	.    \         P                  ! V 4      # r.   )r   UI_Hooks_hookrr   s   &r   hookUI_Hooks.hook      ))$//r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rH    s     2 2t 2r#   c                	.    \         P                  ! V 4      # r.   )r   UI_Hooks_unhookrr   s   &r   unhookUI_Hooks.unhook      ++D11r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    s     1 1d 1r#   c                .    \         P                  ! V 4      # )zThe disassembly range has been changed ( idainfo::min_ea ... idainfo::max_ea). UI should redraw the scrollbars. See also: ui_lock_range_refresh 
          
:returns: void)r   UI_Hooks_rangerr   s   &r   rangeUI_Hooks.range  s     **400r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    s     4 4 4r#   c                .    \         P                  ! V 4      # )z4Start of IDC engine work. 
          
:returns: void)r   UI_Hooks_idcstartrr   s   &r   idcstartUI_Hooks.idcstart  s     --d33r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH  !       3 3 3r#   c                .    \         P                  ! V 4      # )z3Stop of IDC engine work. 
          
:returns: void)r   UI_Hooks_idcstoprr   s   &r   idcstopUI_Hooks.idcstop!       ,,T22r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH  '  rf  r#   c                .    \         P                  ! V 4      # )znSuspend graphical interface. Only the text version. Interface should respond to it. 
          
:returns: void)r   UI_Hooks_suspendrr   s   &r   suspendUI_Hooks.suspend'  rk  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH  -  s     2 2t 2r#   c                .    \         P                  ! V 4      # )zzResume the suspended graphical interface. Only the text version. Interface should respond to it 
          
:returns: void)r   UI_Hooks_resumerr   s   &r   resumeUI_Hooks.resume-  s     ++D11r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH  3  s     2 2t 2r#   c                .    \         P                  ! V 4      # )zThe kernel is flushing its buffers to the disk. The user interface should save its state. Parameters: none Returns: none 
          )r   UI_Hooks_savingrr   s   &r   savingUI_Hooks.saving3  s     ++D11r#   c                    V ^8  d   QhRRRR/# )rA   pathr  rC   rD   r$   )rE   s   "r   rF   rH  8  s     7 7# 7 7r#   c                .    \         P                  ! W4      # )a1  The kernel has saved the database. This callback just informs the interface. Note that at the time this notification is sent, the internal paths are not updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path. 
          
:param path: (const char *) the database path
:returns: void)r   UI_Hooks_savedr   r|  s   &&r   savedUI_Hooks.saved8  s    
 **466r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH  ?       ; ; ;r#   c                .    \         P                  ! V 4      # )zThe database has been closed. See also processor_t::closebase, it occurs earlier. See also ui_initing_database. This is not the same as IDA exiting. If you need to perform cleanup at the exiting time, use qatexit(). 
          
:returns: void)r   UI_Hooks_database_closedrr   s   &r   database_closedUI_Hooks.database_closed?       44T::r#   c                    V ^8  d   QhRRRR/# )rA   enabler   rC   rD   r$   )rE   s   "r   rF   rH  E  s     H H4 H4 Hr#   c                .    \         P                  ! W4      # )zdebugger menu modification detected 
          
:param enable: (bool) true: debugger menu has been added, or a different debugger has been selected false: debugger menu will be removed (user switched to "No debugger")
:returns: void)r   UI_Hooks_debugger_menu_change)r   r  s   &&r   debugger_menu_changeUI_Hooks.debugger_menu_changeE  s    
 99$GGr#   c                    V ^8  d   QhRRRR/# rA   widget'TWidget *'rC   rD   r$   )rE   s   "r   rF   rH  L       B B[ BD Br#   c                .    \         P                  ! W4      # )zTWidget is displayed on the screen. Use this event to populate the window with controls 
          
:param widget: (TWidget *)
:returns: void)r   UI_Hooks_widget_visibler   r  s   &&r   widget_visibleUI_Hooks.widget_visibleL      
 33DAAr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rH  S  r  r#   c                .    \         P                  ! W4      # )zTWidget is about to close. This event precedes ui_widget_invisible. Use this to perform some possible actions relevant to the lifecycle of this widget 
          
:param widget: (TWidget *)
:returns: void)r   UI_Hooks_widget_closingr  s   &&r   widget_closingUI_Hooks.widget_closingS  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rH  Z  s     D D{ Dd Dr#   c                .    \         P                  ! W4      # )z|TWidget is being closed. Use this event to destroy the window controls 
          
:param widget: (TWidget *)
:returns: void)r   UI_Hooks_widget_invisibler  s   &&r   widget_invisibleUI_Hooks.widget_invisibleZ  s    
 55dCCr#   c                    V ^8  d   QhRRRR/# )rA   eaida_idaapi.ea_trC   r  r$   )rE   s   "r   rF   rH  a  s     ; ;o ; ;r#   c                .    \         P                  ! W4      # )zui wants to display a simple hint for an address. Use this event to generate a custom hint See also more generic ui_get_item_hint 
          
:param ea: (::ea_t)
:returns: true if generated a hint)r   UI_Hooks_get_ea_hint)r   r  s   &&r   get_ea_hintUI_Hooks.get_ea_hinta  s    
 00::r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  	max_linesrx   rC   r  r$   )rE   s   "r   rF   rH  h  s'     H H HC HHr#   c                0    \         P                  ! WV4      # )zui wants to display multiline hint for an item. See also more generic ui_get_custom_viewer_hint 
          
:param ea: (ea_t) or item id like a structure or enum member
:param max_lines: (int) maximal number of lines
:returns: true if generated a hint)r   UI_Hooks_get_item_hint)r   r  r  s   &&&r   get_item_hintUI_Hooks.get_item_hinth  s     224YGGr#   c               $    V ^8  d   QhRRRRRR/# )rA   viewerr  place	'place_t'rC   r  r$   )rE   s   "r   rF   rH  q  s"      [  r#   c                0    \         P                  ! WV4      # )a  ui wants to display a hint for a viewer (idaview or custom). Every subscriber is supposed to append the hint lines to HINT and increment IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT is possible but not recommended. If the REG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the source-level debugger-generated hints. The following keywords might appear at the beginning of the returned hints: HIGHLIGHT text
 where text will be highlighted CAPTION caption
 caption for the hint widget 
          
:param viewer: (TWidget*) viewer
:param place: (place_t *) current position in the viewer
:returns: 0: continue collecting hints with other subscribers
:returns: 1: stop collecting hints)r   UI_Hooks_get_custom_viewer_hint)r   r  r  s   &&&r   get_custom_viewer_hintUI_Hooks.get_custom_viewer_hintq  s     ;;D%  	r#   c               $    V ^8  d   QhRRRRRR/# )rA   is_new_databaserx   
idc_scriptr  rC   rD   r$   )rE   s   "r   rF   rH  ~  s!      s  t r#   c                0    \         P                  ! WV4      # )a  database initialization has completed. the kernel is about to run idc scripts 
          
:param is_new_database: (int)
:param idc_script: (const char *) - may be nullptr
:returns: void See also ui_initing_database. This event is called for both new and old databases.)r   UI_Hooks_database_inited)r   r  r  s   &&&r   database_initedUI_Hooks.database_inited~  s     44T 	r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    s     8 8T 8r#   c                .    \         P                  ! V 4      # )zall UI elements have been initialized. Automatic plugins may hook to this event to perform their tasks. 
          
:returns: void)r   UI_Hooks_ready_to_runrr   s   &r   ready_to_runUI_Hooks.ready_to_run  s     11$77r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   rx   r$   )rE   s   "r   rF   rH    s     C Cc CS Cr#   c                .    \         P                  ! W4      # )zida ui is about to handle a user action. 
          
:param name: (const char *) ui action name. these names can be looked up in ida[tg]ui.cfg
:returns: 0: ok
:returns: nonzero: a plugin has handled the command)r   UI_Hooks_preprocess_actionr   r   s   &&r   preprocess_actionUI_Hooks.preprocess_action  s     66tBBr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    s     > >4 >r#   c                .    \         P                  ! V 4      # )z"an ida ui action has been handled
)r   UI_Hooks_postprocess_actionrr   s   &r   postprocess_actionUI_Hooks.postprocess_action  s     77==r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   chooser'chooser_base_t'nrx   attrs'chooser_item_attrs_t'rC   rD   r$   )rE   s   "r   rF   rH    s+     	 	.> 	3 	%	)-	r#   c                0    \         P                  ! WW#4      # )zget item-specific attributes for a chooser. This callback is generated only after enable_chooser_item_attrs() 
          
:param chooser: (const chooser_base_t *)
:param n: (::size_t)
:param attrs: (chooser_item_attrs_t *)
:returns: void)r   UI_Hooks_get_chooser_item_attrs)r   r  r  r  s   &&&&r   get_chooser_item_attrsUI_Hooks.get_chooser_item_attrs  s     ;;D 	r#   c                    V ^8  d   QhRRRR/# )rA   r  'action_ctx_base_t'rC   rD   r$   )rE   s   "r   rF   rH    s     A A$7 A4 Ar#   c                .    \         P                  ! W4      # )zIDA is about to update all actions. If your plugin needs to perform expensive operations more than once (e.g., once per action it registers), you should do them only once, right away. 
          
:param ctx: (action_update_ctx_t *)
:returns: void)r   UI_Hooks_updating_actionsr   r  s   &&r   updating_actionsUI_Hooks.updating_actions  s    
 55d@@r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    r  r#   c                .    \         P                  ! V 4      # )z8IDA is done updating actions. 
          
:returns: void)r   UI_Hooks_updated_actionsrr   s   &r   updated_actionsUI_Hooks.updated_actions  r  r#   Nc               (    V ^8  d   QhRRRRRRRR/# 	rA   r  r  popup_handle'TPopupMenu *'r  r  rC   rD   r$   )rE   s   "r   rF   rH    s+     
 
k 

0
9=
r#   c                0    \         P                  ! WW#4      # )a  IDA is populating the context menu for a widget. This is your chance to attach_action_to_popup().
Have a look at ui_finish_populating_widget_popup, if you want to augment the context menu with your own actions after the menu has had a chance to be properly populated by the owning component or plugin (which typically does it on ui_populating_widget_popup.)

:param widget: (TWidget *)
:param popup_handle: (TPopupMenu *)
:param ctx: (const action_activation_ctx_t *)
:returns: void)r    UI_Hooks_populating_widget_popupr   r  r  r  s   &&&&r   populating_widget_popup UI_Hooks.populating_widget_popup  s     <<T 	r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rE   s   "r   rF   rH    s+     	' 	'[ 	'$	'+>	'GK	'r#   c                2    \         P                  ! V WV4      # )zIDA is about to be done populating the context menu for a widget. This is your chance to attach_action_to_popup().

:param widget: (TWidget *)
:param popup_handle: (TPopupMenu *)
:param ctx: (const action_activation_ctx_t *)
:returns: void)r   'UI_Hooks_finish_populating_widget_popupr  s   &&&&r   finish_populating_widget_popup'UI_Hooks.finish_populating_widget_popup  s     CCD#' 	'r#   c                    V ^8  d   QhRRRR/# rA   plugin_infoz'plugin_info_t const *'rC   rD   r$   )rE   s   "r   rF   rH    s     F F)@ FD Fr#   c                .    \         P                  ! W4      # )zXThe plugin was loaded in memory. 
          
:param plugin_info: (const plugin_info_t *))r   UI_Hooks_plugin_loadedr   r  s   &&r   plugin_loadedUI_Hooks.plugin_loaded  s     224EEr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rH    s     I I,C It Ir#   c                .    \         P                  ! W4      # )zZThe plugin is about to be unloaded 
          
:param plugin_info: (const plugin_info_t *))r   UI_Hooks_plugin_unloadingr  s   &&r   plugin_unloadingUI_Hooks.plugin_unloading  s     55dHHr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  prev_widgetrC   rD   r$   )rE   s   "r   rF   rH    s#      [ r#   c                0    \         P                  ! WV4      # )z{The currently-active TWidget changed. 
          
:param widget: (TWidget *)
:param prev_widget: (TWidget *)
:returns: void)r   UI_Hooks_current_widget_changed)r   r  r  s   &&&r   current_widget_changedUI_Hooks.current_widget_changed  s     ;;D 	r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  prev_earC   rD   r$   )rE   s   "r   rF   rH    s'     J JO Jo JJr#   c                0    \         P                  ! WV4      # )zaThe "current address" changed 
          
:param ea: (ea_t)
:param prev_ea: (ea_t)
:returns: void)r   UI_Hooks_screen_ea_changed)r   r  r	  s   &&&r   screen_ea_changedUI_Hooks.screen_ea_changed  s     66tIIr#   c               $    V ^8  d   QhRRRRRR/# )rA   titler  cfg'jobj_wrapper_t'rC   r  r$   )rE   s   "r   rF   rH    s(     M M3 M5E MMr#   c                0    \         P                  ! WV4      # )zcreate a widget, to be placed in the widget tree (at desktop-creation time.) 
          
:param title: (const char *)
:param cfg: (const jobj_t *)
:returns: TWidget * the created widget, or null)r   UI_Hooks_create_desktop_widget)r   r  r  s   &&&r   create_desktop_widgetUI_Hooks.create_desktop_widget  s     ::4LLr#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   out'lines_rendering_output_t'r  'TWidget const *'infoz'lines_rendering_input_t'rC   rD   r$   )rE   s   "r   rF   rH    s,     	 	,F 	!	)B	FJ	r#   c                0    \         P                  ! WW#4      # )zget lines rendering information 
          
:param out: (lines_rendering_output_t *)
:param widget: (const TWidget *)
:param info: (const lines_rendering_input_t *)
:returns: void)r   !UI_Hooks_get_lines_rendering_info)r   r  r  r  s   &&&&r   get_lines_rendering_info!UI_Hooks.get_lines_rendering_info  s     ==d 	r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  z
'jobj_t *'rC   r  r$   )rE   s   "r   rF   rH    s(     J J(9 J
 JJr#   c                0    \         P                  ! WV4      # )zretrieve the widget configuration (it will be passed back at ui_create_desktop_widget-, and ui_set_widget_config-time) 
          
:param widget: (const TWidget *)
:param cfg: (jobj_t *)
:returns: void)r   UI_Hooks_get_widget_configr   r  r  s   &&&r   get_widget_configUI_Hooks.get_widget_config       66tSIIr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  r  rC   rD   r$   )rE   s   "r   rF   rH    s)     J J(9 JJ Jr#   c                0    \         P                  ! WV4      # )zuset the widget configuration 
          
:param widget: (const TWidget *)
:param cfg: (const jobj_t *)
:returns: void)r   UI_Hooks_set_widget_configr"  s   &&&r   set_widget_configUI_Hooks.set_widget_config  r%  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rH    s     < < <r#   c                .    \         P                  ! V 4      # )zdatabase initialization has started. 
          
:returns: void See also ui_database_inited. This event is called for both new and old databases.)r   UI_Hooks_initing_databaserr   s   &r   initing_databaseUI_Hooks.initing_database  s     55d;;r#   c                    V ^8  d   QhRRRR/# )rA   procmodz'procmod_t'rC   rD   r$   )rE   s   "r   rF   rH    s     G G+ G Gr#   c                .    \         P                  ! W4      # )z]The processor module is about to be destroyed 
          
:param procmod: (const procmod_t *))r   UI_Hooks_destroying_procmod)r   r1  s   &&r   destroying_procmodUI_Hooks.destroying_procmod  s     77FFr#   c               $    V ^8  d   QhRRRRRR/# )rA   plugmodz'plugmod_t'entry'plugin_t const *'rC   rD   r$   )rE   s   "r   rF   rH    s(     N N+ NN"Nr#   c                0    \         P                  ! WV4      # )z{The plugin object is about to be destroyed 
          
:param plugmod: (const plugmod_t *)
:param entry: (const plugin_t *))r   UI_Hooks_destroying_plugmod)r   r7  r8  s   &&&r   destroying_plugmodUI_Hooks.destroying_plugmod  s     77uMMr#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r   r  from_idbr   r   rx   rC   rD   r$   )rE   s   "r   rF   rH  "  s(      C 4 s d r#   c                0    \         P                  ! WW#4      # )za desktop has been applied 
          
:param name: (const char *) the desktop name
:param from_idb: (bool) the desktop was stored in the IDB (false if it comes from the registry)
:param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge))r   UI_Hooks_desktop_applied)r   r   r?  r   s   &&&&r   desktop_appliedUI_Hooks.desktop_applied"  s     44T  	r#   c                	    V P                   P                  4        \        P                  ! V 4       \        P
                  ! V 4      # r.   )r	   disownr   disown_UI_Hooksweakrefproxyrr   s   &r   
__disown__UI_Hooks.__disown__,  s/    		$$T*}}T""r#   r$          r.   )4r   r   r8   r9   r   r   r   r
   rd   rR  rX  r^  rc  ri  ro  rt  ry  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.  r4  r<  rB  r   delete_UI_Hooksr-  rI  r<   r$   r#   r   r@  r@    s    -/I!#GH)02143322
7;HBBD;H8C>
	A;
	'FIJM	JJ<GN $33#r#   r@  c                    V ^8  d   QhRRRR/# )rA   descz'action_desc_t'rC   r   r$   )rE   s   "r   rF   rF   5  s     . ./ .T .r#   c                .    \         P                  ! V 4      # )a  Create a new action (ui_register_action). After an action has been created, it is possible to attach it to menu items (attach_action_to_menu()), or to popup menus (attach_action_to_popup()).
Because the actions will need to call the handler's activate() and update() methods at any time, you shouldn't build your action handler on the stack.
Please see the SDK's "ht_view" plugin for an example how to register actions. 
        
:param desc: action to register
:returns: success)r   register_action)rP  s   &r   rR  rR  5  s     ''--r#   c                   V ^8  d   QhRR/# )rA   rC   	List[str]r$   )rE   s   "r   rF   rF   ?  s     1 1y 1r#   c                 ,    \         P                  ! 4       # )zbGet a list with the names of all currently-registered actions.

:returns: the list of action names)r   get_registered_actionsr$   r#   r   rV  rV  ?       ..00r#   c                2    \         P                  ! WW#V4      # )a  Create & insert an action into the widget's popup menu
(::ui_attach_dynamic_action_to_popup).
Note: The action description in the 'desc' parameter is modified by
      this call so you should prepare a new description for each call.
For example:
    desc = ida_kernwin.action_desc_t(None, 'Dynamic popup action', Handler())
    ida_kernwin.attach_dynamic_action_to_popup(form, popup, desc)

:param unused:       deprecated; should be None
:param popup_handle: target popup
:param desc:         action description of type action_desc_t
:param popuppath:    can be None
:param flags:        a combination of SETMENU_ constants
:returns: success)r   attach_dynamic_action_to_popup)unusedr  rP  	popuppathr  s   &&&&&r   rY  rY  F  s      66v   r#   c                     ] tR tRt$ ]! R R RR7      t]t]P                  t
R t]! ]P                  ]P                  4      tR]R&   ]! ]P                   ]P"                  4      tR	]R
&   ]! ]P&                  ]P(                  4      tR]R&   ]! ]P,                  ]P.                  4      tR]R&   ]! ]P2                  ]P4                  4      tR]R&   RtR# )disasm_line_tiZ  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   disasm_line_t.<lambda>[  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r_  [  r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   disasm_line_t_swiginitnew_disasm_line_trb   s   &*r   rd   disasm_line_t.__init__`  '    ++D,3#3% 	&r#   'place_t *'r   r  line	'color_t'prefix_color'bgcolor_t'bg_colorr   
is_defaultr$   N)r   r   r8   r9   r   r   r   r
   r   delete_disasm_line_tr-  rd   disasm_line_t_at_getdisasm_line_t_at_setr   __annotations__disasm_line_t_line_getdisasm_line_t_line_setrg  disasm_line_t_prefix_color_getdisasm_line_t_prefix_color_setri  disasm_line_t_bg_color_getdisasm_line_t_bg_color_setrk  disasm_line_t_is_default_getdisasm_line_t_is_default_setrl  r<   r$   r#   r   r]  r]  Z  s    -/I!#GH#88& |@@))+B +<<l D#  &|&&&&(L) ( %\""L$K$KMHk M I I113J 3r#   r]  c               $    V ^8  d   QhRRRRRR/# )rA   chobjr  r  rx   rC   r  r$   )rE   s   "r   rF   rF   s  s"     < <%5 <# < <r#   c                .    \         P                  ! W4      # r.   )r   py_chooser_base_t_get_row)rz  r  s   &&r   r|  r|  s  s    11%;;r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rA   text'disasm_text_t'ea1r  ea2truncate_linesr   rC   rD   r$   )rE   s   "r   rF   rF   w  s9     H H/ H HH%)H-1Hr#   c                0    \         P                  ! WW#4      # )zGenerate disassembly text for a range. 
        
:param text: result
:param ea1: start address
:param ea2: end address
:param truncate_lines: (on idainfo::margin))r   gen_disasm_text)r~  r  r  r  s   &&&&r   r  r  w  s     ''3GGr#   c                .    \         P                  ! V 4      # )a  Set a new colorizer for the navigation band.

The 'callback' is a function of 2 arguments:
   - ea (the EA to colorize for)
   - nbytes (the number of bytes at that EA)
and must return a 'long' value.

The previous colorizer is returned, allowing
the new 'callback' to use 'call_nav_colorizer'
with it.

Note that the previous colorizer is returned
only the first time set_nav_colorizer() is called:
due to the way the colorizers API is defined in C,
it is impossible to chain more than 2 colorizers
in IDAPython: the original, IDA-provided colorizer,
and a user-provided one.

Example: colorizer inverting the color provided by the IDA colorizer:
    def my_colorizer(ea, nbytes):
        global ida_colorizer
        orig = ida_kernwin.call_nav_colorizer(ida_colorizer, ea, nbytes)
        return long(~orig)

    ida_colorizer = ida_kernwin.set_nav_colorizer(my_colorizer)

:param callback: the new colorizer)r   set_nav_colorizer)r  s   &r   r  r    s    8 ))(33r#   c                    V ^8  d   QhRRRR/# )rA   r  r  nbytesrx   r$   )rE   s   "r   rF   rF     s     B Bo Bs Br#   c                0    \         P                  ! WV4      # )zTo be used with the IDA-provided colorizer, that is
returned as result of the first call to set_nav_colorizer().

:param colorizer: the Python colorizer to call
:param ea: the address to colorize
:param nbytes: the size of the range to colorize)r   call_nav_colorizer)	colorizerr  r  s   &&&r   r  r    s     **9&AAr#   c                    V ^8  d   QhRRRR/# )rA   countrx   rC   r  r$   )rE   s   "r   rF   rF     s     - - -< -r#   c                .    \         P                  ! V 4      # )zRetrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent) 
        
:param count: The number of lines to retrieve. -1 means: all)r   msg_get_lines)r  s   &r   r  r    s     %%e,,r#   c                    V ^8  d   QhRRRR/# )rA   ptrvalrx   rC   r  r$   )rE   s   "r   rF   rF     s     7 73 7+ 7r#   c                .    \         P                  ! V 4      # r.   )r   TWidget__from_ptrval__)r  s   &r   r  r    s    ..v66r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r   rx   rC   r$   )rE   s   "r   rF   rF     s!     + +# +C +3 +r#   c                .    \         P                  ! W4      # )zAdd space characters to the colored string so that its length will be at least 'len' characters. Don't trim the string if it is longer than 'len'. 
        
:param len: the desired length of the string
:returns: pointer to the end of input string)r   
add_spaces)r   r   s   &&r   r  r    s    
 ""1**r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   rD   r$   )rE   s   "r   rF   rF     s     / /3 /$ /r#   c                .    \         P                  ! V 4      # )a  Display a dialog box with "Please wait...". The behavior of the dialog box can be configured with well-known 
tokens, that should be placed at the start of the format string: 
 "NODELAY\n": the dialog will show immediately, instead of 
 appearing after usual grace threshold 
 "HIDECANCEL\n": the cancel button won't be added to the dialog box 
 and user_cancelled() will always return false (but 
 can be called to refresh UI) 
 Using "HIDECANCEL" implies "NODELAY" 
Plugins must call hide_wait_box() to close the dialog box, otherwise 
the user interface will remain disabled. 
 Note that, if the wait dialog is already visible, show_wait_box() will 
 1) push the currently-displayed text on a stack 
 2) display the new text 
Then, when hide_wait_box() is called, if that stack isn't empty its top 
label will be popped and restored in the wait dialog. 
This implies that a plugin should call hide_wait_box() exactly as many 
times as it called show_wait_box(), or the wait dialog might remain 
visible and block the UI. 
Also, in case the plugin knows the wait dialog is currently displayed, 
alternatively it can call replace_wait_box(), to replace the text of the
dialog without pushing the currently-displayed text on the stack. 
        )r   show_wait_boxr  s   &r   r  r    s    . %%g..r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF          ( (d (r#   c                 ,    \         P                  ! 4       # )z#Hide the "Please wait dialog box".
)r   hide_wait_boxr$   r#   r   r  r         %%''r#   c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#R7 R8 lt$R9 R: lt%R; R< lt&R= R> lt'R? R@ lt(])PT                  t+])PX                  t-])P\                  t/RA RB lt0RC tRDt1RE# )F$line_rendering_output_entries_refs_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   -line_rendering_output_entries_refs_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   -line_rendering_output_entries_refs_t_swiginit(new_line_rendering_output_entries_refs_trb   s   &*r   rd   -line_rendering_output_entries_refs_t.__init__  s!    BB4AA4H	Jr#   c                   V ^8  d   QhRR/# )rA   rC   z"'line_rendering_output_entry_t *&'r$   )rE   s   "r   rF   1line_rendering_output_entries_refs_t.__annotate__  s      !C r#   c                	2    \         P                  ! V .VO5!  # r.   )r   .line_rendering_output_entries_refs_t_push_backrb   s   &*r   rj   .line_rendering_output_entries_refs_t.push_back  s    JJ4  	r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r         P P Pr#   c                	.    \         P                  ! V 4      # r.   )r   -line_rendering_output_entries_refs_t_pop_backrr   s   &r   rs   -line_rendering_output_entries_refs_t.pop_back      II$OOr#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     L LS Lr#   c                	.    \         P                  ! V 4      # r.   )r   )line_rendering_output_entries_refs_t_sizerr   s   &r   r{   )line_rendering_output_entries_refs_t.size      EEdKKr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r         M Md Mr#   c                	.    \         P                  ! V 4      # r.   )r   *line_rendering_output_entries_refs_t_emptyrr   s   &r   r   *line_rendering_output_entries_refs_t.empty      FFtLLr#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   ('line_rendering_output_entry_t *const &'r$   )rE   s   "r   rF   r    s     P Ps PF Pr#   c                	.    \         P                  ! W4      # r.   )r   'line_rendering_output_entries_refs_t_atr   s   &&r   r   'line_rendering_output_entries_refs_t.at  s    CCDOOr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s     N Nt Nr#   c                	.    \         P                  ! V 4      # r.   )r   +line_rendering_output_entries_refs_t_qclearrr   s   &r   r   +line_rendering_output_entries_refs_t.qclear  s    GGMMr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   *line_rendering_output_entries_refs_t_clearrr   s   &r   r   *line_rendering_output_entries_refs_t.clear  r  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s      d r#   c                	2    \         P                  ! V .VO5!  # r.   )r   +line_rendering_output_entries_refs_t_resizerb   s   &*r   r   +line_rendering_output_entries_refs_t.resize  s    GG  	r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     P P Pr#   c                	.    \         P                  ! V 4      # r.   )r   -line_rendering_output_entries_refs_t_capacityrr   s   &r   r   -line_rendering_output_entries_refs_t.capacity  r  r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   r    s      3 $ r#   c                	0    \         P                  ! V V4      # r.   )r   ,line_rendering_output_entries_refs_t_reserver   s   &&r   r   ,line_rendering_output_entries_refs_t.reserve  s    HH 	r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   -line_rendering_output_entries_refs_t_truncaterr   s   &r   r   -line_rendering_output_entries_refs_t.truncate  r  r#   c                    V ^8  d   QhRRRR/# )rA   r   &'line_rendering_output_entries_refs_t'rC   rD   r$   )rE   s   "r   rF   r    s     O O< O Or#   c                	.    \         P                  ! W4      # r.   )r   )line_rendering_output_entries_refs_t_swapr   s   &&r   r   )line_rendering_output_entries_refs_t.swap      EEdNNr#   c                   V ^8  d   QhRR/# )rA   rC   "'line_rendering_output_entry_t **'r$   )rE   s   "r   rF   r    s     O O: Or#   c                	.    \         P                  ! V 4      # r.   )r   ,line_rendering_output_entries_refs_t_extractrr   s   &r   r   ,line_rendering_output_entries_refs_t.extract      HHNNr#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r   rx   rC   rD   r$   )rE   s   "r   rF   r    s"      :   r#   c                	0    \         P                  ! V W4      # r.   )r   +line_rendering_output_entries_refs_t_injectr   s   &&&r   r   +line_rendering_output_entries_refs_t.inject  s    GG 	r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   r          > $ r#   c                	.    \         P                  ! W4      # r.   )r   +line_rendering_output_entries_refs_t___eq__r   s   &&r   r   +line_rendering_output_entries_refs_t.__eq__      GG  	r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   +line_rendering_output_entries_refs_t___ne__r   s   &&r   r   +line_rendering_output_entries_refs_t.__ne__  r  r#   c                   V ^8  d   QhRR/# rA   rC   z<'qvector< line_rendering_output_entry_t * >::const_iterator'r$   )rE   s   "r   rF   r  !        Hr#   c                	2    \         P                  ! V .VO5!  # r.   )r   *line_rendering_output_entries_refs_t_beginrb   s   &*r   r   *line_rendering_output_entries_refs_t.begin!      FFt  	r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r  &  r  r#   c                	2    \         P                  ! V .VO5!  # r.   )r   (line_rendering_output_entries_refs_t_endrb   s   &*r   r   (line_rendering_output_entries_refs_t.end&  s    DDT  	r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   6'qvector< line_rendering_output_entry_t * >::iterator'rT   'line_rendering_output_entry_t'rC   r$   )rE   s   "r   rF   r  +  s'      >' Cr#   c                	0    \         P                  ! V W4      # r.   )r   +line_rendering_output_entries_refs_t_insertr   s   &&&r   r   +line_rendering_output_entries_refs_t.insert+  s     GG 	r#   c                   V ^8  d   QhRR/# )rA   rC   r  r$   )rE   s   "r   rF   r  2  s      Br#   c                	2    \         P                  ! V .VO5!  # r.   )r   *line_rendering_output_entries_refs_t_eraserb   s   &*r   r   *line_rendering_output_entries_refs_t.erase2  r  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r  7  r  r#   c                	2    \         P                  ! V .VO5!  # r.   )r   )line_rendering_output_entries_refs_t_findrb   s   &*r   r   )line_rendering_output_entries_refs_t.find7  s    EEd  	r#   c                    V ^8  d   QhRRRR/# rA   rT   r  rC   r   r$   )rE   s   "r   rF   r  <  s     N N4 N Nr#   c                	.    \         P                  ! W4      # r.   )r   (line_rendering_output_entries_refs_t_hasr  s   &&r   r  (line_rendering_output_entries_refs_t.has<  s    DDTMMr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  ?  s      ; t r#   c                	.    \         P                  ! W4      # r.   )r   /line_rendering_output_entries_refs_t_add_uniquer  s   &&r   r  /line_rendering_output_entries_refs_t.add_unique?  s    KK 	r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  C  s     O O5 O Or#   c                	.    \         P                  ! W4      # r.   )r   )line_rendering_output_entries_refs_t__delr  s   &&r   r  )line_rendering_output_entries_refs_t._delC  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r  F  s     O O Or#   c                	.    \         P                  ! V 4      # r.   )r   ,line_rendering_output_entries_refs_t___len__rr   s   &r   r  ,line_rendering_output_entries_refs_t.__len__F  r  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   r  I  s      S $L r#   c                	.    \         P                  ! W4      # r.   )r   0line_rendering_output_entries_refs_t___getitem__r  s   &&r   r  0line_rendering_output_entries_refs_t.__getitem__I  s    LL 	r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   r  rC   rD   r$   )rE   s   "r   rF   r  M  s"      S %D  r#   c                	0    \         P                  ! WV4      # r.   )r   0line_rendering_output_entries_refs_t___setitem__r  s   &&&r   r   0line_rendering_output_entries_refs_t.__setitem__M  s    LLQ 	r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r  Q  s      7 4 r#   c                	.    \         P                  ! W4      # r.   )r   +line_rendering_output_entries_refs_t_appendr  s   &&r   r%  +line_rendering_output_entries_refs_t.appendQ  r  r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r  U  r  r#   c                	.    \         P                  ! W4      # r.   )r   +line_rendering_output_entries_refs_t_extendr  s   &&r   r*  +line_rendering_output_entries_refs_t.extendU  r  r#   c                    V ^8  d   QhRRRR/# )rA   er  rC   rD   r$   )rE   s   "r   rF   r  \  s     O O%D O Or#   c                	.    \         P                  ! W4      # r.   )r   8line_rendering_output_entries_refs_t__internal_push_backr   r1  s   &&r   _internal_push_back8line_rendering_output_entries_refs_t._internal_push_back\  s     DDEEIN 	Or#   c                	r    V'       d/   VP                   '       d   V P                  V4       R Vn         R# R# R# )FN)r   r5  r4  s   &&r   rj   r  `  s)    $$Q'AI 1r#   r$   N)2r   r   r8   r9   r   r   r   r
   rd   r   +delete_line_rendering_output_entries_refs_tr-  rj   rs   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/  r0  r1  r2  r3  r4  r5  r<   r$   r#   r   r  r    s    -/I!#GHJ $OOPLMPNMPPOO



NOO %%E##D33HOr#   r  c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#R7 R8 lt$R9 R: lt%R; R< lt&R= R> lt'R? R@ lt(])PT                  t+])PX                  t-])P\                  t/RAt0RB# )Csection_lines_refs_tij  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   section_lines_refs_t.<lambda>k  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r<  k  r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   section_lines_refs_t_swiginitnew_section_lines_refs_trb   s   &*r   rd   section_lines_refs_t.__init__o  s'    224$$:%&*:, 	-r#   c                   V ^8  d   QhRR/# )rA   rC   z'twinline_t const *&'r$   )rE   s   "r   rF   !section_lines_refs_t.__annotate__t  s     H H!6 Hr#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_push_backrb   s   &*r   rj   section_lines_refs_t.push_backt  rg  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rC  w       @ @ @r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_pop_backrr   s   &r   rs   section_lines_refs_t.pop_backw  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rC  z  s     < <S <r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_sizerr   s   &r   r{   section_lines_refs_t.sizez      55d;;r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rC  }       = =d =r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_emptyrr   s   &r   r   section_lines_refs_t.empty}      66t<<r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'twinline_t const *const &'r$   )rE   s   "r   rF   rC    s     @ @s @9 @r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_atr   s   &&r   r   section_lines_refs_t.at  s    33D??r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rC    s     > >t >r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_qclearrr   s   &r   r   section_lines_refs_t.qclear  r}   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rC    rR  r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_clearrr   s   &r   r   section_lines_refs_t.clear  rV  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rC    s     E Ed Er#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_resizerb   s   &*r   r   section_lines_refs_t.resize  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rC    s     @ @ @r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_capacityrr   s   &r   r   section_lines_refs_t.capacity  r   r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   rC    s     D D3 D$ Dr#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_reserver   s   &&r   r   section_lines_refs_t.reserve      88CCr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rC    rH  r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_truncaterr   s   &r   r   section_lines_refs_t.truncate  r   r#   c                    V ^8  d   QhRRRR/# )rA   r   'section_lines_refs_t'rC   rD   r$   )rE   s   "r   rF   rC    s     ? ?, ? ?r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_swapr   s   &&r   r   section_lines_refs_t.swap      55d>>r#   c                   V ^8  d   QhRR/# )rA   rC   'twinline_t const **'r$   )rE   s   "r   rF   rC    s     ? ?- ?r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t_extractrr   s   &r   r   section_lines_refs_t.extract  r   r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r|  r   rx   rC   rD   r$   )rE   s   "r   rF   rC    s'     F F- FC F4 Fr#   c                	0    \         P                  ! WV4      # r.   )r   section_lines_refs_t_injectr   s   &&&r   r   section_lines_refs_t.inject  s    77EEr#   c                    V ^8  d   QhRRRR/# rA   r   rv  rC   r   r$   )rE   s   "r   rF   rC         A A. A$ Ar#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t___eq__r   s   &&r   r   section_lines_refs_t.__eq__  r   r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rC    r  r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t___ne__r   s   &&r   r   section_lines_refs_t.__ne__  r   r#   c                   V ^8  d   QhRR/# rA   rC   z/'qvector< twinline_t const * >::const_iterator'r$   )rE   s   "r   rF   rC    s     D DL Dr#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_beginrb   s   &*r   r   section_lines_refs_t.begin  r   r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rC    s     B BJ Br#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_endrb   s   &*r   r   section_lines_refs_t.end  s    44TADAAr#   c               $    V ^8  d   QhRRRRRR/# )rA   r   )'qvector< twinline_t const * >::iterator'rT   'twinline_t'rC   r$   )rE   s   "r   rF   rC    s)     E EB EEAEr#   c                	0    \         P                  ! WV4      # r.   )r   section_lines_refs_t_insertr   s   &&&r   r   section_lines_refs_t.insert  s    77!DDr#   c                   V ^8  d   QhRR/# )rA   rC   r  r$   )rE   s   "r   rF   rC    s     D DF Dr#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_eraserb   s   &*r   r   section_lines_refs_t.erase  r   r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rC    s     C CK Cr#   c                	2    \         P                  ! V .VO5!  # r.   )r   section_lines_refs_t_findrb   s   &*r   r   section_lines_refs_t.find      55dBTBBr#   c                    V ^8  d   QhRRRR/# rA   rT   r  rC   r   r$   )rE   s   "r   rF   rC    s     > >\ >T >r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_hasr  s   &&r   r  section_lines_refs_t.has      44T==r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rC    s     E EL ED Er#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_add_uniquer  s   &&r   r  section_lines_refs_t.add_unique      ;;DDDr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rC    s     ? ?l ?d ?r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t__delr  s   &&r   r  section_lines_refs_t._del  rz  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rC    s     ? ? ?r#   c                	.    \         P                  ! V 4      # r.   )r   section_lines_refs_t___len__rr   s   &r   r  section_lines_refs_t.__len__  r   r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   rX  r$   )rE   s   "r   rF   rC    s     F FS F$? Fr#   c                	.    \         P                  ! W4      # r.   )r    section_lines_refs_t___getitem__r  s   &&r   r   section_lines_refs_t.__getitem__  r  r#   c               $    V ^8  d   QhRRRRRR/# rA   r  rx   rZ   r  rC   rD   r$   )rE   s   "r   rF   rC    s&     I IS I\ IT Ir#   c                	0    \         P                  ! WV4      # r.   )r    section_lines_refs_t___setitem__r  s   &&&r   r    section_lines_refs_t.__setitem__  s    <<TaHHr#   c                    V ^8  d   QhRRRR/# rA   rT   r  rC   rD   r$   )rE   s   "r   rF   rC    s     A A A Ar#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_appendr  s   &&r   r%  section_lines_refs_t.append  r   r#   c                    V ^8  d   QhRRRR/# rA   rT   rv  rC   rD   r$   )rE   s   "r   rF   rC    r  r#   c                	.    \         P                  ! W4      # r.   )r   section_lines_refs_t_extendr  s   &&r   r*  section_lines_refs_t.extend  r   r#   r$   N)1r   r   r8   r9   r   r   r   r
   rd   r   delete_section_lines_refs_tr-  rj   rs   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/  r0  r1  r2  r3  r4  r<   r$   r#   r   r:  r:  j  s    -/I!#GH- $??H@<=@>=E@D@??FAADBEDC>E??FIAA%%E##D33Hr#   r:  c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#R7 R8 lt$R9 R: lt%R; R< lt&R= R> lt'R? R@ lt(RA RB lt)]*PV                  t,]*PZ                  t.]*P^                  t0RCt1RD# )Esections_lines_refs_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   sections_lines_refs_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   sections_lines_refs_t_swiginitnew_sections_lines_refs_trb   s   &*r   rd   sections_lines_refs_t.__init__  s'    33D,%%;&'+;- 	.r#   c                   V ^8  d   QhRR/# )rA   rC   z'section_lines_refs_t &'r$   )rE   s   "r   rF   "sections_lines_refs_t.__annotate__  s     I I!9 Ir#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_push_backrb   s   &*r   rj   sections_lines_refs_t.push_back  r  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r         A A Ar#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_pop_backrr   s   &r   rs   sections_lines_refs_t.pop_back  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     = =S =r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_sizerr   s   &r   r{   sections_lines_refs_t.size  rV  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r         > >d >r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_emptyrr   s   &r   r   sections_lines_refs_t.empty  r}   r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'section_lines_refs_t const &'r$   )rE   s   "r   rF   r    s     A As A< Ar#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_atr   s   &&r   r   sections_lines_refs_t.at  s    44T@@r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s     ? ?t ?r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_qclearrr   s   &r   r   sections_lines_refs_t.qclear  r   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_clearrr   s   &r   r   sections_lines_refs_t.clear  r}   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s     F Fd Fr#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_resizerb   s   &*r   r   sections_lines_refs_t.resize  r   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s     D DD Dr#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_growrb   s   &*r   r   sections_lines_refs_t.grow  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     A A Ar#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_capacityrr   s   &r   r   sections_lines_refs_t.capacity  r   r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   r    s     E E3 E$ Er#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_reserver   s   &&r   r   sections_lines_refs_t.reserve  s    99$DDr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_truncaterr   s   &r   r   sections_lines_refs_t.truncate  r   r#   c                    V ^8  d   QhRRRR/# )rA   r   'sections_lines_refs_t'rC   rD   r$   )rE   s   "r   rF   r    s     @ @- @ @r#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_swapr   s   &&r   r   sections_lines_refs_t.swap  r  r#   c                   V ^8  d   QhRR/# )rA   rC   z'section_lines_refs_t *'r$   )rE   s   "r   rF   r    s     @ @0 @r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t_extractrr   s   &r   r   sections_lines_refs_t.extract  r   r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   rv  r   rx   rC   rD   r$   )rE   s   "r   rF   r    s'     G G. GS GD Gr#   c                	0    \         P                  ! WV4      # r.   )r   sections_lines_refs_t_injectr   s   &&&r   r   sections_lines_refs_t.inject  s    88#FFr#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   r  
       B B/ B4 Br#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t___eq__r   s   &&r   r   sections_lines_refs_t.__eq__
      88AAr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t___ne__r   s   &&r   r   sections_lines_refs_t.__ne__  r  r#   c                   V ^8  d   QhRR/# rA   rC   z1'qvector< section_lines_refs_t >::const_iterator'r$   )rE   s   "r   rF   r    s     E EN Er#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_beginrb   s   &*r   r   sections_lines_refs_t.begin  r   r#   c                   V ^8  d   QhRR/# r#  r$   )rE   s   "r   rF   r    s     C CL Cr#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_endrb   s   &*r   r   sections_lines_refs_t.end  r  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   +'qvector< section_lines_refs_t >::iterator'rT   rv  rC   r$   )rE   s   "r   rF   r    s)     F FD FF"MFr#   c                	0    \         P                  ! WV4      # r.   )r   sections_lines_refs_t_insertr   s   &&&r   r   sections_lines_refs_t.insert  s    881EEr#   c                   V ^8  d   QhRR/# )rA   rC   r,  r$   )rE   s   "r   rF   r    s     E EH Er#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_eraserb   s   &*r   r   sections_lines_refs_t.erase  r   r#   c                   V ^8  d   QhRR/# r#  r$   )rE   s   "r   rF   r    s     D DM Dr#   c                	2    \         P                  ! V .VO5!  # r.   )r   sections_lines_refs_t_findrb   s   &*r   r   sections_lines_refs_t.find  r   r#   c                    V ^8  d   QhRRRR/# rA   rT   rv  rC   r   r$   )rE   s   "r   rF   r     s     ? ?+ ?t ?r#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_hasr  s   &&r   r  sections_lines_refs_t.has   rz  r#   c                    V ^8  d   QhRRRR/# r9  r$   )rE   s   "r   rF   r  #  s     F F2 Fd Fr#   c                	.    \         P                  ! W4      # r.   )r    sections_lines_refs_t_add_uniquer  s   &&r   r   sections_lines_refs_t.add_unique#  r  r#   c                    V ^8  d   QhRRRR/# r9  r$   )rE   s   "r   rF   r  &  s     @ @, @ @r#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t__delr  s   &&r   r  sections_lines_refs_t._del&  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r  )       @ @ @r#   c                	.    \         P                  ! V 4      # r.   )r   sections_lines_refs_t___len__rr   s   &r   r  sections_lines_refs_t.__len__)  r   r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   r  ,  s     G GS G$B Gr#   c                	.    \         P                  ! W4      # r.   )r   !sections_lines_refs_t___getitem__r  s   &&r   r  !sections_lines_refs_t.__getitem__,  r
  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   rv  rC   rD   r$   )rE   s   "r   rF   r  /  s'     J JS J%; Jt Jr#   c                	0    \         P                  ! WV4      # r.   )r   !sections_lines_refs_t___setitem__r  s   &&&r   r   !sections_lines_refs_t.__setitem__/  s    ==dqIIr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  2  s     B B. B$ Br#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_appendr  s   &&r   r%  sections_lines_refs_t.append2  r  r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r  5  r  r#   c                	.    \         P                  ! W4      # r.   )r   sections_lines_refs_t_extendr  s   &&r   r*  sections_lines_refs_t.extend5  r  r#   r$   N)2r   r   r8   r9   r   r   r   r
   rd   r   delete_sections_lines_refs_tr-  rj   rs   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/  r0  r1  r2  r3  r4  r<   r$   r#   r   r  r    s    -/I!#GH. $@@IA=>A?>FDAEA@@GBBECFED?F@@GJBB%%E##D33Hr#   r  c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#]$PJ                  t&]$PN                  t(]$PR                  t*R7t+R8# )9text_ti?  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   text_t.<lambda>@  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r^  @  r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   text_t_swiginit
new_text_trb   s   &*r   rd   text_t.__init__D  s    $$T<+B+BD+IJr#   c                   V ^8  d   QhRR/# )rA   rC   z'twinline_t &'r$   )rE   s   "r   rF   text_t.__annotate__H  s     : : :r#   c                	2    \         P                  ! V .VO5!  # r.   )r   text_t_push_backrb   s   &*r   rj   text_t.push_backH  s    ,,T9D99r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  K       2 2 2r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_pop_backrr   s   &r   rs   text_t.pop_backK  rZ  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   re  N  s     . .S .r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_sizerr   s   &r   r{   text_t.sizeN  s    ''--r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   re  Q       / /d /r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_emptyrr   s   &r   r   text_t.emptyQ      ((..r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'twinline_t const &'r$   )rE   s   "r   rF   re  T  s     2 2s 22 2r#   c                	.    \         P                  ! W4      # r.   )r   	text_t_atr   s   &&r   r   	text_t.atT  s    %%d11r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  W  s     0 0t 0r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_qclearrr   s   &r   r   text_t.qclearW  rT  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  Z  rs  r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_clearrr   s   &r   r   text_t.clearZ  rw  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  ]  s     7 7d 7r#   c                	2    \         P                  ! V .VO5!  # r.   )r   text_t_resizerb   s   &*r   r   text_t.resize]  s    ))$666r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  `  s     5 5D 5r#   c                	2    \         P                  ! V .VO5!  # r.   )r   text_t_growrb   s   &*r   r   text_t.grow`  s    ''4t44r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   re  c  s     2 2 2r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_capacityrr   s   &r   r   text_t.capacityc  rZ  r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   re  f  s     6 63 6$ 6r#   c                	.    \         P                  ! W4      # r.   )r   text_t_reserver   s   &&r   r   text_t.reservef  s    **455r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   re  i  rj  r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_truncaterr   s   &r   r   text_t.truncatei  rZ  r#   c                    V ^8  d   QhRRRR/# )rA   r   'text_t'rC   rD   r$   )rE   s   "r   rF   re  l  s     1 1h 1$ 1r#   c                	.    \         P                  ! W4      # r.   )r   text_t_swapr   s   &&r   r   text_t.swapl  s    ''00r#   c                   V ^8  d   QhRR/# )rA   rC   z'twinline_t *'r$   )rE   s   "r   rF   re  o  s     1 1 1r#   c                	.    \         P                  ! V 4      # r.   )r   text_t_extractrr   s   &r   r   text_t.extracto      **400r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r   rx   rC   rD   r$   )rE   s   "r   rF   re  r  s!     8 8 83 8$ 8r#   c                	0    \         P                  ! WV4      # r.   )r   text_t_injectr   s   &&&r   r   text_t.injectr  s    ))$377r#   c                   V ^8  d   QhRR/# rA   rC   z''qvector< twinline_t >::const_iterator'r$   )rE   s   "r   rF   re  u  s     6 6D 6r#   c                	2    \         P                  ! V .VO5!  # r.   )r   text_t_beginrb   s   &*r   r   text_t.beginu      ((555r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   re  x  s     4 4B 4r#   c                	2    \         P                  ! V .VO5!  # r.   )r   
text_t_endrb   s   &*r   r   
text_t.endx  s    &&t3d33r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  rT   rC   !'qvector< twinline_t >::iterator'r$   )rE   s   "r   rF   re  {  s"     7 7 7, 7-7r#   c                	0    \         P                  ! WV4      # r.   )r   text_t_insertr   s   &&&r   r   text_t.insert{  s    ))$A66r#   c                   V ^8  d   QhRR/# )rA   rC   r  r$   )rE   s   "r   rF   re    s     6 6> 6r#   c                	2    \         P                  ! V .VO5!  # r.   )r   text_t_eraserb   s   &*r   r   text_t.erase  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   re    s     1 1 1r#   c                	.    \         P                  ! V 4      # r.   )r   text_t___len__rr   s   &r   r  text_t.__len__  r  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   ry  r$   )rE   s   "r   rF   re    s     8 8S 8$8 8r#   c                	.    \         P                  ! W4      # r.   )r   text_t___getitem__r  s   &&r   r  text_t.__getitem__      ..t77r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   re    s!     ; ;S ;\ ;T ;r#   c                	0    \         P                  ! WV4      # r.   )r   text_t___setitem__r  s   &&&r   r   text_t.__setitem__  s    ..t::r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   re    s     3 3 3 3r#   c                	.    \         P                  ! W4      # r.   )r   text_t_appendr  s   &&r   r%  text_t.append      ))$22r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   re    s     3 3 3D 3r#   c                	.    \         P                  ! W4      # r.   )r   text_t_extendr  s   &&r   r*  text_t.extend  r  r#   r$   N),r   r   r8   r9   r   r   r   r
   rd   r   delete_text_tr-  rj   rs   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r%  r*  r.  r/  r0  r1  r2  r3  r4  r<   r$   r#   r   r\  r\  ?  s    -/I!#GHK#11:2./20/75262118647618;33%%E##D33Hr#   r\  c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#R7 R8 lt$R9 R: lt%R; R< lt&R= R> lt'](PR                  t*](PV                  t,](PZ                  t.R?t/R@# )Async_source_vec_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   sync_source_vec_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   sync_source_vec_t_swiginitnew_sync_source_vec_trb   s   &*r   rd   sync_source_vec_t.__init__  s'    //l!!7"#'7) 	*r#   c                    V ^8  d   QhRRRR/# rA   rT   'sync_source_t'rC   rD   r$   )rE   s   "r   rF   sync_source_vec_t.__annotate__  s     A A? Ad Ar#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_push_backr  s   &&r   rj   sync_source_vec_t.push_back  r   r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r         = = =r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_pop_backrr   s   &r   rs   sync_source_vec_t.pop_back  rV  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     9 9S 9r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_sizerr   s   &r   r{   sync_source_vec_t.size      22488r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r         : :d :r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_emptyrr   s   &r   r   sync_source_vec_t.empty      33D99r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'sync_source_t const &'r$   )rE   s   "r   rF   r    s     = =s =5 =r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_atr   s   &&r   r   sync_source_vec_t.at  s    00<<r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    s     ; ;t ;r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_qclearrr   s   &r   r   sync_source_vec_t.qclear      44T::r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_clearrr   s   &r   r   sync_source_vec_t.clear  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     = = =r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_capacityrr   s   &r   r   sync_source_vec_t.capacity  rV  r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   r    s     A A3 A$ Ar#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_reserver   s   &&r   r   sync_source_vec_t.reserve  s    55d@@r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_truncaterr   s   &r   r   sync_source_vec_t.truncate  rV  r#   c                    V ^8  d   QhRRRR/# )rA   r   'sync_source_vec_t'rC   rD   r$   )rE   s   "r   rF   r    s     < <) <T <r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_swapr   s   &&r   r   sync_source_vec_t.swap      224;;r#   c                   V ^8  d   QhRR/# )rA   rC   z'sync_source_t *'r$   )rE   s   "r   rF   r    s     < <) <r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t_extractrr   s   &r   r   sync_source_vec_t.extract  rP  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r   rx   rC   rD   r$   )rE   s   "r   rF   r    s&     C C Cc CT Cr#   c                	0    \         P                  ! WV4      # r.   )r   sync_source_vec_t_injectr   s   &&&r   r   sync_source_vec_t.inject  s    44TcBBr#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   r         > >+ >t >r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t___eq__r   s   &&r   r   sync_source_vec_t.__eq__  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t___ne__r   s   &&r   r   sync_source_vec_t.__ne__  r  r#   c                   V ^8  d   QhRR/# rA   rC   z*'qvector< sync_source_t >::const_iterator'r$   )rE   s   "r   rF   r    s     A AG Ar#   c                	2    \         P                  ! V .VO5!  # r.   )r   sync_source_vec_t_beginrb   s   &*r   r   sync_source_vec_t.begin      33D@4@@r#   c                   V ^8  d   QhRR/# r$  r$   )rE   s   "r   rF   r    s     ? ?E ?r#   c                	2    \         P                  ! V .VO5!  # r.   )r   sync_source_vec_t_endrb   s   &*r   r   sync_source_vec_t.end  s    11$>>>r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  rT   rC   $'qvector< sync_source_t >::iterator'r$   )rE   s   "r   rF   r    s'     B B B_ B0Br#   c                	0    \         P                  ! WV4      # r.   )r   sync_source_vec_t_insertr   s   &&&r   r   sync_source_vec_t.insert  s    44TqAAr#   c                   V ^8  d   QhRR/# )rA   rC   r.  r$   )rE   s   "r   rF   r    s     A AA Ar#   c                	2    \         P                  ! V .VO5!  # r.   )r   sync_source_vec_t_eraserb   s   &*r   r   sync_source_vec_t.erase  r(  r#   c                   V ^8  d   QhRR/# r$  r$   )rE   s   "r   rF   r    s     @ @F @r#   c                	2    \         P                  ! V .VO5!  # r.   )r   sync_source_vec_t_findrb   s   &*r   r   sync_source_vec_t.find  s    224?$??r#   c                    V ^8  d   QhRRRR/# rA   rT   r  rC   r   r$   )rE   s   "r   rF   r    s     ; ;_ ; ;r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_hasr  s   &&r   r  sync_source_vec_t.has      11$::r#   c                    V ^8  d   QhRRRR/# r;  r$   )rE   s   "r   rF   r    s     B BO Bt Br#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_add_uniquer  s   &&r   r  sync_source_vec_t.add_unique  r  r#   c                    V ^8  d   QhRRRR/# r;  r$   )rE   s   "r   rF   r    s     < <o < <r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t__delr  s   &&r   r  sync_source_vec_t._del  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     < < <r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_vec_t___len__rr   s   &r   r  sync_source_vec_t.__len__  rP  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   r    s     C CS C$; Cr#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t___getitem__r  s   &&r   r  sync_source_vec_t.__getitem__  r   r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   r  rC   rD   r$   )rE   s   "r   rF   r    s&     F FS F_ F Fr#   c                	0    \         P                  ! WV4      # r.   )r   sync_source_vec_t___setitem__r  s   &&&r   r   sync_source_vec_t.__setitem__  s    99$1EEr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r    s     > > >4 >r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_appendr  s   &&r   r%  sync_source_vec_t.append  r  r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_vec_t_extendr  s   &&r   r*  sync_source_vec_t.extend  r  r#   r$   N)0r   r   r8   r9   r   r   r   r
   rd   r   delete_sync_source_vec_tr-  rj   rs   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/  r0  r1  r2  r3  r4  r<   r$   r#   r   r  r    s    -/I!#GH* $<<A=9:=;:=A=<<C>>A?BA@;B<<CF>>%%E##D33Hr#   r  c                   V ^8  d   QhRR/# rA   rC   r  r$   )rE   s   "r   rF   rF      s     - -3 -r#   c                 ,    \         P                  ! 4       # )z1Get IDA kernel version (in a string like "5.1").
)r   get_kernel_versionr$   r#   r   r`  r`          **,,r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r|  'char *'pathsizerx   handlez	'void **'rC   r   r$   )rE   s   "r   rF   rF   &  s)     ? ? ?# ? ??r#   c                0    \         P                  ! WV4      # r.   )r   is_ida_library)r|  rd  re  s   &&&r   rg  rg  &  s    &&tv>>r#   c                     ] tR tRt$ ]! R R RR7      tR t]t]! ]	P                  ]	P                  4      tR]R&    R	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. lt R/ R0 lt!R1 R2 lt"]#R3 R4 l4       t$]#R5 R6 l4       t%]#R7 R8 l4       t&R9 R: lt'R;t(R<# )=place_ti+  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   place_t.<lambda>,  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rk  ,  r[   r#   r\   r]   c                	    \        R 4      hz*No constructor defined - class is abstractr4  r5  s   &*,r   rd   place_t.__init__/      IJJr#   rx   lnnumc                    V ^8  d   QhRRRR/# rA   ud'void *'rC   rD   r$   )rE   s   "r   rF   place_t.__annotate__7  s     5 5 5T 5r#   c                	.    \         P                  ! W4      # r.   )r   place_t__printr   rt  s   &&r   _printplace_t._print7  s    **444r#   c                    V ^8  d   QhRRRR/# )rA   rt  ru  rC   rx   r$   )rE   s   "r   rF   rv  :  s     5 5 5S 5r#   c                .    \         P                  ! W4      # )zMap the location to a number. This mapping is used to draw the vertical scrollbar. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t)r   place_t_touvalry  s   &&r   touvalplace_t.touval:       **444r#   c                   V ^8  d   QhRR/# rA   rC   rf  r$   )rE   s   "r   rF   rv  @  s     0 0k 0r#   c                .    \         P                  ! V 4      # )zeClone the location. 
        
:returns: a pointer to a copy of the current location in dynamic memory)r   place_t_clonerr   s   &r   cloneplace_t.clone@  s     ))$//r#   c                    V ^8  d   QhRRRR/# )rA   _fromr  rC   rD   r$   )rE   s   "r   rF   rv  F  s     : :i :4 :r#   c                .    \         P                  ! W4      # )z:Copy the specified location object to the current object.
)r   place_t_copyfrom)r   r  s   &&r   copyfromplace_t.copyfromF  s     ,,T99r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   rt  ru  rT   rx   rq  rC   rf  r$   )rE   s   "r   rF   rv  K  s.     B BH B BS BK Br#   c                0    \         P                  ! WW#4      # )a  Map a number to a location. When the user clicks on the scrollbar and drags it, we need to determine the location corresponding to the new scrollbar position. This function is used to determine it. It builds a location object for the specified 'x' and returns a pointer to it. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:param x: number to map
:param lnnum: line number to initialize 'lnnum'
:returns: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES)r   place_t_makeplace)r   rt  rT   rq  s   &&&&r   	makeplaceplace_t.makeplaceK  s     --dAAr#   c                    V ^8  d   QhRRRR/# )rA   t2r  rC   rx   r$   )rE   s   "r   rF   rv  T  s     6 6) 6s 6r#   c                .    \         P                  ! W4      # )zGDeprecated. Please consider compare2(const place_t *, void *) instead.
)r   place_t_compare)r   r  s   &&r   compareplace_t.compareT  s     ++D55r#   c                    V ^8  d   QhRRRR/# rs  r$   )rE   s   "r   rF   rv  Y  s     5 5 5T 5r#   c                .    \         P                  ! W4      # )at  Adjust the current location to point to a displayable object. This function validates the location and makes sure that it points to an existing object. For example, if the location points to the middle of an instruction, it will be adjusted to point to the beginning of the instruction. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t)r   place_t_adjustry  s   &&r   adjustplace_t.adjustY  r  r#   c                    V ^8  d   QhRRRR/# rA   rt  ru  rC   r   r$   )rE   s   "r   rF   rv  _       3 3x 34 3r#   c                .    \         P                  ! W4      # )zMove to the previous displayable location. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: success)r   place_t_prevry  s   &&r   prevplace_t.prev_      
 ((22r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rv  f  r  r#   c                .    \         P                  ! W4      # )zMove to the next displayable location. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: success)r   place_t_nextry  s   &&r   nextplace_t.nextf  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rv  m  s     8 8H 8 8r#   c                .    \         P                  ! W4      # )zAre we at the first displayable object? 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: true if the current location points to the first displayable object)r   place_t_beginningry  s   &&r   	beginningplace_t.beginningm  s    
 --d77r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rv  t  s     5 5 5T 5r#   c                .    \         P                  ! W4      # )zAre we at the last displayable object? 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: true if the current location points to the last displayable object)r   place_t_endingry  s   &&r   endingplace_t.endingt  s    
 **444r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rv  {  s     4 4$ 4r#   c                .    \         P                  ! V 4      # )zSerialize this instance. It is fundamental that all instances of a particular subclass of place_t occupy the same number of bytes when serialized. 
        )r   place_t_serializerr   s   &r   	serializeplace_t.serialize{  s     --d33r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rv    s     - -3 -r#   c                .    \         P                  ! V 4      # )zbGet the place's ID (i.e., the value returned by register_place_class()) 
        
:returns: the id)r   
place_t_idrr   s   &r   id
place_t.id  s     &&t,,r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   rv    s     / /S /r#   c                .    \         P                  ! V 4      # )a@  Get this place type name. All instances of a given class must return the same string. 
        
:returns: the place type name. Please try and pick something that is not too generic, as it might clash w/ other plugins. A good practice is to prefix the class name with the name of your plugin. E.g., "myplugin:srcplace_t".)r   place_t_namerr   s   &r   r   place_t.name       ((..r#   c                   V ^8  d   QhRR/# rA   rC   r  r$   )rE   s   "r   rF   rv    s     / /_ /r#   c                .    \         P                  ! V 4      # )zTMap the location to an ea_t. 
        
:returns: the corresponding ea_t, or BADADDR;)r   place_t_toearr   s   &r   toeaplace_t.toea  r  r#   c                    V ^8  d   QhRRRR/# )rA   arg2z'segm_move_infos_t const &'rC   r   r$   )rE   s   "r   rF   rv    s     7 76 7$ 7r#   c                .    \         P                  ! W4      # )zXRebase the place instance 
        
:returns: true if place was rebased, false otherwise)r   place_t_rebaser   r  s   &&r   rebaseplace_t.rebase  s     **466r#   c                    V ^8  d   QhRRRR/# )rA   r  z
'uint32 *'rC   rf  r$   )rE   s   "r   rF   rv    s     6 6* 6 6r#   c                .    \         P                  ! W4      # )a  Visit this place, possibly 'unhiding' a section of text. If entering that place required some expanding, a place_t should be returned that represents that section, plus some flags for later use by 'leave()'. 
        
:returns: a place_t corresponding to the beginning of the section of text that had to be expanded. That place_t's leave() will be called with the flags contained in 'out_flags' when the user navigates away from it.)r   place_t_enterr  s   &&r   enterplace_t.enter  s     ))$55r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   rD   r$   )rE   s   "r   rF   rv    s     6 6# 6 6r#   c                .    \         P                  ! W4      # )zoLeave this place, possibly 'hiding' a section of text that was previously expanded (at enter()-time.) 
        )r   place_t_leaver  s   &&r   leaveplace_t.leave  s     ))$55r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  arg3ru  rC   rx   r$   )rE   s   "r   rF   rv    s!     = =9 =H = =r#   c                0    \         P                  ! WV4      # )aR  Compare two locations except line numbers (lnnum). This function is used to organize loops. For example, if the user has selected a range, its boundaries are remembered as location objects. Any operation within the selection will have the following look: for ( loc=starting_location; loc < ending_location; loc.next() ) In this loop, the comparison function is used. 
        
:param t2: the place to compare this one to.
:returns: -1: if the current location is less than 't2'
:returns: 0: if the current location is equal to than 't2'
:returns: 1: if the current location is greater than 't2')r   place_t_compare2)r   r  r  s   &&&r   compare2place_t.compare2  s     ,,Tt<<r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  rt  ru  rC   r   r$   )rE   s   "r   rF   rv    s!     9 9 9 9D 9r#   c                0    \         P                  ! WV4      # )ax  Compare two places for equality, ignoring line numbers (lnnum). This is semantically different than `compare2`, although by default it is implemented in terms of it for backwards-compatibility. `compare2` implements a three-way comparison to see if two places *sort* less than, equal to, or greater than. This method actually looks for equality. Thus, `t1->equals(t2, ud)` implies `t1->compare2(t2, ud) == 0`, but the reverse is not always true. An example of this is for adjustable places that are sensitive to the x-cursor position, and need to compare differently as a result.

:returns: true if the two places match / are equal.)r   place_t_equals)r   r  rt  s   &&&r   equalsplace_t.equals  s     **4R88r#   c                    V ^8  d   QhRRRR/# )rA   _inz'bytevec_t const &'rC   r   r$   )rE   s   "r   rF   rv    s     ; ;2 ;d ;r#   c                .    \         P                  ! W4      # )zDe-serialize into this instance. 'pptr' should be incremented by as many bytes as de-serialization consumed. 
        
:returns: whether de-serialization was successful)r   place_t_deserializer   r  s   &&r   deserializeplace_t.deserialize  s     //::r#   c                    V ^8  d   QhRRRR/# )rA   pr  rC   z'idaplace_t *'r$   )rE   s   "r   rF   rv    s     5 5 5n 5r#   c                	.    \         P                  ! V 4      # r.   )r   place_t_as_idaplace_tr  s   &r   as_idaplace_tplace_t.as_idaplace_t  s    11!44r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   z'simpleline_place_t *'r$   )rE   s   "r   rF   rv    s     = = =.D =r#   c                	.    \         P                  ! V 4      # r.   )r   place_t_as_simpleline_place_tr  s   &r   as_simpleline_place_tplace_t.as_simpleline_place_t  s    99!<<r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   z'tiplace_t *'r$   )rE   s   "r   rF   rv    s     4 4	 4] 4r#   c                	.    \         P                  ! V 4      # r.   )r   place_t_as_tiplace_tr  s   &r   as_tiplace_tplace_t.as_tiplace_t  s    0033r#   c                    V ^8  d   QhRRRR/# )rA   maxsizerx   rC   zTuple[List[str], int, int, int]r$   )rE   s   "r   rF   rv    s     @ @C @+J @r#   c                0    \         P                  ! WV4      # )zGenerate text lines for the current location.

:param ud: The user data object
:param maxsize: The maximum number of lines to generate
:returns: a tuple (lines-of-text, default-line-number, prefix-color, background-color))r   place_t_generate)r   rt  r  s   &&&r   generateplace_t.generate  s     ,,Tw??r#   r$   N))r   r   r8   r9   r   r   rd   r   r
   r   place_t_lnnum_getplace_t_lnnum_setrq  rp  rz  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  staticmethodr  r  r  r  r<   r$   r#   r   ri  ri  +  s    -/I!#GKH,88,E3 550:
B6
533854
-//766
=9; 5 5 = = 4 4@ @r#   ri  c               (    V ^8  d   QhRRRRRRRR/# )rA   t1r  r  rt  ru  rC   rx   r$   )rE   s   "r   rF   rF     s(     / /9 /) / /S /r#   c                0    \         P                  ! WV4      # r.   )r   
l_compare2r  r  rt  s   &&&r   r
  r
    s    ""22..r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  r  r  rt  ru  rC   r   r$   )rE   s   "r   rF   rF     s(     - - -	 -x -4 -r#   c                0    \         P                  ! WV4      # r.   )r   l_equalsr  s   &&&r   r  r    s      ,,r#   c                  &   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    R t]P(                  tRtR# )simpleline_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   simpleline_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   r  rg  rh  colorrj  bgcolorc                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   simpleline_t_swiginitnew_simpleline_trb   s   &*r   rd   simpleline_t.__init__  s'    **42"2$ 	%r#   r$   N)r   r   r8   r9   r   r   r   r
   r   simpleline_t_line_getsimpleline_t_line_setrg  rp  simpleline_t_color_getsimpleline_t_color_setr  simpleline_t_bgcolor_getsimpleline_t_bgcolor_setr  rd   delete_simpleline_tr-  r<   r$   r#   r   r  r    s    -/I!#GH;;\D#  C C++-E9 -#L$I$I--/G[ /% $77r#   r  c                      ] tR tRt$ ]! R R RR7      tR t]t]! ]	P                  ]	P                  4      tR]R&   R	tR
# )simpleline_place_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   simpleline_place_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r$    r[   r#   r\   r]   c                	    \        R 4      hrn  r4  r5  s   &*,r   rd   simpleline_place_t.__init__  rp  r#   rx   r  r$   N)r   r   r8   r9   r   r   rd   r   r
   r   simpleline_place_t_n_getsimpleline_place_t_n_setr  rp  r<   r$   r#   r   r"  r"    sF    -/I!#GKHl;;\  "As "r#   r"  c                      ] tR tRt$ ]! R R RR7      tR t]t]! ]	P                  ]	P                  4      tR]R&   R	tR
# )
idaplace_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   idaplace_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r-    r[   r#   r\   r]   c                	    \        R 4      hrn  r4  r5  s   &*,r   rd   idaplace_t.__init__	  rp  r#   r  r  r$   N)r   r   r8   r9   r   r   rd   r   r
   r   idaplace_t_ea_getidaplace_t_ea_setr  rp  r<   r$   r#   r   r+  r+    sG    -/I!#GKH"<#A#A&&(B (r#   r+  c                    V ^8  d   QhRRRR/# rA   c'tif_cursor_t'rC   r   r$   )rE   s   "r   rF   rF          0 0N 0d 0r#   c                .    \         P                  ! V 4      # r.   )r   is_tif_cursor_headerr5  s   &r   r9  r9        ,,Q//r#   c                    V ^8  d   QhRRRR/# r4  r$   )rE   s   "r   rF   rF     r7  r#   c                .    \         P                  ! V 4      # r.   )r   is_tif_cursor_footerr:  s   &r   r>  r>    r;  r#   c                    V ^8  d   QhRRRR/# r4  r$   )rE   s   "r   rF   rF     s     / /> /T /r#   c                .    \         P                  ! V 4      # r.   )r   is_tif_cursor_indexr:  s   &r   rA  rA    s    ++A..r#   c                  L   ] tR tRt$ ]! R R RR7      tR t]t]! ]	P                  ]	P                  4      tR]R&   ]! ]	P                  ]	P                  4      tR	]R
&   R R ltR R ltR R ltR R ltR R ltR R ltR R ltR#R R lltR R ltR R ltR  R! ltR"tR# )$	tiplace_ti!  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   tiplace_t.<lambda>"  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rE  "  r[   r#   r\   r]   c                	    \        R 4      hrn  r4  r5  s   &*,r   rd   tiplace_t.__init__%  rp  r#   rx   ordinalr6  cursorc                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   tiplace_t.__annotate__-       6 6$ 6r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_valid_ordrr   s   &r   	valid_ordtiplace_t.valid_ord-      //55r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rL  0  s     2 2d 2r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_resetrr   s   &r   resettiplace_t.reset0  rZ  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rL  3  rM  r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_is_headerrr   s   &r   	is_headertiplace_t.is_header3  rR  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rL  6  rM  r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_is_footerrr   s   &r   	is_footertiplace_t.is_footer6  rR  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rL  9  s     5 5 5r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_is_indexrr   s   &r   is_indextiplace_t.is_index9      ..t44r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rL  <       7 74 7r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_set_headerrr   s   &r   
set_headertiplace_t.set_header<      0066r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rL  ?  ri  r#   c                	.    \         P                  ! V 4      # r.   )r   tiplace_t_set_footerrr   s   &r   
set_footertiplace_t.set_footer?  rn  r#   Nc               (    V ^8  d   QhRRRRRRRR/# )	rA   rt  'void const *'p_udmidxz'ssize_t *'p_bitoff'int *'rC   'uint64'r$   )rE   s   "r   rF   rL  B  s*     	 	. 	K 		(0	r#   c                2    \         P                  ! WVV4      # )a  for structs: calculate the offset that corresponds to the tiplace. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:param p_udmidx: place to return the index of the current udt member, if any. if there is no member at the current offset, return -1
:param p_bitoff: place to return the bit offset of the item from the beginning of the bit bucket if there no bitfields, return -1
:returns: the current offset or uint64(-1))r   tiplace_t_calc_udm_offset)r   rt  rv  rw  s   &&&&r   calc_udm_offsettiplace_t.calc_udm_offsetB  s     55d 	r#   c               $    V ^8  d   QhRRRRRR/# )rA   rt  ru  offsetry  rC   rD   r$   )rE   s   "r   rF   rL  M  s&     L Lh L LD Lr#   c                0    \         P                  ! WV4      # )zfor structs: calculate the index that corresponds to the offset and set it. 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:param offset: offset of udt member)r   tiplace_t_set_index_by_offset)r   rt  r  s   &&&r   set_index_by_offsettiplace_t.set_index_by_offsetM  s    
 99$FKKr#   c                    V ^8  d   QhRRRR/# )rA   rt  ru  rC   z'type_t'r$   )rE   s   "r   rF   rL  T  s     9 9> 9X 9r#   c                .    \         P                  ! W4      # )zget the kind of type this place represents 
        
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: one of BTF_TYPEDEF, BTF_STRUCT, BTF_UNION, BTF_ENUM or BT_UNK)r   tiplace_t_get_kindry  s   &&r   get_kindtiplace_t.get_kindT  s    
 ..t88r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  z'til_type_ref_t'rt  ru  rC   r   r$   )rE   s   "r   rF   rL  [  s'     C C!1 C~ C Cr#   c                0    \         P                  ! WV4      # )zfill the type information for use in actions 
        
:param out: pointer to storage
:param ud: pointer to user-defined context data. Is supplied by linearray_t
:returns: success)r   tiplace_t_fill_type_ref)r   r  rt  s   &&&r   fill_type_reftiplace_t.fill_type_ref[  s     33DrBBr#   r$   NN)r   r   r8   r9   r   r   rd   r   r
   r   tiplace_t_ordinal_gettiplace_t_ordinal_setrI  rp  tiplace_t_cursor_gettiplace_t_cursor_setrJ  rP  rV  r[  r`  re  rl  rr  r|  r  r  r  r<   r$   r#   r   rC  rC  !  s    -/I!#GKHL>>**,GS ,%l&G&G))+FN +6266577	L9C Cr#   rC  c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   tmplater  r  rx   ownerr9  sdk_versionrC   r$   )rE   s   "r   rF   rF   m  s2      9 S %(,/r#   c                2    \         P                  ! WVV4      # r.   )r   internal_register_place_class)r  r  r  r  s   &&&&r   r  r  m  s    55ge r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   	out_flagsrx  out_sdk_versionr  rx   rC   'place_t const *'r$   )rE   s   "r   rF   rF   s  s/     H Hw H Hc HHr#   c                0    \         P                  ! WV4      # )a9  Get information about a previously-registered place_t class. See also register_place_class(). 
        
:param out_flags: output flags (can be nullptr)
:param out_sdk_version: sdk version the place was created with (can be nullptr)
:param id: place class ID
:returns: the place_t template, or nullptr if not found)r   get_place_class)r  r  r  s   &&&r   r  r  s  s     ''	BGGr#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   rF   ~  s     5 5 5(9 5r#   c                .    \         P                  ! V 4      # zSee get_place_class()
)r   get_place_class_templater  s   &r   r  r  ~  s     0044r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r   r$   )rE   s   "r   rF   rF     s     6 6# 6 6r#   c                .    \         P                  ! V 4      # r  )r   is_place_class_ea_capabler  s   &r   r  r    s     11"55r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF          1 1S 1C 1r#   c                .    \         P                  ! V 4      # )zGet the place class ID for the place that has been registered as 'name'. 
        
:param name: the class name
:returns: the place class ID, or -1 if not found)r   get_place_class_idr   s   &r   r  r        
 **400r#   c                      ] tR tRt]! R R RR7      t]tR tR R lt	R	 R
 lt
R R ltR R ltR R ltR R lt]P                   tRtR# )sync_source_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   sync_source_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   sync_source_t_swiginitnew_sync_source_trb   s   &*r   rd   sync_source_t.__init__  re  r#   c                    V ^8  d   QhRRRR/# rA   _or  rC   r   r$   )rE   s   "r   rF   sync_source_t.__annotate__       ; ; ;D ;r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_t___eq__r   r  s   &&r   r   sync_source_t.__eq__      00::r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   sync_source_t___ne__r  s   &&r   r   sync_source_t.__ne__  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r         < <D <r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_t_is_registerrr   s   &r   is_registersync_source_t.is_register  rP  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r    s     : :$ :r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_t_is_widgetrr   s   &r   	is_widgetsync_source_t.is_widget  r  r#   c                   V ^8  d   QhRR/# )rA   rC   r  r$   )rE   s   "r   rF   r    s     ; ;, ;r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_t_get_widgetrr   s   &r   
get_widgetsync_source_t.get_widget  r  r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   r    s     = =S =r#   c                	.    \         P                  ! V 4      # r.   )r   sync_source_t_get_registerrr   s   &r   get_registersync_source_t.get_register  rV  r#   r$   N)r   r   r8   r9   r   r   r   r
   rd   r   r   r  r  r  r  r   delete_sync_source_tr-  r<   r$   r#   r   r  r    sI    -/I!#GH&;;<:;=#88r#   r  c                  v    ] tR tRt]! R R RR7      t]tR R ltR R	 lt	R
 R lt
R t]P                  tRtR# )synced_group_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   synced_group_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   c                    V ^8  d   QhRRRR/# )rA   rZ   r  rC   r   r$   )rE   s   "r   rF   synced_group_t.__annotate__  s     ? ?- ? ?r#   c                	.    \         P                  ! W4      # r.   )r   synced_group_t_has_widgetr   rZ   s   &&r   
has_widgetsynced_group_t.has_widget  rz  r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   r   r$   )rE   s   "r   rF   r    s     A Ac AT Ar#   c                	.    \         P                  ! W4      # r.   )r   synced_group_t_has_registerr   s   &&r   has_registersynced_group_t.has_register  r   r#   c                    V ^8  d   QhRRRR/# )rA   ssr  rC   r   r$   )rE   s   "r   rF   r    s     9 9o 9 9r#   c                	.    \         P                  ! W4      # r.   )r   synced_group_t_has)r   r  s   &&r   r  synced_group_t.has  s    ..t88r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   synced_group_t_swiginitnew_synced_group_trr   s   &r   rd   synced_group_t.__init__  $    ,,T<4 4! 	"r#   r$   N)r   r   r8   r9   r   r   r   r
   r  r  r  rd   r   delete_synced_group_tr-  r<   r$   r#   r   r  r    s=    -/I!#GH?A9" $99r#   r  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    RR R lltR tR tR tR t]P*                  tRtR
# )	twinpos_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   twinpos_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   rf  r   rx   rT   Nc                    V ^8  d   QhRRRR/# )rA   tr  x0rx   r$   )rE   s   "r   rF   twinpos_t.__annotate__  s      ) c r#   c                	\    \         P                  ! V \         P                  ! W4      4       R # r.   )r   twinpos_t_swiginitnew_twinpos_t)r   r  r  s   &&&r   rd   twinpos_t.__init__  s    ''l.H.H.O 	r#   c                	@    \         P                  V P                  4      # r.   )ri  r  r   rr   s   &r   place_as_idaplace_ttwinpos_t.place_as_idaplace_t  s    $$TWW--r#   c                	@    \         P                  V P                  4      # r.   )ri  r  r   rr   s   &r   place_as_simpleline_place_t%twinpos_t.place_as_simpleline_place_t  s    ,,TWW55r#   c                	@    \         P                  V P                  4      # r.   )ri  r  r   rr   s   &r   place_as_tiplace_ttwinpos_t.place_as_tiplace_t  s    ##DGG,,r#   c                	    \        V4      pV\        8X  d   V P                  4       # V\        8X  d   V P	                  4       # V\
        8X  d   V P	                  4       # V P                  # r.   )get_viewer_place_typeTCCPT_IDAPLACEr  TCCPT_SIMPLELINE_PLACEr  TCCPT_TIPLACEr   )r   viewptypes   && r   r  twinpos_t.place  s[    %d+N"++--,,3355m#335577Nr#   r$   NrL  )r   r   r8   r9   r   r   r   r
   r   twinpos_t_at_gettwinpos_t_at_setr   rp  twinpos_t_x_gettwinpos_t_x_setrT   rd   r  r  r
  r  delete_twinpos_tr-  r<   r$   r#   r   r  r    s    -/I!#GH|<<lB l22LAs .6-	 $44r#   r  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    R t]P4                  tRtR# )
twinline_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   twinline_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   rf  r   r  rg  rh  ri  rj  rk  r   rl  c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   twinline_t_swiginitnew_twinline_trb   s   &*r   rd   twinline_t.__init__	  s"    ((|/J/J0 	r#   r$   N)r   r   r8   r9   r   r   r   r
   r   twinline_t_at_gettwinline_t_at_setr   rp  twinline_t_line_gettwinline_t_line_setrg  twinline_t_prefix_color_gettwinline_t_prefix_color_setri  twinline_t_bg_color_gettwinline_t_bg_color_setrk  twinline_t_is_default_gettwinline_t_is_default_setrl  rd   delete_twinline_tr-  r<   r$   r#   r   r  r    s    -/I!#GH|==|		B 99<D# &|##\%M%MOL) O$\%I%I,,.Hk . F F..0J 0 $55r#   r  c                      ] tR tRt]! R R RR7      t]tR R lt]	P                  tR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$tR%# )&linearray_ti	  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   linearray_t.<lambda>	  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r1  	  r[   r#   r\   r]   c                   V ^8  d   QhRR/# )rA   _udru  r$   )rE   s   "r   rF   linearray_t.__annotate__	  s     " "H "r#   c                	\    \         P                  ! V \         P                  ! V4      4       R # r.   )r   linearray_t_swiginitnew_linearray_t)r   r4  s   &&r   rd   linearray_t.__init__	  s&    ))$O11! 	"r#   c                    V ^8  d   QhRRRR/# )rA   new_atr  rC   rx   r$   )rE   s   "r   rF   r5  #	  s     @ @	 @S @r#   c                .    \         P                  ! W4      # )a  Position the array. This function must be called before calling any other member functions. 
        
:param new_at: new position of the array. linearray will make a clone of this object.
:returns: the delta of lines that the linearray_t had to adjust the place by. 
For example, if the place_t has a lnnum of 5, but it turns out, upon generating lines, 
that the number of lines for that particular place is only 2, then 3 will be returned.)r   linearray_t_set_place)r   r;  s   &&r   	set_placelinearray_t.set_place#	  s     11$??r#   c                    V ^8  d   QhRRRR/# )rA   srcz'linearray_t'rC   rD   r$   )rE   s   "r   rF   r5  ,	  s     = =] =d =r#   c                .    \         P                  ! W4      # )z{Copy information from one linearray to another. Only linearray objects with compatible 'ud' fields can be copied. 
        )r   linearray_t_copy_from)r   rA  s   &&r   	copy_fromlinearray_t.copy_from,	  s     11$<<r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r5  1	  s     8 8+ 8r#   c                .    \         P                  ! V 4      # )zGet the current place. If called before down(), then returns place of line which will be returned by down(). If called after up(), then returns place if line returned by up(). 
        )r   linearray_t_get_placerr   s   &r   	get_placelinearray_t.get_place1	       11$77r#   c                   V ^8  d   QhRR/# rA   rC   rj  r$   )rE   s   "r   rF   r5  6	  s     ; ;[ ;r#   c                .    \         P                  ! V 4      # )zrGet current background color. (the same behavior as with get_place(): good before down() and after up()) 
        )r   linearray_t_get_bg_colorrr   s   &r   get_bg_colorlinearray_t.get_bg_color6	       44T::r#   c                   V ^8  d   QhRR/# rM  r$   )rE   s   "r   rF   r5  ;	  s     < <k <r#   c                .    \         P                  ! V 4      # )znGet current prefix color. (the same behavior as with get_place(): good before down() and after up()) 
        )r   linearray_t_get_pfx_colorrr   s   &r   get_pfx_colorlinearray_t.get_pfx_color;	  s     55d;;r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r5  @	  s     9 93 9r#   c                .    \         P                  ! V 4      # )zmGet default line number. (the same behavior as with get_place(): good before down() and after up()) 
        )r   linearray_t_get_dlnnumrr   s   &r   
get_dlnnumlinearray_t.get_dlnnum@	       22488r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r5  E	  s     : :C :r#   c                .    \         P                  ! V 4      # )zGet number of lines for the current place. (the same behavior as with get_place(): good before down() and after up()) 
        )r   linearray_t_get_linecntrr   s   &r   get_linecntlinearray_t.get_linecntE	       33D99r#   c                   V ^8  d   QhRR/# )rA   rC   ru  r$   )rE   s   "r   rF   r5  J	  s     7 7 7r#   c                .    \         P                  ! V 4      # )zGet pointer to user data.
)r   linearray_t_userdatarr   s   &r   r'  linearray_t.userdataJ	  s     0066r#   c                    V ^8  d   QhRRRR/# )rA   userdru  rC   rD   r$   )rE   s   "r   rF   r5  O	  s     B B( Bd Br#   c                .    \         P                  ! W4      # )zChange the user data.
)r   linearray_t_set_userdata)r   ri  s   &&r   set_userdatalinearray_t.set_userdataO	  s     44TAAr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r5  T	  s     8 8$ 8r#   c                .    \         P                  ! V 4      # )zAre we at the beginning?
)r   linearray_t_beginningrr   s   &r   r  linearray_t.beginningT	  rK  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r5  Y	  s     5 5t 5r#   c                	.    \         P                  ! V 4      # r.   )r   linearray_t_endingrr   s   &r   r  linearray_t.endingY	  rg  r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   r5  \	  s     3 3S 3r#   c                .    \         P                  ! V 4      # )zqGet the next line going downwards. 'at' for the retrieved line is correct BEFORE calling this function. 
        )r   linearray_t_downrr   s   &r   downlinearray_t.down\	  s     ,,T22r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   r5  a	  s     1 13 1r#   c                .    \         P                  ! V 4      # )znGet the next line going upwards. 'at' for the retrieved line is correct AFTER calling this function. 
        )r   linearray_t_uprr   s   &r   uplinearray_t.upa	  s     **400r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   rD   r$   )rE   s   "r   rF   r5  f	  s     ? ?s ?d ?r#   c                .    \         P                  ! W4      # )zxSet max number of lines to generate for a place. 0 means to use the default value, MAX_ITEM_LINES from ida.cfg 
        )r   linearray_t_set_max_linesr   r  s   &&r   set_max_lineslinearray_t.set_max_linesf	  s     55d>>r#   r$   N)r   r   r8   r9   r   r   r   r
   rd   r   delete_linearray_tr-  r>  rD  rI  rP  rV  r[  ra  r'  rl  r  r  ry  r~  r  r<   r$   r#   r   r/  r/  	  sz    -/I!#GH" $66@=
8
;
<
9
:
7
B
8
53
1
? ?r#   r/  c                  $   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    R t]P(                  tRtR# )lines_rendering_input_tio	  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU    lines_rendering_input_t.<lambda>p	  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  p	  r[   r#   r\   r]   rx   cbr  sections_lines'synced_group_t const *'
sync_groupc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r    lines_rendering_input_t_swiginitnew_lines_rendering_input_trr   s   &r   rd    lines_rendering_input_t.__init__	  s$    55dL''=( =* 	+r#   r$   N)r   r   r8   r9   r   r   r   r
   r   lines_rendering_input_t_cb_getlines_rendering_input_t_cb_setr  rp  *lines_rendering_input_t_sections_lines_get*lines_rendering_input_t_sections_lines_setr  &lines_rendering_input_t_sync_group_get&lines_rendering_input_t_sync_group_setr  rd   delete_lines_rendering_input_tr-  r<   r$   r#   r   r  r  o	  s    -/I!#GH|BB335B 5.6|22L22/4N+ 4+3L....,0J( 0+ $BBr#   r  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&   ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    R tR R ltR R ltR R ltR R ltR R lt]P>                  t Rt!R# )line_rendering_output_entry_ti	  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   &line_rendering_output_entry_t.<lambda>	  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  	  r[   r#   r\   r]   z'twinline_t const *'rg  rx   r  rj  rk  cpxncharsc                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   &line_rendering_output_entry_t_swiginit!new_line_rendering_output_entry_trb   s   &*r   rd   &line_rendering_output_entry_t.__init__	  s!    ;;D::DA	Cr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   *line_rendering_output_entry_t.__annotate__	  s      $ r#   c                	.    \         P                  ! V 4      # r.   )r   /line_rendering_output_entry_t_is_bg_color_emptyrr   s   &r   is_bg_color_empty/line_rendering_output_entry_t.is_bg_color_empty	  s    KK 	r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  	  s     P P Pr#   c                	.    \         P                  ! V 4      # r.   )r   -line_rendering_output_entry_t_is_bg_color_keyrr   s   &r   is_bg_color_key-line_rendering_output_entry_t.is_bg_color_key	  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  	  s      4 r#   c                	.    \         P                  ! V 4      # r.   )r   0line_rendering_output_entry_t_is_bg_color_directrr   s   &r   is_bg_color_direct0line_rendering_output_entry_t.is_bg_color_direct	      LL 	r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   r  	       J J7 J4 Jr#   c                	.    \         P                  ! W4      # r.   )r   $line_rendering_output_entry_t___eq__r   s   &&r   r   $line_rendering_output_entry_t.__eq__	  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  	  r  r#   c                	.    \         P                  ! W4      # r.   )r   $line_rendering_output_entry_t___ne__r   s   &&r   r   $line_rendering_output_entry_t.__ne__	  r  r#   r$   N)"r   r   r8   r9   r   r   r   r
   r   &line_rendering_output_entry_t_line_get&line_rendering_output_entry_t_line_setrg  rp  'line_rendering_output_entry_t_flags_get'line_rendering_output_entry_t_flags_setr  *line_rendering_output_entry_t_bg_color_get*line_rendering_output_entry_t_bg_color_setrk  %line_rendering_output_entry_t_cpx_get%line_rendering_output_entry_t_cpx_setr  (line_rendering_output_entry_t_nchars_get(line_rendering_output_entry_t_nchars_setr  rd   r  r  r  r   r   $delete_line_rendering_output_entry_tr-  r<   r$   r#   r   r  r  	  s   -/I!#GH!),...."0D
 0 ,////1E3 1$\22L224Hk 4 JJ::<C <<00,002FC 2CPJJ#HHr#   r  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   ]P                   tR
 R ltR R ltR R ltR R ltR tRtR# )lines_rendering_output_ti	  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   !lines_rendering_output_t.<lambda>	  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  	  r[   r#   r\   r]   r  entriesrx   r  c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   %lines_rendering_output_t.__annotate__
  s     A Ad Ar#   c                	.    \         P                  ! V 4      # r.   )r   lines_rendering_output_t_clearrr   s   &r   r   lines_rendering_output_t.clear
  r   r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   r  
       E E2 Ed Er#   c                	.    \         P                  ! W4      # r.   )r   lines_rendering_output_t___eq__r   s   &&r   r   lines_rendering_output_t.__eq__
  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  
  r  r#   c                	.    \         P                  ! W4      # r.   )r   lines_rendering_output_t___ne__r   s   &&r   r   lines_rendering_output_t.__ne__
  r  r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   rD   r$   )rE   s   "r   rF   r  
  s     C C0 CD Cr#   c                	.    \         P                  ! W4      # r.   )r   lines_rendering_output_t_swapr   s   &&r   r   lines_rendering_output_t.swap
  r   r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   !lines_rendering_output_t_swiginitnew_lines_rendering_output_trr   s   &r   rd   !lines_rendering_output_t.__init__
  $    66t\((>) >+ 	,r#   r$   N)r   r   r8   r9   r   r   r   r
   r   $lines_rendering_output_t_entries_get$lines_rendering_output_t_entries_setr  rp  "lines_rendering_output_t_flags_get"lines_rendering_output_t_flags_setr  delete_lines_rendering_output_tr-  r   r   r   r   rd   r<   r$   r#   r   r  r  	  s    -/I!#GH6>|	-	-|,,7.G3 . ,II779E3 9#CCAEEC,r#   r  c                  $   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   R
 R ltR R ltR R ltR R ltR R ltR R ltR t]P.                  tRtR# )line_section_ti
  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   line_section_t.<lambda>
  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  
  r[   r#   r\   r]   	'cpidx_t'startz	'cplen_t'lengthc                    V ^8  d   QhRRRR/# )rA   rT   r  rC   r   r$   )rE   s   "r   rF   line_section_t.__annotate__"
  s     = =) =t =r#   c                	.    \         P                  ! W4      # r.   )r   line_section_t_containsr  s   &&r   containsline_section_t.contains"
  s    33D<<r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  %
       9 9 9r#   c                	.    \         P                  ! V 4      # r.   )r   line_section_t_is_openrr   s   &r   is_openline_section_t.is_open%
  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  (
  s     ; ;$ ;r#   c                	.    \         P                  ! V 4      # r.   )r   line_section_t_is_closedrr   s   &r   	is_closedline_section_t.is_closed(
  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  +
  s     7 7d 7r#   c                	.    \         P                  ! V 4      # r.   )r   line_section_t_validrr   s   &r   validline_section_t.valid+
  rn  r#   c                    V ^8  d   QhRRRR/# rA   r   z'line_section_t'rC   r   r$   )rE   s   "r   rF   r  .
       ; ;( ;D ;r#   c                	.    \         P                  ! W4      # r.   )r   line_section_t___eq__r   s   &&r   r   line_section_t.__eq__.
  r?  r#   c                    V ^8  d   QhRRRR/# r	  r$   )rE   s   "r   rF   r  1
  r	  r#   c                	.    \         P                  ! W4      # r.   )r   line_section_t___ne__r   s   &&r   r   line_section_t.__ne__1
  r?  r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   line_section_t_swiginitnew_line_section_trr   s   &r   rd   line_section_t.__init__4
  r  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   line_section_t_start_getline_section_t_start_setr  rp  line_section_t_length_getline_section_t_length_setr  r  r	  r	  r	  r   r   rd   delete_line_section_tr-  r<   r$   r#   r   r  r  
  s    -/I!#GH E E--/E9 / !G!G..0FI 0=9;7;;" $99r#   r  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   R tR	 R
 ltR R ltR R ltR R ltRR R lltR R lt]P(                  tRtR# )tagged_line_section_ti=
  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   tagged_line_section_t.<lambda>>
  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r#	  >
  r[   r#   r\   r]   rh  tagc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   tagged_line_section_t_swiginitnew_tagged_line_section_trr   s   &r   rd   tagged_line_section_t.__init__D
  s$    33D,%%;& ;( 	)r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   "tagged_line_section_t.__annotate__H
  r  r#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_t___eq__r   s   &&r   r   tagged_line_section_t.__eq__H
  r  r#   c                    V ^8  d   QhRRRR/# r+	  r$   )rE   s   "r   rF   r,	  K
  r  r#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_t___ne__r   s   &&r   r   tagged_line_section_t.__ne__K
  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r,	  N
  r  r#   c                	.    \         P                  ! V 4      # r.   )r   tagged_line_section_t_validrr   s   &r   r	  tagged_line_section_t.validN
  r}   r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r   r$   )rE   s   "r   rF   r,	  Q
  s     F FC F4 Fr#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_section_t_valid_inr  s   &&r   valid_intagged_line_section_t.valid_inQ
  r   r#   Nc               $    V ^8  d   QhRRRRRR/# )rA   r  r  r   r  rC   r   r$   )rE   s   "r   rF   r,	  T
  s'     I I# I$; ID Ir#   c                	0    \         P                  ! WV4      # r.   )r   tagged_line_section_t_substr)r   r  r   s   &&&r   substrtagged_line_section_t.substrT
  s    88CHHr#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   r,	  W
  rF  r#   c                	.    \         P                  ! V 4      # r.   )r   tagged_line_section_t___str__rr   s   &r   __str__tagged_line_section_t.__str__W
  r   r#   r$   r.   )r   r   r8   r9   r   r   r   r
   r   tagged_line_section_t_tag_gettagged_line_section_t_tag_setr%	  rp  rd   r   r   r	  r;	  r@	  rE	  delete_tagged_line_section_tr-  r<   r$   r#   r   r!	  r!	  =
  sp    -/I!#GHlHH224C 4)BB>FI@#@@r#   r!	  c                      ] tR tRt]! R R RR7      t]tR R ltRR R	 llt	RR
 R llt
RR R lltRR R lltR t]P                  tRtR# )tagged_line_sections_ti_
  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   tagged_line_sections_t.<lambda>`
  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rM	  `
  r[   r#   r\   r]   c                    V ^8  d   QhRRRR/# )rA   r%	  rh  rC   'tagged_line_section_t const *'r$   )rE   s   "r   rF   #tagged_line_sections_t.__annotate__d
  s     D D D&E Dr#   c                	.    \         P                  ! W4      # r.   )r   tagged_line_sections_t_first)r   r%	  s   &&r   firsttagged_line_sections_t.firstd
  rp  r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r  'tagged_line_sections_t'rT   r  r%	  rh  rC   rD   r$   )rE   s   "r   rF   rQ	  g
  s+      7 I r#   c                	2    \         P                  ! WVV4      # r.   )r   "tagged_line_sections_t_sections_at)r   r  rT   r%	  s   &&&&r   sections_at"tagged_line_sections_t.sections_atg
  s    >>t! 	r#   c               $    V ^8  d   QhRRRRRR/# )rA   rT   r  r%	  rh  rC   rP	  r$   )rE   s   "r   rF   rQ	  l
  s'     L LI LI L+Lr#   c                	0    \         P                  ! WV4      # r.   )r   !tagged_line_sections_t_nearest_at)r   rT   r%	  s   &&&r   
nearest_at!tagged_line_sections_t.nearest_atl
  s    ==dsKKr#   c               (    V ^8  d   QhRRRRRRRR/# 	rA   r^  r  r  r  r%	  rh  rC   rP	  r$   )rE   s   "r   rF   rQ	  p
  s,      $; !'Fr#   c                	2    \         P                  ! V WV4      # r.   )r   %tagged_line_sections_t_nearest_beforer   r^  r  r%	  s   &&&&r   nearest_before%tagged_line_sections_t.nearest_beforep
  s    AA$# 	r#   c               (    V ^8  d   QhRRRRRRRR/# rb	  r$   )rE   s   "r   rF   rQ	  u
  s,      #: !'Fr#   c                	2    \         P                  ! V WV4      # r.   )r   $tagged_line_sections_t_nearest_afterre	  s   &&&&r   nearest_after$tagged_line_sections_t.nearest_afteru
  s    @@# 	r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   tagged_line_sections_t_swiginitnew_tagged_line_sections_trr   s   &r   rd   tagged_line_sections_t.__init__z
  s$    44T<&&<' <) 	*r#   r$   NrL  )r   r   r8   r9   r   r   r   r
   rT	  rZ	  r_	  rf	  rk	  rd   r   delete_tagged_line_sections_tr-  r<   r$   r#   r   rK	  rK	  _
  sH    -/I!#GHD
L

* $AAr#   rK	  c                  d   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   ]! ]P                   ]P"                  4      tR
]R&   ]! ]P&                  ]P(                  4      tR]R&   R t]P.                  tRtR# )listing_location_ti
  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   listing_location_t.<lambda>
  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rv	  
  r[   r#   r\   r]   rx   r  'lochist_entry_t const *'locr  r~  z 'tagged_line_sections_t const *'tagged_sectionsc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   listing_location_t_swiginitnew_listing_location_trr   s   &r   rd   listing_location_t.__init__
  $    00|""8# 8% 	&r#   r$   N)r   r   r8   r9   r   r   r   r
   r   listing_location_t_cb_getlisting_location_t_cb_setr  rp  listing_location_t_loc_getlisting_location_t_loc_setry	  listing_location_t_text_getlisting_location_t_text_setr~  &listing_location_t_tagged_sections_get&listing_location_t_tagged_sections_setrz	  rd   delete_listing_location_tr-  r<   r$   r#   r   rt	  rt	  
  s    -/I!#GH|==|	"	"$B $%-l""L$K$K&MC	" MAA002D# 28@	/	/..90O5 0& $==r#   rt	  c               $    V ^8  d   QhRRRRRR/# )rA   r  r  dirtyr   rC   rD   r$   )rE   s   "r   rF   rF   
  s#     : :7 : ::r#   c                .    \         P                  ! W4      # )zRequest a refresh of a builtin widgets.

:param mask: Window refresh flags
:param dirty: mark for refresh if true or clear flag otherwise)r   mark_builtin_widgets)r  r	  s   &&r   r	  r	  
  s     ,,T99r#   c               $    V ^8  d   QhRRRRRR/# )rA   bwnrx   r	  r   rC   rD   r$   )rE   s   "r   rF   rF   
  s!     > >3 >t >D >r#   c                .    \         P                  ! W4      # )zRequest a refresh of a single built widgets, by its ID.

:param bwn: the widget ID (Window types )
:param dirty: mark for refresh if true or clear flag otherwise)r   mark_builtin_widget_by_id)r	  r	  s   &&r   r	  r	  
  s    
 11#==r#   c                   V ^8  d   QhRR/# )rA   rC   z'uint128 *'r$   )rE   s   "r   rF   rF   
  s     4 4+ 4r#   c                 ,    \         P                  ! 4       # )z/Get the "dirty" state for all builtin widgets.
)r   get_builtin_widgets_stater$   r#   r   r	  r	  
  s     1133r#   c                    V ^8  d   QhRRRR/# )rA   r	  rx   rC   r   r$   )rE   s   "r   rF   rF   
  s     5 5 5 5r#   c                .    \         P                  ! V 4      # )zGet the "dirty" state for a single builtin widget.

:param bwn: the widget ID (Window types )
:returns: true if the widget is marked for refresh, false otherwise)r   is_builtin_widget_dirty)r	  s   &r   r	  r	  
  s    
 //44r#   c                    V ^8  d   QhRRRR/# )rA   r  'twidget_type_t'rC   r   r$   )rE   s   "r   rF   rF   l       - -) -T -r#   c                .    \         P                  ! V 4      # )z5Does the given widget type specify a chooser widget?
)r   is_chooser_widget)r  s   &r   r	  r	  l       ))!,,r#   c                    V ^8  d   QhRRRR/# )rA   r   'action_state_t'rC   r   r$   )rE   s   "r   rF   rF     r	  r#   c                .    \         P                  ! V 4      # )z7Check if the given action state is one of AST_ENABLE*.
)r   is_action_enabled)r   s   &r   r	  r	    r	  r#   c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    R
 tR R ltR R lt]P&                  tRtR# )chooser_item_attrs_tit  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   chooser_item_attrs_t.<lambda>u  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r	  u  r[   r#   r\   r]   rx   r  rj  r  c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   chooser_item_attrs_t_swiginitnew_chooser_item_attrs_trr   s   &r   rd   chooser_item_attrs_t.__init__  s$    224$$:% :' 	(r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   !chooser_item_attrs_t.__annotate__  rR  r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_item_attrs_t_resetrr   s   &r   rV  chooser_item_attrs_t.reset  rV  r#   c                    V ^8  d   QhRRRR/# )rA   otherr  rC   r   r$   )rE   s   "r   rF   r	    s     E E2 Ed Er#   c                	.    \         P                  ! W4      # r.   )r   chooser_item_attrs_t___eq__r   r	  s   &&r   r   chooser_item_attrs_t.__eq__  s    77DDr#   r$   N)r   r   r8   r9   r   r   r   r
   r   chooser_item_attrs_t_flags_getchooser_item_attrs_t_flags_setr  rp  chooser_item_attrs_t_color_getchooser_item_attrs_t_color_setr  rd   rV  r   delete_chooser_item_attrs_tr-  r<   r$   r#   r   r	  r	  t  s    -/I!#GH,EE335E3 5!,&&&&(E; ((=E#??r#   r	  c                  >   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    R R ltR R ltR t]P,                  tRtR# )chooser_row_info_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   chooser_row_info_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r	    r[   r#   r\   r]   z'qstrvec_t'textsr  r  rx   iconc                    V ^8  d   QhRRRR/# rA   r	  r   rC   r   r$   )rE   s   "r   rF   chooser_row_info_t.__annotate__       C C0 CD Cr#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_t___eq__r	  s   &&r   r   chooser_row_info_t.__eq__      55dBBr#   c                    V ^8  d   QhRRRR/# r	  r$   )rE   s   "r   rF   r	    r	  r#   c                	.    \         P                  ! W4      # r.   )r   chooser_row_info_t___ne__r	  s   &&r   r   chooser_row_info_t.__ne__  r	  r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   chooser_row_info_t_swiginitnew_chooser_row_info_trr   s   &r   rd   chooser_row_info_t.__init__  r	  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   chooser_row_info_t_texts_getchooser_row_info_t_texts_setr	  rp  chooser_row_info_t_attrs_getchooser_row_info_t_attrs_setr  chooser_row_info_t_icon_getchooser_row_info_t_icon_setr	  r   r   rd   delete_chooser_row_info_tr-  r<   r$   r#   r   r	  r	    s    -/I!#GH!,"K"K113E; 3$,\$$l&O&O%
E! 
AA002D# 2CC& $==r#   r	  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR]R
&   ]! ]P&                  ]P(                  4      tR]R&   RR R llt]P.                  tR R ltR tRtR# )chooser_stdact_desc_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   chooser_stdact_desc_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r	    r[   r#   r\   r]   rx   versionr  labeltooltipr	  Nc               $    V ^8  d   QhRRRRRR/# )rA   _labelr  _tooltip_iconrx   r$   )rE   s   "r   rF   "chooser_stdact_desc_t.__annotate__  s&     G Gs G3 GC Gr#   c           	     	    V P                   \        8X  d   R pMT p\        P                  ! V \        P                  ! WAW#4      4       R # r.   )r   r	  r   chooser_stdact_desc_t_swiginitnew_chooser_stdact_desc_t)r   r	  r	  r	  r  s   &&&& r   rd   chooser_stdact_desc_t.__init__  sB    >>22EE33D,%%;&&+X;F 	Gr#   c                    V ^8  d   QhRRRR/# )rA   arg0r  rC   r	  r$   )rE   s   "r   rF   r	    s      B B+ B/? Br#   c                .    \         P                  ! W4      # )a  the update callback, see action_handler_t::update() When the update callback is called from the chooser UI engine, it can be sure that ctx.source.chooser is a valid pointer to chooser_base_t and that there are selected items for the Delete and Edit actions. 
        )r   chooser_stdact_desc_t_ucb)r   r	  s   &&r   ucbchooser_stdact_desc_t.ucb  s     55dAAr#   c                	    V P                   P                  4        \        P                  ! V 4       \        P
                  ! V 4      # r.   )r	   rE  r   disown_chooser_stdact_desc_trG  rH  rr   s   &r   rI   chooser_stdact_desc_t.__disown__  s/    		11$7}}T""r#   r$   )NN)r   r   r8   r9   r   r   r   r
   r   !chooser_stdact_desc_t_version_get!chooser_stdact_desc_t_version_setr	  rp  chooser_stdact_desc_t_label_getchooser_stdact_desc_t_label_setr	  !chooser_stdact_desc_t_tooltip_get!chooser_stdact_desc_t_tooltip_setr	  chooser_stdact_desc_t_icon_getchooser_stdact_desc_t_icon_setr	  rd   delete_chooser_stdact_desc_tr-  r	  rI  r<   r$   r#   r   r	  r	    s    -/I!#GHLJJ668GS 8,FF446E3 6LJJ668GS 8DD335D# 5G $@@B
#r#   r	  c                  >   ] tR tRt$ ]! R R RR7      tR t]t]! ]	P                  4      tR]R&    ]! ]	P                  4      tR]R	&   ]! ]	P                  4      tR]R
&   ]! ]	P"                  4      tR]R&   ]! ]	P&                  4      tR]R&    ]! ]	P*                  4      tR]R&    ]! ]	P.                  4      tR]R&    ]! ]	P2                  4      tR]R&    ]! ]	P6                  4      tR]R&    ]! ]	P:                  4      tR]R&    ]! ]	P>                  4      t R]R&    ]	PB                  t"]	PF                  t$]	PJ                  t&]	PN                  t(]	PR                  t*]! ]	PV                  4      t,R]R&    ]! ]	PZ                  4      t.R]R&    R R lt/R R lt0R R lt1R R  lt2R! R" lt3R# R$ lt4R% R& lt5R' R( lt6R) R* lt7R+ R, lt8R- R. lt9R/ R0 lt:R1 R2 lt;R3 R4 lt<R5 R6 lt=R7 R8 lt>R9 R: lt?R; R< lt@R= R> ltAR? R@ ltBRA RB ltCRC RD ltDRE RF ltERG RH ltFRItGRJ# )Kchooser_base_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   chooser_base_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r	    r[   r#   r\   r]   c                	    \        R 4      hrn  r4  r5  s   &*,r   rd   chooser_base_t.__init__  rp  r#   rx   r  y0x1y1widthheightr  r  columnsz'int const *'widths'char const *const *'headerr	  z&'qstring [chooser_base_t::NSTDPOPUPS]'popup_names	deflt_colc                    V ^8  d   QhRRRR/# )rA   r	  r  rC   r   r$   )rE   s   "r   rF   chooser_base_t.__annotate__'  s     @ @- @ @r#   c                .    \         P                  ! W4      # )z9do the current and the given objects hold the same data?
)r   chooser_base_t_is_samer	  s   &&r   is_samechooser_base_t.is_same'  s     224??r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  ,  s     9 9 9r#   c                .    \         P                  ! V 4      # )zis an operation allowed?
)r   chooser_base_t_can_insrr   s   &r   can_inschooser_base_t.can_ins,  r]  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  1  r  r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_can_delrr   s   &r   can_delchooser_base_t.can_del1  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  4       : : :r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_can_editrr   s   &r   can_editchooser_base_t.can_edit4  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  7  s     = =D =r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_can_refreshrr   s   &r   can_refreshchooser_base_t.can_refresh7  rV  r#   c                    V ^8  d   QhRRRR/# )rA   
stdact_idxrx   rC   r   r$   )rE   s   "r   rF   r
  :  s     K K Kt Kr#   c                .    \         P                  ! W4      # )zis a standard action allowed?
)r   chooser_base_t_popup_allowed)r   r*
  s   &&r   popup_allowedchooser_base_t.popup_allowed:  s     88JJr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  ?  s     F FT Fr#   c                	.    \         P                  ! V 4      # r.   )r   #chooser_base_t_is_status_bar_hiddenrr   s   &r   is_status_bar_hidden#chooser_base_t.is_status_bar_hidden?  s    ??EEr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  B  s     I I Ir#   c                	.    \         P                  ! V 4      # r.   )r   &chooser_base_t_should_restore_geometryrr   s   &r   should_restore_geometry&chooser_base_t.should_restore_geometryB  s    BB4HHr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  E       : : :r#   c                .    \         P                  ! V 4      # )zis choose modal?
)r   chooser_base_t_is_modalrr   s   &r   is_modalchooser_base_t.is_modalE  rc  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  J  s     F FT Fr#   c                .    \         P                  ! V 4      # )zAshould chooser object be deleted when the widget gets destroyed?
)r   #chooser_base_t_has_widget_lifecyclerr   s   &r   has_widget_lifecycle#chooser_base_t.has_widget_lifecycleJ  s     ??EEr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  O  r:
  r#   c                .    \         P                  ! V 4      # )zis multi-selection allowed?
)r   chooser_base_t_is_multirr   s   &r   is_multichooser_base_t.is_multiO  rc  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  T  s     @ @t @r#   c                .    \         P                  ! V 4      # )z:should chooser generate ui_get_chooser_item_attrs events?
)r   chooser_base_t_ask_item_attrsrr   s   &r   ask_item_attrschooser_base_t.ask_item_attrsT  s     99$??r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  Y  s     B B Br#   c                .    \         P                  ! V 4      # )zEshould selection of the already opened non-modal chooser be changed?
)r   chooser_base_t_is_force_defaultrr   s   &r   is_force_defaultchooser_base_t.is_force_defaultY  s     ;;DAAr#   c                   V ^8  d   QhRR/# )rA   rC   r	  r$   )rE   s   "r   rF   r
  ^  s     D D#3 Dr#   c                .    \         P                  ! V 4      # )z#get number of the built-in chooser
)r   !chooser_base_t_get_builtin_numberrr   s   &r   get_builtin_number!chooser_base_t.get_builtin_number^  s     ==dCCr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  c  s      $ r#   c                	.    \         P                  ! V 4      # r.   )r   0chooser_base_t_is_quick_filter_visible_initiallyrr   s   &r   !is_quick_filter_visible_initially0chooser_base_t.is_quick_filter_visible_initiallyc  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r
  g  s     O Oc Or#   c                	.    \         P                  ! V 4      # r.   )r   ,chooser_base_t_get_quick_filter_initial_moderr   s   &r   get_quick_filter_initial_mode,chooser_base_t.get_quick_filter_initial_modeg  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  j  s     E ED Er#   c                	.    \         P                  ! V 4      # r.   )r   "chooser_base_t_has_diff_capabilityrr   s   &r   has_diff_capability"chooser_base_t.has_diff_capabilityj  rH  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  m  r
  r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_can_sortrr   s   &r   can_sortchooser_base_t.can_sortm  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  p  s     < <4 <r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_can_filterrr   s   &r   
can_filterchooser_base_t.can_filterp  rP  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  s  s     L L4 Lr#   c                	.    \         P                  ! V 4      # r.   )r   )chooser_base_t_should_rename_trigger_editrr   s   &r   should_rename_trigger_edit)chooser_base_t.should_rename_trigger_edits  r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r
  v  s     @ @t @r#   c                	.    \         P                  ! V 4      # r.   )r   chooser_base_t_is_lazy_loadedrr   s   &r   is_lazy_loadedchooser_base_t.is_lazy_loadedv  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r
  y  s     ; ;# ;r#   c                .    \         P                  ! V 4      # )z*get the number of elements in the chooser
)r   chooser_base_t_get_countrr   s   &r   	get_countchooser_base_t.get_county  rR  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   r
  ~  s     > >3 >/ >r#   c                .    \         P                  ! W4      # )a  get the address of an element. When this function returns valid addresses: * If any column has the `CHCOL_FNAME` flag, rows will be colored according to the attributes of the functions who own those addresses (extern, library function, Lumina, ... - similar to what the "Functions" widget does) * When a selection is present and the user presses `<Enter>` (`<Shift+Enter>` if the chooser is modal), IDA will jump to that address (through jumpto()) 
        
:returns: the effective address, BADADDR if the element has no address)r   chooser_base_t_get_ear  s   &&r   get_eachooser_base_t.get_ea~       11$==r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   z+Tuple[List[str], int, chooser_item_attrs_t]r$   )rE   s   "r   rF   r
    s     < < < K <r#   c                .    \         P                  ! W4      # )zGet data & attributes for a row in a chooser.

:param n: The row number
:returns: a tuple (list-of-strings, icon-id, row-attributes))r   chooser_base_t_get_rowr  s   &&r   get_rowchooser_base_t.get_row  s    
 224;;r#   r$   N)Hr   r   r8   r9   r   r   rd   r   r
   r   chooser_base_t_x0_getr  rp  chooser_base_t_y0_getr
  chooser_base_t_x1_getr
  chooser_base_t_y1_getr
  chooser_base_t_width_getr
  chooser_base_t_height_getr
  chooser_base_t_title_getr  chooser_base_t_columns_getr
  chooser_base_t_widths_getr	
  chooser_base_t_header_getr
  chooser_base_t_icon_getr	  chooser_base_t_POPUP_INS	POPUP_INSchooser_base_t_POPUP_DEL	POPUP_DELchooser_base_t_POPUP_EDIT
POPUP_EDITchooser_base_t_POPUP_REFRESHPOPUP_REFRESHchooser_base_t_NSTDPOPUPS
NSTDPOPUPSchooser_base_t_popup_names_getr
  chooser_base_t_deflt_col_getr
  r
  r
  r
  r"
  r'
  r-
  r2
  r7
  r=
  rB
  rG
  rL
  rQ
  rV
  r[
  r`
  re
  rj
  ro
  rt
  ry
  r~
  r
  r
  r<   r$   r#   r   r	  r	    s3   -/I!#GKH|99:B:|99:B:|99:B:|99:B:,??@E3@<AABFCB,??@E3@ LCCDGSD$\%K%KLFML %-\!!%#F! #==>D#>55I55I77J ==M77J:B<	'	';)K7 ) lGGHIsH@
9
9:=K
FI:
F
:
@
B
D
OE:<L@;
>< <r#   r	  c                     ] tR tRt$ ]! R R RR7      t]tR t]! ]	P                  ]	P                  4      tR]R&    ]! ]	P                  ]	P                  4      tR	]R
&    ]! ]	P"                  ]	P$                  4      tR	]R&    ]! ]	P(                  ]	P*                  4      tR	]R&    R R ltR R lt]	P2                  tRtR# )renderer_pos_info_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   renderer_pos_info_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r
    r[   r#   r\   r]   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   renderer_pos_info_t_swiginitnew_renderer_pos_info_trr   s   &r   rd   renderer_pos_info_t.__init__  s$    11$##9$ 9& 	'r#   rx   nodez'short'cxcysxc                    V ^8  d   QhRRRR/# rA   r   'renderer_pos_info_t'rC   r   r$   )rE   s   "r   rF    renderer_pos_info_t.__annotate__       @ @- @ @r#   c                	.    \         P                  ! W4      # r.   )r   renderer_pos_info_t___eq__r   s   &&r   r   renderer_pos_info_t.__eq__  r  r#   c                    V ^8  d   QhRRRR/# r
  r$   )rE   s   "r   rF   r
    r
  r#   c                	.    \         P                  ! W4      # r.   )r   renderer_pos_info_t___ne__r   s   &&r   r   renderer_pos_info_t.__ne__  r  r#   r$   N)r   r   r8   r9   r   r   r   r
   rd   r   renderer_pos_info_t_node_getrenderer_pos_info_t_node_setr
  rp  renderer_pos_info_t_cx_getrenderer_pos_info_t_cx_setr
  renderer_pos_info_t_cy_getrenderer_pos_info_t_cy_setr
  renderer_pos_info_t_sx_getrenderer_pos_info_t_sx_setr
  r   r   delete_renderer_pos_info_tr-  r<   r$   r#   r   r
  r
    s    -/I!#GH' BB113D# 3<BB//1B 1 <BB//1B 1 <BB//1B 1@@#>>r#   r
  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    R
 t]P"                  tRtR# )view_mouse_event_location_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   $view_mouse_event_location_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r
    r[   r#   r\   r]   r  r  'selection_item_t const *'itemc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   $view_mouse_event_location_t_swiginitnew_view_mouse_event_location_trr   s   &r   rd   $view_mouse_event_location_t.__init__-      99$88:	<r#   r$   N)r   r   r8   r9   r   r   r   r
   r   "view_mouse_event_location_t_ea_get"view_mouse_event_location_t_ea_setr  rp  $view_mouse_event_location_t_item_get$view_mouse_event_location_t_item_setr
  rd   "delete_view_mouse_event_location_tr-  r<   r$   r#   r   r
  r
    sz    -/I!#GH"<**L**,B ,'/,,l,,(.D
$ .< $FFr#   r
  c                  >   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR]R
&    ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    ]! ]P2                  ]P4                  4      tR]R&    ]! ]P8                  ]P:                  4      tR]R&    R t]P@                  t!Rt"R# )view_mouse_event_ti7  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   view_mouse_event_t.<lambda>8  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r
  8  r[   r#   r\   r]   'tcc_renderer_type_t'rtyperx   rT   yz 'view_mouse_event_t::location_t'location'view_event_state_t'state'vme_button_t'buttonr
  renderer_posc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   view_mouse_event_t_swiginitnew_view_mouse_event_trr   s   &r   rd   view_mouse_event_t.__init__]  r	  r#   r$   N)#r   r   r8   r9   r   r   r   r
   r   view_mouse_event_t_rtype_getview_mouse_event_t_rtype_setr
  rp  view_mouse_event_t_x_getview_mouse_event_t_x_setrT   view_mouse_event_t_y_getview_mouse_event_t_y_setr
  view_mouse_event_t_location_getview_mouse_event_t_location_setr
  view_mouse_event_t_state_getview_mouse_event_t_state_setr
  view_mouse_event_t_button_getview_mouse_event_t_button_setr
  #view_mouse_event_t_renderer_pos_get#view_mouse_event_t_renderer_pos_setr
  rd   delete_view_mouse_event_tr-  r<   r$   r#   r   r
  r
  7  s;   -/I!#GH#+L$$l&O&O$
E  
l;;\  "As "l;;\  "As "19,''''2)H. )"*<$$l&O&O#
E 
%l%%|%%'FN '*2<++\+++-L' -& $==r#   r
  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    ]! ]P2                  ]P4                  4      tR]R&   ]! ]P8                  ]P:                  4      tR]R&   ]! ]P>                  ]P@                  4      t!R]R&   R t"R R lt#R R lt$R t%R t&]PN                  t(Rt)R# )input_event_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   input_event_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r
    r[   r#   r\   r]   rx   r  z'input_event_kind_t'kindz'input_event_modifiers_t'	modifiersr  targetru  sourcez,'input_event_t::input_event_shortcut_data_t'shortcutz,'input_event_t::input_event_keyboard_data_t'keyboardz)'input_event_t::input_event_mouse_data_t'mousec                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   input_event_t_swiginitnew_input_event_trr   s   &r   rd   input_event_t.__init__  $    ++D,3 3  	!r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   input_event_t.__annotate__       @ @ @r#   c                	.    \         P                  ! V 4      # r.   )r   input_event_t__source_as_sizerr   s   &r   _source_as_sizeinput_event_t._source_as_size  r   r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    r	  r#   c                	.    \         P                  ! V 4      # r.   )r   input_event_t__target_as_sizerr   s   &r   _target_as_sizeinput_event_t._target_as_size  r   r#   c                	   V P                  4       pV'       d   ^ RIpV P                  \        \        39   d   ^ RIHp VP                  W4      # V P                  \        \        39   d   ^ RIH
p VP                  W4      # V P                  \        8X  d   ^ RIHp VP                  W4      # ^ RIHp VP                  W4      # R# )rL  N)QInputEvent)QMouseEvent)QWheelEvent)QEvent)r  shiboken6.Shibokenr
  iek_key_pressiek_key_releasePySide6.QtGuir  wrapInstanceiek_mouse_button_pressiek_mouse_button_releaser  iek_mouse_wheelr  PySide6.QtCorer  )r   ptr	shiboken6r  r  r  r  s   &      r   get_source_QEventinput_event_t.get_source_QEvent  s    ""$%yy]O<<5 --c??57O  5 --c??o-5 --c??1 --c:: r#   c                	l    V P                  4       pV'       d   ^ RIp^ RIHp VP	                  W4      # R# )rL  N)QWidget)r  r  PySide6.QtWidgetsr&  r  )r   r!  r"  r&  s   &   r   get_target_QWidget input_event_t.get_target_QWidget  s/    ""$%1))#77 r#   r$   N)*r   r   r8   r9   r   r   r   r
   r   input_event_t_cb_getinput_event_t_cb_setr  rp  input_event_t_kind_getinput_event_t_kind_setr
  input_event_t_modifiers_getinput_event_t_modifiers_setr
  input_event_t_target_getinput_event_t_target_setr
  input_event_t_source_getinput_event_t_source_setr
  input_event_t_shortcut_getinput_event_t_shortcut_setr
  input_event_t_keyboard_getinput_event_t_keyboard_setr   input_event_t_mouse_getinput_event_t_mouse_setr  rd   r  r  r#  r(  delete_input_event_tr-  r<   r$   r#   r   r
  r
    sy   -/I!#GH|88,B !), C C"ED
 E+3L##\%M%M,OI( O"<#H#H--/FK / E E--/FH /=E//"">$H: $ >F//"">$H: $ 8@	 	 ,"F"F8HE4 H!@@;$8 $88r#   r
  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   R t]P                  tR	tR
# )input_event_shortcut_data_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   $input_event_shortcut_data_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r>    r[   r#   r\   r]   r  action_namec                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   $input_event_shortcut_data_t_swiginitnew_input_event_shortcut_data_trr   s   &r   rd   $input_event_shortcut_data_t.__init__  r
  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   +input_event_shortcut_data_t_action_name_get+input_event_shortcut_data_t_action_name_setr@  rp  rd   "delete_input_event_shortcut_data_tr-  r<   r$   r#   r   r<  r<    sN    -/I!#GH33\335K 5< $FFr#   r<  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   R
 t]P"                  tRtR# )input_event_keyboard_data_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   $input_event_keyboard_data_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rK    r[   r#   r\   r]   rx   keyz
'char [8]'r~  c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   $input_event_keyboard_data_t_swiginitnew_input_event_keyboard_data_trr   s   &r   rd   $input_event_keyboard_data_t.__init__  r
  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   #input_event_keyboard_data_t_key_get#input_event_keyboard_data_t_key_setrM  rp  $input_event_keyboard_data_t_text_get$input_event_keyboard_data_t_text_setr~  rd   "delete_input_event_keyboard_data_tr-  r<   r$   r#   r   rI  rI    sp    -/I!#GHHH88:C :,,l,,.D* .< $FFr#   rI  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R&   ]! ]P                   ]P"                  4      tR	]R
&   R t]P(                  tRtR# )input_event_mouse_data_ti   c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   !input_event_mouse_data_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rZ    r[   r#   r\   r]   rx   rT   r
  r
  r
  c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   !input_event_mouse_data_t_swiginitnew_input_event_mouse_data_trr   s   &r   rd   !input_event_mouse_data_t.__init__  r  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   input_event_mouse_data_t_x_getinput_event_mouse_data_t_x_setrT   rp  input_event_mouse_data_t_y_getinput_event_mouse_data_t_y_setr
  #input_event_mouse_data_t_button_get#input_event_mouse_data_t_button_setr
  rd   delete_input_event_mouse_data_tr-  r<   r$   r#   r   rX  rX     s    -/I!#GHlAA335As 5lAA335As 5%l++\++-FN -, $CCr#   rX  c                  R    ] tR tRt]! R R RR7      t]tR t]	P                  tRtR# )	ui_requests_ti!  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   ui_requests_t.<lambda>"  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rj  "  r[   r#   r\   r]   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   ui_requests_t_swiginitnew_ui_requests_trr   s   &r   rd   ui_requests_t.__init__&  r  r#   r$   N)r   r   r8   r9   r   r   r   r
   rd   r   delete_ui_requests_tr-  r<   r$   r#   r   rh  rh  !  s-    -/I!#GH! $88r#   rh  c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R&    R	 tR
 R lt]P$                  tRtR# )action_ctx_base_cur_sel_ti?  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   "action_ctx_base_cur_sel_t.<lambda>@  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rt  @  r[   r#   r\   r]   z'twinpos_t'r  toc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   "action_ctx_base_cur_sel_t_swiginitnew_action_ctx_base_cur_sel_trr   s   &r   rd   "action_ctx_base_cur_sel_t.__init__L  s$    77l))?* ?, 	-r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   &action_ctx_base_cur_sel_t.__annotate__P  rN  r#   c                	.    \         P                  ! V 4      # r.   )r   action_ctx_base_cur_sel_t_resetrr   s   &r   rV  action_ctx_base_cur_sel_t.resetP  ru   r#   r$   N)r   r   r8   r9   r   r   r   r
   r   #action_ctx_base_cur_sel_t__from_get#action_ctx_base_cur_sel_t__from_setr  rp   action_ctx_base_cur_sel_t_to_get action_ctx_base_cur_sel_t_to_setrv  rd   rV   delete_action_ctx_base_cur_sel_tr-  r<   r$   r#   r   rr  rr  ?  sz    -/I!#GH!,++\++-E; - |((,((*B *-B#DDr#   rr  c                  d   ] tR tRt$ ]! R R RR7      t]tR tR R lt	]! ]
P                  ]
P                  4      tR	]R
&   ]! ]
P                  ]
P                   4      tR]R&    ]! ]
P$                  ]
P&                  4      tR]R&    ]! ]
P*                  ]
P,                  4      tR]R&    ]! ]
P0                  ]
P2                  4      tR]R&    ]! ]
P6                  ]
P8                  4      tR]R&    ]! ]
P<                  ]
P>                  4      t R]R&    R R lt!]! ]
PD                  ]
PF                  4      t$R]R&    ]! ]
PJ                  ]
PL                  4      t'R]R&    ]! ]
PP                  ]
PR                  4      t*R]R&    ]! ]
PV                  ]
PX                  4      t-R]R&    ]! ]
P\                  ]
P^                  4      t0R]R&    ]! ]
Pb                  ]
Pd                  4      t3R ]R!&    ]! ]
Ph                  ]
Pj                  4      t6R]R"&    ]! ]
Pn                  ]
Pp                  4      t9R	]R#&    ]! ]
Pt                  ]
Pv                  4      t<R$]R%&    ]! ]
Pz                  ]
P|                  4      t?R&]R'&    ]! ]
P                  ]
P                  4      tBR(]R)&    ]! ]
P                  ]
P                  4      tER*]R+&    ]! ]
P                  ]
P                  4      tHR,]R-&    ]'tI]JP                  ! R.R
R/R07      tL]JP                  ! R1RR/R07      tM]JP                  ! R2RR/R07      tN]
P                  tPR3tQR4# )5action_ctx_base_tiX  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   action_ctx_base_t.<lambda>Y  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  Y  r[   r#   r\   r]   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   action_ctx_base_t_swiginitnew_action_ctx_base_trr   s   &r   rd   action_ctx_base_t.__init__]  s$    //l!!7" 7$ 	%r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   action_ctx_base_t.__annotate__a  s     : :d :r#   c                .    \         P                  ! V 4      # )zInvalidate all context info.
)r   action_ctx_base_t_resetrr   s   &r   rV  action_ctx_base_t.reseta  rc  r#   r  r  r	  widget_typer  widget_titlez'chooser_base_t *'r  z'sizevec_t'chooser_selectionactionrx   	cur_flagsc                    V ^8  d   QhRRRR/# )rA   flagrx   rC   r   r$   )rE   s   "r   rF   r    s     C CS CD Cr#   c                .    \         P                  ! W4      # )z Check if the given flag is set.
)r   action_ctx_base_t_has_flag)r   r  s   &&r   has_flagaction_ctx_base_t.has_flag  s     66tBBr#   r  cur_ea	cur_value
'func_t *'cur_func
cur_fchunk'segment_t *'cur_segz'action_ctx_base_cur_sel_t'cur_selregnamefocusz'interactive_graph_t *'graphz'screen_graph_selection_t *'graph_selectionr
  hoveredz'dirtree_selection_t *'dirtree_selectionz'til_type_ref_t *'type_refformF)
has_setter	form_type
form_titler$   N)Rr   r   r8   r9   r   r   r   r
   rd   rV  r   action_ctx_base_t_widget_getaction_ctx_base_t_widget_setr  rp  !action_ctx_base_t_widget_type_get!action_ctx_base_t_widget_type_setr  "action_ctx_base_t_widget_title_get"action_ctx_base_t_widget_title_setr  action_ctx_base_t_chooser_getaction_ctx_base_t_chooser_setr  'action_ctx_base_t_chooser_selection_get'action_ctx_base_t_chooser_selection_setr  action_ctx_base_t_action_getaction_ctx_base_t_action_setr  action_ctx_base_t_cur_flags_getaction_ctx_base_t_cur_flags_setr  r  action_ctx_base_t_cur_ea_getaction_ctx_base_t_cur_ea_setr  action_ctx_base_t_cur_value_getaction_ctx_base_t_cur_value_setr  action_ctx_base_t_cur_func_getaction_ctx_base_t_cur_func_setr   action_ctx_base_t_cur_fchunk_get action_ctx_base_t_cur_fchunk_setr  action_ctx_base_t_cur_seg_getaction_ctx_base_t_cur_seg_setr  action_ctx_base_t_cur_sel_getaction_ctx_base_t_cur_sel_setr  action_ctx_base_t_regname_getaction_ctx_base_t_regname_setr  action_ctx_base_t_focus_getaction_ctx_base_t_focus_setr  action_ctx_base_t_graph_getaction_ctx_base_t_graph_setr  %action_ctx_base_t_graph_selection_get%action_ctx_base_t_graph_selection_setr  action_ctx_base_t_hovered_getaction_ctx_base_t_hovered_setr  'action_ctx_base_t_dirtree_selection_get'action_ctx_base_t_dirtree_selection_setr  action_ctx_base_t_type_ref_getaction_ctx_base_t_type_ref_setr  cur_extracted_ear.  !_make_missed_695bwcompat_propertyr  r  r  delete_action_ctx_base_tr-  r<   r$   r#   r   r  r  X  s   -/I!#GH%: #<$$l&O&O
FK 
 %-\))<))%+K! + **L**,L# ,"*<%%|%%#'G '%-l////&1{ 1<DD113FC 3lJJ446Is 6C '|$$l&O&O
FO 
lJJ446Is 6#L&&&&(Hj (%l((,((*J
 *%l%%|%%'G] '+3L%%|%%,'G( 'LFF224GS 4!,"J"J002E; 2%-l##\%M%M&OE" O4<\--|--5/O1 /*2<%%|%%+'G' '19,////21. 1#+L&&&&$(H  ( 77D<<[%)I==l5*J#<<r#   r  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR]R
&    ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    ]! ]P2                  ]P4                  4      tR]R&    ]! ]P8                  ]P:                  4      tR]R&    ]! ]P>                  ]P@                  4      t!R]R&    RR R llt"]PF                  t$Rt%R# )action_desc_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   action_desc_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r    r[   r#   r\   r]   rx   r  r  r   r	  ru  r  r
  r	  r	  r  Nc               4    V ^8  d   QhRRRRRRRRRRRR	R
R	/# )rA   r   r  r	  handlerr  r
  r	  r	  rx   r  r$   )rE   s   "r   rF   action_desc_t.__annotate__  sA      S  | %(58DGr#   c                	b    \         P                  ! V \         P                  ! WW4WVV4      4       R # r.   )r   action_desc_t_swiginitnew_action_desc_t)r   r   r	  r  r
  r	  r	  r  s   &&&&&&&&r   rd   action_desc_t.__init__  s.    ++D,3"7g3 	r#   r$   )NNr	  rL  )&r   r   r8   r9   r   r   r   r
   r   action_desc_t_cb_getaction_desc_t_cb_setr  rp  action_desc_t_name_getaction_desc_t_name_setr   action_desc_t_label_getaction_desc_t_label_setr	  action_desc_t_owner_getaction_desc_t_owner_setr  action_desc_t_shortcut_getaction_desc_t_shortcut_setr
  action_desc_t_tooltip_getaction_desc_t_tooltip_setr	  action_desc_t_icon_getaction_desc_t_icon_setr	  action_desc_t_flags_getaction_desc_t_flags_setr  rd   delete_action_desc_tr-  r<   r$   r#   r   r  r    sb   -/I!#GH|88,B <<l D#  ,>>,,.E3 .$\%I%I,,.E> .\DD//1Hc 1LBB..0GS 0<<l D#  ,>>,,.E3 .
 $88r#   r  c                    V ^8  d   QhRRRR/# )rA   req_idrx   rC   r   r$   )rE   s   "r   rF   rF   Q  s     4 4 4t 4r#   c                .    \         P                  ! V 4      # )zTry to cancel an asynchronous exec request (::ui_cancel_exec_request). 
        
:param req_id: request id
:returns: true: successfully canceled
:returns: false: request has already been processed.)r   cancel_exec_request)r  s   &r   r  r  Q  s     ++F33r#   c                    V ^8  d   QhRRRR/# )rA   tid'__qthread_t'rC   rx   r$   )rE   s   "r   rF   rF   Z  s     9 9] 9c 9r#   c                .    \         P                  ! V 4      # )zTry to cancel asynchronous exec requests created by the specified thread. 
        
:param tid: thread id
:returns: number of the canceled requests.)r   cancel_thread_exec_requests)r  s   &r   r  r  Z  s    
 33C88r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  availabilityz'execute_sync_availability_t'rC   r$   )rE   s   "r   rF   rF   b  s(     I I} I!I%BIr#   c                .    \         P                  ! W4      # )a  Set the availability of the execute_sync functionality for the given thread
Setting it to `esa_unavailable` will cause the existing requests for this thread to be cancelled. Setting it to `esa_release` will clear the status for this thread, and should be issued right before a call to `qthread_free` is issued.

:param tid: thread id
:param availability: the availability
:returns: the previous availability)r   set_execute_sync_availability)r  r  s   &&r   r  r  b  s     55cHHr#   c                    V ^8  d   QhRRRR/# )rA   wr  rC   r  r$   )rE   s   "r   rF   rF   m  s     , ,) ,-E ,r#   c                .    \         P                  ! V 4      # )zGet the group of widgets/registers this view is synchronized with 
        
:param w: the widget
:returns: the group of widgets/registers, or nullptr)r   get_synced_groupr  s   &r   r	  r	  m  s    
 ((++r#   c                    V ^8  d   QhRRRR/# )rA   waitrx   rC   r   r$   )rE   s   "r   rF   rF   u  s     % % % %r#   c                .    \         P                  ! V 4      # )zShow a banner dialog box (ui_banner). 
        
:param wait: time to wait before closing
:returns: 1: ok
:returns: 0: esc was pressed)r   banner)r  s   &r   r  r  u  s     t$$r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF   ~  r  r#   c                 ,    \         P                  ! 4       # )zCan we use msg() functions?
)r   is_msg_initedr$   r#   r   r  r  ~  r  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     s     * * *r#   c                 ,    \         P                  ! 4       # )z*Refresh marked windows (ui_refreshmarked)
)r   refresh_idaviewr$   r#   r   r  r    s     ''))r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     s     1 1t 1r#   c                 ,    \         P                  ! 4       # )zRefresh all disassembly views (ui_refresh), forces an immediate refresh. Please consider mark_builtin_widgets() instead 
        )r   refresh_idaview_anywayr$   r#   r   r  r    s     ..00r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF          + + +r#   c                 ,    \         P                  ! 4       # )zRAllow the user to set analyzer options. (show a dialog box) (ui_analyzer_options)
)r   analyzer_optionsr$   r#   r   r  r         ((**r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     s     ( (o (r#   c                 ,    \         P                  ! 4       # )z3Get the address at the screen cursor (ui_screenea)
)r   get_screen_ear$   r#   r   r  r    r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF     s     $ $# $r#   c                 ,    \         P                  ! 4       # )z?Get current operand number, -1 means no operand (ui_get_opnum)
)r   	get_opnumr$   r#   r   r"  r"         !!##r#   c                   V ^8  d   QhRR/# rA   rC   'int *, int *'r$   )rE   s   "r   rF   rF     s     % %> %r#   c                 ,    \         P                  ! 4       # )zGet the cursor position on the screen (ui_get_cursor). 
        
:returns: true: pointers are filled
:returns: false: no disassembly window open)r   
get_cursorr$   r#   r   r(  r(        
 ""$$r#   c                   V ^8  d   QhRR/# r%  r$   )rE   s   "r   rF   rF     s     , ,. ,r#   c                 ,    \         P                  ! 4       # )zGet coordinates of the output window's cursor (ui_get_output_cursor). 
        
:returns: false: the output window has been destroyed.
:returns: true: pointers are filled)r   get_output_cursorr$   r#   r   r,  r,    s    
 ))++r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   rF     s     & &C &r#   c                 ,    \         P                  ! 4       # )zGet current line from the disassemble window (ui_get_curline). 
        
:returns: cptr current line with the color codes (use tag_remove() to remove the color codes))r   get_curliner$   r#   r   r/  r/    s     ##%%r#   c                    V ^8  d   QhRRRR/# )rA   urlr  rC   rD   r$   )rE   s   "r   rF   rF     s     & &# & &r#   c                .    \         P                  ! V 4      # )z!Open the given url (ui_open_url)
)r   open_url)r1  s   &r   r3  r3    s       %%r#   c                    V ^8  d   QhRRRR/# )rA   hexdump_numrx   rC   r  r$   )rE   s   "r   rF   rF     s     4 4 4 4r#   c                .    \         P                  ! V 4      # )z]Get the current address in a hex view. 
        
:param hexdump_num: number of hexview window)r   get_hexdump_ea)r5  s   &r   r7  r7    s     &&{33r#   c                    V ^8  d   QhRRRR/# )rA   keynamer  rC   'ushort'r$   )rE   s   "r   rF   rF     s     . .# . .r#   c                .    \         P                  ! V 4      # )z4Get keyboard key code by its name (ui_get_key_code)
)r   get_key_code)r9  s   &r   r<  r<    s     $$W--r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   rM  rx   shiftis_qtr   rC   r:  r$   )rE   s   "r   rF   rF     s(     ; ; ;S ; ; ;r#   c                0    \         P                  ! WV4      # )zGet shortcut code previously created by ui_get_key_code. 
        
:param key: key constant
:param shift: modifiers
:param is_qt: are we using gui version?)r   lookup_key_code)rM  r>  r?  s   &&&r   rA  rA    s     ''E::r#   c                    V ^8  d   QhRRRR/# )rA   forcer   rC   rD   r$   )rE   s   "r   rF   rF     s     / /4 /4 /r#   c                .    \         P                  ! V 4      # )zcRefresh navigation band if changed (ui_refresh_navband). 
        
:param force: refresh regardless)r   refresh_navband)rC  s   &r   rE  rE    s     ''..r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   r   r$   )rE   s   "r   rF   rF     s     / /3 /$ /r#   c                .    \         P                  ! V 4      # )z~Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). 
        
:param title: title of chooser
:returns: success)r   refresh_chooserr  s   &r   rI  rI    s    
 ''..r#   c                    V ^8  d   QhRRRR/# rG  r$   )rE   s   "r   rF   rF          - - - -r#   c                .    \         P                  ! V 4      # )zxClose a non-modal chooser (ui_close_chooser). 
        
:param title: window title of chooser to close
:returns: success)r   close_chooserrJ  s   &r   rN  rN    s    
 %%e,,r#   c           	     4    \         P                  ! WW#VWV4      # )a  Sets the dock orientation of a window relatively to another window.

Use the left, top, right, bottom parameters if DP_FLOATING is used,
or if you want to specify the width of docked windows.

:param src_ctrl: Source docking control
:param dest_ctrl: Destination docking control
:param orient: One of DP_XXXX constants
:returns: Boolean

Example:
    set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window)r   set_dock_pos)src_ctrl	dest_ctrlorientlefttoprightbottoms   &&&&&&&r   rP  rP    s      $$X& r#   c                    V ^8  d   QhRRRR/# )rA   	icon_namer  rC   rx   r$   )rE   s   "r   rF   rF     s     7 73 7# 7r#   c                .    \         P                  ! V 4      # )zRetrieve the id of the icon by name (ui_get_icon_id_by_name). 
        
:param icon_name: full name of the icon
:returns: icon id)r   get_icon_id_by_name)rY  s   &r   r[  r[    s    
 ++I66r#   c                .    \         P                  ! V 4      # )zXFrees an icon loaded with load_custom_icon()

:param icon_id: The ID of the icon to free)r   free_custom_icon)icon_ids   &r   r]  r]    s     ((11r#   c                  R    ] tR tRt]! R R RR7      t]tR t]	P                  tRtR# )	
__qtimer_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   __qtimer_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rb    r[   r#   r\   r]   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   _qtimer_t__qtimer_t_swiginitnew___qtimer_trr   s   &r   rd   __qtimer_t.__init__      ((|/J/J/LMr#   r$   N)r   r   r8   r9   r   r   r   r
   rd   r   delete___qtimer_tr-  r<   r$   r#   r   r`  r`    s,    -/I!#GHN#55r#   r`  c                    V ^8  d   QhRRRR/# rA   r   r  rC   r   r$   )rE   s   "r   rF   rF     s     0 0C 04 0r#   c                .    \         P                  ! V 4      # )zuDelete a previously-registered action (ui_unregister_action). 
        
:param name: name of action
:returns: success)r   unregister_actionr  s   &r   rm  rm    s    
 ))$//r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   r   r  r	  beforer  rx   rC   r   r$   )rE   s   "r   rF   rF   "  s7     	C 	C 	CS 	C# 	C3 	C	Cr#   c                0    \         P                  ! WW#4      # )aV  Create a toolbar with the given name, label and optional position 
        
:param name: name of toolbar (must be unique)
:param label: label of toolbar
:param before: if non-nullptr, the toolbar before which the new toolbar will be inserted
:param flags: a combination of create toolbar flags, to determine toolbar position
:returns: success)r   create_toolbar)r   r	  ro  r  s   &&&&r   rq  rq  "  s     &&tFBBr#   c                    V ^8  d   QhRRRR/# rk  r$   )rE   s   "r   rF   rF   .  rL  r#   c                .    \         P                  ! V 4      # )zSDelete an existing toolbar 
        
:param name: name of toolbar
:returns: success)r   delete_toolbarr  s   &r   rt  rt  .  s    
 &&t,,r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r   r  r	  menupathrC   r   r$   )rE   s   "r   rF   rF   6  s(     ; ;c ;# ; ;T ;r#   c                0    \         P                  ! WV4      # )a  Create a menu with the given name, label and optional position, either in the menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information about where the menu should be positioned. First, IDA will try and resolve the corresponding menu by its name. If such an existing menu is found and is present in the menubar, then the new menu will be inserted in the menubar before it. Otherwise, IDA will try to resolve 'menupath' as it would for attach_action_to_menu() and, if found, add the new menu like so: 
     The new 'My menu' submenu will appear in the 'Comments' submenu
     before the 'Enter comment..." command
     "My menu", "Edit/Comments/Enter comment...");


     The new 'My menu' submenu will appear at the end of the
     'Comments' submenu.
     "My menu", "Edit/Comments/");


        
:param name: name of menu (must be unique)
:param label: label of menu
:param menupath: where should the menu be inserted
:returns: success)r   create_menu)r   r	  rv  s   &&&r   rx  rx  6  s    " ##D::r#   c                    V ^8  d   QhRRRR/# rk  r$   )rE   s   "r   rF   rF   J  s     * *c *T *r#   c                .    \         P                  ! V 4      # )zMDelete an existing menu 
        
:param name: name of menu
:returns: success)r   delete_menur  s   &r   r{  r{  J  s    
 ##D))r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   rv  r  r   r  rx   rC   r   r$   )rE   s   "r   rF   rF   R  s.     E EC Es E3 ED Er#   c                0    \         P                  ! WV4      # )an  Attach a previously-registered action to the menu (ui_attach_action_to_menu). 
        
:param menupath: path to the menu item after or before which the insertion will take place. 

* Example: Debug/StartProcess
* Whitespace, punctuation are ignored.
* It is allowed to specify only the prefix of the menu item.
* Comparison is case insensitive.
* menupath may start with the following prefixes:
* [S] - modify the main menu of the structure window
* [E] - modify the main menu of the enum window
:param name: the action name
:param flags: a combination of Set menu flags, to determine menu item position
:returns: success)r   attach_action_to_menu)rv  r   r  s   &&&r   r~  r~  R  s     --heDDr#   c               $    V ^8  d   QhRRRRRR/# )rA   rv  r  r   rC   r   r$   )rE   s   "r   rF   rF   d  s&     @ @c @ @ @r#   c                .    \         P                  ! W4      # )zDetach an action from the menu (ui_detach_action_from_menu). 
        
:param menupath: path to the menu item
:param name: the action name
:returns: success)r   detach_action_from_menu)rv  r   s   &&r   r  r  d  s     //??r#   c               $    V ^8  d   QhRRRRRR/# rA   toolbar_namer  r   rC   r   r$   )rE   s   "r   rF   rF   m  s&     E E3 Ec ET Er#   c                .    \         P                  ! W4      # )zAttach an action to an existing toolbar (ui_attach_action_to_toolbar). 
        
:param toolbar_name: the name of the toolbar
:param name: the action name
:returns: success)r   attach_action_to_toolbarr  r   s   &&r   r  r  m  s     00DDr#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   rF   v  s&     G GS G Gt Gr#   c                .    \         P                  ! W4      # )zDetach an action from the toolbar (ui_detach_action_from_toolbar). 
        
:param toolbar_name: the name of the toolbar
:param name: the action name
:returns: success)r   detach_action_from_toolbarr  s   &&r   r  r  v  s     22<FFr#   c               <    V ^8  d   QhRRRRRRRRRRRR	R
RRRRR/	# )rA   rv  r  r   r	  r
  r  rx   r  z'action_handler_t *'r  ru  action_desc_t_flagsrC   r   r$   )rE   s   "r   rF   rF     sQ     > ># >S > >>>(<>>#&>*.>r#   c           
     6    \         P                  ! WVW4WVV4      # )zHelper.
You are not encouraged to use this, as it mixes flags for both register_action(), and attach_action_to_menu().
The only reason for its existence is to make it simpler to port existing plugins to the new actions API. 
        )r   register_and_attach_to_menu)rv  r   r	  r
  r  r  r  r  s   &&&&&&&&r   r  r    s#     33HE)<> >r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r  r  optionsrx   rR  r  rC   rD   r$   )rE   s   "r   rF   rF     s/     C C; C C CCr#   c                0    \         P                  ! WV4      # )a  Display a widget, dock it if not done before 
        
:param widget: widget to display
:param options: Widget open flags
:param dest_ctrl: where to dock: if nullptr or invalid then use the active docker if there is not create a new tab relative to current active tab)r   display_widget)r  r  rR  s   &&&r   r  r    s     &&v	BBr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  rx   rC   rD   r$   )rE   s   "r   rF   rF     s!     6 6 6s 6d 6r#   c                .    \         P                  ! W4      # )zClose widget (ui_close_widget, only gui version). 
        
:param widget: pointer to the widget to close
:param options: Form close flags)r   close_widget)r  r  s   &&r   r  r    s    
 $$V55r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  
take_focusr   rC   rD   r$   )rE   s   "r   rF   rF     s!     < <K <T <T <r#   c                .    \         P                  ! W4      # )zActivate widget (only gui version) (ui_activate_widget). 
        
:param widget: existing widget to display
:param take_focus: give focus to given widget)r   activate_widget)r  r  s   &&r   r  r    s    
 '';;r#   c                    V ^8  d   QhRRRR/# )rA   captionr  rC   r  r$   )rE   s   "r   rF   rF     s     - - - -r#   c                .    \         P                  ! V 4      # )a  Find widget with the specified caption (only gui version) (ui_find_widget). NB: this callback works only with the tabbed widgets! 
        
:param caption: title of tab, or window title if widget is not tabbed
:returns: pointer to the TWidget, nullptr if none is found)r   find_widget)r  s   &r   r  r    s    
 ##G,,r#   c                   V ^8  d   QhRR/# rA   rC   r  r$   )rE   s   "r   rF   rF          - -; -r#   c                 ,    \         P                  ! 4       # )z=Get a pointer to the current widget (ui_get_current_widget).
)r   get_current_widgetr$   r#   r   r  r    ra  r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r	  r$   )rE   s   "r   rF   rF     s     0 0K 0+; 0r#   c                .    \         P                  ! V 4      # )z4Get the type of the TWidget * (ui_get_widget_type).
)r   get_widget_typer  s   &r   r  r    s     ''//r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     1 1[ 1C 1r#   c                .    \         P                  ! V 4      # )z/Get the TWidget's title (ui_get_widget_title).
)r   get_widget_titler  s   &r   r  r    s     ((00r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   rZ   r  ry	  z'lochist_entry_t const &'r  rx   rC   r   r$   )rE   s   "r   rF   rF     s+     : :+ :,E :::r#   c                0    \         P                  ! WV4      # )zAppend 'loc' to the viewer's history, and cause the viewer to display it. 
        
:param v: (TWidget *)
:param loc: (const lochist_entry_t &)
:param flags: (uint32) or'ed combination of CVNF_* values
:returns: success)r   custom_viewer_jump)rZ   ry	  r  s   &&&r   r  r    s     **1599r#   c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )rA   rZ   r  r  r  rT   rx   r
  rq  rC   r   r$   )rE   s   "r   rF   rF     sB     	L 	L{ 	L 	L	L	L	L#	Lr#   c                2    \         P                  ! WW#V4      # )aX  Push current location in the history and jump to the given location (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and also in other synchronized views. 
        
:param v: ea viewer
:param ea: jump destination
:param x: coords on screen
:param y: coords on screen
:param lnnum: desired line number of given address)r   ea_viewer_history_push_and_jump)rZ   r  rT   r
  rq  s   &&&&&r   r  r    s     77qUKKr#   c               (    V ^8  d   QhRRRRRRRR/# )rA   nbackrx  nfwdrZ   r  rC   r   r$   )rE   s   "r   rF   rF     s/     	C 	Cg 	CW 	C 	C	Cr#   c                0    \         P                  ! WV4      # )a  Get information about what's in the history (ui_ea_viewer_history_info). 
        
:param nback: number of available back steps
:param nfwd: number of available forward steps
:param v: ea viewer
:returns: false: if the given ea viewer does not exist
:returns: true: otherwise)r   get_ea_viewer_history_info)r  r  rZ   s   &&&r   r  r    s     225BBr#   c                    V ^8  d   QhRRRR/# rA   custom_viewerr  rC   rD   r$   )rE   s   "r   rF   rF          = = = =r#   c                .    \         P                  ! V 4      # )z5Refresh custom ida viewer (ui_refresh_custom_viewer)
)r   refresh_custom_viewerr  s   &r   r  r         --m<<r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                .    \         P                  ! V 4      # )z:Repaint the given widget immediately (ui_repaint_qwidget)
)r   repaint_custom_viewerr  s   &r   r  r    r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     & &D &r#   c                 *    \         P                  ! V !  # )a  This function has the following signatures:

    0. jumpto(ea: ida_idaapi.ea_t, opnum: int=-1, uijmp_flags: int=UIJMP_ACTIVATE) -> bool
    1. jumpto(custom_viewer: TWidget *, place: place_t *, x: int, y: int) -> bool

# 0: jumpto(ea: ida_idaapi.ea_t, opnum: int=-1, uijmp_flags: int=UIJMP_ACTIVATE) -> bool

Jump to the specified address (ui_jumpto). 
        
:returns: success

# 1: jumpto(custom_viewer: TWidget *, place: place_t *, x: int, y: int) -> bool

Set cursor position in custom ida viewer. 
        
:returns: success
)r   jumptorc   s   *r   r  r    s    $ %%r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  r   rC   r&  r$   )rE   s   "r   rF   rF     s'     F F; Ft FFr#   c                .    \         P                  ! W4      # )zGet current place in a custom viewer (ui_get_curplace).
See also the more complete get_custom_viewer_location()

:param custom_viewer: view
:param mouse: mouse position (otherwise cursor position))r   get_custom_viewer_placer  r  s   &&r   r  r    s     //EEr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     
: 
: 
:r#   c                 *    \         P                  ! V !  # )a  Get information about the current location in a listing

This function has the following signatures:

    1. get_custom_viewer_location(out_entry: ida_moves.lochist_entry_t, widget: TWidget, mouse: bool=False) -> bool
    2. get_custom_viewer_location(out_entry: ida_kernwin.listing_location_t, widget: TWidget, flags: int=0) -> bool

The 2nd form is a superset of the 1st, and retrieves
the text (and tags) of the text.)r   get_custom_viewer_locationr  s   *r   r  r    s     22D99r#   c                 ,    \         P                  ! 4       # )z>Returns True or False depending if IDAPython is hosted by IDAQ)r   is_idaqr$   r#   r   r  r    s    !!r#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rA   r  r  r  r  r   r  r[  r  rx   rC   r   r$   )rE   s   "r   rF   rF     s;      ; *-;>DHr#   c                2    \         P                  ! WVW44      # )a`  Insert a previously-registered action into the widget's popup menu (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and 'permanent'. 
        
:param widget: target widget
:param popup_handle: target popup menu
* if non-nullptr, the action is added to this popup menu invocation (i.e., 'single-shot')
* if nullptr, the action is added to a list of actions that should always be present in context menus for this widget (i.e., 'permanent'.)
:param name: action name
:param popuppath: can be nullptr
:param flags: a combination of SETMENU_ flags (see Set menu flags)
:returns: success)r   attach_action_to_popup)r  r  r   r[  r  s   &&&&&r   r  r    s     ..vT r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r   r  rC   r   r$   )rE   s   "r   rF   rF   .  s!     ? ?[ ? ?t ?r#   c                .    \         P                  ! W4      # )a^  Remove a previously-registered action, from the list of 'permanent' context menu actions for this widget (ui_detach_action_from_popup). This only makes sense if the action has been added to 'widget's list of permanent popup actions by calling attach_action_to_popup in 'permanent' mode. 
        
:param widget: target widget
:param name: action name)r   detach_action_from_popup)r  r   s   &&r   r  r  .  s    
 00>>r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r	  rC   r   r$   )rE   s   "r   rF   rF   6  s!     9 9c 9# 9 9r#   c                .    \         P                  ! W4      # )z~Update an action's label (ui_update_action_attr). 
        
:param name: action name
:param label: new label
:returns: success)r   update_action_label)r   r	  s   &&r   r  r  6       ++D88r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r
  rC   r   r$   )rE   s   "r   rF   rF   ?  s!     ? ? ? ?t ?r#   c                .    \         P                  ! W4      # )zUpdate an action's shortcut (ui_update_action_attr). 
        
:param name: action name
:param shortcut: new shortcut
:returns: success)r   update_action_shortcut)r   r
  s   &&r   r  r  ?  s     ..t>>r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r	  rC   r   r$   )rE   s   "r   rF   rF   H  s!     = = =c =T =r#   c                .    \         P                  ! W4      # )zUpdate an action's tooltip (ui_update_action_attr). 
        
:param name: action name
:param tooltip: new tooltip
:returns: success)r   update_action_tooltip)r   r	  s   &&r   r  r  H       --d<<r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r	  rx   rC   r   r$   )rE   s   "r   rF   rF   Q  s!     7 7S 7 7t 7r#   c                .    \         P                  ! W4      # )z~Update an action's icon (ui_update_action_attr). 
        
:param name: action name
:param icon: new icon id
:returns: success)r   update_action_icon)r   r	  s   &&r   r  r  Q  s     **466r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  r
  r	  rC   r   r$   )rE   s   "r   rF   rF   Z  s"     9 9c 9*: 9d 9r#   c                .    \         P                  ! W4      # )z~Update an action's state (ui_update_action_attr). 
        
:param name: action name
:param state: new state
:returns: success)r   update_action_state)r   r
  s   &&r   r  r  Z  r  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  	checkabler   rC   r$   )rE   s   "r   rF   rF   c  s&     A A# A$ A$ Ar#   c                .    \         P                  ! W4      # )zUpdate an action's checkability (ui_update_action_attr). 
        
:param name: action name
:param checkable: new checkability
:returns: success)r   update_action_checkable)r   r  s   &&r   r  r  c  s     //@@r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  checkedr   rC   r$   )rE   s   "r   rF   rF   l  s!     = = =d =d =r#   c                .    \         P                  ! W4      # )zUpdate an action's checked state (ui_update_action_attr). 
        
:param name: action name
:param checked: new checked state
:returns: success)r   update_action_checked)r   r  s   &&r   r  r  l  r  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  visibler   rC   r$   )rE   s   "r   rF   rF   u  s&     @ @3 @ @ @r#   c                .    \         P                  ! W4      # )zUpdate an action's visibility (ui_update_action_attr). 
        
:param name: action name
:param visible: new visibility
:returns: success)r   update_action_visibility)r   r  s   &&r   r  r  u  s     00??r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   r$   )rE   s   "r   rF   rF   ~  s     / /3 /# /r#   c                .    \         P                  ! V 4      # )zdGet an action's label (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_labelr  s   &r   r  r  ~      
 ((..r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     2 2c 2S 2r#   c                .    \         P                  ! V 4      # )zgGet an action's shortcut (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_shortcutr  s   &r   r  r    s    
 ++D11r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                .    \         P                  ! V 4      # )zfGet an action's tooltip (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_tooltipr  s   &r   r  r    r  r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   rx  r$   )rE   s   "r   rF   rF     s     . .# . .r#   c                .    \         P                  ! V 4      # )zcGet an action's icon (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_iconr  s   &r   r  r    s    
 ''--r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   z'action_state_t *'r$   )rE   s   "r   rF   rF     s     / /3 /"4 /r#   c                .    \         P                  ! V 4      # )zdGet an action's state (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_stater  s   &r   r   r     r  r#   c                    V ^8  d   QhRRRR/# rA   r   r  rC   z'bool *'r$   )rE   s   "r   rF   rF     s     3 3s 3h 3r#   c                .    \         P                  ! V 4      # )zkGet an action's checkability (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_checkabler  s   &r   r  r    s    
 ,,T22r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     1 1S 1H 1r#   c                .    \         P                  ! V 4      # )zlGet an action's checked state (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_checkedr  s   &r   r  r    r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     4 4 4x 4r#   c                .    \         P                  ! V 4      # )ziGet an action's visibility (ui_get_action_attr). 
        
:param name: the action name
:returns: success)r   get_action_visibilityr  s   &r   r
  r
    s    
 --d33r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r   r$   )rE   s   "r   rF   rF     s     B Bk BT Br#   c                .    \         P                  ! V 4      # )zMAllow the given viewer to interpret Qt events (ui_set_custom_viewer_handler)
)r   set_custom_viewer_qt_awarer  s   &r   r  r    s     22=AAr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  r   rC   r  r$   )rE   s   "r   rF   rF     s&     H H[ H H Hr#   c                .    \         P                  ! W4      # )a#  Get current line of custom viewer (ui_get_custom_viewer_curline). The returned line contains color codes
See also the more powerful get_custom_viewer_location()

:param custom_viewer: view
:param mouse: mouse position (otherwise cursor position)
:returns: pointer to contents of current line)r   get_custom_viewer_curliner  s   &&r   r  r    s     11-GGr#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  r  pliner  pitemrC   rx   r$   )rE   s   "r   rF   rF     s+      + #&r#   c                0    \         P                  ! WV4      # )ah  Get the X position of the item, in the line 
        
:param custom_viewer: the widget
:param pline: a place corresponding to the line
:param pitem: a place corresponding to the item
:returns: -1: if 'pitem' is not included in the line
:returns: -2: if 'pitem' points at the entire line
:returns: >=: 0 for the X coordinate within the pline, where pitem points)r   get_custom_viewer_place_xcoord)r  r  r  s   &&&r   r  r    s     66} r#   c                    V ^8  d   QhRRRR/# )rA   r  z'input_event_t'rC   r   r$   )rE   s   "r   rF   rF     s     2 2o 2 2r#   c                .    \         P                  ! V 4      # )aj  Get the current user input event (mouse button press, key press, ...) It is sometimes desirable to be able to tell when a certain situation happens (e.g., 'view_curpos' gets triggered); this function exists to provide that context (GUI version only) 
        
:param out: the input event data
:returns: false if we are not currently processing a user input event)r   get_user_input_eventr  s   &r   r  r    s    
 ,,S11r#   c                    V ^8  d   QhRRRR/# )rA   r  r   rC   r  r$   )rE   s   "r   rF   rF     s     2 2d 2c 2r#   c                .    \         P                  ! V 4      # )zGet current line of output window (ui_get_output_curline). 
        
:param mouse: current for mouse pointer?
:returns: false if output contains no text)r   get_output_curline)r  s   &r   r  r    s    
 **511r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   rF     s     3 3 3r#   c                 ,    \         P                  ! 4       # )zxReturns selected text from output window (ui_get_output_selected_text). 
        
:returns: true if there is a selection)r   get_output_selected_textr$   r#   r   r  r    s     0022r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )zJGet current ida viewer (idaview or custom viewer) (ui_get_current_viewer)
)r   get_current_viewerr$   r#   r   r"  r"    ra  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     s     / /[ /r#   c                 *    \         P                  ! V !  # )zGet last ida viewer (idaview or custom viewer) (ui_get_last_widget) 
        
:param mask: an OR'ed set of IWID_* to limit the search to
:returns: the viewer, if found)r   get_last_widgetr  s   *r   r%  r%    s    
 ''..r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# 	rA   out_tif	'tinfo_t'pfnr  tifr   r  rC   r$   )rE   s   "r   rF   rF     s9     	N 	N) 	N* 	N	N	N	Nr#   c                0    \         P                  ! WW#4      # )a5  Open function prototype editor to edit function type and create new type. Allows to change the function prototype either in the "old" one-liner mode or in the new multi-line editor, which supports shortcuts, etc. Note: changes will not apply! It is the caller's job to apply the resulting out_tif and out_name. Parameters: 
        
:param out_tif: - (tinfo_t *) tif for created type
:param pfn: - (func_t *) editing function
:param tif: - (tinfo_t *) current function type
:param name: - (const char *) function name
:returns: true if new type created successfully)r   prompt_function_prototype_exr(  r*  r+  r   s   &&&&r   r-  r-    s     44W3MMr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rW	  rg  r  rC   r   r$   )rE   s   "r   rF   rF     s#     > >$< >C >>r#   c                .    \         P                  ! W4      # )zCollect tagged sections in a color-tagged line (produced by `place_t::generate`)

:param out: sections storage
:param line: input line
:returns: success)r   parse_tagged_line_sections)r  rg  s   &&r   r1  r1    s     223==r#   c                    V ^8  d   QhRRRR/# )rA   rZ   r  rC   r
  r$   )rE   s   "r   rF   rF     s     2 2k 2-B 2r#   c                .    \         P                  ! V 4      # )zSGet the type of renderer currently in use in the given view (ui_get_renderer_type)
)r   get_view_renderer_typerZ   s   &r   r4  r4    s     ..q11r#   c               $    V ^8  d   QhRRRRRR/# )rA   rZ   r  rtr
  rC   rD   r$   )rE   s   "r   rF   rF     s"     6 6k 6/D 6 6r#   c                .    \         P                  ! W4      # )zASet the type of renderer to use in a view (ui_set_renderer_type)
)r   set_view_renderer_type)rZ   r7  s   &&r   r9  r9    s     ..q55r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r	  rx   rC   r  r$   )rE   s   "r   rF   rF   #  s!     9 9s 9# 9K 9r#   c                .    \         P                  ! W4      # )zPCreate an empty widget, serving as a container for custom user widgets 
        )r   create_empty_widget)r  r	  s   &&r   r<  r<  #  s     ++E88r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF   )  s     $ $$ $r#   c                 ,    \         P                  ! 4       # )zClear the "Output" window.
)r   	msg_clearr$   r#   r   r?  r?  )  r#  r#   c                    V ^8  d   QhRRRR/# )rA   r|  r  rC   r   r$   )rE   s   "r   rF   rF   /  s     ' '3 '$ 'r#   c                .    \         P                  ! V 4      # )ao  Save the "Output" window contents into a file 
        
:param path: The path of the file to save the contents into. An empty path means that the user will be prompted for the destination and, if the file already exists, the user will be asked to confirm before overriding its contents. Upon return, 'path' will contain the path that the user chose.
:returns: success)r   msg_saver|  s   &r   rB  rB  /  s    
   &&r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   7  s     2 2 2r#   c                 ,    \         P                  ! 4       # )zGet the current, active modal TWidget instance. Note that in this context, the "wait dialog" is not considered: this function will return nullptr even if it is currently shown. 
        
:returns: TWidget * the active modal widget, or nullptr)r   get_active_modal_widgetr$   r#   r   rF  rF  7  s     //11r#   c                .    \         P                  ! V 4      # )zMaps an address, onto a pixel coordinate within the navigation band

:param ea: The address to map
:returns: a list [pixel, is_vertical])r   get_navband_pixelr  s   &r   rH  rH  >      
 ))"--r#   c                    V ^8  d   QhRRRR/# )rA   pixelrx   rC   r  r$   )rE   s   "r   rF   rF   F  s     . .# . .r#   c                .    \         P                  ! V 4      # )zFTranslate the pixel position on the navigation band, into an address.
)r   get_navband_ea)rL  s   &r   rN  rN  F  s     &&u--r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   ru  r$   )rE   s   "r   rF   rF   L  s     , , ,H ,r#   c                .    \         P                  ! V 4      # )zGet the system-specific window ID (GUI version only) 
        
:param name: name of the window (nullptr means the main IDA window)
:returns: the low-level window ID)r   get_window_idr  s   &r   rQ  rQ  L  s    
 %%d++r#   c                    V ^8  d   QhRRRR/# )rA   rZ   r  rC   r   r$   )rE   s   "r   rF   rF   T  s     & &+ & &r#   c                .    \         P                  ! V 4      # )z5Is the given custom view an idaview? (ui_is_idaview)
)r   
is_idaviewr5  s   &r   rT  rT  T  s     ""1%%r#   c                0    \         P                  ! WV4      # )a|  Read the user selection, and store its information in p1 (from) and p2 (to).

This can be used as follows:


>>> p1 = ida_kernwin.twinpos_t()
p2 = ida_kernwin.twinpos_t()
view = ida_kernwin.get_current_viewer()
ida_kernwin.read_selection(view, p1, p2)


At that point, p1 and p2 hold information for the selection.
But, the 'at' property of p1 and p2 is not properly typed.
To specialize it, call #place() on it, passing it the view
they were retrieved from. Like so:


>>> place0 = p1.place(view)
place1 = p2.place(view)


This will effectively "cast" the place into a specialized type,
holding proper information, depending on the view type (e.g.,
disassembly, structures, enums, ...)

:param v: The view to retrieve the selection for.
:param p1: Storage for the "from" part of the selection.
:param p2: Storage for the "to" part of the selection.
:returns: a bool value indicating success.)r   read_selection)rZ   p1p2s   &&&r   rV  rV  Z  s    < &&qb11r#   c                    V ^8  d   QhRRRR/# )rA   rZ   r  rC   z'ea_t *, ea_t *'r$   )rE   s   "r   rF   rF   {  s     0 0K 0+; 0r#   c                .    \         P                  ! V 4      # )a  Get the address range for the selected range boundaries, this is the convenient function for read_selection() 
        
:param v: view, nullptr means the last active window containing addresses
:returns: 0: no range is selected
:returns: 1: ok, start ea and end ea are filled)r   read_range_selectionr5  s   &r   r[  r[  {  s     ,,Q//r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )z Unmark selection (ui_unmarksel)
)r   unmark_selectionr$   r#   r   r^  r^    r  r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   custviewr  r  rx   parentrC   r$   )rE   s   "r   rF   rF     s0     D D DS DD#Dr#   c                0    \         P                  ! WV4      # )an  Create a code viewer (ui_create_code_viewer). A code viewer contains on the left side a widget representing the line numbers, and on the right side, the child widget passed as parameter. It will inherit its title from the child widget.

:param custview: the custom view to be added
:param flags: Code viewer flags
:param parent: widget to contain the new code viewer)r   create_code_viewer)r`  r  ra  s   &&&r   rc  rc    s     **8FCCr#   c               (    V ^8  d   QhRRRRRRRR/# )rA   code_viewerr  
handler_idz'custom_viewer_handler_id_t'handler_or_dataru  rC   r$   )rE   s   "r   rF   rF     s+     	 	 	 	3;	?G	r#   c                0    \         P                  ! WV4      # )a@  Set a handler for a code viewer event (ui_set_custom_viewer_handler). 
        
:param code_viewer: the code viewer
:param handler_id: one of CDVH_ in custom_viewer_handler_id_t
:param handler_or_data: can be a handler or data. see examples in Functions: custom viewer handlers
:returns: old value of the handler or data)r   set_code_viewer_handler)re  rf  rg  s   &&&r   ri  ri    s     // r#   c               $    V ^8  d   QhRRRRRR/# )rA   re  r  rt  ru  rC   r   r$   )rE   s   "r   rF   rF     s&     C C; CH C Cr#   c                .    \         P                  ! W4      # )zCSet the user data on a code viewer (ui_set_custom_viewer_handler).
)r   set_code_viewer_user_data)re  rt  s   &&r   rl  rl    s     11+BBr#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   ru  r$   )rE   s   "r   rF   rF     s     5 5 5 5r#   c                .    \         P                  ! V 4      # )zAGet the user data from a custom viewer (ui_get_viewer_user_data)
)r   get_viewer_user_datar  s   &r   ro  ro    s     ,,V44r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   z'tcc_place_type_t'r$   )rE   s   "r   rF   rF     s     6 6+ 61C 6r#   c                .    \         P                  ! V 4      # )zVGet the type of place_t instances a viewer uses & creates (ui_get_viewer_place_type).
)r   r  rp  s   &r   r  r    s     --f55r#   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )rA   re  r  click_handlerz'code_viewer_lines_click_t *'popup_handlerdblclick_handlerdrawicon_handlerz'code_viewer_lines_icon_t *'linenum_handlerz'code_viewer_lines_linenum_t *'rC   rD   r$   )rE   s   "r   rF   rF     sK     
 
{ 
!
!
 "
 !	

 $

 (,
r#   c                4    \         P                  ! V WW4V4      # )zXSet handlers for code viewer line events. Any of these handlers may be nullptr 
        )r   set_code_viewer_line_handlers)re  rt  ru  rv  rw  rx  s   &&&&&&r   rz  rz    s"     55k&6 r#   c               $    V ^8  d   QhRRRRRR/# )rA   re  r  marginrx   rC   r   r$   )rE   s   "r   rF   rF     s'     O O; O OOr#   c                .    \         P                  ! W4      # )z[Set space allowed for icons in the margin of a code viewer (ui_set_custom_viewer_handler).
)r   !set_code_viewer_lines_icon_margin)re  r|  s   &&r   r~  r~    s     99+NNr#   c               $    V ^8  d   QhRRRRRR/# )rA   re  r  alignrx   rC   r   r$   )rE   s   "r   rF   rF     s'     L L LS LLr#   c                .    \         P                  ! W4      # )zISet alignment for lines in a code viewer (ui_set_custom_viewer_handler).
)r   set_code_viewer_lines_alignment)re  r  s   &&r   r  r    s     77KKr#   c               $    V ^8  d   QhRRRRRR/# )rA   re  r  radixrx   rC   r   r$   )rE   s   "r   rF   rF     s&     H H[ H H Hr#   c                .    \         P                  ! W4      # )zPSet radix for values displayed in a code viewer (ui_set_custom_viewer_handler).
)r   set_code_viewer_lines_radix)re  r  s   &&r   r  r    s     33KGGr#   c                    V ^8  d   QhRRRR/# )rA   re  r  rC   r   r$   )rE   s   "r   rF   rF     s     ? ?; ?$ ?r#   c                .    \         P                  ! V 4      # )zbSpecify that the given code viewer is used to display source code (ui_set_custom_viewer_handler).
)r   set_code_viewer_is_source)re  s   &r   r  r    s     11+>>r#   c                    V ^8  d   QhRRRR/# )rA   r|  r  rC   rx   r$   )rE   s   "r   rF   rF     s     + +s +c +r#   c                .    \         P                  ! V 4      # )zGet the size of a tab in spaces (ui_get_tab_size). 
        
:param path: the path of the source view for which the tab size is requested.
* if nullptr, the default size is returned.)r   get_tab_sizerC  s   &r   r  r    s    
 $$T**r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )z*Clear "Cancelled" flag (ui_clr_cancelled)
)r   clr_cancelledr$   r#   r   r  r    r  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )z(Set "Cancelled" flag (ui_set_cancelled)
)r   set_cancelledr$   r#   r   r  r    r  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     ) )t )r#   c                 ,    \         P                  ! 4       # )zTest the cancellation flag (ui_test_cancelled). 
        
:returns: true: Cancelled, a message is displayed
:returns: false: Not cancelled)r   user_cancelledr$   r#   r   r  r    s    
 &&((r#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rA   	temp_filer  r  pliz'linput_t **'neflagsr:  ploadersz'load_info_t **'rC   r   r$   )rE   s   "r   rF   rF     s9       s  !159r#   c                2    \         P                  ! WW#V4      # )a  Display a load file dialog and load file (ui_load_file). 
        
:param temp_file: name of the file with the extracted archive member.
:param filename: the name of input file as is, library or archive name
:param pli: loader input source, may be changed to point to temp_file
:param neflags: combination of NEF_... bits (see Load file flags)
:param ploaders: list of loaders which accept file, may be changed for loaders of temp_file
:returns: true: file was successfully loaded
:returns: false: otherwise)r   ui_load_new_file)r  r  r  r  r  s   &&&&&r   r  r    s     ((c r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rA   dbgoptsr  exenameargcrx   argvr

  rC   r   r$   )rE   s   "r   rF   rF     s8     	F 	FS 	F3 	Fc 	F	F!	Fr#   c                0    \         P                  ! WW#4      # )a  Load a debugger plugin and run the specified program (ui_run_dbg). 
        
:param dbgopts: value of the -r command line switch
:param exename: name of the file to run
:param argc: number of arguments for the executable
:param argv: argument vector
:returns: success)r   ui_run_debugger)r  r  r  r  s   &&&&r   r  r    s     ''$EEr#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     0 0d 0r#   c                 *    \         P                  ! V !  # )zLoad debugging information from a file. 
        
:param path: path to file
:param li: loader input. if nullptr, check DBG_NAME_KEY
:param base: loading address
:param verbose: dump status to message window)r   load_dbg_dbginfor  s   *r   r  r    s     (($//r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  idcfuncrC   rx   r$   )rE   s   "r   rF   rF     s!     8 83 8 8 8r#   c                .    \         P                  ! W4      # )zAdd hotkey for IDC function (ui_add_idckey). 
        
:param hotkey: hotkey name
:param idcfunc: IDC function name
:returns: IDC hotkey error codes)r   add_idc_hotkey)r  r  s   &&r   r  r    s     &&v77r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  r  r  r  rx   rC   r   r$   )rE   s   "r   rF   rF   #  s(     : :+ :C : :t :r#   c                0    \         P                  ! WV4      # )a	  Set the highlighted identifier in the viewer (ui_set_highlight). 
        
:param viewer: the viewer
:param str: the text to match, or nullptr to remove current
:param flags: combination of HIF_... bits (see set_highlight flags)
:returns: false if an error occurred)r   set_highlight)r  r  r  s   &&&r   r  r  #  s     %%f599r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   r  r$   )rE   s   "r   rF   rF   -       0 0O 0{ 0r#   c                .    \         P                  ! V 4      # zOpen the exports window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_exports_windowrI  s   &r   r  r  -      
 ++B//r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   5  r  r#   c                .    \         P                  ! V 4      # r  )r   open_imports_windowrI  s   &r   r  r  5  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   =       . ./ .[ .r#   c                .    \         P                  ! V 4      # )zOpen the names window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_names_windowrI  s   &r   r  r  =  rJ  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   E  r  r#   c                .    \         P                  ! V 4      # )zOpen the 'Functions' window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_funcs_windowrI  s   &r   r  r  E  rJ  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   M  s     3 3 3r#   c                 *    \         P                  ! V !  # )a  Open the 'Strings' window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:param selstart: only display strings that occur within this range
:param selend: only display strings that occur within this range
:returns: pointer to resulting window)r   open_strings_windowr  s   *r   r  r  M  s     ++T22r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   W       1 1_ 1 1r#   c                .    \         P                  ! V 4      # )zOpen the segments window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_segments_windowrI  s   &r   r  r  W      
 ,,R00r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   _  r  r#   c                .    \         P                  ! V 4      # )zOpen the segment registers window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_segregs_windowrI  s   &r   r  r  _  r  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   g  s     0 0k 0r#   c                 ,    \         P                  ! 4       # )z\Open the selectors window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_selectors_windowr$   r#   r   r  r  g  s     --//r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   n  s     1 1{ 1r#   c                 ,    \         P                  ! 4       # )z]Open the signatures window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_signatures_windowr$   r#   r   r  r  n  rW  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   u  s     + + +r#   c                 ,    \         P                  ! 4       # )zaOpen the type libraries window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_tils_windowr$   r#   r   r  r  u  s     ((**r#   c               $    V ^8  d   QhRRRRRR/# )rA   rI  rx   rJ  'tif_cursor_t const *'rC   r  r$   )rE   s   "r   rF   rF   |  s#     > ># >/E >>r#   c                .    \         P                  ! W4      # )zOpen the local types window (ui_open_builtin2). 
        
:param ordinal: ordinal of type to select by default
:param cursor: cursor to the type member
:returns: pointer to resulting window)r   open_loctypes_window)rI  rJ  s   &&r   r  r  |  s     ,,W==r#   c               $    V ^8  d   QhRRRRRR/# )rA   r+  r)  rJ  r  rC   r  r$   )rE   s   "r   rF   rF     s#     : :i :1G ::r#   c                .    \         P                  ! W4      # )zOpen the sub-til window (ui_open_builtin2). 
        
:param tif: tif to open
:param cursor: cursor to the type member
:returns: pointer to resulting window)r   open_til_view_window)r+  rJ  s   &&r   r  r    s     ,,S99r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                .    \         P                  ! V 4      # )zOpen the problems window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_problems_windowrI  s   &r   r  r    r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     - - -K -r#   c                .    \         P                  ! V 4      # )zOpen the breakpoints window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_bpts_windowrI  s   &r   r  r    s    
 ((,,r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF          . .K .r#   c                 ,    \         P                  ! 4       # )zZOpen the threads window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_threads_windowr$   r#   r   r  r         ++--r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )zZOpen the modules window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_modules_windowr$   r#   r   r  r    r  r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF          , ,+ ,r#   c                 ,    \         P                  ! 4       # )zZOpen the tracing window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_trace_windowr$   r#   r   r  r         ))++r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )z]Open the call stack window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_stack_windowr$   r#   r   r  r    r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                .    \         P                  ! V 4      # )zOpen the cross references window (ui_open_builtin). 
        
:param ea: index of entry to select by default
:returns: pointer to resulting window)r   open_xrefs_windowrI  s   &r   r  r    rJ  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r*  r  r  rx   rC   r  r$   )rE   s   "r   rF   rF     s!     7 7: 7s 7k 7r#   c                .    \         P                  ! W4      # )a  Open the frame window for the given function (ui_open_builtin). 
        
:param pfn: function to analyze
:param offset: offset where the cursor is placed
:returns: pointer to resulting window if 'pfn' is a valid function and the window was displayed, 
 nullptr otherwise)r   open_frame_window)r*  r  s   &&r   r  r    s     ))#66r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  zoomrx   rC   r  r$   )rE   s   "r   rF   rF     s!     6 6O 63 6+ 6r#   c                .    \         P                  ! W4      # )zOpen the navigation band window (ui_open_builtin). 
        
:param ea: sets the address of the navband arrow
:param zoom: sets the navband zoom level
:returns: pointer to resulting window)r   open_navband_window)r  r  s   &&r   r  r    s     ++B55r#   c               $    V ^8  d   QhRRRRRR/# )rA   window_titler  rangesz'rangevec_t'rC   r  r$   )rE   s   "r   rF   rF     s'     A AS A, AAr#   c                .    \         P                  ! W4      # )zOpen a disassembly view (ui_open_builtin). 
        
:param window_title: title of view to open
:param ranges: if != nullptr, then display a flow chart with the specified ranges
:returns: pointer to resulting window)r   open_disasm_window)r  r  s   &&r   r  r    s     **<@@r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     : :c :[ :r#   c                .    \         P                  ! V 4      # )zOpen a hexdump view (ui_open_builtin). 
        
:param window_title: title of view to open
:returns: pointer to resulting window)r   open_hexdump_window)r  s   &r   r  r    s    
 ++L99r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     r  r#   c                 ,    \         P                  ! 4       # )zZOpen the notepad window (ui_open_builtin). 
        
:returns: pointer to resulting window)r   open_notepad_windowr$   r#   r   r  r    r  r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r$   )rE   s   "r   rF   rF     s     1 1[ 1K 1r#   c                .    \         P                  ! V 4      # )zOpen the bookmarks window (ui_open_builtin). 
        
:param w: The widget for which the bookmarks will open. For example, this can be an IDAView, or Enums view, etc.
:returns: pointer to resulting window)r   open_bookmarks_windowr
  s   &r   r  r    s    
 --a00r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   whatr  _withsyncr   rC   r$   )rE   s   "r   rF   rF     s)     8 8 8 8d 88r#   c                0    \         P                  ! WV4      # )z3[Un]synchronize sources 
        
:returns: success)r   sync_sources)r	  r
  r  s   &&&r   r  r    s    
 $$T$77r#   c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   rF      s     % %3 %r#   c                 ,    \         P                  ! 4       # )zChoose a type library (ui_choose, chtype_idatil). 
        
:returns: true: 'buf' was filled with the name of the selected til
:returns: false: otherwise)r   
choose_tilr$   r#   r   r  r     r)  r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     , , , ,r#   c                .    \         P                  ! V 4      # )zChoose an entry point (ui_choose, chtype_entry). 
        
:param title: chooser title
:returns: ea of selected entry point, BADADDR if none selected)r   choose_entryrJ  s   &r   r  r    s    
 $$U++r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     + +s +o +r#   c                .    \         P                  ! V 4      # )zChoose a name (ui_choose, chtype_name). 
        
:param title: chooser title
:returns: ea of selected name, BADADDR if none selected)r   choose_namerJ  s   &r   r  r        
 ##E**r#   c               $    V ^8  d   QhRRRRRR/# )rA   r*  r  
srkvar_tidz'tid_t'rC   r  r$   )rE   s   "r   rF   rF     s!     < <J <G < <r#   c                .    \         P                  ! W4      # )zChoose an xref to a stack variable (ui_choose, chtype_name). 
        
:param pfn: function
:param srkvar_tid: frame variable TID
:returns: ea of the selected xref, BADADDR if none selected)r   choose_stkvar_xref)r*  r  s   &&r   r  r    s     **3;;r#   c                    V ^8  d   QhRRRR/# )rA   rv  r  rC   r$   )rE   s   "r   rF   rF   !  s     ( (O ( (r#   c                .    \         P                  ! V 4      # )zChoose an xref to an address (ui_choose, chtype_xref). 
        
:param to: referenced address
:returns: ea of selected xref, BADADDR if none selected)r   choose_xref)rv  s   &r   r  r  !  s    
 ##B''r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r  r)  r  r  default_ordrx   rC   r   r$   )rE   s   "r   rF   rF   )  s(     = =Y =s = = =r#   c                0    \         P                  ! WV4      # )zChoose an enum (ui_choose, chtype_enum). 
        
:param out: the selected enum type
:param title: chooser title
:param default_ord: ordinal of enum to select by default
:returns: true: the selected type is in OUT
:returns: false: nothing was selected)r   choose_enum)r  r  r!  s   &&&r   r#  r#  )  s     ##C<<r#   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )rA   r  r)  r  r  r!  rx   r   ry  r  rC   z	'uchar *'r$   )rE   s   "r   rF   rF   4  s9      i  #  $-r#   c                2    \         P                  ! WW#V4      # )a  Choose an enum, restricted by value & size (ui_choose, chtype_enum_by_value_and_size). If the given value cannot be found initially, this function will ask if the user would like to import a standard enum. 
        
:param out: the selected enum type
:param title: chooser title
:param default_ord: ordinal of enum to select by default
:param value: value to search for
:param nbytes: size of value
:returns: true: the selected type is in OUT
:returns: false: nothing was selected)r   choose_enum_by_value)r  r  r!  r   r  s   &&&&&r   r&  r&  4  s     ,,S r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  
default_ear  rC   r  r$   )rE   s   "r   rF   rF   C  s!     7 7s 7 7: 7r#   c                .    \         P                  ! W4      # )zChoose a function (ui_choose, chtype_func). 
        
:param title: chooser title
:param default_ea: ea of function to select by default
:returns: pointer to function that was selected, nullptr if none selected)r   choose_funcr  r(  s   &&r   r*  r*  C       ##E66r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r(  r  rC   r  r$   )rE   s   "r   rF   rF   L  s!     7 7s 7 7= 7r#   c                .    \         P                  ! W4      # )zChoose a segment (ui_choose, chtype_segm). 
        
:param title: chooser title
:param default_ea: ea of segment to select by default
:returns: pointer to segment that was selected, nullptr if none selected)r   choose_segmr+  s   &&r   r/  r/  L  r,  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r)  r  r  rC   r   r$   )rE   s   "r   rF   rF   U  s!     2 2y 2 2 2r#   c                .    \         P                  ! W4      # )zChoose a structure (ui_choose, chtype_struct). 
        
:param out: the selected structure type
:param title: chooser title
:returns: true: the selected type is in OUT
:returns: false: nothing was selected)r   choose_struct)r  r  s   &&r   r2  r2  U  s     %%c11r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   z'sreg_range_t *'r$   )rE   s   "r   rF   rF   _  s     + +s +. +r#   c                .    \         P                  ! V 4      # )zChoose a segment register change point (ui_choose, chtype_srcp). 
        
:param title: chooser title
:returns: pointer to segment register range of selected change point, nullptr if none selected)r   choose_srcprJ  s   &r   r5  r5  _  r  r#   c                    V ^8  d   QhRRRR/# )rA   chooser_captionr  rC   ru  r$   )rE   s   "r   rF   rF   g  s     9 9S 9H 9r#   c                .    \         P                  ! V 4      # )a  Get the underlying object of the specified chooser (ui_get_chooser_obj).
This attempts to find the chooser by its title and, if found, returns the result of calling its chooser_base_t::get_chooser_obj() method.

:returns: the object that was used to create the chooser)r   get_chooser_obj)r7  s   &r   r9  r9  g  s    
 ''88r#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r  r   r7  r  r	  rx   rC   r   r$   )rE   s   "r   rF   rF   o  s1     E E2 ES E
EEr#   c                0    \         P                  ! WV4      # )a1  Get the chooser contents corresponding to the rows indicated by "what". 
        
:param out: A vector of chooser_row_info_t, one entry per returned row.
:param chooser_caption: The caption that identifies the desired chooser.
:param what: Either one of the GCRF_ flags, or a row index.
:returns: Success.)r   get_chooser_rows)r  r7  r	  s   &&&r   r<  r<  o  s     ((tDDr#   c               $    V ^8  d   QhRRRRRR/# )rA   r7  r  r  r   rC   r$   )rE   s   "r   rF   rF   z  s&     K Ks KD KD Kr#   c                .    \         P                  ! W4      # )a  Enable item-specific attributes for chooser items (ui_enable_chooser_item_attrs). For example: color list items differently depending on a criterion. 
If enabled, the chooser will generate ui_get_chooser_item_attrs 
events that can be intercepted by a plugin to modify the item attributes. 
This event is generated only in the GUI version of IDA. 
Specifying CH_ATTRS bit at the chooser creation time has the same effect. 
        
:returns: success)r   enable_chooser_item_attrs)r7  r  s   &&r   r?  r?  z  s     11/JJr#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     s     0 0d 0r#   c                 *    \         P                  ! V !  # )z/Replace the label of "Please wait dialog box".
)r   replace_wait_boxr  s   *r   rB  rB    s     (($//r#   c                    V ^8  d   QhRRRR/# )rA   	beep_typez'beep_t'rC   rD   r$   )rE   s   "r   rF   rF     s     ( (H (T (r#   c                .    \         P                  ! V 4      # )zCIssue a beeping sound (ui_beep). 
        
:param beep_type: beep_t)r   beep)rD  s   &r   rF  rF    s     Y''r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF     s     4 4$ 4r#   c                 ,    \         P                  ! 4       # )zCDisplay copyright warning (ui_copywarn). 
        
:returns: yes/no)r   display_copyright_warningr$   r#   r   rI  rI    s     1133r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     s     0 0d 0r#   c                 *    \         P                  ! V !  # )zShow a message box asking to send the input file to [support@hex-rays.com](mailto:support@hex-rays.com). 
        
:param format: the reason why the input file is bad)r   ask_for_feedbackr  s   *r   rL  rL    s     (($//r#   c                   V ^8  d   QhRR/# )rA   rC   z'ea_t *'r$   )rE   s   "r   rF   rF     s     ) )x )r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # rL  N)ida_kernwindisabled_script_timeout_tr   ask_addr	_ask_addrrc   rP  s   * r   rS  rS    B    		.	.	0	0$$d+ 
1	0	0	0!!4((	   <A	c                   V ^8  d   QhRR/# )rA   rC   z	'sel_t *'r$   )rE   s   "r   rF   rF     s     ( (i (r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # rO  )rP  rQ  r   ask_seg_ask_segrT  s   * r   rZ  rZ    sB    		.	.	0	0##T* 
1	0	0	0  $''rV  c                   V ^8  d   QhRR/# )rA   rC   z
'sval_t *'r$   )rE   s   "r   rF   rF     s     ) )z )r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # rO  )rP  rQ  r   ask_long	_ask_longrT  s   * r   r^  r^    rU  rV  c                   V ^8  d   QhRR/# )rA   rC   z	'ssize_t'r$   )rE   s   "r   rF   rF     s     $ $) $r#   c                 *    \         P                  ! V !  # r.   )r   r  r  s   *r   r  r    s    d##r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   rF     s     % %4 %r#   c                 *    \         P                  ! V !  # r.   )r   nomemr  s   *r   rc  rc    s    t$$r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF     s     	& 	&C 	&r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # )a   Display a dialog box and get choice from "Yes", "No", "Cancel". 
        
:param deflt: default choice: one of Button IDs
:param format: The question in printf() style format
:returns: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL.N)rP  rQ  r   ask_ynrT  s   * r   rf  rf    sD     		.	.	0	0""D) 
1	0	0	0%%rV  c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF     s     + + +r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # )a  Display a dialog box and get choice from maximum three possibilities (ui_ask_buttons). 
        
:param Yes: text for the first button
:param No: text for the second button
:param Cancel: text for the third button
:param deflt: default choice: one of Button IDs
:param format: printf-style format string for question. It may have some prefixes, see below.
:returns: one of Button IDs specifying the selected button (Esc key returns Cancel/3rd button value)N)rP  rQ  r   ask_buttonsrT  s   * r   ri  ri    sD     		.	.	0	0''. 
1	0	0	0##T**rV  c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF   	  s     * * *r#   c                 *    \         P                  ! V !  # )a  Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are permitted. 
        
:param str: qstring to fill. Can contain the default value. Cannot be nullptr.
:param format: printf() style format string with the question
:returns: false if the user cancelled the dialog, otherwise returns true.)r   
ask_ident2r  s   *r   rl  rl  	  s     ""D))r#   c                   V ^8  d   QhRR/# )rA   rC   rc  r$   )rE   s   "r   rF   rF     s     ( (h (r#   c                     ^ RI pVP                  4       ;_uu_ 4        \        P                  ! V !  uuRRR4       #   + '       g   i     M; i\        P                  ! T !  # rO  )rP  rQ  r   ask_filerT  s   * r   ro  ro    sB    		.	.	0	0$$d+ 
1	0	0	0  $''rV  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   ]! ]P                   ]P"                  4      tR]R
&   ]! ]P&                  ]P(                  4      tR]R&   ]! ]P,                  ]P.                  4      tR]R&   ]! ]P2                  ]P4                  4      tR]R&   ]! ]P8                  ]P:                  4      tR]R&   ]! ]P>                  ]P@                  4      t!R]R&   ]! ]PD                  ]PF                  4      t$R]R&   R t%]PL                  t'Rt(R# )addon_info_ti  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   addon_info_t.<lambda>  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   rs    r[   r#   r\   r]   rx   r  r  r  r   producerr	  r1  freeformru  custom_datacustom_sizec                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   addon_info_t_swiginitnew_addon_info_trr   s   &r   rd   addon_info_t.__init__1  s$    **42 2 	 r#   r$   N))r   r   r8   r9   r   r   r   r
   r   addon_info_t_cb_getaddon_info_t_cb_setr  rp  addon_info_t_id_getaddon_info_t_id_setr  addon_info_t_name_getaddon_info_t_name_setr   addon_info_t_producer_getaddon_info_t_producer_setru  addon_info_t_version_getaddon_info_t_version_setr	  addon_info_t_url_getaddon_info_t_url_setr1  addon_info_t_freeform_getaddon_info_t_freeform_setrv  addon_info_t_custom_data_getaddon_info_t_custom_data_setrw  addon_info_t_custom_size_getaddon_info_t_custom_size_setrx  rd   delete_addon_info_tr-  r<   r$   r#   r   rq  rq    s\   -/I!#GH|77B |77B ;;\D# \CC..0Hc 0LAA--/GS /99<C \CC..0Hc 0"*<$$l&O&O#
K 
   I I113K 3  $77r#   rq  c                    V ^8  d   QhRRRR/# )rA   r  'addon_info_t'rC   rx   r$   )rE   s   "r   rF   rF   :  s     - - -3 -r#   c                .    \         P                  ! V 4      # )zRegister an add-on. Show its info in the About box. For plugins, should be called from init() function (repeated calls with the same product code overwrite previous entries) returns: index of the add-on in the list, or -1 on error 
        )r   register_addon)r  s   &r   r  r  :  s     &&t,,r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF   @  s     & &C &r#   c                 ,    \         P                  ! 4       # )z Get number of installed addons.
)r   addon_countr$   r#   r   r  r  @  s     ##%%r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  r  rC   r   r$   )rE   s   "r   rF   rF   F  s!     1 1s 1. 1D 1r#   c                .    \         P                  ! W4      # )zGet info about a registered addon with a given product code. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info 
        
:returns: false if not found)r   get_addon_info)r  r  s   &&r   r  r  F  s     &&r00r#   c               $    V ^8  d   QhRRRRRR/# )rA   indexrx   r  r  rC   r   r$   )rE   s   "r   rF   rF   M  s!     8 8c 8 84 8r#   c                .    \         P                  ! W4      # )zGet info about a registered addon with specific index. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info 
        
:returns: false if index is out of range)r   get_addon_info_idx)r  r  s   &&r   r  r  M  s     **577r#   c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   R
 t]P"                  tRtR# )
strarray_tiT  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   strarray_t.<lambda>U  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  U  r[   r#   r\   r]   rx   coder  r~  c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   strarray_t_swiginitnew_strarray_trr   s   &r   rd   strarray_t.__init__]  rh  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   strarray_t_code_getstrarray_t_code_setr  rp  strarray_t_text_getstrarray_t_text_setr~  rd   delete_strarray_tr-  r<   r$   r#   r   r  r  T  sn    -/I!#GH99<D# 99<D# N#55r#   r  c                   V ^8  d   QhRR/# r^  r$   )rE   s   "r   rF   rF   o  s     	* 	* 	*r#   c                 *    \         P                  ! V !  # )a  Performs some cleanup operations to a line. 
        
:param buf: string to modify
:param cmt_char: character that denotes the start of a comment:
* the entire text is removed if the line begins with this character (ignoring leading spaces)
* all text after (and including) this character is removed if flag CLNL_FINDCMT is set
:param flags: a combination of line cleanup flags. defaults to CLNL_TRIM
:returns: length of line)r   
qcleanliner  s   *r   r  r  o  s     ""D))r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   arrayz'strarray_t'
array_sizerx   r  rC   r  r$   )rE   s   "r   rF   rF   {  s(     : :L :c : : :r#   c                0    \         P                  ! WV4      # )zFind a line with the specified code in the strarray_t array. If the last element of the array has code==0 then it is considered as the default entry. 
If no default entry exists and the code is not found, strarray() returns "". 
        )r   strarray)r  r  r  s   &&&r   r  r  {  s       D99r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     # # ## #r#   c                .    \         P                  ! V 4      # )z(Convert linear address to UTF-8 string.
)r   ea2strrI  s   &r   r  r    s     r""r#   c                   V ^8  d   QhRR/# rA   rC   
'uint64 *'r$   )rE   s   "r   rF   rF     s     & &J &r#   c                 *    \         P                  ! V !  # )a  Convert string to linear address. Tries to interpret the string as: 
1) "current IP" keyword if supported by assembler (e.g. "$" in x86) 
2) segment:offset expression, where "segment" may be a name or a fixed segment register (e.g. cs, ds) 
3) just segment name/register (translated to segment's start address) 
4) a name in the database (or debug name during debugging) 
5) hexadecimal value without prefix or suffix 
6) +delta or -delta, where numerical 'delta' is added to or subtracted from 'screen_ea' 
7) register name (only during debugging) 
8) if all else fails, try to evaluate 'str' as an IDC expression

:param str: string to parse
:param screen_ea: the current address in the disassembly/pseudocode view
:returns: success)r   str2ear  s   *r   r  r    s     %%r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF     s     ) )z )r#   c                 *    \         P                  ! V !  # )a  Same as str2ea() but possibly with some steps skipped. 
        
:param out: the buffer to put the result
:param str: string to parse
:param screen_ea: the current address in the disassembly/pseudocode view
:param flags: see String to address conversion flags
:returns: success)r   	str2ea_exr  s   *r   r  r    s     !!4((r#   c                    V ^8  d   QhRRRR/# )rA   r  rC   r  r$   )rE   s   "r   rF   rF     s     # #s #j #r#   c                .    \         P                  ! V 4      # )zConvert a number in C notation to an address. decimal: 1234 
octal: 0123 
hexadecimal: 0xabcd 
binary: 0b00101010 
        
:param str: the string to parse)r   atoea)r  s   &r   r  r    s     c""r#   c                    V ^8  d   QhRRRR/# )rA   r  z'strwinsetup_t *'rC   rD   r$   )rE   s   "r   rF   rF   0  s     6 6"3 6t 6r#   c                .    \         P                  ! V 4      # r.   )r   get_user_strlist_optionsr  s   &r   r  r  0  s    0055r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r   r$   )rE   s   "r   rF   rF   4  s     / /3 /$ /r#   c                .    \         P                  ! V 4      # r.   )r   del_idc_hotkey)r  s   &r   r  r  4  s    &&v..r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   8  s     . ./ .[ .r#   c                .    \         P                  ! V 4      # r.   )r   open_calls_windowrI  s   &r   r  r  8  s    ))"--r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# r'  r$   )rE   s   "r   rF   rF   <  s9     K Ky Kz KKKKr#   c                0    \         P                  ! WW#4      # r.   )r   prompt_function_prototyper.  s   &&&&r   r  r  <  s    11'JJr#   c                     ] tR tRt]! R R RR7      t]tR t]	P                  tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 lt R1 R2 lt!R3 R4 lt"R5 R6 lt#]$PJ                  t&]$PN                  t(]$PR                  t*R7t+R8# )9disasm_text_tiA  c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   disasm_text_t.<lambda>B  rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  B  r[   r#   r\   r]   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   disasm_text_t_swiginitnew_disasm_text_trb   s   &*r   rd   disasm_text_t.__init__F  re  r#   c                   V ^8  d   QhRR/# )rA   rC   z'disasm_line_t &'r$   )rE   s   "r   rF   disasm_text_t.__annotate__K  s     A A!2 Ar#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_push_backrb   s   &*r   rj   disasm_text_t.push_backK  r(  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  N       9 9 9r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_pop_backrr   s   &r   rs   disasm_text_t.pop_backN  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r  Q  s     5 5S 5r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_sizerr   s   &r   r{   disasm_text_t.sizeQ  rg  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  T       6 6d 6r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_emptyrr   s   &r   r   disasm_text_t.emptyT  rR  r#   c                    V ^8  d   QhRRRR/# )rA   r   rx   rC   'disasm_line_t const &'r$   )rE   s   "r   rF   r  W  s     9 9s 95 9r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t_atr   s   &&r   r   disasm_text_t.atW  s    ,,T88r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  Z  s     7 7t 7r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_qclearrr   s   &r   r   disasm_text_t.qclearZ  rn  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  ]  r  r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_clearrr   s   &r   r   disasm_text_t.clear]  rR  r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  `  s     > >d >r#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_resizerb   s   &*r   r   disasm_text_t.resize`  s    00===r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  c  r  r#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_growrb   s   &*r   r   disasm_text_t.growc  s    ..t;d;;r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r  f  s     9 9 9r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_capacityrr   s   &r   r   disasm_text_t.capacityf  r  r#   c                    V ^8  d   QhRRRR/# r   r$   )rE   s   "r   rF   r  i  s     = =3 =$ =r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t_reserver   s   &&r   r   disasm_text_t.reservei  s    11$<<r#   c                   V ^8  d   QhRR/# rn   r$   )rE   s   "r   rF   r  l  r  r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_truncaterr   s   &r   r   disasm_text_t.truncatel  r  r#   c                    V ^8  d   QhRRRR/# )rA   r   r  rC   rD   r$   )rE   s   "r   rF   r  o  s     8 8o 8 8r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t_swapr   s   &&r   r   disasm_text_t.swapo  r  r#   c                   V ^8  d   QhRR/# )rA   rC   z'disasm_line_t *'r$   )rE   s   "r   rF   r  r  s     8 8) 8r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t_extractrr   s   &r   r   disasm_text_t.extractr      11$77r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   'disasm_line_t'r   rx   rC   rD   r$   )rE   s   "r   rF   r  u  s!     ? ? ?c ?T ?r#   c                	0    \         P                  ! WV4      # r.   )r   disasm_text_t_injectr   s   &&&r   r   disasm_text_t.injectu  s    00#>>r#   c                   V ^8  d   QhRR/# rA   rC   z*'qvector< disasm_line_t >::const_iterator'r$   )rE   s   "r   rF   r  x  s     = =G =r#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_beginrb   s   &*r   r   disasm_text_t.beginx      //<t<<r#   c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   r  {  s     ; ;E ;r#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_endrb   s   &*r   r   disasm_text_t.end{  s    --d:T::r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   r  rT   rC   $'qvector< disasm_line_t >::iterator'r$   )rE   s   "r   rF   r  ~  s"     > > >_ >0>r#   c                	0    \         P                  ! WV4      # r.   )r   disasm_text_t_insertr   s   &&&r   r   disasm_text_t.insert~  s    001==r#   c                   V ^8  d   QhRR/# )rA   rC   r%  r$   )rE   s   "r   rF   r    s     = =A =r#   c                	2    \         P                  ! V .VO5!  # r.   )r   disasm_text_t_eraserb   s   &*r   r   disasm_text_t.erase  r  r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   r    s     8 8 8r#   c                	.    \         P                  ! V 4      # r.   )r   disasm_text_t___len__rr   s   &r   r  disasm_text_t.__len__  r  r#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r  r$   )rE   s   "r   rF   r    s     ? ?S ?$; ?r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t___getitem__r  s   &&r   r  disasm_text_t.__getitem__  rz  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   rZ   r  rC   rD   r$   )rE   s   "r   rF   r    s&     B BS B_ B Br#   c                	0    \         P                  ! WV4      # r.   )r   disasm_text_t___setitem__r  s   &&&r   r   disasm_text_t.__setitem__  s    55dqAAr#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r         : : :4 :r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t_appendr  s   &&r   r%  disasm_text_t.append      0099r#   c                    V ^8  d   QhRRRR/# )rA   rT   r  rC   rD   r$   )rE   s   "r   rF   r    r:  r#   c                	.    \         P                  ! W4      # r.   )r   disasm_text_t_extendr  s   &&r   r*  disasm_text_t.extend  r>  r#   r$   N),r   r   r8   r9   r   r   r   r
   rd   r   delete_disasm_text_tr-  rj   rs   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r%  r*  r.  r/  r0  r1  r2  r3  r4  r<   r$   r#   r   r  r  A  s    -/I!#GH& $88A956976><9=988?=;>=8?B::%%E##D33Hr#   r  l	    c                v    V e   \         P                  ! V 4      # Vf   Ve   \         P                  ! W4      # ^ # )zLoad an icon from a file (ui_load_custom_icon_file). Also see load_custom_icon(const void *, unsigned int, const char *) 
        
:param file_name: path to file
:returns: icon id)r   r  r  )	file_namer  rE   s   &&&r   load_custom_iconrF  G  s8    
 229==lv~44TBBr#   c               $    V ^8  d   QhRRRRRR/# rA   r  rx   r  r  rC   zUnion[int, None]r$   )rE   s   "r   rF   rF   T  s"     % %S %# %)9 %r#   c                H    \         P                  ! W4      w  r#V^8X  d   V# R# )zDisplay a dialog box and wait for the user to input a number

:param defval: The placeholder value
:param prompt: The prompt to show
:returns: the number entered by the user, or None if the dialog was canceledN)r   r^  )r  r  resvals   &&  r   r]  r]  T  s'     %%f5HC(3$$r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  r  rC   zUnion[ida_idaapi.ea_t, None]r$   )rE   s   "r   rF   rF   ^  s$     $ $_ $c $ 6
 $r#   c                H    \         P                  ! W4      w  r#V^8X  d   V# R# )zDisplay a dialog box and wait for the user to input an address

:param defval: The placeholder value
:param prompt: The prompt to show
:returns: the address entered by the user, or None if the dialog was canceledN)r   rS  )r  r  rJ  r  s   &&  r   rR  rR  ^  s'     $$V4GC2#t#r#   c               $    V ^8  d   QhRRRRRR/# rH  r$   )rE   s   "r   rF   rF   i  s"     	% 	%C 	% 	%(8 	%r#   c                H    \         P                  ! W4      w  r#V^8X  d   V# R# )a\  Display a dialog box and wait for the user to input an segment name.
This function allows to enter segment register names, segment base
paragraphs, segment names to denote a segment.

:param defval: The placeholder value
:param prompt: The prompt to show
:returns: the selector of the segment entered by the user, or None if the dialog was canceledN)r   rZ  )r  r  rJ  sels   &&  r   rY  rY  i  s'     $$V4HC(3$$r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  rC   r   r$   )rE   s   "r   rF   rF   u  s!     / /c /3 /$ /r#   c                $    \        V \        V4      # )a/  Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are usually forbidden. 
        
:returns: false if the user cancelled the dialog, otherwise returns true.)r  
HIST_IDENT)r  r  s   &&r   	ask_identrT  u  s     6:v..r#   c                  (    ] tR tRtR tR tR tRtR# )action_handler_ti|  c                	    R # r.   r$   rr   s   &r   rd   action_handler_t.__init__~  s    r#   c                    ^ # )zActivate an action. This function implements the core behavior of an action. It is called when the action is triggered, from a menu, from a popup menu, from the toolbar, or programmatically. 
        
:returns: non-zero: all IDA windows will be refreshedr$   r  s   &&r   activateaction_handler_t.activate  s     r#   c                    R# )a  Update an action. This is called when the context of the UI changed, and we need to let the action update some of its properties if needed (label, icon, ...)
In addition, this lets IDA know whether the action is enabled, and when it should be queried for availability again.
Note: This callback is not meant to change anything in the application's state, except by calling one (or many) of the "update_action_*()" functions on this very action. 
        Nr$   r  s   &&r   updateaction_handler_t.update      
 	r#   r$   Nr   r   r8   r9   rd   rZ  r]  r<   r$   r#   r   rV  rV  |  s    r#   rV  c                  R    ] tR tRt ! R R4      t ! R R]4      tR tR tR t	R	t
R
# )quick_widget_commands_ti  c                      ] tR tRtR tRtR# )quick_widget_commands_t._cmd_ti  c                	N    Wn         W n        W0n        W@n        WPn        W`n        R # r.   r  r  
menu_indexr	  embr
  r   r  r  rg  r	  rh  r
  s   &&&&&&&r   rd   'quick_widget_commands_t._cmd_t.__init__  s     "LJ(OIH$Mr#   )r  rh  r  r	  rg  r
  N)r   r   r8   r9   rd   r<   r$   r#   r   _cmd_trd    s    	%r#   rk  c                  (    ] tR tRtR tR tR tRtR# )quick_widget_commands_t._ah_ti  c                	H    \         P                  V 4       Wn        W n        R # r.   )rV  rd   ra  cmd_id)r   ra  ro  s   &&&r   rd   &quick_widget_commands_t._ah_t.__init__  s    %%d+ K Kr#   c                	P    V P                   P                  WP                  4       R # r.   )ra  r  ro  r  s   &&r   rZ  &quick_widget_commands_t._ah_t.activate  s    KK  kk2r#   c                	    \         # r.   )AST_ENABLE_ALWAYSr  s   &&r   r]  $quick_widget_commands_t._ah_t.update  s    $$r#   )ro  ra  Nr`  r$   r#   r   _ah_trm    s    	!
	3	%r#   rv  c                	     Wn         . V n        R # r.   r  cmds)r   r  s   &&r   rd    quick_widget_commands_t.__init__  s     	r#   c           
     	    \        V P                  4       F  w  rxVP                  V8X  g   K  Vu # 	  V P                  P                  \        P                  WW4WV4      4       \        V P                  4      ^,
          # rM  )	enumeratery  r  r%  rb  rk  r   )	r   r  r  rg  r	  rh  r
  idxcmds	   &&&&&&&  r   addquick_widget_commands_t.add  sd    !$)),HC{{g%
 - 			077c- 	.499~!!r#   c           	     	   \        V P                  4       Fp  w  r4VP                  \        ,          ^ 8w  g   K#  \	        RVP
                  \        P                  W4      VP                  RVP                  4      p\        RW%4       Kr  	  R# rO  )r}  ry  r  CHOOSER_POPUP_MENUr  r  rb  rv  r
  r	  rY  )r   r  popupr~  r  rP  s   &&&   r   populate_popup&quick_widget_commands_t.populate_popup  sd    !$)),HCyy--2$T3;;+11$<cll#(($ /tUA -r#   rx  N)r   r   r8   r9   rk  rV  rv  rd   r  r  r<   r$   r#   r   rb  rb    s)    % %%  %"Br#   rb  c                  "    ] tR tRtR tR tRtR# )rQ  i  c                	<    ^ RI pVP                  ! ^ 4      V n        R# rO  _ida_idaapiset_script_timeoutwas_timeout)r   r  s   & r   	__enter__#disabled_script_timeout_t.__enter__  s    &99!<r#   c                	F    ^ RI pVP                  ! V P                  4       R# rO  r  )r   r   r   tbr  s   &&&& r   __exit__"disabled_script_timeout_t.__exit__  s    &&t'7'78r#   )r  N)r   r   r8   r9   r  r  r<   r$   r#   r   rQ  rQ    s    =9r#   rQ  r  termc                    V ! V!  # r.   r$   )r  rc   s   &*r   rU   rU     s	    4yr#   )str2userc                    V ^8  d   QhRRRR/# )rA   r  r  rC   zUnion[object, None]r$   )rE   s   "r   rF   rF     s     + +s +1 +r#   c                .    \         P                  ! V 4      # )zdRetrieve the chooser object by title

:param title: the chooser title
:returns: the chooser, or None)r   choose_findrJ  s   &r   r  r    r  r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   rD   r$   )rE   s   "r   rF   rF     s     . ., .$ .r#   c                .    \         P                  ! V 4      # r.   r   choose_refreshr  s   &r   r  r    s    &&u--r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF          , , , ,r#   c                .    \         P                  ! V 4      # r.   )r   choose_closer  s   &r   r  r    s    $$U++r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     1 1\ 1[ 1r#   c                .    \         P                  ! V 4      # r.   r   choose_get_widgetr  s   &r   r  r    s    ))%00r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     - - - -r#   c                .    \         P                  ! V 4      # r.   )r   choose_chooser  s   &r   r  r        %%e,,r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF          / /< /4 /r#   c                .    \         P                  ! V 4      # r.   r   choose_activater  s   &r   r  r    s    ''..r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF     s     < < < <r#   c                .    \         P                  ! V 4      # r.   )r   choose_create_embedded_chobjr  s   &r   r  r    s    44U;;r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  rx   rC   rT  r$   )rE   s   "r   rF   rF     s!     3 3C 3C 39 3r#   c                .    \         P                  ! W4      # )zGet the text corresponding to the index N in the chooser data.
Use -1 to get the header.

:param title: The chooser title
:returns: a list of strings, or None)r   get_chooser_data)r  r  s   &&r   r  r    s     ((22r#   c                     ] tR tRtRt]P                  t  ]P                  t  ]P                  t ]P                  t	 ]P                  t
 ]P                  t  ]P                  t  ]P                  t  ]P                  t  ]P                  t  ]P                   t  ]P"                  t]P$                  t ]P&                  t ]P(                  t ]P*                  t ]P,                  t ]P.                  t]P0                  t  ]P2                  t  ]P4                  t  ]P6                  t]P:                  t ]P>                  t  ]PB                  t! ]PD                  t" ]PF                  t# ]PH                  t$ ]PJ                  t% ]PL                  t& ]PN                  t' ]PP                  t( ]PR                  t) ]PT                  t* ]PV                  t+]+t,R#t- R$t. R%t/ R&t0 ^ t1^t2^t3 ! R R]44      t5R'R lt6R(R lt7R t8R(R	 lt9R
 t:R t;R t<R t=R t>]P~                  R#R#RR3R lt@R tAR tBR tCR tDR tER tFR tGR tHR tIR tJR tKR tLR tMR tNR tOR tPR  tQR! tRR"tSR# ))Choosei  zu
Chooser wrapper class.

Some constants are defined in this class.
Please refer to kernwin.hpp for more information.
c                  "    ] tR tRtR tR tRtR# )Choose.UI_Hooks_Trampolinei  c                	    \         P                  V 4       V P                  4        ^ RIpVP                  ! V4      V n        R# rO  r@  rd   rR  rG  refrZ   r   rZ   rG  s   && r   rd   #Choose.UI_Hooks_Trampoline.__init__  +    d#IIK[[^DFr#   c                	    V P                  4       pWP                  4       8X  dE   \        VR 4      '       d1   \        \	        VR 4      4      '       d   VP                  W4       R# R# R# R# )OnPopupN)rZ   	GetWidgetr   r  r   r  )r   r  r  r  s   &&& r   r  2Choose.UI_Hooks_Trampoline.populating_widget_popup  sW    ffhG**,,) 2 2ww	:;;5 <2,r#   r5  Nr   r   r8   r9   rd   r  r<   r$   r#   r   UI_Hooks_Trampoliner    s    	$	6r#   r  Nc                d  a  VS n         VS n        VS n        VS n        V
R8X  d"   V\        P
                  ,          ^ 8X  d   ^ M^ .p
V
S n        VS n        VS n        VS n	        VS n
        VS n        V	S n        VS n        VS n        VS n        VS n        RS n        V 3R lp\%        V4      S n        R# )a  
Constructs a chooser window.
:param title: The chooser title
:param cols: a list of colums; each list item is a list of two items
    example: [ ["Address", 10 | Choose.CHCOL_HEX],
               ["Name",    30 | Choose.CHCOL_PLAIN] ]
:param flags: One of CH_XXXX constants
:param flags2: One of CH2_XXXX constants
:param deflt: The index of the default item (0-based) for single
    selection choosers or the list of indexes for multi selection
    chooser
:param popup_names: List of new captions to replace this list
    ["Insert", "Delete", "Edit", "Refresh"]
:param icon: Icon index (the icon should exist in ida resources or
    an index to a custom loaded icon)
:param x1: The default location (for txt-version)
:param y1: The default location (for txt-version)
:param x2: The default location (for txt-version)
:param y2: The default location (for txt-version)
:param embedded: Create as embedded chooser
:param width: Embedded chooser width
:param height: Embedded chooser height
:param forbidden_cb: Explicitly forbidden callbacks
Nc                P   < V P                    F  pSP                  W!4       K  	  R # r.   )r  	OnCommand)r  ro  r~  r   s   && r   _qccbChoose.__init__.<locals>._qccb  s    ,,s+ -r#   )r  r  flags2colsr  CH_MULTIdefltr
  r	  r
  r
  x2y2embeddedr
  r
  forbidden_cbui_hooks_trampolinerb  _quick_commands)r   r  r  r  r
  r	  r
  r
  r  r  r  r  r
  r
  r  r  r  s   f&&&&&&&&&&&&&&& r   rd   Choose.__init__  s    6 

	D=0A5AA3E
&	 
(#' 	,  7u=r#   c                    V P                   '       g   \        P                  # V'       d   \        P                  ! V 4      # \        P
                  ! V 4      # )z^
Creates an embedded chooser (as opposed to Show())
:returns: Returns 0 on success or NO_ATTR
)r  r  NO_ATTRr   r  r  )r   create_chobjs   &&r   EmbeddedChoose.Embedded  s<    
 }}}>>!<<TBB--d33r#   c                    R# )zo
Deprecated. For embedded choosers, the selection is
available through 'Form.EmbeddedChooserControl.selection'
Nr$   rr   s   &r   GetEmbSelectionChoose.GetEmbSelection  s    
 r#   c                   V P                   '       d   \        P                  # V P                  V 4      V n        V'       dk   V ;P
                  \        P                  ,          un        \        4       ;_uu_ 4        \        P                  ! V 4      pRRR4       V P                  4        X# V ;P
                  \        P                  ( ,          un        \        P                  ! V 4      #   + '       g   i     L`; i)aI  
Activates or creates a chooser window
:param modal: Display as modal dialog
:returns: For all choosers it will return NO_ATTR if some mandatory
         attribute is missing. The mandatory attributes are: flags,
         title, cols, OnGetSize(), OnGetLine();
         For modal choosers it will return the selected item index (0-based),
         or NO_SELECTION if no selection,
         or EMPTY_CHOOSER if the OnRefresh() callback returns EMPTY_CHOOSER;
         For non-modal choosers it will return 0
         or ALREADY_EXISTS if the chooser was already open and is active now;
N)r  r  r  r  r  r  CH_MODALrQ  r   r  Close)r   modalr  s   && r   ShowChoose.Show  s     ===>>!#'#;#;D#A JJ&//)J*,, ..t4 -JJLHJJ6??**J--d33 -,s   :C))C9	c                .    \         P                  ! V 4      # )zActivates a visible chooserr  rr   s   &r   ActivateChoose.Activate  s    ++D11r#   c                .    \         P                  ! V 4      # )z&Causes the refresh callback to triggerr  rr   s   &r   RefreshChoose.Refresh  s    **400r#   c                Z    V P                   '       g   \        P                  ! V 4       R# R# )zCloses the chooserN)r  r   r  rr   s   &r   r  Choose.Close  s    }}}%%d+ r#   c                .    \         P                  ! V 4      # z`
Return the TWidget underlying this view.

:returns: The TWidget underlying this view, or None.
r  rr   s   &r   r  Choose.GetWidget  s     --d33r#   c                X    V P                  4       pV^ 8X  d   . # W8  d
   V^,
          pV.# )a  
Helper for OnDeleteLine() and OnRefresh() callbacks.
They can be finished by the following line:
return [Choose.ALL_CHANGED] + self.adjust_last_item(n)
:param n: line number of the remaining select item
:returns: list of selected lines numbers (one element or empty)
)	OnGetSize)r   r  r   s   && r   adjust_last_itemChoose.adjust_last_item  s1     nn!8I8aAs
r#   c           	     	>    V P                   P                  WW4WVR 7      # )rf  )r  r  ri  s   &&&&&&&r   
AddCommandChoose.AddCommand,  s)    ##''!# ( J 	Jr#   c                	<    V P                   P                  W4       R # r.   )r  r  )r   r  r  s   &&&r   r  Choose.OnPopup1  s    ++FAr#   c                    R# )zD
Initialize the chooser and populate it.

This callback is optional
Nr$   rr   s   &r   OnInitChoose.OnInit4       	r#   c                    R# )zj
Get the number of elements in the chooser.

This callback is mandatory

:returns: the number of elements
Nr$   rr   s   &r   r  Choose.OnGetSize<       	r#   c                    R# )zx
Get data for an element

This callback is mandatory

:param n: the index to fetch data for
:returns: a list of strings
Nr$   r  s   &&r   	OnGetLineChoose.OnGetLineF       	r#   c                    R# )zq
Get an icon to associate with the first cell of an element

:param n: index of the element
:returns: an icon ID
Nr$   r  s   &&r   	OnGetIconChoose.OnGetIconQ       	r#   c                    R# )z`
Get attributes for an element

:param n: index of the element
:returns: a tuple (color, flags)
Nr$   r  s   &&r   OnGetLineAttrChoose.OnGetLineAttrZ  r  r#   c                    R# )zk
User asked to insert an element

:param sel: the current selection
:returns: a tuple (changed, selection)
Nr$   r   rP  s   &&r   OnInsertLineChoose.OnInsertLinec  r  r#   c                    R# )zc
User deleted an element

:param sel: the current selection
:returns: a tuple (changed, selection)
Nr$   r
  s   &&r   OnDeleteLineChoose.OnDeleteLinel  r  r#   c                    R# )zj
User asked to edit an element.

:param sel: the current selection
:returns: a tuple (changed, selection)
Nr$   r
  s   &&r   
OnEditLineChoose.OnEditLineu  r  r#   c                    R# )z
User pressed the enter key, or double-clicked a selection

:param sel: the current selection
:returns: a tuple (changed, selection)
Nr$   r
  s   &&r   OnSelectLineChoose.OnSelectLine~  r  r#   c                    R# )z2
Selection changed

:param sel: the new selection
Nr$   r
  s   &&r   OnSelectionChangeChoose.OnSelectionChange  r  r#   c                    R# )z
The chooser needs to be refreshed.
It returns the new positions of the selected items.

:param sel: the current selection
:returns: a tuple (changed, selection)
Nr$   r
  s   &&r   	OnRefreshChoose.OnRefresh  r  r#   c                    R# )z
The chooser window is closed.
Nr$   rr   s   &r   OnCloseChoose.OnClose  s     	r#   c                    R# )aN  
Get the address of an element

When this function returns valid addresses:
  * If any column has the `CHCOL_FNAME` flag, rows will
    be colored according to the attributes of the functions
    who own those addresses (extern, library function,
    Lumina, ... - similar to what the "Functions" widget does)
  * When a selection is present and the user presses `<Enter>`
    (`<Shift+Enter>` if the chooser is modal), IDA will jump
    to that address (through jumpto())
:param n: element number (0-based)
:returns: the effective address, ida_idaapi.BADADDR if the element has no address
Nr$   r  s   &&r   OnGetEAChoose.OnGetEA  s     	r#   c                    R# )z
Map an element index to a diffpos_t

This callback is mandatory if CH_HAS_DIFF is specified

:param n: index of the element
:returns: the diffpos
Nr$   r  s   &&r   OnIndexToDiffposChoose.OnIndexToDiffpos  r  r#   c                    R# 
DeprecatedNr$   rr   s   &r   OnGetDirTreeChoose.OnGetDirTree      r#   c                    R# r&  r$   r  s   &&r   OnIndexToInodeChoose.OnIndexToInode  r*  r#   c                    R# r&  r$   r  s   &&r   OnLazyLoadDirChoose.OnLazyLoadDir  r*  r#   )r  r  r  r  r  r  r  r
  r	  r
  r  r  r
  r
  r  r
  r  r	  )rL  Nr	  r	  r	  r	  r	  NFNNrL  rL  F)Tr   r   r8   r9   r:   r   r  r  	CH_NOBTNSCH_ATTRSCH_NOIDBCH_FORCE_DEFAULT
CH_CAN_INS
CH_CAN_DELCH_CAN_EDITCH_CAN_REFRESHCH_QFLTCH_QFTYP_SHIFTCH_QFTYP_DEFAULTCH_QFTYP_NORMALCH_QFTYP_WHOLE_WORDSCH_QFTYP_REGEXCH_QFTYP_FUZZYCH_QFTYP_MASKCH_NO_STATUS_BAR
CH_RESTORECH_RENAME_IS_EDITOBSOLETE_CH_BUILTIN_SHIFTCH_BUILTIN_SHIFTOBSOLETE_CH_BUILTIN_MASKCH_BUILTIN_MASKOBSOLETE_CH_HAS_DIRTREECH_HAS_DIRTREECH_HAS_DIFFCHCOL_PLAIN
CHCOL_PATH	CHCOL_HEX	CHCOL_DECCHCOL_EACHCOL_FNAMECHCOL_FORMATCHCOL_DEFHIDDENCHCOL_DRAGHINTOBSOLETE_CHCOL_INODENAMECHCOL_INODENAMENO_SELECTIONEMPTY_CHOOSERALREADY_EXISTSr  NOTHING_CHANGEDALL_CHANGEDSELECTION_CHANGEDr@  r  rd   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    s6    $$H$$H &&I$$H$$HF#44 ((J#((J***K(!00N"""G4!00N#44"22O'<<!00N!00N ..M#44!((J^$66E#==";;O!99N?**K**K((J&&I&&I$$H**K,,L"22O!00N+DD.OL#M$NBG-OK6h 61>f
44421,
4 )5(G(GBD4J
B	"	r#   r  c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r	  rC   r   r$   )rE   s   "r   rF   rF     s!     = =, =| =t =r#   c                .    \         P                  ! W4      # r.   r   textctrl_info_t_assign)r  r	  s   &&r   rc  rc    s    ..u<<r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r   r  rC   r   r$   )rE   s   "r   rF   rF     s!     ; ;L ;S ;D ;r#   c                .    \         P                  ! W4      # r.   r   textctrl_info_t_set_text)r  r   s   &&r   rg  rg    s    00::r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF     s     8 8L 8C 8r#   c                .    \         P                  ! V 4      # r.   r   textctrl_info_t_get_textr  s   &r   rk  rk    s    0077r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  'unsigned int'rC   r   r$   )rE   s   "r   rF   rF     s'     @ @\ @. @@r#   c                .    \         P                  ! W4      # r.   r   textctrl_info_t_set_flags)r  r  s   &&r   rp  rp    s    11%??r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   rm  r$   )rE   s   "r   rF   rF     s     9 9\ 9^ 9r#   c                .    \         P                  ! V 4      # r.   r   textctrl_info_t_get_flagsr  s   &r   ru  ru    r  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  tabsizerm  rC   r   r$   )rE   s   "r   rF   rF     s'     D D| Dn DDr#   c                .    \         P                  ! W4      # r.   r   textctrl_info_t_set_tabsize)r  rw  s   &&r   rz  rz    s    33ECCr#   c                    V ^8  d   QhRRRR/# rr  r$   )rE   s   "r   rF   rF     s     ; ;| ;~ ;r#   c                .    \         P                  ! V 4      # r.   r   textctrl_info_t_get_tabsizer  s   &r   r~  r~    s    33E::r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   p_farx   fidr  r   rC   r$   )rE   s   "r   rF   rF     s.     D D3 DS D$ D$ Dr#   c                0    \         P                  ! WV4      # r.   )r   formchgcbfa_enable_field)r  r  r  s   &&&r   r  r    s    00FCCr#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  rx   r  showr   rC   r$   )rE   s   "r   rF   rF     s.     @ @ @3 @d @d @r#   c                0    \         P                  ! WV4      # r.   )r   formchgcbfa_show_field)r  r  r  s   &&&r   r  r    s    ..t$??r#   c               4    V ^8  d   QhRRRRRRRRRRRRRR	/# )
rA   r  rx   r  rT   r
  r  hrC   r   r$   )rE   s   "r   rF   rF     sG     F F F3 F3 F3 F3 F3 FFr#   c                2    \         P                  ! WW#WE4      # r.   )r   formchgcbfa_move_field)r  r  rT   r
  r  r  s   &&&&&&r   r  r    s    ..t!EEr#   c                    V ^8  d   QhRRRR/# )rA   r  rx   rC   r$   )rE   s   "r   rF   rF     s     < < <s <r#   c                .    \         P                  ! V 4      # r.   )r   formchgcbfa_get_focused_field)r  s   &r   r  r    s    55d;;r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   r  rC   r   r$   )rE   s   "r   rF   rF     s&     A A A# A Ar#   c                .    \         P                  ! W4      # r.   )r   formchgcbfa_set_focused_fieldr  r  s   &&r   r  r    s    55d@@r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   r  rC   rD   r$   )rE   s   "r   rF   rF     s!     = =C =c =T =r#   c                .    \         P                  ! W4      # r.   )r   formchgcbfa_refresh_fieldr  s   &&r   r  r    s    11$<<r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  rx   close_normallyrC   rD   r$   )rE   s   "r   rF   rF     s&     @ @C @ @ @r#   c                .    \         P                  ! W4      # r.   )r   formchgcbfa_close)r  r  s   &&r   r  r    s    ))$??r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )rA   r  rx   r  ftszrC   r  r$   )rE   s   "r   rF   rF     s7     G Gc G G G# GGr#   c                0    \         P                  ! WW#4      # r.   )r   formchgcbfa_get_field_value)r  r  r  r  s   &&&&r   r  r    s    33DrFFr#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   r  rx   r  r  py_valr  rC   r   r$   )rE   s   "r   rF   rF     s8     K Kc K K KKKr#   c                0    \         P                  ! WW#4      # r.   )r   formchgcbfa_set_field_value)r  r  r  r  s   &&&&r   r  r    s    33DrJJr#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF     s     * * *r#   c                 ,    \         P                  ! 4       # r.   )r   py_get_ask_formr$   r#   r   r  r    s    ''))r#   c                   V ^8  d   QhRR/# rw   r$   )rE   s   "r   rF   rF     s     + + +r#   c                 ,    \         P                  ! 4       # r.   )r   py_get_open_formr$   r#   r   r  r    r  r#   c                    V ^8  d   QhRRRR/# rA   py_formr  rC   rD   r$   )rE   s   "r   rF   rF   !  s     ; ;| ;t ;r#   c                .    \         P                  ! V 4      # r.   )r   py_register_compiled_formr  s   &r   r  r  !  s    11'::r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   %  s     = = = =r#   c                .    \         P                  ! V 4      # r.   )r   py_unregister_compiled_formr  s   &r   r  r  %  s    33G<<r#   c                      ] tR tRtRt^t ^t ^t ^t ^t	 ^ t
 RR ltR tR tR tR tR tR	 tR
 tR tR tR t]! ]]4      t ]! ]]4      t  ]! ]]4      t  ]! ]]4      tRtR# )textctrl_info_ti=  z"Class representing textctrl_info_tc                	    \         P                  P                  V 4       V'       d   Wn        V'       d   W n        V'       d	   W0n        R # R # r.   )r.  py_clinked_object_trd   r~  r  rw  )r   r~  r  rw  s   &&&&r   rd   textctrl_info_t.__init__L  s3    &&//5IJ"L r#   c                	,    \         P                  ! 4       # r.   r  rr   s   &r   _create_clinktextctrl_info_t._create_clinkU  s    2244r#   c                	.    \         P                  ! V4      # r.   r  )r   lnks   &&r   
_del_clinktextctrl_info_t._del_clinkX  s    33C88r#   c                	.    \         P                  ! V 4      # r.   r  rr   s   &r   _get_clink_ptrtextctrl_info_t._get_clink_ptr[  r   r#   c                .    \         P                  ! W4      # )z(Copies the contents of 'other' to 'self'rb  r	  s   &&r   assigntextctrl_info_t.assign^  s    224??r#   c                .    \         P                  ! W4      # zSets the text valuerf  )r   r   s   &&r   
__set_texttextctrl_info_t.__set_textb  s    44T==r#   c                .    \         P                  ! V 4      # r  rj  rr   s   &r   
__get_texttextctrl_info_t.__get_textf  s    44T::r#   c                .    \         P                  ! W4      # )zSets the flags valuero  )r   r  s   &&r   __set_flags__textctrl_info_t.__set_flags__j  s    55dBBr#   c                .    \         P                  ! V 4      # )zReturns the flags valuert  rr   s   &r   __get_flags__textctrl_info_t.__get_flags__n  s    55d;;r#   c                .    \         P                  ! W4      # )zSets the tabsize valuery  )r   rw  s   &&r   __set_tabsize__textctrl_info_t.__set_tabsize__r  s    77FFr#   c                .    \         P                  ! V 4      # )zReturns the tabsize valuer}  rr   s   &r   __get_tabsize__textctrl_info_t.__get_tabsize__v  s    77==r#   )r  rw  r~  N)r   rL  rL  )r   r   r8   r9   r:   TXTF_AUTOINDENTTXTF_ACCEPTTABSTXTF_READONLYTXTF_SELECTEDTXTF_MODIFIEDTXTF_FIXEDFONTrd   r  r  r  r  _textctrl_info_t__set_text_textctrl_info_t__get_textr  r  r  r  r   r   r~  r  rw  r<   r$   r#   r   r  r  =  s    ,O!O*M@M0M'N+#59@@>;C<G> Z,E%J
+D]M2E8Gr#   r  c                     ] tR tRtRt Rt Rt Rt Rt Rt	 Rt
 R	t R
t Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt Rt RtRtRtRt] RiR l4       t!] RjR  l4       t" ! R! R"]#4      t$ ! R# R$]#4      t% ! R% R&]#4      t& ! R' R(]&4      t' ! R) R*]'4      t( ! R+ R,]']$4      t) ! R- R.]&4      t* ! R/ R0]*4      t+ ! R1 R2]*4      t, ! R3 R4]&]$4      t- ! R5 R6]-4      t. ! R7 R8]-4      t/ ! R9 R:]&4      t0 ! R; R<]0]$4      t1 ! R= R>]14      t2 ! R? R@]0]%4      t3 ! RA RB]34      t4 ! RC RD]34      t5 ! RE RF]04      t6 ! RG RH]&4      t7 ! RI RJ]04      t8 ! RK RL]0]9Pt                  4      t; ! RM RN]0]<4      t=RO t>RP t?RQ t@RR tARkRS ltBRT tC] RU 4       tDRkRV ltERkRW ltFRX tGRY tHRZ tIR[ tJR\ tKR] tLR^ tMR_ tNR` tORa tPRb tQRc tRRd tSRe tTRf tU] Rg 4       tVRhtWR# )lFormi  ASNr  K$LlMfDOYHIBFT_USz%/Er  br  Cr5  Rr   Nc                	    V f   Vf   Q h\         P                  ! V4      # \        P                  P                  ^8  d'   \         P                  ! V P                  R4      V4      # \         P                  ! W4      # )Nr  )ctypescreate_string_buffersysr   majorencode)r   r{   s   &&r   r  Form.create_string_buffer  se    =###..t44##q(..u||G/DdKK..u;;r#   c                b   V \         P                  \         P                  \         P                  \         P                  39   d)   V'       d   \
        P                  # \
        P                  # V \         P                  \         P                  \         P                  \         P                  \         P                  39   d)   V'       d   \
        P                  # \
        P                  # V \         P                  8X  d   \
        P                  # V \         P                   8X  d   \
        P                  # V \         P"                  8X  d   \
        P                  # V \         P$                  8X  d   \
        P&                  # V \         P(                  \         P*                  39   d   \
        P,                  # R# )zO
Factory method returning a ctype class corresponding to the field type string
N)r  FT_SEGFT_HEX	FT_RAWHEXFT_ADDRr  c_uint64c_ulongFT_SHEXFT_DECFT_OCTFT_BINFT_CHARc_int64c_long	FT_UINT64FT_INT64FT_COLOR
_FT_USHORTc_ushort
FT_FORMCHGFT_ECHOOSERc_void_p)tpi64s   &&r   fieldtype_to_ctypeForm.fieldtype_to_ctype  s    
 $++t{{DNNDLLII&)6??=v~~=DLL$++t{{DKKLL %(6>>;fmm;4>>!??"4== >>!4== >>!4??"??"DOOT%5%566??"r#   c                  B    ] tR tRtRtRtR	R ltR t]! R ]4      t	Rt
R# )
Form.NumericArgumenti  zp
Argument representing various integer arguments (ushort, uint32, uint64, etc...)
:param tp: One of Form.FT_XXX
FNc                	    \         P                  Ye   TMV P                  4      pVf   \        RV,          4      h\        P
                  ! V! V4      4      V n        R # )NzInvalid numeric field type: %s)r  r  DefI64	TypeErrorr  pointerarg)r   r  r   r  r(   s   &&&& r   rd   Form.NumericArgument.__init__  sI    ))"_cC{ @2 EFF~~c%j1DHr#   c                	:    WP                   P                  n        R # r.   r  contentsr   r  s   &&r   __set_value Form.NumericArgument.__set_value  s    &'HH#r#   c                	B    V P                   P                  P                  # r.   r!  rr   s   &r   rU   Form.NumericArgument.<lambda>  s    dhh&7&7&=&=r#   r  r.   )r   r   r8   r9   r:   r  rd   _NumericArgument__set_valuer   r   r<   r$   r#   r   NumericArgumentr    s%    	 	2	(={Kr#   r)  c                  B    ] tR tRtRtRR ltR tR t]! ]]4      t	Rt
R# )	Form.StringArgumenti  z*
Argument representing a character buffer
Nc                	    Vf   \        R4      h\        V\        4      '       d   TR rWn        \        P                  W!4      V n        R # )NzThe string size must be passed)SyntaxErrorr   r  r{   r  r  r  )r   r{   r   s   &&&r   rd   Form.StringArgument.__init__  s>    |!"BCC$$$"DtI00=DHr#   c                	L    V P                   P                  P                  R 4      # )r  )r  r   r  rr   s   &r   __get_valueForm.StringArgument.__get_value   s    88>>((11r#   c                	F    VP                  R 4      V P                  n        R# )r  N)r  r  r   r  s   &&r   r#  Form.StringArgument.__set_value  s    XXg.DHHNr#   r  r{   r  )r   r   r8   r9   r:   rd   _StringArgument__get_value_StringArgument__set_valuer   r   r<   r$   r#   r   StringArgumentr+    s"    		>	2	/k2r#   r7  c                  4    ] tR tRtR tR tR tR tR tRt	R# )	Form.Controli  c                	T    ^ V n          RV n         RV n         RV n         RV n        R# )rL  NF)r  input_field_indexr  r  form_hasattrrr   s   &r   rd   Form.Control.__init__
  s6    DG3%)D" `DHsDIJ %Dr#   c                    R# )zw
Control tag character. One of Form.FT_XXXX.
The form class will expand the {} notation and replace them with the tags
Nr$   rr   s   &r   get_tagForm.Control.get_tag  s    
 r#   c                    V P                   # )zI
Control returns the parameter to be pushed on the stack
(Of ask_form())
r'  rr   s   &r   get_argForm.Control.get_arg  s    
 88Or#   c                    RV n         R# )z
Free the control
N)r  rr   s   &r   freeForm.Control.free#  s     DIr#   c                    R# )z,
Return True if this field acts as an input
Fr$   rr   s   &r   is_input_fieldForm.Control.is_input_field)  s     r#   )r  r  r<  r  r;  N)
r   r   r8   r9   rd   r?  rB  rE  rH  r<   r$   r#   r   Controlr9    s    		&				r#   rJ  c                  &    ] tR tRtRtR tR tRtR# )Form.LabelControli0  z%
Base class for static label control
c                	P    \         P                  P                  V 4       Wn        R # r.   )r  rJ  rd   r  )r   r  s   &&r   rd   Form.LabelControl.__init__5  s    LL!!$'Gr#   c                	@    R V P                   V P                  3,          # )z%%%d%s)r  r  rr   s   &r   r?  Form.LabelControl.get_tag9  s    tww000r#   )r  N)r   r   r8   r9   r:   rd   r?  r<   r$   r#   r   LabelControlrL  0  s    			1r#   rQ  c                  <    ] tR tRtRtR]P                  3R ltRtR# )Form.StringLabeli=  z
String label control
Nc                    Vf   \         P                  p\         P                  P                  W4       W0n        \         P                  W4      V n        R# )zk
Type field can be one of:
A - ascii string
T - type declaration
I - ident
F - folder
f - file
X - command
N)r  FT_ASCIIrQ  rd   r{   r  r  )r   r   r  r{   s   &&&&r   rd   Form.StringLabel.__init__B  s=     z]]&&t0I00=DHr#   r4  	r   r   r8   r9   r:   ida_proMAXSTRrd   r<   r$   r#   r   StringLabelrS  =  s    	 &* 	> 	>r#   rZ  c                  $    ] tR tRtRtRR ltRtR# )Form.NumericLabeliS  z
Numeric label control
Nc                	    Vf   \         P                  p\         P                  P                  W4       \         P                  P                  WV4       R # r.   )r  r   rQ  rd   r)  )r   r   r  s   &&&r   rd   Form.NumericLabel.__init__X  s:    z[[&&t0  ))$E:r#   r$   r.   r   r   r8   r9   r:   rd   r<   r$   r#   r   NumericLabelr\  S  s    		; 	;r#   r`  c                  2    ] tR tRtRtR tR tR tR tRt	R# )	Form.GroupItemControli_  z$
Base class for group control items
c                	j    \         P                  P                  V 4       Wn        W n        ^ V n        R# rO  )r  rJ  rd   r%	  ra  posr   r%	  ra  s   &&&r   rd   Form.GroupItemControl.__init__d  s%    LL!!$'H KDHr#   c                	D    V P                   P                  4       V n        R # r.   )ra  next_child_posrd  rr   s   &r   
assign_pos Form.GroupItemControl.assign_posj  s    {{113DHr#   c                	@    R V P                   V P                  3,          # )z%s%d)r%	  r  rr   s   &r   r?  Form.GroupItemControl.get_tagm  s    TXXtww///r#   c                	    R # Tr$   rr   s   &r   rH  $Form.GroupItemControl.is_input_fieldp      r#   )ra  rd  r%	  N)
r   r   r8   r9   r:   rd   ri  r?  rH  r<   r$   r#   r   GroupItemControlrb  _  s    			4	0	r#   rq  c                  >    ] tR tRtRtR tR tR t]! ]]4      t	Rt
R# )Form.ChkGroupItemControlit  z
Checkbox group item control
c                	F    \         P                  P                  WV4       R # r.   r  rq  rd   re  s   &&&r   rd   !Form.ChkGroupItemControl.__init__y      !!**4f=r#   c                	d    V P                   P                  ^V P                  ,          ,          ^ 8g  # r|  ra  r   rd  rr   s   &r   r0  $Form.ChkGroupItemControl.__get_value|  s$    ;;$$qDHH}499r#   c                	    V P                   P                  pV'       d   V^V P                  ,          ,          pMV^V P                  ,          ( ,          pW P                   n        R# )rM  Nry  )r   rZ   pvs   && r   r#  $Form.ChkGroupItemControl.__set_value  sE    ""B!txx-'AM** "KKr#   r$   N)r   r   r8   r9   r:   rd   _ChkGroupItemControl__get_value_ChkGroupItemControl__set_valuer   r  r<   r$   r#   r   ChkGroupItemControlrs  t  s'    		>	:	# ;41r#   r  c                  >    ] tR tRtRtR tR tR t]! ]]4      t	Rt
R# )Form.RadGroupItemControli  z
Radiobox group item control
c                	F    \         P                  P                  WV4       R # r.   ru  re  s   &&&r   rd   !Form.RadGroupItemControl.__init__  rw  r#   c                	H    V P                   P                  V P                  8H  # r.   ry  rr   s   &r   r0  $Form.RadGroupItemControl.__get_value  s    ;;$$00r#   c                	<    V P                   V P                  n        R # r.   )rd  ra  r   r  s   &&r   r#  $Form.RadGroupItemControl.__set_value  s     $DKKr#   r$   N)r   r   r8   r9   r:   rd   _RadGroupItemControl__get_value_RadGroupItemControl__set_valuer   selectedr<   r$   r#   r   RadGroupItemControlr    s%    		>	1	)K55r#   r  c                  6    ] tR tRtRtR	R ltR tR tR tRt	R# )
Form.GroupControli  z
Base class for group controls
c                	    \         P                  P                  V 4       Wn        W n        V P                  4        \         P                  P                  V \         P                  V4       R # r.   )r  rJ  rd   children_namesr%	  _resetr)  r  )r   r  r%	  r   s   &&&&r   rd   Form.GroupControl.__init__  sD    LL!!$'"0HKKM  ))$Gr#   c                	    ^ V n         R# rO  childposrr   s   &r   r  Form.GroupControl._reset  s	    DMr#   c                	P    V P                   pV ;P                   ^,          un         V# r|  r  r  s   & r   rh   Form.GroupControl.next_child_pos  s    AMMQMHr#   c                	(    R V P                   ,          # )z%dr  rr   s   &r   r?  Form.GroupControl.get_tag  s    $''>!r#   )r  r  r%	  Nrq	  )
r   r   r8   r9   r:   rd   r  rh  r?  r<   r$   r#   r   GroupControlr    s    		H		
	"r#   r  c                  *    ] tR tRtRtRt RR ltRtR# )Form.ChkGroupControli  zC
Checkbox group control class.
It holds a set of checkbox controls
Nc                	   \         P                  P                  f$   \         P                  \         P                  n        \         P                  P                  YV'       d   \         P                  M\         P                  V4       R # r.   )r  ChkGroupControl	ItemClassr  r  rd   
FT_CHKGRP2	FT_CHKGRPr   r  r   	secondarys   &&&&r   rd   Form.ChkGroupControl.__init__  sU    ##--5151I1I$$.&&t' >B
T^^UDr#   r$   rL  Fr   r   r8   r9   r:   r  rd   r<   r$   r#   r   r  r    s    	 			D 	Dr#   r  c                  (    ] tR tRtRtRtRR ltRtR# )Form.RadGroupControli  zC
Radiobox group control class.
It holds a set of radiobox controls
Nc                   \         P                  P                  f$   \         P                  \         P                  n        \         P                  P                  YV'       d   \         P                  M\         P                  V4       R# )a'  
Creates a radiogroup control.
:param children_names: A tuple containing group item names
:param value: Initial selected radio item
:param secondory: Allows rendering one the same line as the previous group control.
                  Use this if you have another group control on the same line.
N)r  RadGroupControlr  r  r  rd   
FT_RADGRP2	FT_RADGRPr  s   &&&&r   rd   Form.RadGroupControl.__init__  sW     ##--5151I1I$$.&&t' >B
T^^UDr#   r$   r  r  r$   r#   r   r  r    s    	 		D 	Dr#   r  c                  0    ] tR tRtRtRR ltR tR tRtR# )	Form.InputControli  zj
Generic form input control.
It could be numeric control, string control, directory/file browsing, etc...
Nc                    \         P                  P                  V 4       Wn        W n        W0n        W@n        WPn        R# )z
:param width:  The maximum possible number of characters that
               can be entered into the input field
:param swidth: The width of visible part of the input field
N)r  rJ  rd   r  r
  swidthhlpis_relative_offset)r   r  r
  r  r  r  s   &&&&&&r   rd   Form.InputControl.__init__  s0     LL!!$'GJ KH&8#r#   c                	    R V P                   V P                  V P                  '       d   RMRV P                  V P                  V P
                  f
   R3,          # V P
                  3,          # )z%s%d:%s%s:%s:%s+r   :)r  r  r  r
  r  r  rr   s   &r   r?  Form.InputControl.get_tag  sf    $""B##(*DJJ  FI(0 0 0&*hh(0 0 0r#   c                	    R # rn  r$   rr   s   &r   rH   Form.InputControl.is_input_field  rp  r#   )r  r  r  r  r
  )NF)	r   r   r8   r9   r:   rd   r?  rH  r<   r$   r#   r   InputControlr    s    	
	9	0
	r#   r  c                  $    ] tR tRtRtRR ltRtR# )Form.NumericInputi  zA
A composite class serving as a base numeric input control class
Nc                	    Vf   \         P                  p\         P                  P                  WW4VV4       \         P                  P                  W P
                  W'R7       R # )N)r  )r  r   r  rd   r)  r  )r   r  r   r
  r  r  r  r  s   &&&&&&&&r   rd   Form.NumericInput.__init__  sJ    z[[&&t"$  ))$)Hr#   r$   )NrL  2   
   NFNr_  r$   r#   r   NumericInputr    s    		I 	Ir#   r  c                  $    ] tR tRtRtRR ltRtR# )Form.ColorInputi  z
Color button input control
c                h    \         P                  P                  V \         P                  VRR7       R# )z*
:param value: Initial color value in RGB
F)r  r   r  N)r  r  rd   r  )r   r   s   &&r   rd   Form.ColorInput.__init__  s*     &&tU ' r#   r$   Nrq	  r_  r$   r#   r   
ColorInputr    s    		 	r#   r  c                  D    ] tR tRtRtR]P                  ^(RRR3R ltRtR# )Form.StringInputi  zN
Base string input control class.
This class also constructs a StringArgument
Nc                    Vf   \         P                  pV'       g   Tp\         P                  P                  WW#V4       \         P                  P                  WVR7       R# )a  
:param width: String size. But in some cases it has special meaning. For example in FileInput control.
              If you want to define the string buffer size then pass the 'size' argument
:param swidth: Control width
:param value: Initial value
:param size: String size
N)r{   r   )r  rU  r  rd   r7  )r   r  r
  r  r  r   r{   s   &&&&&&&r   rd   Form.StringInput.__init__  sK     z]]&&tD(((Fr#   r$   rW  r$   r#   r   StringInputr    s'    	
 #'..4	G 	Gr#   r  c                  $    ] tR tRtRtRR ltRtR# )Form.FileInputi*  z
File Open/Save input control
Nc           
     	    W48X  d   \        R 4      hVR8  d   \        R4      h\        P                  P                  T \        P                  V'       d   RMRW%WR7       R# )z(Invalid mode. Choose either open or save   (Invalid width. Must be greater than 512.10r  r
  r  r  r{   r   N)
ValueErrorr  r  rd   FT_FILE)r   r
  r  saveopenr  r   s   &&&&&&&r   rd   Form.FileInput.__init__/  sY    | !KLLs{ !KLL%%dt|| DGfE & Pr#   r$   )r  P   FFNNr_  r$   r#   r   	FileInputr  *  s    		P 	Pr#   r  c                  $    ] tR tRtRtRR ltRtR# )Form.DirInputi9  z
Directory browsing control
Nc           
     	    VR 8  d   \        R4      h\        P                  P                  V \        P                  VW#WR7       R# )r  r  r  N)r  r  r  rd   FT_DIR)r   r
  r  r  r   s   &&&&&r   rd   Form.DirInput.__init__>  s>    s{ !KLL%%dt{{%U & Ar#   r$   )r  r  NNr_  r$   r#   r   DirInputr  9  s    		A 	Ar#   r  c                  0    ] tR tRtRtRR ltR tR tRtR# )	Form.ButtonInputiE  z
Button control.
A handler along with a 'code' (numeric value) can be associated with the button.
This way one handler can handle many buttons based on the button code (or in other terms id or tag)
Nc                    \         P                  P                  V \         P                  W#V4       Wn        \        V P                  4      V n        R# )z
:param handler: Button handler. A callback taking one argument which is the code.
:param code: A code associated with the button and that is later passed to the handler.
N)r  r  rd   	FT_BUTTONr  _BUTTONCB_T	helper_cbr  )r   r  r  r  r  s   &&&&&r   rd   Form.ButtonInput.__init__L  s7    
 &&tT^^T3O"L"4>>2DHr#   c                	T    W P                   n        V P                  V4      pVf   ^ # T# r.   r  r  r  )r   button_coder  r   s   &&& r   r  Form.ButtonInput.helper_cbU  s(    !IIN[)A	1(q(r#   c                	    R # r4  r$   rr   s   &r   rH  Form.ButtonInput.is_input_fieldZ  s    r#   r  r  )r   r   N)	r   r   r8   r9   r:   rd   r  rH  r<   r$   r#   r   ButtonInputr  E  s    		3	)
	r#   r  c                  2    ] tR tRtRtR tR tR tR tRt	R# )	Form.FormChangeCbi^  av  
Form change handler.
This can be thought of like a dialog procedure.
Everytime a form action occurs, this handler will be called along with the control id.
The programmer can then call various form actions accordingly:
  - EnableField
  - ShowField
  - MoveField
  - GetFieldValue
  - etc...

Special control IDs: -1 (The form is initialized) and -2 (Ok has been clicked)

c                    \         P                  P                  V 4       Wn        \	        V P
                  4      V n        R# )z}
Constructs the handler.
:param handler: The handler (preferrably a member function of a class derived from the Form class).
N)r  rJ  rd   r  _FORMCHGCB_Tr  r  )r   r  s   &&r   rd   Form.FormChangeCb.__init__n  s+    
 LL!!$'"L#DNN3DHr#   c                	T    W P                   n        V P                  V4      pVf   ^ # T# r.   r  )r   r  r  r   s   &&& r   r  Form.FormChangeCb.helper_cbw  s(    !IINS!A	1(q(r#   c                	"    \         P                  # r.   )r  r  rr   s   &r   r?  Form.FormChangeCb.get_tag|  s    ??"r#   c                	R    \         P                  P                  V 4       R V n        R # r.   )r  rJ  rE  r  rr   s   &r   rE  Form.FormChangeCb.free  s    LLd#DLr#   r  N)
r   r   r8   r9   r:   rd   r  r?  rE  r<   r$   r#   r   FormChangeCbr  ^  s    		4	)
	#	 r#   r  c                  V    ] tR tRtRtR	R lt]! R 4      t R t]! ]4      t	 R t
RtR# )
Form.EmbeddedChooserControli  ze
Embedded chooser control.
This control links to a Chooser2 control created with the 'embedded=True'
Nc                   Ve   \        V\        4      '       g   \        R4      hVP                  RR7      pVf   \        R4      h\        P
                  P                  V \        P                  RV4       \        P                  ! 4       V n
        \        P                  P                  ^8  d&   V P                  P                  P                  4       pM$V P                  P                  P!                  4       p\"        P$                  ! \"        P&                  P)                  V4      4      p\"        P$                  ! \"        P&                  P)                  V4      4      pWg3V n        Wn        ^ V n        R# )zj
Embedded chooser control

:param chooser: A chooser2 instance (must be constructed with 'embedded=True')
NzInvalid chooser passed.T)r  z+Failed to create embedded chooser instance.r   )r   r  r  r  r  r  rd   r  rX  	sizevec_tselobjr  r   r  r	   __int____long__r  r  r  from_addressr  r  r{   )r   r  r  r  rh  rP  
p_embeddedp_sels   &&&&    r   rd   $Form.EmbeddedChooserControl.__init__  s	    j&&A&A !:;;"""5C{ !NOO&&tT-=-=r6J!++-DK%%*kk&&..0kk&&//1(D(DS(IJJNN6??#?#?#DEE!(DH"LDIr#   c                	    V P                   # r.   )r  rr   s   &r   rU   $Form.EmbeddedChooserControl.<lambda>  s    dllr#   c                	    \        V P                  4      '       d2   . pV P                   F  pVP                  \        V4      4       K  	  V# R # r.   )r   r  r%  rx   )r   r  r
  s   &  r   __get_selection__-Form.EmbeddedChooserControl.__get_selection__  s>    4;; KKDJJs4y) (
	  r#   c                    V P                   P                  4        RV n         \        P                  P	                  V 4       R# )z!
Frees the embedded chooser data
N)r  r  r  rJ  rE  rr   s   &r   rE   Form.EmbeddedChooserControl.free  s-     LL DLLLd#r#   )r  r  r  r{   )N(   N)r   r   r8   r9   r:   rd   r   r   r  	selectionrE  r<   r$   r#   r   EmbeddedChooserControlr    s6    	
	, 233	 ./	#	$r#   r  c                  n    ] tR tRtRt. R^ ^2^2R3R ltR tR t]! ]]4      t	]! ]]4      t
 R tR	 tR
tR# )Form.DropdownListControli  zF
Dropdown control
This control allows manipulating a dropdown control
TNc                   V'       d   ^ p\         P                  P                  V \         P                  VWV4       \        P
                  P                  W4       W n        V'       d=   \        P                  ! V4      V n	        \        P                  ! V P                  4      pM7\        P
                  ! V.4      V n	        V P                  P                  ^ 4      p\        P                  ! \        P                  P                  V P                  4      4      \        P                  ! \        P                  P                  V4      4      3V n        R# )aI  
:param items: A string list of items used to prepopulate the control
:param readonly: Specifies whether the dropdown list is editable or not
:param selval: The preselected item index (when readonly) or text value (when editable)
:param width: the control width (n/a if the dropdown list is readonly)
:param swidth: string width
N)r  r  rd   FT_DROPDOWN_LISTrX  
_qstrvec_treadonlyr  c_int_DropdownListControl__selval	addressofr  r  r  	clink_ptrr  )r   itemsr  selvalr
  r  r  val_addrs   &&&&&&& r   rd   !Form.DropdownListControl.__init__  s     &&tT-B-BE''4$M &V 4!++DMM: ' 2 2F8 <==2215~~foo&B&B4	' #^^FOO,H,H- DHr#   c                	j    V P                   '       d   WP                  n        R# WP                  ^ &   R# rO  r  r  r   )r   rK  s   &&r   __set_selval%Form.DropdownListControl.__set_selval  s!    }}}&)##&a r#   c                	x    V P                   '       d   V P                  P                  # V P                  ^ ,          # rq	  r"  rr   s   &r   __get_selval%Form.DropdownListControl.__get_selval  s(    *.---4==&&MT]]1=MMr#   c                	&    V P                  4        R # r.   _freerr   s   &r   rE  Form.DropdownListControl.free      JJLr#   c                (    V P                  V4       R# )zSets the dropdown list itemsN)	from_list)r   r  s   &&r   	set_items"Form.DropdownListControl.set_items  s    NN5!r#   )__selvalr  r  )r   r   r8   r9   r:   rd    _DropdownListControl__set_selval _DropdownListControl__get_selvalr   r   r  rE  r/  r<   r$   r#   r   DropdownListControlr    sN    	
 "$d1B4	2	'	N|4,5			"r#   r4  c                  *    ] tR tRtRtRR ltR tRtR# )Form.MultiLineTextControli  z
Multi line text control.
This class inherits from textctrl_info_t. Thus the attributes are also inherited
This control allows manipulating a multilinetext control
Nc                   \         P                  P                  V \         P                  VWV4       \        P                  WVVR7       \
        P                  ! \
        P                  P                  V P                  4      4      V n
        R# )z
:param text: Initial text value
:param flags: One of textctrl_info_t.TXTF_.... values
:param tabsize: Tab size
:param width: Display width
:param swidth: String width
r~  r  rw  N)r  r  rd   FT_MULTI_LINE_TEXTr  r  r  r  r  r  r  )r   r~  r  rw  r
  r  r  s   &&&&&&&r   rd   "Form.MultiLineTextControl.__init__  si     &&tT-D-De$$TE % ~~foo&B&B4	' DHr#   c                	&    V P                  4        R # r.   r)  rr   s   &r   rE  Form.MultiLineTextControl.free  r,  r#   r'  )r   rL  rL  r  r  N)r   r   r8   r9   r:   rd   rE  r<   r$   r#   r   MultiLineTextControlr6    s    		 	r#   r=  c                ~    V P                  4        Wn         W n         RV n        RV n         RV n         ^ V n        R# )a  
Contruct a Form class.
This class wraps around ask_form() or open_form() and provides an easier / alternative syntax for describing forms.
The form control names are wrapped inside the opening and closing curly braces and the control themselves are
defined and instantiated via various form controls (subclasses of Form).

:param form: The form string
:param controls: A dictionary containing the control name as a _key_ and control object as _value_
NT)r  r  controls_Form__argsr  r  openform_flags)r   r  r?  s   &&&r   rd   Form.__init__  sE     		 $
I
)	r#   c                    V P                   P                  4        F9  w  rVP                  '       d   \        W4       RVn        VP	                  4        K;  	  V P                  4        \        P                  ! V 4       R# )zw
Frees all resources associated with a compiled form.
Make sure you call this function when you finish using the form.
FN)_Form__controlsr  parent_hasattrdelattrrE  r  r   r  )r   r   ctrls   &  r   Free	Form.Free   s[    
 ////1JD"""#&+#IIK	 2
 	006r#   c                "    / V n         ^V n        R# )z'
Resets the Form class state variables
N)rD  _Form__ctrl_idrr   s   &r   r  Form._reset-  s     r#   c                (    V P                   V,          # )z Returns a control object by name)rD  r  s   &&r   r  Form.__getitem__4  s    t$$r#   c                   V P                   Vn        V ;P                   ^,          un         V'       d   \        WV4       RVn        W P                  V&   Wn        \        V\        P                  4      '       d   V P                  W#4       R# R# )z
Low level function. Prefer AddControls() to this function.
This function adds one control to the form.

:param name: Control name
:param ctrl: Control object
:param mkattr: Create control name / control object as a form attribute
TN)
rK  r  setattrrE  rD  r  r   r  r  	_AddGroup)r   r   rG  mkattrs   &&&&r   AddForm.Add8  sg     ..!D%"&D $	dD--..NN4( /r#   c                r    V P                   P                  4        F  pVP                  V8X  g   K  Vu # 	  R# )z'
Finds a control instance given its id
N)rD  valuesr  )r   r  rG  s   && r   FindControlByIdForm.FindControlByIdK  s0     OO**,Dww"} - r#   c                   ^ p\        V P                  R4      4       Fi  w  r#VP                  R4      '       g   VP                  R4      '       d   K5  V^ 8X  d   VR8X  d   ^pKG  V^8X  d   VR8X  d   ^pKY  VP                  4       u # 	  R# )z,
Parses the form's title from the form text

z
STARTITEM zBUTTON HELPENDHELPN)r}  split
startswithstrip)r  
help_stater  rg  s   &   r   _ParseFormTitleForm._ParseFormTitleT  s    
 
 D!12GA|,,	0J0JqTV^
qTY%6
::< 3 r#   c                    \        VP                  4       F/  pV P                  W1P                  VP                  V4      V4       K1  	  R# )z
Internal function.
This function expands the group item names and creates individual group item controls

:param Group: The group class (checkbox or radio group class)
N)sortedr  rS  r  r%	  )r   GrouprR  
child_names   &&& r   rQ  Form._AddGroupf  s6     !!5!56JHHZE!BFK 7r#   c                x    \        VP                  4       4       F  pV P                  W1V,          V4       K  	  R# )z
Adds controls from a dictionary.
The dictionary key is the control name and the value is a Form.Control object
:param controls: The control dictionary
N)rd  keysrS  )r   r?  rR  r   s   &&& r   AddControlsForm.AddControlsp  s+     8==?+DHHTD>62 ,r#   c                  aa R.pV P                   '       g#   VP                  V P                  ^,          4       ^oV P                  P	                  4        F5  p\        V\        P                  4      '       g   K%  VP                  4        K7  	  VV3R lo^ p^ p^ p S! WRR7      w  rrV	f   MTpV	P                  R4      '       d   K.  V P                  P                  V	R4      pVf   \        RV	,          4      h\        V\        P                  4      '       d   V^ 8  d   \        RV	,          4      hVP                  4       '       d   WSn        V^,          pV^,          pK  ^ p S! WRR7      w  rrV	f   EMeV	P                  R4      '       d   Rp
V	R	,          p	MRp
V P                  P                  V	R4      pVf   \        RV	,          4      hV
'       d2   \!        VP                   e   VP                  MVP"                  4      pMVP%                  4       p\'        V4      pVRV V,           W^,           R ,           pW|,           pV
'       d   K  \        V\        P(                  4      '       d   VP+                  4        MOVP-                  4       p\        V\.        \0        34      '       d   VP3                  V4       MVP                  V4       S^,          oEKy  VP5                  \        P6                  4      ^ 8  dv   V\        P6                  ,           p\        P                  R
 4      pV P9                  RV4       V P                   '       d   ^pM^pVP;                  WP-                  4       4       \<        P>                  P@                  ^8  d   VPC                  R4      V^ &   MW^ &   V PE                  V4      V n#        V# )a  
Low level function.
Compiles (parses the form syntax and adds the control) the form string and
returns the argument list to be passed the argument list to ask_form().

The form controls are wrapped inside curly braces: {ControlName}.

A special operator can be used to return the index of a given control by its name: {id:ControlName}.
This is useful when you use the STARTITEM form keyword to set the initially focused control.
(note that, technically, the index is not the same as the ID; that's because STARTITEM
uses raw, 0-based indexes rather than control IDs to determine the focused widget.)

:param form: Compiles the form and returns the arguments needed to be passed to ask_form()
Nc                ~  < V P                  R V4      pV^ 8  d   V RRR3# W^,
          ,          R8X  d>   V^ 8  d7   V'       d   S! W^,           V4      # V RV^,
           WR ,           p S! WV4      # V P                  RV4      pV^ 8  d   \        R4      hW^,           V pV'       g   \        RS,          4      hWWE3# ){N\}zNo matching closing brace '}'zControl %d has an invalid name!)r   r-  r  )r  r  
first_passi1i2ctrlnamectrlcntnext_controls   &&&   r   rv  $Form.CompileEx.<locals>.next_control  s    3"BAvT4--F|t#Q'1fjAAa=494D'*==3#BAv!"ABBF2H !BW!LMMR))r#   T)rq  zid:zNo matching control '%s'z4Control '%s' should be the first control in the formF:   NNc                     ^# r|  r$   r  s   *r   rU    Form.CompileEx.<locals>.<lambda>  s    1r#   ___dummyfchgcbr  )$r  r%  rA  rD  rV  r   r  r  r  r^  getr  r  r-  rH  r;  r  r  r?  r   rq  ri  rB  listtupler*  r   r  rS  r   r  r   r  r  ra  r  )r   r  rc   rG  control_countlast_input_field_indexr  rr  rs  rt  idfuncr%	  taglenr  fccbinsposru  rv  s   &&              @@r   	CompileExForm.CompileExy  s    vzzzKK++c12OO**,D$ 1 122 -	*" !"%1$d%K"DbA""5))??&&x6D| !;h!FGG$ 1 122}q7H!J  ""$$)?&&!+&QM%1$e%L"Db""5))#B<??&&x6D| !;h!FGGD4J4J 5!$00&*gg/ llnXF9s?Tq&']2DA$ 5 566!llncD%=11KK$KK$qLG99T__%)$//)D$$_5DHH%t,zzzKK/!!Q&kk'*DGG))$/
r#   c                    V P                  4        V P                  V P                  4       V P                  V P                  4      V n        \        P                  ! V 4       W P
                  3# )z
Compiles a form and returns the form object (self) and the argument list.
The form object will contain object names corresponding to the form elements

:returns: It will raise an exception on failure. Otherwise the return value is ignored
)r  rj  r?  r  r  r@  r   r  rr   s   &r   CompileForm.Compile  sN     	'nnTYY/..t4[[  r#   c                    V P                   RJ# )zA
Checks if the form has already been compiled

:returns: Boolean
N)r@  rr   s   &r   CompiledForm.Compiled  s     {{$&&r#   c                	H    V P                  4       '       g   \        R 4      hR# )zForm is not compiledN)r  r-  rr   s   &r   _ChkCompiledForm._ChkCompiled  s    }}455 r#   c                    V P                  4        V P                  '       g   \        R4      h\        V P                  !  # )zU
Displays a modal dialog containing the compiled form.
:returns: 1 - ok ; 0 - cancel
z+Form is not modal. Open() should be instead)r  r  r-  ask_formr@  rr   s   &r   ExecuteForm.Execute  s4    
 	zzzKLL%%r#   c                    V P                  4        V P                  '       d   \        R4      h\        V P                  !   R# )z.
Opens a widget containing the compiled form.
z*Form is modal. Execute() should be insteadN)r  r  r-  	open_formr@  rr   s   &r   Open	Form.Open	  s1     	:::JKK4;;r#   c                Z    \         P                  ! V P                  VP                  V4      # )zD
Enable or disable an input field
:returns: False - no such control
)r   r  r  r  )r   rG  r  s   &&&r   EnableFieldForm.EnableField  s%    
 44TYY  	r#   c                Z    \         P                  ! V P                  VP                  V4      # )z?
Show or hide an input field
:returns: False - no such control
)r   r  r  r  )r   rG  r  s   &&&r   	ShowFieldForm.ShowField  s!    
 22499dggtLLr#   c                \    \         P                  ! V P                  VP                  W#WE4      # )z<
Move/resize an input field

:returns: False - no such fiel
)r   r  r  r  )r   rG  rT   r
  r  r  s   &&&&&&r   	MoveFieldForm.MoveField!  s(     22499dggq 	r#   c                d    \         P                  ! V P                  4      pV P                  V4      # )zd
Get currently focused input field.
:returns: None if no field is selected otherwise the control ID
)r   r  r  rW  )r   r  s   & r   GetFocusedFieldForm.GetFocusedField*  s)    
 77		B##B''r#   c                X    \         P                  ! V P                  VP                  4      # )zE
Set currently focused input field
:returns: False - no such control
)r   r  r  r  r   rG  s   &&r   SetFocusedFieldForm.SetFocusedField2  s    
 99$))TWWMMr#   c                X    \         P                  ! V P                  VP                  4      # )z3
Refresh a field
:returns: False - no such control
)r   r  r  r  r  s   &&r   RefreshFieldForm.RefreshField9  s    
 55diiIIr#   c                D    \         P                  ! V P                  V4      # )z
Close the form
:param close_normally: 1: form is closed normally as if the user pressed Enter. 0: form is closed abnormally as if the user pressed Esc
:returns: None
)r   r  r  )r   r  s   &&r   r  
Form.Close@  s     --diiHHr#   c                    V P                  V4      w  r#\        P                  ! V P                  VP                  W#4      pVe+   V^8X  d$   \        V^ ,          V^,          V^,          R7      # V# )a  
Returns the control's value depending on its type
:param ctrl: Form control instance
:returns: color button, radio controls: integer
:returns: file/dir input, string input and string label: string
:returns: embedded chooser control (0-based indices of selected items): integer list
:returns: for multilinetext control: textctrl_info_t
:returns: dropdown list controls: string (when editable) or index (when readonly)
:returns: None: on failure
r8  )ControlToFieldTypeIdAndSizer   r  r  r  r  )r   rG  r  r{   r   s   &&   r   GetControlValueForm.GetControlValueH  s`     44T:	44TYY=SAX"!AaD!A$GGHr#   c                    V P                  V4      w  r4\        P                  ! V P                  VP                  W24      # )a  
Set the control's value depending on its type
:param ctrl: Form control instance
:param value: embedded chooser: a 0-base indices list to select embedded chooser items
:param value: multilinetext: a textctrl_info_t
:param value: dropdown list: an integer designating the selection index if readonly
                             a string designating the edit control value if not readonly
:returns: Boolean true on success
)r  r   r  r  r  )r   rG  r   r  _s   &&&  r   SetControlValueForm.SetControlValue[  s8     11$777		477 	r#   c                   \        V \        P                  4      '       d   ^V P                  '       d   ^3# ^ 3# \        V \        P                  4      '       d   R# \        V \        P
                  4      '       d   R# \        V \        P                  \        P                  34      '       d   R# \        V \        P                  4      '       d'   ^\        \        P                  V P                  4      3# \        V \        P                  4      '       d   R# \        V \        P                  4      '       d   ^\        V P                   ^ ,          4      3# \        V \        P"                  4      '       d   ^V P                  3# \%        R4      h)z]
Converts a control object to a tuple containing the field id
and the associated buffer size
zNot yet implemented)   rL  )   rL  )rA   rL  )   rL  )r   r  r4  r  r=  r  rq  r  rZ  minrX  rY  r{   r  r  ordr  r  NotImplementedError)rG  s   &r   r   Form.ControlToFieldTypeIdAndSizei  s    dD44554===a//a//d7788Kd99::Kt44d6G6GHIIKd..//c'..$))444doo..Kd//00c$''!*o%%d//00dii<%&;<<r#   )__args
__controls	__ctrl_idr?  r  r  rA  r  r.   r4  rn  )Xr   r   r8   r9   rU  r  r   r  r  r  r  r  r  r  r  r  r  r	  FT_IDENTr  r  FT_TYPEr  r  r  r9  r  FT_HTML_LABELr  r  r  r  r  r  r  objectr)  r7  rJ  rQ  rZ  r`  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX  r  r4  r  r=  rd   rH  r  r  rS  rW  ra  rQ  rj  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<   r$   r#   r   r  r    s   HFFG&H$GI&H$I-G0F#F-F-G H1I$F6G3JJ,K*.6MXIJIJ< <  .L& L&3 3*%& %P
1w 
1>l >,	;|_ 	;7 *2. 2,6. 6""w "0D, D&D, D*w :I|_ I
\ 
GlN G.PK P	A; 	Al 2# w # L.$ .$b4"lG,>,> 4"n|_ 447%)&  "L3kZ!'6& M(NJI& = =r#   r  l    c                     \        R 4       ^ # )z0ask_form() needs ctypes library in order to workr
  r  s   *r   __ask_form_callabler    s    BCr#   c                     \        R 4       R# )z1open_form() needs ctypes library in order to workNr  r  s   *r   __open_form_callabler    s    CDr#   c                p   \        V4      '       g   Q h\        4       ;_uu_ 4        \        P                  P                  ^8  dO   \        V^ ,          \        4      '       d2   \        V4      pV^ ,          P                  R4      V^ &   \        V4      pV ! V!  pRRR4       V#   + '       g   i     X# ; i)rx  r  N)
r   rQ  r  r   r  r   r  r}  r  r~  )callrc   largsr   s   &*  r   __call_form_callabler    s    t999	"	$	$!!Q&:d1gs+C+CJEQxw/E!H<D$K 
% H 
%	$ Hs   A4B$$B5	c                 $    \        \        .V O5!  # )am  Display a dialog box and wait for the user. If the form contains the "BUTTON NO <title>" keyword, then the return values are the same as in the ask_yn() function (Button IDs) 
        
:param form: dialog box as a string. see ask_form()/open_form()
:returns: 0: no memory to display or form syntax error (a warning is displayed in this case). the user pressed the 'No' button (if the form has it) or the user cancelled the dialog otherwise. all variables retain their original values.
:returns: 1: ok, all input fields are filled and validated.
:returns: -1: the form has the 'No' button and the user cancelled the dialog)r  r  r  s   *r   r  r    s       3;d;;r#   c                 Z    \        V 4      ^8X  d   V ^ ,          ^ 3p \        \        .V O5!  # )a  Display a dockable modeless dialog box and return a handle to it. The modeless form can be closed in the following ways:
* by pressing the small 'x' in the window title
* by calling form_actions_t::close() from the form callback (form_actions_t)



:param form: dialog box as a string. see ask_form()/open_form()
:param flags: Widget open flags
:returns: handle to the form or nullptr. the handle can be used with TWidget functions: close_widget()/activate_widget()/etc)r   r  r  r  s   *r   r  r    s-     4yA~Awz 4<t<<r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   rx   r$   )rE   s   "r   rF   rF     s     < < < <r#   c                .    \         P                  ! V 4      # )z2Install command line interpreter (ui_install_cli)
)r   install_command_interpreterr  s   &r   r  r    s     33F;;r#   c                    V ^8  d   QhRRRR/# )rA   cli_idxrx   rC   rD   r$   )rE   s   "r   rF   rF     s     < < <t <r#   c                .    \         P                  ! V 4      # )z1Remove command line interpreter (ui_install_cli)
)r   remove_command_interpreter)r  s   &r   r  r    s     227;;r#   c                  H    ] tR tRtRtR tR tRR ltR tR t	R	 t
R
 tRtR# )cli_ti  zd
cli_t wrapper class.

This class allows you to implement your own command line interface handlers.
c                	"    RV n         RV n        R# )rM  Nr	  )_cli_t__cli_idx	__clink__rr   s   &r   rd   cli_t.__init__  s    r#   c                	&    V P                  4        R # r.   )
unregisterrr   s   &r   __del__cli_t.__del__  s    r#   Nc                    V P                   ^ 8  d   R# Ve   W n        Ve   W0n        Ve   W@n        \        P
                  ! V 4      V n         V P                   ^ 8  d   R# R# )a  
Registers the CLI.

:param flags: Feature bits. No bits are defined yet, must be 0
:param sname: Short name (displayed on the button)
:param lname: Long name (displayed in the menu)
:param hint:  Hint for the input line

:returns: Boolean: True-Success, False-Failed
TF)r  snamelnamehintr   r  )r   r  r  r  r  s   &&&&&r   registercli_t.register  s\     >>QJJI%AA$G*u44r#   c                z    V P                   ^ 8  d   R# \        P                  ! V P                   4       RV n         R# )z,
Unregisters the CLI (if it was registered)
FTr	  )r  r   r  rr   s   &r   r  cli_t.unregister  s/     >>A//?r#   c                    R# )z
The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines.

This callback is mandatory.

:param line: typed line(s)
:returns: Boolean: True-executed line, False-ask for more lines
Tr$   )r   rg  s   &&r   OnExecuteLinecli_t.OnExecuteLine  s     r#   c                    R# )a  
A keyboard key has been pressed
This is a generic callback and the CLI is free to do whatever it wants.

This callback is optional.

:param line: current input line
:param x: current x coordinate of the cursor
:param sellen: current selection length (usually 0)
:param vkey: virtual key code. if the key has been handled, it should be returned as zero
:param shift: shift state

:returns: None - Nothing was changed
:returns: tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified.
:returns: It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line)
Nr$   )r   rg  rT   sellenvkeyr>  s   &&&&&&r   	OnKeydowncli_t.OnKeydown   s    " r#   c                    R# )ad  
The user pressed Tab. Return a list of completions

This callback is optional.

:param line: the current line (string)
:param x: the index where the cursor is (int)

:returns: None if no completion could be generated, otherwise a tuple:
    (completions : Sequence[str], hints : Sequence[str], docs: Sequence[str],
      match_start: int, match_end: int)
Nr$   )r   rg  rT   s   &&&r   OnFindCompletionscli_t.OnFindCompletions   s     r#   )	__cli_idxr  r  r  r  )rL  NNN)r   r   r8   r9   r:   rd   r  r  r  r  r  r  r<   r$   r#   r   r  r    s*    5,	&r#   r  c                  
   ] tR tRt]! R R RR7      t]tR'R R lltR R	 lt	R
 R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# lt]P0                  tR$ tR%tR&# )(
View_Hooksi%   c                	6    V P                   P                  4       # r.   rR   rS   s   &r   rU   View_Hooks.<lambda>&   rW   r#   c                	8    V P                   P                  V4      # r.   rR   rY   s   &&r   rU   r  &   r[   r#   r\   r]   c                    V ^8  d   QhRRRR/# rE  r$   )rE   s   "r   rF   View_Hooks.__annotate__*   rI  r#   c                	    V P                   \        8X  d   R pMT p\        P                  ! V \        P                  ! W1V4      4       R # r.   )r   r  r   View_Hooks_swiginitnew_View_HooksrM  s   &&& r   rd   View_Hooks.__init__*   s:    >>Z'EE((|/J/J;0( 	)r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  2   s     2 2T 2r#   c                	.    \         P                  ! V 4      # r.   )r   View_Hooks_hookrr   s   &r   rR  View_Hooks.hook2   rZ  r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   r  5   s     4 4t 4r#   c                	.    \         P                  ! V 4      # r.   )r   View_Hooks_unhookrr   s   &r   rX  View_Hooks.unhook5   s    --d33r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   rD   r$   )rE   s   "r   rF   r  8   s     B B; B$ Br#   c                .    \         P                  ! W4      # )z8A view is activated 
          
:param view: (TWidget *))r   View_Hooks_view_activatedr   r  s   &&r   view_activatedView_Hooks.view_activated8   s     55dAAr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  >   s     D D[ DD Dr#   c                .    \         P                  ! W4      # )z:A view is deactivated 
          
:param view: (TWidget *))r   View_Hooks_view_deactivatedr  s   &&r   view_deactivatedView_Hooks.view_deactivated>   s     77CCr#   c               (    V ^8  d   QhRRRRRRRR/# )	rA   r  r  rM  rx   r
  r
  rC   rD   r$   )rE   s   "r   rF   r  D   s0     L L L3 LL $Lr#   c                0    \         P                  ! WW#4      # )zjKey down event 
          
:param view: (TWidget *)
:param key: (int)
:param state: (::view_event_state_t))r   View_Hooks_view_keydownr   r  rM  r
  s   &&&&r   view_keydownView_Hooks.view_keydownD   s     33DKKr#   c               $    V ^8  d   QhRRRRRR/# rA   r  r  eventz'view_mouse_event_t'rC   rD   r$   )rE   s   "r   rF   r  M   s(     E E{ E3G EEr#   c                0    \         P                  ! WV4      # )z[Click event 
          
:param view: (TWidget *)
:param event: (const view_mouse_event_t *))r   View_Hooks_view_clickr   r  r  s   &&&r   
view_clickView_Hooks.view_clickM   s     11$eDDr#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   r  U   s(     H H+ H6J HHr#   c                0    \         P                  ! WV4      # )zbDouble click event 
          
:param view: (TWidget *)
:param event: (const view_mouse_event_t *))r   View_Hooks_view_dblclickr  s   &&&r   view_dblclickView_Hooks.view_dblclickU   s     44TGGr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  ]   s     ? ? ?t ?r#   c                .    \         P                  ! W4      # )z<Cursor position changed 
          
:param view: (TWidget *))r   View_Hooks_view_curposr  s   &&r   view_curposView_Hooks.view_curpos]   s     224>>r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  c   s     @ @ @ @r#   c                .    \         P                  ! W4      # )z=A view is being created. 
          
:param view: (TWidget *))r   View_Hooks_view_createdr  s   &&r   view_createdView_Hooks.view_createdc   s     33D??r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   r  i   s     > >{ >d >r#   c                .    \         P                  ! W4      # )z0View closed 
          
:param view: (TWidget *))r   View_Hooks_view_closer  s   &&r   
view_closeView_Hooks.view_closei   r
  r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r7  r
  rC   rD   r$   )rE   s   "r   rF   r  o   s(     E E+ E3H EEr#   c                0    \         P                  ! WV4      # )zdA view's renderer has changed. 
          
:param view: (TWidget *)
:param rt: (tcc_renderer_type_t))r   View_Hooks_view_switchedr   r  r7  s   &&&r   view_switchedView_Hooks.view_switchedo   s     44TDDr#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   r  w   s(     J JK J8L JJr#   c                0    \         P                  ! WV4      # )zThe user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view. 
          
:param view: (TWidget *)
:param event: (const view_mouse_event_t *))r   View_Hooks_view_mouse_overr  s   &&&r   view_mouse_overView_Hooks.view_mouse_overw   s     66t5IIr#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  r  nowrx	  wasrC   rD   r$   )rE   s   "r   rF   r     s1     N N[ N!N(ANEINr#   c                0    \         P                  ! WW#4      # )zThe location for the view has changed (can be either the place_t, the renderer_info_t, or both.) 
          
:param view: (TWidget *)
:param now: (const lochist_entry_t *)
:param was: (const lochist_entry_t *))r   View_Hooks_view_loc_changedr   r  rA  rB  s   &&&&r   view_loc_changedView_Hooks.view_loc_changed   s     77CMMr#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   r     s(     K K[ K9M KKr#   c                0    \         P                  ! WV4      # )zkThe mouse moved on the view 
          
:param view: (TWidget *)
:param event: (const view_mouse_event_t *))r   View_Hooks_view_mouse_movedr  s   &&&r   view_mouse_movedView_Hooks.view_mouse_moved   s     77EJJr#   c                	    V P                   P                  4        \        P                  ! V 4       \        P
                  ! V 4      # r.   )r	   rE  r   disown_View_HooksrG  rH  rr   s   &r   rI  View_Hooks.__disown__   s/    		&&t,}}T""r#   r$   NrK  )r   r   r8   r9   r   r   r   r
   rd   rR  rX  r  r  r  r  r$  r)  r.  r3  r9  r>  rF  rK  r   delete_View_Hooksr-  rI  r<   r$   r#   r   r  r  %   s    -/I!#GH)24BDLEH?@>EJNK $55#r#   r  c                      ] tR tRtR tR t]R 4       tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR!R ltR!R ltR t R t!Rt"R # )"CustomIDAMemoi   c                	0    \         P                  V 4       R # r.   )r  rd   rr   s   &r   rd   CustomIDAMemo.__init__   s    D!r#   c                	2   R pVP                   \        \        39   d   VP                  P                  pVe`   VP
                  '       d   VP                  3# VP                  P                  P                  VP                  P                  P                  3# R# )Nr$   )r
  TCCRT_GRAPHTCCRT_PROXIMITYr
  r
  is_noder
  elpr1  rA  dst)r   ver
  s   && r   _graph_item_tupleCustomIDAMemo._graph_item_tuple   sj    88_55;;##D|||yyz!xxzz~~txxzz~~55Ir#   c                 	    R # r.   r$   r  s   *r   	_dummy_cbCustomIDAMemo._dummy_cb   r*  r#   c                	f    \         P                  pWP                  4       8X  d   \        WV4      pV# r.   )rR  r_  r  r   )r   r  cb_namer  s   &&& r   _get_cbCustomIDAMemo._get_cb   s+    $$>>##+B	r#   c                	    ^ RI p^ RIpVP                  P                  ^8  d%   \	        VP                  V4      P                  4      # \	        VP                  V4      P                  4      # rO  )r  inspectr   r  r   getfullargspecrc   
getargspec)r   r  r  rf  s   &&  r   _get_cb_arityCustomIDAMemo._get_cb_arity   sT    !!Q&w--b16677w))"-2233r#   c                	0    V P                  VR 4      ! 4       # )OnViewActivatedrc  r  s   &&r   r  CustomIDAMemo.view_activated   s    ||D"3466r#   c                	0    V P                  VR 4      ! 4       # )OnViewDeactivatedrm  r  s   &&r   r  CustomIDAMemo.view_deactivated   s    ||D"5688r#   c                	2    V P                  VR 4      ! W#4      # )OnViewKeydownrm  r  s   &&&&r   r  CustomIDAMemo.view_keydown   s    ||D/23>>r#   c                	b   V P                  VR 4      pV\        P                  8w  d   V P                  V4      pVP                  VP
                  VP                  .pV^8  d>   VP                  VP                  4       V^8  d   VP                  VP                  4       V! \        V4      !  # R# )OnViewClickN)rc  rR  r_  ri  rT   r
  r
  r%  r
  r
  r~  r   r  r[  r  arityrc   s   &&&   r   r  CustomIDAMemo.view_click   s    \\$.(((&&r*EDD"$$)DzBII&A:KK0uT{## )r#   c                	   V P                  VR 4      pV\        P                  8w  df   V P                  V4      pVP                  VP
                  VP                  .pV^8  d   VP                  VP                  4       V! \        V4      !  # R# )OnViewDblclickN)
rc  rR  r_  ri  rT   r
  r
  r%  r
  r~  rw  s   &&&   r   r$  CustomIDAMemo.view_dblclick   st    \\$ 01(((&&r*EDD"$$)DzBOO,uT{## )r#   c                	0    V P                  VR 4      ! 4       # )OnViewCurposrm  )r   r  rc   s   &&*r   r)  CustomIDAMemo.view_curpos   s    ||D.133r#   c                	    V P                  VR 4      ! 4       pWP                  4       8X  d   \        P                  ! V 4       V# )r  )rc  r  r.  pycim_view_close)r   r  rc   rcs   &&* r   r3  CustomIDAMemo.view_close   s5    \\$	*,>>##''-	r#   c                	2    V P                  VR 4      ! V4      # )OnViewSwitchedrm  r8  s   &&&r   r9  CustomIDAMemo.view_switched   s    ||D"23B77r#   c                	V   V P                  VR 4      pV\        P                  8w  d   V P                  V4      pV P	                  V4      pVP
                  VP                  VP                  \        V4      V.pV^8  d   VP                  VP                  4       V! \        V4      !  # R# )OnViewMouseOverN)rc  rR  r_  ri  r\  rT   r
  r
  r   r%  r
  r~  )r   r  r[  r  rx  gitplrc   s   &&&    r   r>  CustomIDAMemo.view_mouse_over   s    \\$ 12(((&&r*E**2.EDD"$$#e*e<DzBOO,uT{## )r#   c                	2    V P                  VR 4      ! W#4      # )OnViewLocationChangedrm  rE  s   &&&&r   rF  CustomIDAMemo.view_loc_changed   s    ||D"9:3DDr#   c                	    V P                  VR 4      pV\        P                  8w  dO   V P                  V4      pV! VP                  VP
                  VP                  \        V4      WBP                  4      # R# )OnViewMouseMovedN)	rc  rR  r_  r\  rT   r
  r
  r   r
  )r   r  r[  r  r  s   &&&  r   rK  CustomIDAMemo.view_mouse_moved   s]    \\$ 23(((**2.EbddBDD"((CJOO )r#   c                	Z    V'       d   V P                  4        R # V P                  4        R # r.   )rR  rX  )r   rR  s   &&r   _OnBindCustomIDAMemo._OnBind   s    IIKKKMr#   c                2    \         P                  ! V 4       R# )z>
Refreshes the view. This causes the OnRefresh() to be called
N)r.  pygc_refreshrr   s   &r   r  CustomIDAMemo.Refresh   s     	%r#   c                	4    \        V P                  4       4      # r.   )r4  r  rr   s   &r   GetCurrentRendererType$CustomIDAMemo.GetCurrentRendererType!  s    %dnn&677r#   c                6    \        V P                  4       V4      # )zp
Set the current view's renderer.

:param rtype: The renderer type. Should be one of the idaapi.TCCRT_* values.
)r9  r  )r   r
  s   &&r   SetCurrentRendererType$CustomIDAMemo.SetCurrentRendererType!  s     &dnn&6>>r#   c                L    ^ RI pVP                  V P                  4       VW#4      # )aQ  
Set the properties for the given node.

Example usage (set second nodes's bg color to red):
  inst = ...
  p = idaapi.node_info_t()
  p.bg_color = 0x00ff0000
  inst.SetNodeInfo(1, p, idaapi.NIF_BG_COLOR)

:param node_index: The node index.
:param node_info: An idaapi.node_info_t instance.
:param flags: An OR'ed value of NIF_* values.
N)	ida_graphviewer_set_node_infor  )r   
node_index	node_infor  r  s   &&&& r   SetNodeInfoCustomIDAMemo.SetNodeInfo!  s(     	--dnn.>
 	r#   c                    ^ RI pVP                  4        F0  w  r4VP                  V P                  4       VWBP                  4       K2  	  R# )a  
Set the properties for the given nodes.

Example usage (set first three nodes's bg color to purple):
  inst = ...
  p = idaapi.node_info_t()
  p.bg_color = 0x00ff00ff
  inst.SetNodesInfos({0 : p, 1 : p, 2 : p})

:param values: A dictionary of 'int -> node_info_t' objects.
N)r  r  r  r  NIF_ALL)r   rV  r  r  r  s   &&   r   SetNodesInfosCustomIDAMemo.SetNodesInfos"!  s<     	%+\\^!J**4>>+;Z,,. &4r#   c                h   ^ RI p\        V4      ^8  do   VP                  4       V^ ,          rCVP                  V P	                  4       W44      '       d/   VP
                  VP                  VP                  VP                  3# R# V^ ,          V^,          rCVP                  V P	                  4       W44      # )z
Get the properties for the given node.

:param ni: A node_info_t instance
:param node: The index of the node.
:returns: success
N)	r  r   node_info_tviewer_get_node_infor  rk  frame_colorr  r~  )r   rc   r  nir
  s   &*   r   GetNodeInfoCustomIDAMemo.GetNodeInfo3!  s     	t9q= ,,.Q--dnn.>II{{BNNBEE277BBAwQ11$..2BBMMr#   c                `    ^ RI pV F#  pVP                  V P                  4       V4       K%  	  R# )zP
Delete the properties for the given node(s).

:param nodes: A list of node IDs
N)r  viewer_del_node_infor  )r   nodesr  r  s   &*  r   DelNodesInfosCustomIDAMemo.DelNodesInfosF!  s(     	A**4>>+;Q? r#   c                .    \         P                  ! W4      # )a  
Send a request to modify the graph by creating a
(set of) group(s), and perform an animation.

Each object in the 'groups_infos' list must be of the format:
{
  "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group
  "text" : <string>                    # The synthetic text for that group
}

:param groups_infos: A list of objects that describe those groups.
:returns: A [<int>, <int>, ...] list of group nodes, or None (failure).
)r.  pygc_create_groups)r   groups_infoss   &&r   CreateGroupsCustomIDAMemo.CreateGroupsP!  s     ,,T@@r#   c                0    \         P                  ! WV4      # )z
Send a request to delete the specified groups in the graph,
and perform an animation.

:param groups: A list of group node numbers.
:param new_current: A node to focus on after the groups have been deleted
:returns: True on success, False otherwise.
)r.  pygc_delete_groups)r   groupsnew_currents   &&&r   DeleteGroupsCustomIDAMemo.DeleteGroups`!  s     ,,T;GGr#   c                2    \         P                  ! WVV4      # )aJ  
Send a request to expand/collapse the specified groups in the graph,
and perform an animation.

:param groups: A list of group node numbers.
:param expand: True to expand the group, False otherwise.
:param new_current: A node to focus on after the groups have been expanded/collapsed.
:returns: True on success, False otherwise.
)r.  pygc_set_groups_visibility)r   r  expandr  s   &&&&r   SetGroupsVisibility!CustomIDAMemo.SetGroupsVisibilityk!  s     44T6 	r#   c                .    \         P                  ! V 4      # r  )r.  pycim_get_widgetrr   s   &r   r  CustomIDAMemo.GetWidgetx!  s     **400r#   c                .    \         P                  ! V 4      # )zn
Return the graph_viewer_t underlying this view.

:returns: The graph_viewer_t underlying this view, or None.
)r.   pycim_get_widget_as_graph_viewerrr   s   &r   GetWidgetAsGraphViewer$CustomIDAMemo.GetWidgetAsGraphViewer!  s     ::4@@r#   r$   Nr	  )#r   r   r8   r9   rd   r\  r  r_  rc  ri  r  r  r  r  r$  r)  r3  r9  r>  rF  rK  r  r  r  r  r  r  r  r  r  r  r  r  r  r<   r$   r#   r   rR  rR     s    "
  479?	$$48$EP&8?$."N&@A 	H1Ar#   rR  c                    V ^8  d   QhRRRR/# rA   r  r  rC   r   r$   )rE   s   "r   rF   rF   !  s     + +| +t +r#   c                .    \         P                  ! V 4      # r.   )r   pyidag_bindr  s   &r   r  r  !  s    ##E**r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   !       - - - -r#   c                .    \         P                  ! V 4      # r.   )r   pyidag_unbindr  s   &r   r  r  !  r  r#   c                  ,    ] tR tRtRtR tR tR tRtR# )IDAViewWrapperi!  aE  
Deprecated. Use View_Hooks instead.

Because the lifecycle of an IDAView is not trivial to track (e.g., a user
might close, then re-open the same disassembly view), this wrapper doesn't
bring anything superior to the View_Hooks: quite the contrary, as the
latter is much more generic (and better maps IDA's internal model.)
c                	<    \         P                  V 4       Wn        R # r.   )rR  rd   _titler   r  s   &&r   rd   IDAViewWrapper.__init__!  s    t$r#   c                	b    \         P                  ! V 4      pV'       d   V P                  4        V# r.   )r   r  rR  r   r  s   & r   BindIDAViewWrapper.Bind!  s#    %%d+IIK	r#   c                	b    \         P                  ! V 4      pV'       d   V P                  4        V# r.   )r   r  rX  r  s   & r   UnbindIDAViewWrapper.Unbind!  s#    ''-KKM	r#   )r  N)	r   r   r8   r9   r:   rd   r  r  r<   r$   r#   r   r  r  !  s    r#   r  c               $    V ^8  d   QhRRRRRR/# )rA   py_linkr  r  r  rC   r$   )rE   s   "r   rF   rF   !  s!     3 3 3S 3L 3r#   c                .    \         P                  ! W4      # r.   )r   
pyscv_init)r  r  s   &&r   r  r  !  s    ""722r#   c                    V ^8  d   QhRRRR/# rA   py_thisr  rC   r   r$   )rE   s   "r   rF   rF   !  r  r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_refreshr  s   &r   r  r  !  s    %%g..r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r  r  r  r   notagsrC   r$   )rE   s   "r   rF   rF   !  s/     G GL G Gt GGr#   c                0    \         P                  ! WV4      # r.   )r   pyscv_get_current_line)r  r  r  s   &&&r   r  r  !  s    ..wvFFr#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   !  s     2 2l 2d 2r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_is_focusedr  s   &r   r  r  !      ((11r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   rx   r$   )rE   s   "r   rF   rF   !  s     - - - -r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_countr  s   &r   r  r  !      ##G,,r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   !  r  r#   c                .    \         P                  ! V 4      # r.   )r   
pyscv_showr  s   &r   r  r  !  s    ""7++r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   rD   r$   )rE   s   "r   rF   rF   !  r  r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_closer  s   &r   r  r  !  r  r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   r  r  lnrx   rT   r
  rC   r   r$   )rE   s   "r   rF   rF   !  s/     8 8, 8C 8C 8C 84 8r#   c                0    \         P                  ! WW#4      # r.   )r   pyscv_jumpto)r  r  rT   r
  s   &&&&r   r   r   !  s    $$W!77r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  nlinerx   rC   r$   )rE   s   "r   rF   rF   !  s!     7 7L 7 7 7r#   c                .    \         P                  ! W4      # r.   )r   pyscv_get_liner  r  s   &&r   r  r  !      &&w66r#   c               $    V ^8  d   QhRRRRRR/# rA   r  r  r  r   rC   r$   )rE   s   "r   rF   rF   !  s!     6 6< 6 6 6r#   c                .    \         P                  ! W4      # r.   )r   pyscv_get_posr  r  s   &&r   r
  r
  !  s    %%g55r#   c                    V ^8  d   QhRRRR/# rA   r  r  rC   r$   )rE   s   "r   rF   rF   !  s     3 3| 3| 3r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_clear_linesr  s   &r   r  r  !  s    ))'22r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  py_slrC   r   r$   )rE   s   "r   rF   rF   !  s!     7 7L 7 7 7r#   c                .    \         P                  ! W4      # r.   )r   pyscv_add_line)r  r  s   &&r   r  r  !  r  r#   c               (    V ^8  d   QhRRRRRRRR/# rA   r  r  r  rx   r  rC   r   r$   )rE   s   "r   rF   rF   !  s/     A A| AC A AAr#   c                0    \         P                  ! WV4      # r.   )r   pyscv_insert_liner  r  r  s   &&&r   r  r  !  s    ))'%@@r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   r  r  r  rx   offsr   rC   r   r$   )rE   s   "r   rF   rF   !  s7     F Fl F3 Fc F# FFr#   c                0    \         P                  ! WW#4      # r.   )r   pyscv_patch_line)r  r  r  r   s   &&&&r   r  r  !  s    ((EEr#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  rx   rC   r   r$   )rE   s   "r   rF   rF   !  s!     7 7L 7 7 7r#   c                .    \         P                  ! W4      # r.   )r   pyscv_del_liner  s   &&r   r  r  !  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rE   s   "r   rF   rF   !  s     5 5 5 5r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_get_selectionr  s   &r   r"  r"  !  s    ++G44r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rE   s   "r   rF   rF   !  s!     ? ?L ? ? ?r#   c                .    \         P                  ! W4      # r.   )r   pyscv_get_current_wordr  s   &&r   r%  r%  !  s    ..w>>r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rE   s   "r   rF   rF   !  s)     ? ?\ ?# ?l ??r#   c                0    \         P                  ! WV4      # r.   )r   pyscv_edit_liner  s   &&&r   r(  r(  !  s    ''>>r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF   !  s     2 2l 2k 2r#   c                .    \         P                  ! V 4      # r.   )r   pyscv_get_widgetr  s   &r   r+  r+  !  r  r#   c                      ] tR tRtRt ! R R]4      tR t]RR l4       t	R t
R	 tR
 tR tR tR tR tR tR tRR ltRR ltRR ltR tR tR tR R ltR!R ltR R ltR R ltR!R ltR tR tRt R# )"simplecustviewer_ti"  z5The base class for implementing simple custom viewersc                  "    ] tR tRtR tR tRtR# )&simplecustviewer_t.UI_Hooks_Trampolinei"  c                	    \         P                  V 4       V P                  4        ^ RIpVP                  ! V4      V n        R# rO  r  r  s   && r   rd   /simplecustviewer_t.UI_Hooks_Trampoline.__init__	"  r  r#   c                	   V P                  4       P                  4       pW8X  d   V P                  4       P                  p^ RIp^ RIpRpVP
                  P                  ^8  d5   \        VP                  V4      P                  4      ^8X  d   V! W24       RpM3\        VP                  V4      P                  4      ^8X  d   V! W24       RpV'       g
   V! 4        R# R# R# )rL  NFT)rZ   r  r  r  rf  r   r  r   rg  rc   rh  )r   r  r  my_formr  r  rf  handleds   &&&     r   r  >simplecustviewer_t.UI_Hooks_Trampoline.populating_widget_popup"  s    ffh((*GVVX%%##))Q.711"5::;q@71"&++B/445:w-"GD  r#   r5  Nr  r$   r#   r   r  r/  "  s    	$	r#   r  c                	@    R V n         V P                  V 4      V n        R # r.   )_simplecustviewer_t__thisr  r  rr   s   &r   rd   simplecustviewer_t.__init__ "  s    #'#;#;D#A r#   Nc                	    Vf   Vf   V # V W3# r.   r$   )rg  fgcolorr  s   &&&r   __make_sl_arg simplecustviewer_t.__make_sl_arg$"  s"    7?t 	A 	r#   c                    R# )z
Context menu popup is about to be shown. Create items dynamically if you wish
:returns: Boolean. True if you handled the event
Nr$   )r   r  r  s   &&&r   r  simplecustviewer_t.OnPopup)"  r_  r#   c                p    Wn         \        P                  ! W4      V n        V P                  '       d   R# R# )a  
Creates the custom view. This should be the first method called after instantiation

:param title: The title of the view
:returns: Boolean whether it succeeds or fails. It may fail if a window with the same title is already open.
         In this case better close existing windows
TF)r  r   r  r7  r  s   &&r   Createsimplecustviewer_t.Create0"  s.     
"--d:{{{t--r#   c                B    \         P                  ! V P                  4      # )z
Destroys the view.
One has to call Create() afterwards.
Show() can be called and it will call Create() internally.
:returns: Boolean
)r   r  r7  rr   s   &r   r  simplecustviewer_t.Close<"  s     ''44r#   c                B    \         P                  ! V P                  4      # )zm
Shows an already created view. It the view was closed, then it will call Create() for you
:returns: Boolean
)r   r  r7  rr   s   &r   r  simplecustviewer_t.ShowE"  s    
 &&t{{33r#   c                	B    \         P                  ! V P                  4      # r.   r   r  r7  rr   s   &r   r  simplecustviewer_t.RefreshL"  s    ))$++66r#   c                B    \         P                  ! V P                  4      # )zRefreshes the current line onlyrG  rr   s   &r   RefreshCurrent!simplecustviewer_t.RefreshCurrentO"  s    ))$++66r#   c                B    \         P                  ! V P                  4      # )z'Returns the number of lines in the view)r   r  r7  rr   s   &r   Countsimplecustviewer_t.CountS"  s    ''44r#   c                B    \         P                  ! V P                  4      # )z]
Returns the selected range or None
:returns: tuple(x1, y1, x2, y2), or None if no selection
)r   r"  r7  rr   s   &r   GetSelectionsimplecustviewer_t.GetSelectionW"  s    
 //<<r#   c                F    \         P                  ! V P                  4       R# )zClears all the linesN)r   r  r7  rr   s   &r   
ClearLinessimplecustviewer_t.ClearLines^"  s    &&t{{3r#   c                d    \         P                  ! V P                  V P                  WV4      4      # )z3
Adds a colored line to the view
:returns: Boolean
)r   r  r7   _simplecustviewer_t__make_sl_arg)r   rg  r:  r  s   &&&&r   AddLinesimplecustviewer_t.AddLineb"  s/    
 **4;;8J8J79$ % 	%r#   c           	     d    \         P                  ! V P                  WP                  W#V4      4      # )z8
Inserts a line in the given position
:returns: Boolean
)r   r  r7  rV  r   linenorg  r:  r  s   &&&&&r   
InsertLinesimplecustviewer_t.InsertLinej"  s+    
 --dkk6M$13 	3r#   c           	     d    \         P                  ! V P                  WP                  W#V4      4      # )z+
Edits an existing line.
:returns: Boolean
)r   r(  r7  rV  rZ  s   &&&&&r   EditLinesimplecustviewer_t.EditLiner"  s+    
 ++DKKM$13 	3r#   c                F    \         P                  ! V P                  WV4      # )zuPatches an existing line character at the given offset. This is a low level function. You must know what you're doing)r   r  r7  )r   r[  r  r   s   &&&&r   	PatchLinesimplecustviewer_t.PatchLinez"  s    ,,T[[&NNr#   c                D    \         P                  ! V P                  V4      # )z,
Deletes an existing line
:returns: Boolean
)r   r  r7  r   r[  s   &&r   DelLinesimplecustviewer_t.DelLine~"  s    
 **4;;??r#   c                D    \         P                  ! V P                  V4      # )zk
Returns a line
:param lineno: The line number
:returns: a tuple (colored_line, fgcolor, bgcolor), or None
)r   r  r7  re  s   &&r   GetLinesimplecustviewer_t.GetLine"  s     **4;;??r#   c                D    \         P                  ! V P                  V4      # )z
Returns the current word
:param mouse: Use mouse position or cursor position
:returns: None if failed or a String containing the current word at mouse or cursor
)r   r%  r7  r   r  s   &&r   GetCurrentWord!simplecustviewer_t.GetCurrentWord"  s     224;;FFr#   c                D    \         P                  ! V P                  W4      # )z
Returns the current line.
:param mouse: Current line at mouse pos
:param notags: If True then tag_remove() will be called before returning the line
:returns: Returns the current line (colored or uncolored) or None on failure
)r   r  r7  )r   r  r  s   &&&r   GetCurrentLine!simplecustviewer_t.GetCurrentLine"  s     224;;NNr#   c                D    \         P                  ! V P                  V4      # )z|
Returns the current cursor or mouse position.
:param mouse: return mouse position
:returns: Returns a tuple (lineno, x, y)
)r   r
  r7  rl  s   &&r   GetPossimplecustviewer_t.GetPos"  s     ))$++u==r#   c                J    V P                  V4      pV'       g   R# V^ ,          # )zCCalls GetPos() and returns the current line number or -1 on failurer	  )rs  )r   r  r   s   && r   	GetLineNosimplecustviewer_t.GetLineNo"  s!    KKr$!$r#   c                	F    \         P                  ! V P                  WV4      # r.   )r   r   r7  )r   r[  rT   r
  s   &&&&r   Jumpsimplecustviewer_t.Jump"  s    ((fCCr#   c                B    \         P                  ! V P                  4      # )z4Returns True if the current view is the focused view)r   r  r7  rr   s   &r   	IsFocusedsimplecustviewer_t.IsFocused"  s    ,,T[[99r#   c                B    \         P                  ! V P                  4      # r  )r   r+  r7  rr   s   &r   r  simplecustviewer_t.GetWidget"  s     ,,T[[99r#   )__thisr  r  r  rq	  )rL  rL  )!r   r   r8   r9   r:   r@  r  rd   r  rV  r  r@  r  r  r  rJ  rM  rP  rS  rW  r\  r_  rb  rf  ri  rm  rp  rs  rv  ry  r|  r  r<   r$   r#   r   r-  r-  "  s    ?h 2B  
.54775=4%33O@@GO>%
D::r#   r-  c                   V ^8  d   QhRR/# r  r$   )rE   s   "r   rF   rF   "  s     & &L &r#   c                 ,    \         P                  ! 4       # r.   )r   plgform_newr$   r#   r   r  r  "  s    ##%%r#   c                   V ^8  d   QhRR/# r   r$   )rE   s   "r   rF   rF   "  s     , ,$ ,r#   c                 *    \         P                  ! V !  # r.   )r   plgform_showr  s   *r   r  r  "  s    $$d++r#   c               $    V ^8  d   QhRRRRRR/# )rA   r  r  r  rx   rC   rD   r$   )rE   s   "r   rF   rF   "  s!     8 8< 8# 8 8r#   c                .    \         P                  ! W4      # r.   )r   plgform_close)r  r  s   &&r   r  r  "  s    %%g77r#   c                    V ^8  d   QhRRRR/# )rA   r  r  rC   r  r$   )rE   s   "r   rF   rF   "  s     4 4 4 4r#   c                .    \         P                  ! V 4      # r.   )r   plgform_get_widget)r  s   &r   r  r  "  s    **733r#   c                     ] tR tRtRt^t^t]P                  t  ^t	^t
^ t]P                  t  ]P                  t  ]P                  t  ]P                  t  ]P                   t  ]P"                  t  ]P$                  t  ]P&                  t  ]P(                  t  ]P*                  t  ]P,                  t]P.                  t/ tR tRR lt]R 4       tRt]]P>                  R,          3R l4       t ] t!] t"]]P>                  R,          3R	 l4       t#]]P>                  R,          3R
 l4       t$]$t%R t&R t'R t(R t)]PT                  t*  ]PV                  t+  ]PX                  t,  ]PZ                  t-  ]-t.Rt/R# )
PluginFormi"  zf
PluginForm class.

This form can be used to host additional controls. Please check the PyQt example.
c                :    \         P                  ! 4       V n        R# )z	
        N)r   r  r  rr   s   &r   rd   PluginForm.__init__#  s     &113r#   c                    W P                   8X  d   RpM,V\        P                  \        P                  ,          ,          p\        P
                  ! V P                  WV4      # )z
Creates the form if not was not created or brings to front if it was already created

:param caption: The form caption
:param options: One of PluginForm.WOPN_ constants
r	  )WOPN_CREATE_ONLYr  WOPN_DP_TABWOPN_RESTOREr   r  r  )r   r  r  s   &&&r   r  PluginForm.Show#  sM     +++Gz--
0G0GGGG((  	r#   c                	|    R F5  p\        W4      '       d   K  ^ RIp\        WVP                  V4      4       K7  	  R# )shiboken6.ShibokenN)r  zPySide6.QtWidgets)r   	importlibrP  import_module)r  modnamer  s   &  r   _ensure_widget_depsPluginForm._ensure_widget_deps-#  s0    BG3(( i&=&=g&FG Cr#   s   $valid$__main__c                   \        V 4      P                  R8X  d   \        V 4      pM^ RIpVP                  VP
                  P                  n        VP                  VP                  .VP
                  P                  n
        VP
                  P                  V \        P                  4      p^ RIp^ RIpVP                  P!                  W%P"                  P$                  4      P'                  4       pVP"                  P$                  pV'       d'    \)        VP"                  VP+                  4       4      p VP                  P!                  W'4      #   \,         d    TP/                  4       p Kg  i ; i)zF
Convert a TWidget* to a QWidget to be used by the Qt Python bindings
SwigPyObjectN)r   r   rx   r  r  	pythonapiPyCapsule_GetPointerrestype	py_objectc_char_pargtypesr  VALID_CAPSULE_NAMEr  r'  Shibokenr  	QtWidgetsr&  
metaObjectr   	classNamer   
superClass)twr  ptr_lr  r"  PySide6r  
known_types   &&      r   TWidgetToQtPythonWidget"PluginForm.TWidgetToQtPythonWidget5#  s   
 8.GE<BOOF119>D	6??>,F11:$$99"j""$E! ''44UIgg)z| 	&&..
5$W%6%6
8L8L8NO
 !!..uAA " 5'224
5s   $E E.-E.c                    \         P                  V4       ^ RIpVP                  P	                  V 4      p\        V^ ,          4      # )z
Convert a QWidget to a TWidget* to be used by IDA

:param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
N)r  r  r  r  getCppPointerr  )r  r  r"  results   &&  r   QtWidgetToTWidgetPluginForm.QtWidgetToTWidgetR#  s:     	&&s+!##11!4%fQi00r#   c                   V f   R# \        V 4      P                  R8X  d   \        P                  ! V 4      p^ RIpVP
                  VP                  P                  n        VP                  VP                  VP                  .VP                  P                  n        VP                  P                  V\        P                  ^ 4      p VP                  P                  P!                  V 4      # )z
Use this method to convert a TWidget* to a QWidget to be used by PySide

:param ctx: Context. Reference to a module that already imported QtWidgets module
Nr  )r   r   r.  	long_typer  r  r  PyCapsule_Newr  r  r  r  r  r  QtGuir&  FromCapsule)r  r  r  r  s   &&  r   TWidgetToPySideWidget PluginForm.TWidgetToPySideWidget^#  s     :8.((,E5;5E5EF**27=72F**3!!//z""A'Byy  ,,R00r#   c                    R# )z
This event is called when the plugin form is created.
The programmer should populate the form when this event is triggered.

:returns: None
Nr$   r   r  s   &&r   OnCreatePluginForm.OnCreater#  r  r#   c                    R# )z7
Called when the plugin form is closed

:returns: None
Nr$   r  s   &&r   r  PluginForm.OnClose{#  r  r#   c                D    \         P                  ! V P                  V4      # )zc
Closes the form.

:param options: Close options (WCLS_SAVE, WCLS_NO_CONTEXT, ...)

:returns: None
)r   r  r  )r   r  s   &&r   r  PluginForm.Close#  s     ))$..'BBr#   c                B    \         P                  ! V P                  4      # r  )r   r  r  rr   s   &r   r  PluginForm.GetWidget#  s     ..t~~>>r#   )r  Nrq	  )0r   r   r8   r9   r:   WOPN_MDIWOPN_TABr   r  
WOPN_ONTOP	WOPN_MENUWOPN_CENTEREDWOPN_PERSISTWOPN_DP_LEFTWOPN_DP_TOPWOPN_DP_RIGHTWOPN_DP_BOTTOMWOPN_DP_INSIDEr  WOPN_DP_BEFOREWOPN_DP_FLOATINGWOPN_DP_SZHINTWOPN_DP_INSIDE_BEFOREWOPN_DP_TAB_BEFOREr  rd   r  r  r  r  r  modulesr  TWidgetToPyQtWidgetFormToPyQtWidgetr  r  FormToPySideWidgetr  r  r  r  	WCLS_SAVEWCLS_NO_CONTEXTWCLS_DONT_SAVE_SIZEWCLS_DELETE_LATERWCLS_CLOSE_LATERr<   r$   r#   r   r  r  "  s)   
 HH,,L JIM,,L@,,L/**K& ..M0!00N&!00N>**K
 "00N $44
 "00N(>>%884
 H H
 $(+J(? B B2 2.!$Z!8 	1 	1 &)kk*&= 1 1" /C? &&I&"22O@&::'$66O(r#   r  rq	  r  r  )NrL  Nrn  )rL  rL  rL  rL  r.   rO  )NNN(F  r:   
__future__r   r  r   _swig_python_version_info__package__r   r   r   builtinsr   ImportErrorr   r%   r+   r5   r   r7   rG  SWIG_PYTHON_LEGACY_BOOLtypingr=   r>   r?   r.  rI   rN   r  rP   #chooser_row_info_vec_t_swigregisterr6  &tagged_line_section_vec_t_swigregisterr  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/  jobj_wrapper_t_swigregisterr@  UI_Hooks_swigregisterrR  rV  rY  r]  disasm_line_t_swigregisterr|  r  r  r  r  r  MAX_SPACES_ADDEDr  r  r  r  1line_rendering_output_entries_refs_t_swigregisterr:  !section_lines_refs_t_swigregisterr  "sections_lines_refs_t_swigregisterr\  text_t_swigregisterr  sync_source_vec_t_swigregistermbox_internal	mbox_infombox_warning
mbox_error
mbox_nomemmbox_feedbackmbox_readerrormbox_writeerrormbox_filestruct	mbox_wait	mbox_hidembox_replacechtype_genericchtype_idasgnchtype_entrychtype_namechtype_stkvar_xrefchtype_xrefchtype_funcchtype_segmchtype_strpathchtype_idatilchtype_srcpchtype_structchtype_enumchtype_enum_by_value_and_sizebeep_defaultTCCRT_INVALID
TCCRT_FLATrV  rW  TCCPT_INVALIDTCCPT_PLACEr  r  r  VME_UNKNOWNVME_LEFT_BUTTONVME_RIGHT_BUTTONVME_MID_BUTTONSETMENU_POSMASKSETMENU_INSSETMENU_APPSETMENU_FIRSTSETMENU_ENSURE_SEPCREATETB_ADVHIF_IDENTIFIERHIF_REGISTER
HIF_LOCKED
HIF_NOCASEHIF_USE_SLOTHIF_SLOT_SHIFT
HIF_SLOT_0
HIF_SLOT_1
HIF_SLOT_2
HIF_SLOT_3
HIF_SLOT_4
HIF_SLOT_5
HIF_SLOT_6
HIF_SLOT_7REG_HINTS_MARKERREG_HINTS_MARKER_LENSRCDBG_HINTS_MARKERSRCDBG_HINTS_MARKER_LENCDVF_NOLINESCDVF_LINEICONSCDVF_STATUSBARIDCHK_OK	IDCHK_ARG	IDCHK_KEY	IDCHK_MAXr  r  r  r  r  DP_LEFTDP_TOPDP_RIGHT	DP_BOTTOM	DP_INSIDEDP_TAB	DP_BEFOREDP_FLOATING	DP_SZHINTSVF_COPY_LINESSVF_LINES_BYPTR	CVNF_LAZY	CVNF_JUMPCVNF_ACTr  r  WOPN_CLOSED_BY_ESCWOPN_NOT_CLOSED_BY_ESCWOPN_DP_MASKWOPN_DP_SHIFTr  r  r  r  r  r  r  r  r  r  r  RENADDR_IDA
RENADDR_HRCVLF_USE_MOUSEr`  rg  ri  place_t_swigregistercvarIDALIB_API_MAGICDEFAULT_PLACE_LNNUMr
  r  r  simpleline_t_swigregisterr"  simpleline_place_t_swigregisterr+  idaplace_t_swigregisterr9  r>  rA  rC  tiplace_t_swigregisterPCF_EA_CAPABLEPCF_MAKEPLACE_ALLOCATESr  r  r  r  r  r  sync_source_t_swigregisterr  synced_group_t_swigregisterLECVT_CANCELEDLECVT_ERRORLECVT_OKLECVT_WITHIN_LISTINGr  twinpos_t_swigregisterr  twinline_t_swigregisterr/  linearray_t_swigregisterr  $lines_rendering_input_t_swigregisterCK_TRACECK_TRACE_OVL	CK_EXTRA1	CK_EXTRA2	CK_EXTRA3	CK_EXTRA4	CK_EXTRA5	CK_EXTRA6	CK_EXTRA7	CK_EXTRA8	CK_EXTRA9
CK_EXTRA10
CK_EXTRA11
CK_EXTRA12
CK_EXTRA13
CK_EXTRA14
CK_EXTRA15
CK_EXTRA16
LROEF_MASKLROEF_FULL_LINELROEF_CPS_RANGEr  *line_rendering_output_entry_t_swigregisterr  %lines_rendering_output_t_swigregisterr  line_section_t_swigregisterr!	  "tagged_line_section_t_swigregisterrK	  #tagged_line_sections_t_swigregisterrt	  listing_location_t_swigregisterr	  r	  r	  r	  BWN_UNKNOWNBWN_EXPORTSBWN_IMPORTS	BWN_NAMES	BWN_FUNCSBWN_STRINGSBWN_SEGSBWN_SEGREGSBWN_SELS	BWN_SIGNSBWN_TILS
BWN_TITREEBWN_RESERVED_1	BWN_PROBSBWN_BPTSBWN_THREADSBWN_MODULES	BWN_TRACEBWN_CALL_STACK	BWN_XREFS
BWN_SEARCH	BWN_FRAMEBWN_NAVBAND
BWN_DISASMBWN_HEXVIEWBWN_NOTEPAD
BWN_OUTPUTBWN_CLI	BWN_WATCH
BWN_LOCALSBWN_STKVIEWBWN_CHOOSERBWN_SHORTCUTCSRBWN_SHORTCUTWINBWN_CPUREGSBWN_SO_STRUCTSBWN_SO_OFFSETSBWN_CMDPALCSRBWN_CMDPALWINBWN_SNIPPETSBWN_CUSTVIEWBWN_ADDRWATCHBWN_PSEUDOCODEBWN_RESERVED_2BWN_RESERVED_3BWN_MDVIEWCSRBWN_DISASM_ARROWSBWN_CV_LINE_INFOSBWN_SRCPTHMAP_CSRBWN_SRCPTHUND_CSRBWN_UNDOHISTBWN_SNIPPETS_CSRBWN_SCRIPTS_CSRBWN_BOOKMARKS
BWN_TILISTBWN_TIL_VIEWBWN_TYPE_EDITORBWN_MICROCODEBWN_XREF_TREEr	  IDA_DEBUG_DREFSIDA_DEBUG_OFFSETIDA_DEBUG_FLIRTIDA_DEBUG_IDPIDA_DEBUG_LDRIDA_DEBUG_PLUGINIDA_DEBUG_IDSIDA_DEBUG_CONFIGIDA_DEBUG_CHECKMEMIDA_DEBUG_LICENSEIDA_DEBUG_DEMANGLEIDA_DEBUG_QUEUEIDA_DEBUG_ROLLBACKIDA_DEBUG_ALREADYIDA_DEBUG_TILIDA_DEBUG_NOTIFYIDA_DEBUG_DEBUGGERIDA_DEBUG_APPCALLIDA_DEBUG_SRCDBGIDA_DEBUG_ACCESSIBILITYIDA_DEBUG_NETWORKIDA_DEBUG_INTERNETIDA_DEBUG_SIMPLEXIDA_DEBUG_DBGINFOIDA_DEBUG_LUMINAIDA_DEBUG_THEMESIDA_DEBUG_REGEXIDA_DEBUG_SUBPROCIDA_DEBUG_RANGECBIDA_DEBUG_ALWAYSrt  AST_ENABLE_FOR_IDBAST_ENABLE_FOR_WIDGET
AST_ENABLEAST_DISABLE_ALWAYSAST_DISABLE_FOR_IDBAST_DISABLE_FOR_WIDGETAST_DISABLEr	  r  CH_KEEPr  CH_MULTI_EDITr5  r6  	CH_UNUSEDr8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rJ  rL  OBSOLETE_CH_TM_NO_TREEOBSOLETE_CH_TM_FOLDERS_ONLYOBSOLETE_CH_TM_FULL_TREEOBSOLETE_CH_TM_SHIFTOBSOLETE_CH_TM_MASKrN  
CH_NO_SORTCH_NO_FILTEROBSOLETE_CH_NON_PERSISTED_TREEOBSOLETE_CH2_LAZY_LOADEDOBSOLETE_CH2_HAS_INODE2INDEXrO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  CHITEM_BOLDCHITEM_ITALICCHITEM_UNDERCHITEM_STRIKECHITEM_GRAYCHOOSER_NOMAINMENUCHOOSER_NOSTATUSBARr	  !chooser_item_attrs_t_swigregisterr	  chooser_row_info_t_swigregisterGCRF_HIGH_BITGCRF_HEADERGCRF_SELECTIONGCRF_CURRENTGCRF_ALLGCIF_SELECTIONGCIF_CURRENTiqm_bwniqm_ctxitq_functions	itq_typesr	  "chooser_stdact_desc_t_swigregisterr	  chooser_base_t_swigregisternat_libnat_funnat_codnat_datnat_undnat_extnat_errnat_gapnat_curnat_autonat_lumnat_hlonat_lastCVH_USERDATACVH_KEYDOWN	CVH_POPUPCVH_DBLCLICK
CVH_CURPOS	CVH_CLOSE	CVH_CLICKCVH_QT_AWARECVH_HELPCVH_MOUSEMOVECDVH_USERDATACDVH_SRCVIEWCDVH_LINES_CLICKCDVH_LINES_DBLCLICKCDVH_LINES_POPUPCDVH_LINES_DRAWICONCDVH_LINES_LINENUMCDVH_LINES_ICONMARGINCDVH_LINES_RADIXCDVH_LINES_ALIGNMENT	VES_SHIFTVES_ALTVES_CTRLVES_MOUSE_LEFTVES_MOUSE_RIGHTVES_MOUSE_MIDDLEVES_METAmsg_activatedmsg_deactivated	msg_clickmsg_dblclick
msg_closedmsg_keydownr
   renderer_pos_info_t_swigregisterr
  (view_mouse_event_location_t_swigregisterr
  view_mouse_event_t_swigregisterr  r  r  r  r$  r)  r.  r3  r9  r>  rF  rK  iek_unknowniek_shortcutr  r  r  r  r  r
  input_event_t_swigregisterr<  (input_event_shortcut_data_t_swigregisterrI  (input_event_keyboard_data_t_swigregisterrX  %input_event_mouse_data_t_swigregisterMFF_FASTMFF_READ	MFF_WRITE
MFF_NOWAITrh  ui_requests_t_swigregisterUIJMP_ACTIVATEUIJMP_DONTPUSHUIJMP_VIEWMASKUIJMP_ANYVIEWUIJMP_IDAVIEWUIJMP_IDAVIEW_NEWrr  &action_ctx_base_cur_sel_t_swigregisterr  action_ctx_base_t_swigregisterACF_HAS_SELECTIONACF_XTRN_EAACF_HAS_FIELD_DIRTREE_SELECTIONACF_HAS_SOURCEACF_HAS_TYPE_REFAHF_VERSIONAHF_VERSION_MASKr  action_desc_t_swigregisterADF_OWN_HANDLERADF_NO_UNDOADF_OT_MASKADF_OT_PLUGINADF_OT_PLUGMODADF_OT_PROCMOD
ADF_GLOBALADF_NO_HIGHLIGHTADF_CHECKABLEADF_CHECKEDAA_NONEAA_LABELAA_SHORTCUT
AA_TOOLTIPAA_ICONAA_STATEAA_CHECKABLE
AA_CHECKEDAA_VISIBILITYr  r  r  r	  r  r  r  r  r  r  r"  r(  r,  r/  r3  r7  r<  rA  rE  rI  rN  rP  r[  r]  r`  __qtimer_t_swigregisterrm  rq  rt  rx  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  r  r  r  r  r"  r%  r-  r1  r4  r9  r<  r?  rB  rF  rH  rN  rQ  rT  rV  r[  r^  rc  ri  rl  ro  r  rz  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  r  r  r#  r&  r*  r/  r2  r5  r9  r<  r?  rB  rF  rI  rL  rS  rZ  r^  r  rc  
ASKBTN_YES	ASKBTN_NOASKBTN_CANCELASKBTN_BTN1ASKBTN_BTN2ASKBTN_BTN3rf  ri  HIST_SEGHIST_CMT	HIST_SRCHrS  	HIST_FILE	HIST_TYPEHIST_CMDHIST_DIRHIST_IDENT2rl  ro  rq  addon_info_t_swigregisterr  r  r  r  r  strarray_t_swigregister
CLNL_RTRIM
CLNL_LTRIMCLNL_FINDCMT	CLNL_TRIMr  r  r  r  r  S2EAOPT_NOCALCr  	IK_CANCELIK_BACKIK_TABIK_CLEAR	IK_RETURNIK_SHIFT
IK_CONTROLIK_MENUIK_PAUSE
IK_CAPITALIK_KANA	IK_ESCAPEIK_MODECHANGEIK_SPACEIK_PRIORIK_NEXTIK_ENDIK_HOMEIK_LEFTIK_UPIK_RIGHTIK_DOWN	IK_SELECTIK_PRINT
IK_EXECUTEIK_SNAPSHOT	IK_INSERT	IK_DELETEIK_HELPIK_LWINIK_RWINIK_APPSIK_SLEEP
IK_NUMPAD0
IK_NUMPAD1
IK_NUMPAD2
IK_NUMPAD3
IK_NUMPAD4
IK_NUMPAD5
IK_NUMPAD6
IK_NUMPAD7
IK_NUMPAD8
IK_NUMPAD9IK_MULTIPLYIK_ADDIK_SEPARATORIK_SUBTRACT
IK_DECIMAL	IK_DIVIDEIK_F1IK_F2IK_F3IK_F4IK_F5IK_F6IK_F7IK_F8IK_F9IK_F10IK_F11IK_F12IK_F13IK_F14IK_F15IK_F16IK_F17IK_F18IK_F19IK_F20IK_F21IK_F22IK_F23IK_F24
IK_NUMLOCK	IK_SCROLLIK_OEM_FJ_MASSHOUIK_OEM_FJ_TOUROKU	IK_LSHIFT	IK_RSHIFTIK_LCONTROLIK_RCONTROLIK_LMENUIK_RMENUIK_BROWSER_BACKIK_BROWSER_FORWARDIK_BROWSER_REFRESHIK_BROWSER_STOPIK_BROWSER_SEARCHIK_BROWSER_FAVORITESIK_BROWSER_HOMEIK_VOLUME_MUTEIK_VOLUME_DOWNIK_VOLUME_UPIK_MEDIA_NEXT_TRACKIK_MEDIA_PREV_TRACKIK_MEDIA_STOPIK_MEDIA_PLAY_PAUSEIK_LAUNCH_MAILIK_LAUNCH_MEDIA_SELECTIK_LAUNCH_APP1IK_LAUNCH_APP2IK_OEM_1IK_OEM_PLUSIK_OEM_COMMAIK_OEM_MINUSIK_OEM_PERIODIK_OEM_2IK_OEM_3IK_OEM_4IK_OEM_5IK_OEM_6IK_OEM_7
IK_OEM_102IK_PLAYIK_ZOOMIK_OEM_CLEARCB_INITCB_YESCB_CLOSECB_INVISIBLECB_DESTROYINGCB_NO	CB_CANCELr  r  r  r  r  disasm_text_t_swigregisterIWID_EXPORTSIWID_IMPORTS
IWID_NAMES
IWID_FUNCSIWID_STRINGS	IWID_SEGSIWID_SEGREGS	IWID_SELS
IWID_SIGNS	IWID_TILSIWID_TITREE
IWID_PROBS	IWID_BPTSIWID_THREADSIWID_MODULES
IWID_TRACEIWID_CALL_STACK
IWID_XREFSIWID_SEARCH
IWID_FRAMEIWID_NAVBANDIWID_DISASMIWID_HEXVIEWIWID_NOTEPADIWID_OUTPUTIWID_CLI
IWID_WATCHIWID_LOCALSIWID_STKVIEWIWID_CHOOSERIWID_SHORTCUTCSRIWID_SHORTCUTWINIWID_CPUREGSIWID_SO_STRUCTSIWID_SO_OFFSETSIWID_CMDPALCSRIWID_CMDPALWINIWID_SNIPPETSIWID_CUSTVIEWIWID_ADDRWATCHIWID_PSEUDOCODEIWID_MDVIEWCSRIWID_DISASM_ARROWSIWID_CV_LINE_INFOSIWID_SRCPTHMAP_CSRIWID_SRCPTHUND_CSRIWID_UNDOHISTIWID_SNIPPETS_CSRIWID_SCRIPTS_CSRIWID_BOOKMARKSIWID_TILISTIWID_TIL_VIEWIWID_TYPE_EDITORIWID_XREF_TREEIWID_ANY_LISTINGIWID_EA_LISTINGIWID_ALLrF  r]  rR  rY  rT  rV  rb  rQ  ida_ida__wrap_hooks_callbackrX  r  SETMENU_IF_ENABLEDr7  	BWN_TICSR
IWID_TICSRBWN_TILVIEWIWID_TILVIEWBWN_LOCTYPSIWID_LOCTYPSBWN_DISASMSIWID_DISASMS	BWN_CALLSBWN_CALLS_CALLERSBWN_CALLS_CALLEES
IWID_CALLSIWID_CALLS_CALLERSIWID_CALLS_CALLEESCHOOSER_NO_SELECTIONCHOOSER_MULTI_SELECTIONr  CHOOSER_MENU_EDITCHOOSER_MENU_JUMPCHOOSER_MENU_SEARCHr  r  r  r  r  r  r  r  r  rM  CH_TM_NO_TREECH_TM_FOLDERS_ONLYCH_TM_FULL_TREECH_TM_SHIFT
CH_TM_MASKCH_NON_PERSISTED_TREECH2_LAZY_LOADEDCH2_HAS_INODE2INDEXrY  rc  rg  rk  rp  ru  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  typesr  WINFUNCTYPEr  r  r  r  	CFUNCTYPEr  r  r  BADADDRr)  r  r  r  r  r  c_uint32r  r  r  r  r  pyidc_opaque_object_tr  r  View_Hooks_swigregisterrR  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   <module>rK     s5   # 9#/"
 L$ L
 &>>  % % >>f4V f4R  0 01G Hg4 g4T  3 34M N+189=	;4.
3(09?%)';67 7(59	P5	;:V :  ( ( 8m#v m#`	  " "8 ,.1 (3F 3,  ' ' 6<H4>B- -7  00 +/4(B6 BJ  > >(*c46 c4L  . ./C Df4F f4R  / /0E FS4V S4l      (`4 `4F  + +,= >**""	(($$
$$
**,,....""	""	((,,**((&&!44 &&&&&&,,**&&**&& , J J ((**$$
&&..**&&%<< ,,**&&..00 ,,..&&&&**!44 ((,,(($$
$$
((,,$$
$$
$$
$$
$$
$$
$$
$$
00 #88 "66 &>> ((,,,,  ""	""	""	""	.."66  22 00 


			  ""	""				""	&&""	,,..""	""	  ((((!44 %<< ((**((&&**,,,,&&,,00 ,,$:: !44 &&$$
 ,,-? ?
_@f _@D  ! !' *(( "66 /-86 8.  & &| 4
 
  , ,-? @
 
  $ $Z 000/@C @CF  # #I .,,&>> H5619F 9:  ' ' 6:& :(  ( ( 8,,&&  #88 $5 $5N  # #I .6 6>  $ $Z 0P?& P?f  % %k 2Cf C.  1 12I J  ((""	""	""	""	""	""	""	""	""	$$
$$
$$
$$
$$
$$
$$
$$
....-IF -I`  7 7!#,v ,8  2 23K L:V :B  ( ( 8AN A>  / /0E FB6 BB  0 01G H> >(  , ,-? @: :> >45 &&&&&&""	""	&&  &&  ""	  $$
,,""	  &&&&""	,,""	$$
""	&&$$
&&&&$$



""	$$
&&&&....&&,,,,****((((**,,,,,,** 22  22  22  22 ((00 ..**$$
((..****- ..00 ..****00 **00 !44  22 !44 ..!44  22 **00 !44  22 00 &>>  22 !44  22  22 00 00 .. 22  22 00  22 !44 $:: $$
!44 "66 %<< &&-   


  **""	  ""	00 $$
$$
&&,,


,,00 ..#88 ,,,,**00 $$
 22 (BB '@@ &>> %<< *FF '@@ #88 "66 &&$$
((!-!L!L '@@ +HH &&$$
""	""	  &&((..,,'@@ &&**((**&&!44 "66 @6 @4  . ./C D> ><  , ,-? @**&&,,((  ,,((





**""	"#F "#J  / /0E FX<V X<v  ( ( 8


























  





  ((&&""	(($$
""	""	((  ****((00 "66 00 "66 !44 $:: 00 #88 ""	 

  ,,..00   **..""	(($$
&&!?& !?H  - -.A BG& G*  5 5!)> )>X  , ,-? @,,00 (($$
**&&(($$
**..00 00 &&((**..%<< '@@ ..C9F C9L  ' ' 6G& G  5 5!G& G   5 5!Dv D$  2 23K L    ""	$$
9F 9  ' ' 6,,,,,,**** 22 E E,  3 34M Nu= u=p  + +,= > 22 &&"."N"N ,,00 &&00 *9F *9Z  ' ' 6..&&&&**,,,,$$
00 **&&


  &&$$



  (($$
**49I,%(*1+($%,&&4.;//-$726 6  $ $Z 00	C 	C-; ;(*E E$@ @E EG G> >C C6 6< <- -- -0 01 1: :	L 	L	C 	C= == =& &*F F
: 
:"
  ? ?9 9? ?= =7 79 9A A= =@ @/ /2 21 1. ./ /3 31 14 4B BH H 2 22 23 3- -/ /	N 	N> >2 26 69 9$ $' '2 2.. ., ,& &2B0 0+ +D D	 	C C5 56 6
 
O OL LH H? ?+ +( (( () ) 	F 	F0 08 8: :0 00 0. .. .3 31 10 00 01 1+ +> >: :1 1- -. .. ., ,, ,. .7 76 6A A: :. .1 18 8% %, ,+ +< <( (= = 7 77 72 2+ +9 9E EK K0 0 * ( (4 40 0) )( () )$ $% % $$
""	**&&&&&&	& 	&+ +     ""	$$
""	""	    &&* *( (86 8<  & &| 4- -& &1 18 86 6  $ $Z 0$$
$$
((""		* 	*: :# #& &") ) ,,# # ""	


			  ""	  $$



  $$



""	**    


			





  


""	  $$
&&""	""	











  $$
$$
$$
$$
$$
$$
$$
$$
$$
$$
&&			((&&$$
""																																														$$
""	 22  22 ""	""	&&&&    ..!44 !44 .. 22 #88 ..,,,,(("66 "66 **"66 ,,%<< ,,,,  &&((((**            $$






((


			  ((**""	6 6/ /. .K K
T4F T4n  ' ' 6KK)^
)^
KM	KM	)^
M	:o)^
M	KK)^
~%)^
:o)^
K:oKK:o<)^
:oKK' ' K~%~%m#m#\!\!m#~%m#++ ++ ++ ++ \!)) ' m#:o\!' m#,.<zI#$ ,>2
% %$ $	% 	%/ /v &-B -B`9 9    h(96 D    	
	  )^
++ ++ #88 &>> !44  22  22 "66 + +. ., ,1 1- -/ /< <3 3    rV rj )&0 *" 
6 *2 *= =; ;8 8@ @
9 9D D
; ;D D@ @F F
< <A A= =@ @G G
K K
* *+ +; ;= =    *$$V\\6<<K%%fllFLL&LHj44 HVx=6 x=vE"-"5"59M"MD **6<<8: : $*OO#4 !++FOO<\> > %+__foo$F!<=< << < YJ,, Yxo# o#d  $ $Z 0lAJ lA^ (
 + +- - ] 63 3/ /G G
2 2- -, ,- -8 87 76 63 37 7A A
F F
7 75 5? ?? ?
2 2u: u:p& &, ,8 84 4  U) U)p  --  ' = = ++ o\  BY**&&v||V\\6H''fllFH*%))ld"EEsY   CQ, D1BCQ> GCCT Q,CQ;Q:CQ;Q>CT	RA6CS:S:CTTCT	TCT	TCT