+
   j-c                   sf  a  R t"0 t R t^ RIHtHt ^ RIt^ RIt^ RIt^ RIH	t	 R]P                  9   d.   ]! RRP                  ]P                  ! 4       4      ,           4      hR]P                  9   d.   ]! RRP                  ]P                  ! 4       4      ,           4      hR	 R
 ltR R ltR R ltR R lt]P$                  P'                  RR4      P)                  4       P+                  4       t]R9   d   RtM<]R9   d   RtM2]! 4       '       d   RtM"]! 4       '       d   RtM]! ^4      '       d   RMRt]R8X  d   ]	! RR4       ]	! RR4       M]	! RR4       ]	! RR4       ^ RIHtHt ]P6                  ! 4       t] ^ k ]P:                  ! 4       t] ^k ]P>                  ! 4       t ] ^k ]]] 3t!] ^k R# )u$  
Centralized version switcher for Gtk/Gdk.

All code in ibus-typing-booster must import Gtk/Gdk exclusively via:

    from itb_gtk import Gtk, Gdk, GTK_MAJOR, GTK_VERSION

This allows switching between Gtk3 and Gtk4 simply by setting:

    ITB_GTK_VERSION=3   → use Gtk 3.x
    ITB_GTK_VERSION=4   → use Gtk 4.x
    (unset)             → default = Gtk 3.x

This prevents accidental mixing of Gtk versions and ensures the
entire process uses a consistent GI setup.

This module must be imported **before** any other module imports
Gtk or Gdk.
)TupleDictN)require_versionzgi.repository.GtkzoGtk was already imported before itb_gtk! Ensure all imports of Gtk/Gdk go through itb_gtk. Import stack trace:
 zgi.repository.GdkzoGdk was already imported before itb_gtk! Ensure all imports of Gtk/Gdk go through itb_gtk. Import stack trace:
c                sF    V ^8  d   QhR\         \        \        3,          /#    return)r   ZstrZformat   "0/usr/share/ibus-typing-booster/engine/itb_gtk.py__annotate__r
   =   s      T#s(^     c                 s"   / p  \        RRR7      ;_uu_ 4       pV FA  pRV9   g   K  VP                  4       P                  R^4      w  r4VP                  R4      W&   KC  	  RRR4       V #   + '       g   i     T # ; i  \         d     T # i ; i)z4Return ID, VERSION_ID, ID_LIKE from /etc/os-release.z/etc/os-releasezutf-8)ZencodingZ=Z"N)Zopenstripsplit	Exception)ZresultZfZlineZkZv        r	   _os_releaser   =   s    F#g66!$;::<--c15DA !FI  7 M 76 M  Ms3   A? 
A+9A+!A? +A<	6A? <A? ?BBc                $    V ^8  d   QhR\         /# r   boolr   r   r	   r
   r
   J   s      4 r   c                 s    \        4       p V P                  RR4      pV P                  RR4      pVR9   d   VP                  R4      # R# )z
Detect RHEL 9 and RHEL 9 compatible rebuilds (AlmaLinux 9, Rocky 9, etc.)

These systems ship Gtk4 but lack support for color emoji in Gtk4,
so ibus-typing-booster should force Gtk3.
IDr   
VERSION_IDz9.F)ZrhelZ	almalinuxZrocky)r   getZ
startswith)data	distro_idversions      r	   	_is_rhel9r   J   sH     =Dr"Ihh|R(G22!!$''r   c                r   r   r   r   r   r	   r
   r
   X   s     % %$ %r   c                 s    \        4       p V P                  RR4      pV P                  RR4      pVR8w  d   R#  \        \        VP	                  R4      R,          4      w  r4Y43R8*  #   \
         d     R# i ; i)	u   
Detect Ubuntu ≤ 22.04 (Jammy).

Jammy ships Gtk 4.6 which lacks:
    Gtk.Picture.set_content_fit
which ibus-typing-booster needs.

Force Gtk3 on such systems.
r   r   r   ZubuntuFZ.:Nr   N)i   i   )r   r   Zmapintr   r   )r   r   r   majorZminorr   r	   _is_ubuntu_2204_or_olderr   X   sz     =Dr"Ihh|R(GH3c 22 67 >W$$  s   (A' 'A65A6c                s0    V ^8  d   QhR\         R\        /# )r   r   r   )r   r   r   r   r	   r
   r
   m   s      # $ r   c                sV     \        RV ^8X  d   RMR4       R#   \         d     R# i ; i)z;Check if Gtk major version is installed and introspectable.Gtk4.03.0TF)r   r   )r   s   &r	   _gtk_availabler!   m   s.    
u> s    ((ZITB_GTK_VERSION3r    4r   r   Gdk)r   r$   c                s    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d    \        \        \        \        3,          ;R&   # )r   	GTK_MAJOR	GTK_MINOR	GTK_MICROGTK_VERSION)__conditional_annotations__r   r    r   r   r	   r
   r
      sh      D ) (3 (EF ) (3 (GH ) (3 (IJ F EU3S=! EKr   )r"   Zgtk3r    )r#   Zgtk4r   )#r)   Z__doc__Ztypingr    r   ZsysZosZ	tracebackZgir   ZmodulesZRuntimeErrorZjoinZformat_stackr   r   r   r!   Zenvironr   r   ZlowerZ	requestedZVERSIONZgi.repositoryr   r$   Zget_major_versionr%   Zget_minor_versionr&   Zget_micro_versionr'   r(   r
   )r)   s   @r	   <module>r*      s  &&  	   #++%
	 "$'')*@*@*B"C	DE E #++%
	 "$'')*@*@*B"C	DE E
%* JJNN,b1779??A	$$G&&G {{	!	#	#'**# c>E5!E5!E5!E5! #
 &&(	 (&&(	 (&&(	 (%.	9$E Er   