;ò
\µa@c        	   @   sÐ  d  Z  d Z e d Z d Z d Z d Z d Z d Z d Z d	 k	 Z	 d	 k
 Z
 d	 k Z d	 k Z d	 k Z d	 k Z d	 k Z d	 k Z d	 k Z e i d
 ƒ d Z e i d ƒ d Z e i i d ƒ d k Td k l Z l Z e i ƒ  Z e d e ƒ e d j o$ e d ƒ d	 k  Z  e i! d ƒ n d Z" d	 k# Z# d „  Z$ y/ e# i# e i% d d d d d g ƒ \ Z& Z' Wn* e# i( j
 o e$ ƒ  e i! d ƒ n Xd „  Z) d „  Z* x‚ e& D]z Z+ e+ d d j o e d ƒ d Z" Pn e+ d d j o e$ ƒ  e i! d ƒ n e+ d d j o e i! e* ƒ  ƒ q³q³We, d  d! d" d# ƒ o e d$ ƒ d Z" n e" o e d% ƒ e i! d ƒ n e- e- e- d& „ Z. d' „  Z/ d( „  Z0 d) „  Z1 d* „  Z2 d+ „  Z3 d, „  Z4 d- „  Z5 d. „  Z6 d/ „  Z7 d0 „  Z8 d1 „  Z9 e: d  d! ƒ Z; e< d  d! d" d# ƒ e; o d2 GHe i! d ƒ n e; i= d3 Z> y d e> e; i= d4 i? _@ Wn n XeA e ƒ iB ƒ  ZC eA e  ƒ iB ƒ  ZD g  ZE e
 iF e e
 iG ƒ o eA e d5 ƒ iH eC ƒ n e1 d6 eC ƒ ZC e3 d7 d8 d9 d: d; d< d= d> g eC ƒ ZC eC i e ƒ e- ZI x‚ eD D]z ZJ eJ iK d? ƒ p eJ iK d@ ƒ o3 eJ iL dA ƒ d ZM eJ iL dB ƒ ZN eJ eM eN !ZI n eJ e iO j o eE i eI ƒ qqWy e> d iP ZQ Wn+ y e; i= d4 i? ZQ WqÎd ZQ qÎXn Xd ZR d aS g  ZT x¢ e> D]š ZU e dC eU iP e  f ƒ e0 eU eQ eD ƒ ZD e dC eU iP e f ƒ e2 eU eC ƒ ZC e dD e eU iP f ƒ eR e6 eU ƒ 7ZR y eE iV eU iP ƒ WqçqçXqçWe8 eR ƒ e7 tS ƒ dE g ZW eW i dF ƒ eW i dG ƒ eW i dH ƒ eW i dI ƒ eC iX eW ƒ x] eE D]U ZU e dJ eU ƒ e/ eU eD ƒ ZD e1 eU eC ƒ ZC y e
 iV e eU dK ƒ WqêqêXqêWdL g ZY y& e; i= dM i? ZZ eZ o
 g  ZY n Wn n Xy eT eT iL dN ƒ g ZT Wn n Xe9 eT ƒ \ Z[ Z\ e dO e] eT ƒ ƒ e dP e] e[ ƒ ƒ e dQ e] e\ ƒ ƒ d ZZ e^ eY ƒ o
 d ZZ n eZ oœ dR g ZW eW i dS ƒ eW i dT ƒ e^ eY ƒ d j o eW i dU ƒ n x eY D] Z+ eW i dV e+ ƒ q`Wx e\ D] Z+ eW i dW e+ ƒ q‚WeC iX eW ƒ n eC i dX ƒ e^ e[ ƒ d j p e[ d dY j o) dZ Z_ e_ e[ j o e[ i dZ ƒ qn x e[ D] Z+ eC i d[ e+ ƒ qWe. e e d\ e e ƒ Z` e` iH eC ƒ e` ia ƒ  e
 ib e e e ƒ e. e  e d\ e e ƒ Z` e` iH eD ƒ e` ia ƒ  e
 ib e  e e  ƒ eQ e
 ic d] <e
 id d^ ƒ d	 S(_   s   /etc/cups/printers.confs   /etc/cups/cupsd.confs   .saves   /etc/cups/ppd/s   /etc/cups/mime.typess   /etc/cups/mime.convss   /etc/cups/lpoptionss   .news8   # Lines below are automatically generated - DO NOT EDIT
Ns   lpi   s   syss   /usr/share/printconf/util(   s   *(   s   _s   N_s   Print spooler: %ss   LPRngs(   Transfer control to printconf_backend.pyi    c           C   s	   d GHd  S(   Ns‹   usage: printconf-backends [OPTIONS]

Options:
 --force-rebuild  Force the queues to be rebuilt
 --help           Display this usage message(    (    (    (    s$   /usr/share/printconf/util/backend.pys   help_messageM   s    i   s    s   force-rebuilds   helps   test-smbc         C   s9  |  d i } |  d }	 | d j o› |	 d i }
 |
 i d ƒ d j o |
 Sn |
 i d ƒ o d |
 Sn |
 i d	 ƒ o d
 |
 Sn |
 i d ƒ p |
 i d ƒ o d |
 Sn d |
 Sn | d j o, |	 d i } |	 d i } d | | f Sn | d j oM |	 d i } |	 d i } d } |	 d i o
 d } n d | | | f Sn | d j o, |	 d i } |	 d i } d | | f Sn | d j o|	 d i } |	 d  i } |	 d! i } |	 d" i } |	 d# i } | o d | } n | o | d$ } n | i d% d$ ƒ } | i d% d$ ƒ } | o | d& 7} n | i d ƒ o | d' } n@ | d( d$ j o | d) } n | i d$ d ƒ } | d$ | } d* | | | | f Sn | d+ j oe |	 d, i } |	 d- i } |	 d. i } |	 d/ i } | o d | d& } n d0 | | | | f Sn t d1 | ƒ d2 Sd  S(3   Ns
   queue_types
   queue_datas   LOCALs   local_printer_devices   :iÿÿÿÿs   /dev/lps	   parallel:s   /dev/ttys   serial:s   /dev/usbs   //s   usb:s   file:s   IPPs
   ipp_servers   ipp_paths
   ipp://%s%ss   LPDs
   lpd_servers	   lpd_queues    s   lpd_strict_rfc1179s   ?reserve=yess   lpd://%s/%s%ss	   JETDIRECTs   jetdirect_ips   jetdirect_ports   socket://%s:%ss   SMBs	   smb_shares   smb_ips   smb_workgroups   smb_users   smb_passwords   /s   \s   @i   i    i   s   smb://%s%s%s%ss   NCPs
   ncp_servers	   ncp_queues   ncp_users   ncp_passwords   ncp://%s%s%s/%ss   Unknown queue type: %ss   file:/dev/full(   s   queues   values
   queue_types
   queue_datas   devs   finds
   startswiths
   ipp_servers   ipp_paths
   lpd_servers	   lpd_queues   reserves   jetdirect_ips   jetdirect_ports	   smb_shares   smb_ips   smb_workgroups   smb_users   smb_passwords   replaces
   ncp_servers	   ncp_queues   ncp_users   ncp_passwords   debug_print(   s   queues   smb_workgroups	   lpd_queues   jetdirect_ports   smb_ips   ncp_users   ipp_paths	   smb_shares   smb_users
   queue_datas   devs
   queue_types
   ncp_servers	   ncp_queues
   ipp_servers   ncp_passwords   jetdirect_ips
   lpd_servers   smb_passwords   reserve(    (    s$   /usr/share/printconf/util/backend.pys
   device_uri[   sv    
 
c       
   C   s¡  d f  d „  ƒ  Y}  d } x}h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <h  d |  d ƒ <d |  d ƒ <d |  d ƒ <d	 |  d ƒ <d
 |  d ƒ <d d <g D]k } h  d |  d ƒ <d | <} t | ƒ } | | d j o! d | d | f GH| d 7} q*d | GHq*W| Sd  S(   Ns   datumc           B   s   t  Z d d „ Z RS(   Ns    c         C   s   | |  _  d  S(   N(   s   values   self(   s   selfs   value(    (    s$   /usr/share/printconf/util/backend.pys   __init__«   s    (   s   __name__s
   __module__s   __init__(    (    (    s$   /usr/share/printconf/util/backend.pys   datumª   s   i    s	   smb_shares   //server/printers   smb_ips    s   smb_workgroups   smb_users   smb_passwords   expecteds   smb://server/printers	   workgroups   smb://workgroup/server/printers   users   smb://user@server/printers#   smb://user@workgroup/server/printers   passwords"   smb://user:password@server/printers,   smb://user:password@workgroup/server/printers
   queue_types   SMBs
   queue_datas   Expected %s; got %si   s   OK: %s(   s   datums   fails   tests   queues
   device_uris   uri(   s   datums   uris   queues   tests   fail(    (    s$   /usr/share/printconf/util/backend.pys   test_smb_uris©   s    ÿ ÿ  *s   --force-rebuilds   Rebuild forced on command lines   --helps
   --test-smbs	   namespaces	   printconfs   marks   _PRINTCONF_BACKEND_s   Namespace dirtys   No rebuild neededc         C   s¬   t  i i |  ƒ o t  i |  ƒ n t  i t  i Bt  i B} | o t  i
 |  | | ƒ } n t  i
 |  | ƒ } | o | o t  i |  | | ƒ n t  i | d ƒ } | Sd  S(   Ns   w(   s   oss   paths   existss   filenames   unlinks   O_WRONLYs   O_CREATs   O_EXCLs   flagss   modes   opens   fds   uids   gids   chowns   fdopens   file(   s   filenames   modes   uids   gids   flagss   files   fd(    (    s$   /usr/share/printconf/util/backend.pys   safely_createú   s    c   	      C   sÑ   d } xÀ | o· d } t } x9 d d g D]+ } y | i | |  d ƒ } Wq* q* Xq* W| o] | } y- | | d } | d | i d ƒ d } Wn t | ƒ } n X| | | 5d } n | } q	 W| Sd  S(   Ni    s	   <Printer s   <DefaultPrinter s   >
i   s   </Printer>
(   s   finisheds   founds   Nones   lines   tags   printers_conf_liness   indexs   queues
   start_lines   rests   end_lines   len(	   s   queues   printers_conf_liness   rests   finisheds   tags   end_lines   founds   lines
   start_line(    (    s$   /usr/share/printconf/util/backend.pys   remove_printers_conf
  s,      

c         C   sN  t  |  i | ƒ } |  i | j o
 d } n d } | |  i d g } | i t i	 ƒ | i d t
 |  ƒ ƒ y | i d |  d ƒ Wn n Xy( |  d } | d i } | d	 i } Wn d
 d
 f \ } } n X| i d ƒ | i d ƒ | i d | | f ƒ | i d ƒ | i d ƒ | i d ƒ | i d ƒ | i | ƒ | Sd  S(   Ns   <DefaultPrinter s	   <Printer s   >
s   DeviceURI %s
s   Location %s
s   queue_descriptions	   jobsheetss   starts   ends   nones   State Idle
s   Accepting Yes
s   JobSheets %s %s
s   QuotaPeriod 0
s   PageLimit 0
s	   KLimit 0
s   </Printer>
(   s   remove_printers_confs   queues   names   printers_conf_liness   default_queues   tags   confs   appends   cups_imports   marker_lines
   device_uris	   jobsheetss   values   start_banners
   end_banners   extend(   s   queues   default_queues   printers_conf_liness   start_banners
   end_banners   tags   confs	   jobsheets(    (    s$   /usr/share/printconf/util/backend.pys   add_printers_conf$  s6    		

c         C   s¹   d } x¨ | oŸ d } x‹ t t | ƒ ƒ D]w } | | d |  j o\ xD t | d t | ƒ ƒ D]) } | | i d ƒ o | d 7} Pq_ q_ W| | | 5d } Pq* q* W| } q	 W| Sd  S(   Ni    s   <Location %s>
i   s
   </Location(	   s   finisheds   founds   ranges   lens   cupsd_conf_liness   is   locations   js
   startswith(   s   locations   cupsd_conf_liness   is   js   finisheds   found(    (    s$   /usr/share/printconf/util/backend.pys   remove_cupsd_confJ  s"       
	
	c         C   sK  t  d |  i | ƒ } d |  i g } | i d ƒ | i d ƒ | i d ƒ | i d ƒ yÅ |  d } x´ | D]¬ } | i } | d j o
 d	 } n t
 i d
 ƒ } | i | ƒ o d | } n | i d | ƒ d } x& t D] } | | j o d } Pqß qß W| o t i | ƒ qn qn WWn n X| i d ƒ | i | ƒ | Sd  S(   Ns
   /printers/s   <Location /printers/%s>
s   Order Deny,Allow
s   Deny From All
s   Allow From 127.0.0.1
s   AuthType None
s   sharings   ALLs   Alls   ^[a-z]+[0-9]+$s   @IF(%s)s   Allow from %s
i    i   s   </Location>
(   s   remove_cupsd_confs   queues   names   cupsd_conf_liness   confs   appends   sharings   eachs   values   alloweds   res   compiles	   netdev_res   matchs   founds
   interfacess   extend(   s   queues   cupsd_conf_liness   sharings   alloweds	   netdev_res   confs   eachs   found(    (    s$   /usr/share/printconf/util/backend.pys   add_cupsd_conf]  s>    	
 	
 	c         C   s±   d } x  | o— d } xƒ t t | ƒ ƒ D]o } | | t j o | | =d } n< x8 |  D]0 } | | i	 | d ƒ o | | =d } PqY qY W| o Pq* q* W| } q	 W| Sd  S(   Ni    i   s    (
   s   finisheds   founds   ranges   lens   cupsd_conf_liness   is   autogens   optss   eachs
   startswith(   s   optss   cupsd_conf_liness   is   finisheds   eachs   found(    (    s$   /usr/share/printconf/util/backend.pys   remove_cupsd_conf_globalsƒ  s&      
 		c   	      C   sZ  y t  t ƒ i ƒ  } Wn g  } n Xy |  d } Wn t i } n Xd |  i } x, | i
 ƒ  D] } | d | | | f 7} qa W| d 7} d } xi t t | ƒ ƒ D]U } | | i d ƒ } t | ƒ d j o | d |  i j o | | | <d } Pq¦ q¦ W| o | i | ƒ n t t t d ƒ } | i | ƒ | i ƒ  t i t t t ƒ d	 S(
   s   Set the filter options.s	   lpoptionss   Dest %ss    %s=%ss   
i    s    i   i¤  N(   s   files	   lpoptionss	   readliness   opts   queues   optionss   confs   default_lpoptionss   names   strs   keyss   os   founds   ranges   lens   is   splits   wordss   appends   safely_creates
   new_suffixs   fs
   writeliness   closes   oss   rename(	   s   queues   opts   fs   is   os   strs   founds   wordss   options(    (    s$   /usr/share/printconf/util/backend.pys   set_filter_options™  s8     
 
 '
	
c      	   C   sK  yB |  d }	 |	 d i } |	 d i } |	 d i } |	 d i } Wn8 t i }	 |	 d } |	 d } |	 d } |	 d } n Xt	 }
 d } xY t t | ƒ ƒ D]E } d } | | i | ƒ o% | | t | ƒ i ƒ  }
 | } Pqœ qœ W|
 o | Sn xKt | t | ƒ ƒ D]4} | | i d |
 ƒ oyQ | | i d	 ƒ d
 i d ƒ } | i d ƒ d j o | | i d ƒ  } n Wn | Sn Xt | d ƒ o t d ƒ | Sn | | i d	 ƒ d d	 } | d t | d ƒ | t | d
 ƒ | t | d ƒ | t | d ƒ | f d 7} | | | <t d | i ƒ  ƒ PqqW| Sd S(   sŒ   Adjust the PPD imageable area margins.
    queue: queue ADL
    ppd: array of lines from PPD file.

    Returns new array of PPD file lines.s   marginss   lefts   tops   rights   bottomi    s   *DefaultImageableArea: s   *ImageableArea %s/s   "i   s    s   .iÿÿÿÿs   Page margins already set.s   %d %d %d %di   i   s   "
s   Set page margins: %sN(   s   queues   marginss   values   lefts   tops   rights   bottoms   confs   default_marginss   Nones   sizes   ns   ranges   lens   ppds   is   defaults
   startswiths   strips   splits   borders   finds   indexs   ints   debug_prints   str(   s   queues   ppds   rights   strs   is   tops   bottoms   ns   defaults   marginss   sizes   borders   left(    (    s$   /usr/share/printconf/util/backend.pys   set_page_margins½  sT     
	


 	  
V
	c         C   sÌ  t  } h  } |  d i } | t i i j o |  d d i t i i j o¬ |  d } | d i } | d i } d | | f } t i | ƒ } | i ƒ  } | i ƒ  o d GHd Sn | d	 }
 x;|
 D]* } | d
 i } | d i } | | | <qÄ Wn| t i i j oh d d } t i | ƒ } | i ƒ  } | i ƒ  o d GHd Sn y | d i } | | d <WqûqûXn‹ | t i i j p | t i i j oW t d | ƒ y t i t |  i d ƒ Wn n X| t i i j o d Sn d Sn d | GHd S| o d GHd Sn t d ƒ y, | d } | | d <| | d <| | d <Wn n Xx | i ƒ  D] }	 d |	 } d } xQ t! t" | ƒ ƒ D]= } | | i$ | ƒ o# d |	 | |	 f | | <d } Pq†q†W| o d |	 GHq]q]Wt% |  ƒ t& |  | ƒ } y |  d d i } Wn d } n Xd } | d j p$ | d j p | d  j p
 | d! j o | i) d" ƒ d a* d } n t |  i d } t, | t- d# ƒ } | i/ | ƒ | i ƒ  t i0 | t- | ƒ | Sd$ S(%   s.   Returns 1 if the queue is raw and 0 otherwise.s   filter_types   filter_datas   mf_types
   printer_ids	   gs_drivers%   /usr/bin/foomatic-ppdfile -d %s -p %ss   Error generating PPD filei    s   foomatic_defaultss   names   defaults   /bin/gzip -dc %ss'   /usr/share/cups/model/postscript.ppd.gzs	   page_sizes   PageSizes   No PPD file needed (%s)s   .ppdi   s   Unknown filter type: %ss   Couldn't generate PPDs"   PPD generated.  Adjusting options.s
   PageRegions   ImageableAreas   PaperDimensions   *Default%s:s   *Default%s: %s
s   No %s option to change!s   filter_locales   Cs   ja_JPs   ko_KRs   zh_CNs   zh_TWsK   *% CJK [This line causes text conversion to use the appropriate utilities]
i¤  N(1   s   Nones   ppds   optionss   queues   values   filter_types   driverss   foomatics   mf_types   filter_datas   printers   drivers   datafile_cmds   oss   popens   ppd_pipes	   readliness   closes   foomatic_defaultss   option_defaults   names
   postscripts   postscript_cmds   pages   raws   texts   debug_prints   removes   ppd_dirs   keyss   options   searchs   founds   ranges   lens   ns
   startswiths   set_filter_optionss   set_page_marginss   filter_locales   octet_stream_alloweds   appends
   cjk_neededs   filenames   safely_creates
   new_suffixs   fs
   writeliness   rename(   s   queues   ppds   ns   filter_locales   ppd_pipes   filenames   optionss   option_defaults   printers   options   foomatic_defaultss   postscript_cmds   octet_stream_alloweds   drivers   filter_types   filter_datas   searchs   names   fs   values   datafile_cmds   founds   page(    (    s$   /usr/share/printconf/util/backend.pys
   create_ppdö  s¨     1

 
&	



 
 	

4 

c         C   s  d }
 d } d } d } t t ƒ i ƒ  } xæ t t	 | ƒ ƒ D]Ò } y4 | | i ƒ  } | d i ƒ  }	 | d i ƒ  } Wn
 q= n X|	 |
 j o q= n | | j o |  o | } d } n& | | j o |  o | } d } n | o' d |	 | d | d | f | | <Pq= q= W| oa |  o t d	 ƒ n t d
 ƒ t t t d ƒ } | i | ƒ | i ƒ  t i t t t ƒ n d S(   s7   Set or unset cjktexttops as the handler for text/plain.s
   text/plains   texttopss   cjktexttopsi    i   i   s   %s		%s	%s	%s
i   s    Using cjktexttops for text/plains   Using texttops for text/plaini¤  N(   s   types   texttopss   cjktexttopss   modifieds   files
   mime_convss	   readliness   lss   ranges   lens   is   splits   fieldss   strips	   this_types   handlers   use_cjktexttopss   debug_prints   safely_creates
   new_suffixs   ms
   writeliness   closes   oss   rename(   s   use_cjktexttopss   is   fieldss   ms   texttopss   modifieds   handlers   cjktexttopss   lss	   this_types   type(    (    s$   /usr/share/printconf/util/backend.pys   adjust_mime_convs`  sB      

"	

c         C   sr  d } t i d | ƒ } t t ƒ i ƒ  } d } d } x¬ t
 t | ƒ ƒ D]˜ } | | i ƒ  | j o5 |  o d Sn d } t d | ƒ d | | | <qJ | i | | ƒ o2 d } |  o! t d | ƒ d	 | | | <Pqâ qJ qJ W|  o | o# t d
 | ƒ | i d	 | ƒ n |  o | o d Sn t t t d ƒ } | i | ƒ | i ƒ  t i t t t ƒ d S(   ss   Set or unset 'application/octet-stream' in the mime.types file.
    It needs to be set if there are any raw queues.s   application/octet-streams   ^# *%s$i    Ni   s   Disabling %s MIME types   # %s
s   Enabling %s MIME types   %s
s   Adding %s MIME typei¤  (   s   types   res   compiles	   commenteds   files
   mime_typess	   readliness   lss   found_commenteds   found_uncommenteds   ranges   lens   is   strips   allow_octet_streams   debug_prints   matchs   appends   safely_creates
   new_suffixs   ms
   writeliness   closes   oss   rename(   s   allow_octet_streams   is   ms   lss   types	   commenteds   found_commenteds   found_uncommented(    (    s$   /usr/share/printconf/util/backend.pys   adjust_mime_typesŠ  s:      
c            s!  g  }
 g  } d } t i d | ƒ } t i d | | f ƒ } t i d ƒ } x‰|  D]} | d j o d g }
 d g } Pn | i
 | ƒ } | oü| i ƒ  } t d „  | ƒ ‰ d	 } x¹t i i ƒ  D]¨} y˜t i i | ƒ } t i i | ƒ } | i
 | ƒ } | i
 | ƒ } t d „  | i ƒ  ƒ ‰  t d „  | i ƒ  ƒ ‰ t ‡ ‡  d
 †  t d ƒ ƒ } t ‡ ‡ d †  t d ƒ ƒ }	 | |	 j oÙ t i i | ƒ } | i
 | ƒ } t d „  | i ƒ  ƒ ‰  d t ˆ  ƒ } t i i  | ƒ } | i
 | ƒ } t d „  | i ƒ  ƒ } d t | ƒ } | |
 j o |
 i$ | ƒ n | | j o | i$ | ƒ n d } Pn WqÈ qÈ XqÈ W| o d g }
 qT qT n | i
 | ƒ } | oÅ | i ƒ  d	 } y¤ t i i | ƒ } t i i  | ƒ } | i
 | ƒ } | i
 | ƒ } d t t d „  | i ƒ  ƒ ƒ ‰  d t t d „  | i ƒ  ƒ ƒ } |
 i$ ˆ  ƒ | i$ | ƒ WqT qT XqT n | i
 | ƒ } | oT| i ƒ  } t d „  | d  ƒ ‰ t d „  | d ƒ ‰ xt i i ƒ  D]} yñ t i i | ƒ } | i
 | ƒ } t d „  | i ƒ  ƒ ‰  t ‡ ‡  d †  t d ƒ ƒ } t ‡ ‡ d †  t d ƒ ƒ } | | j ok t i i  | ƒ } | i
 | ƒ } t d „  | i ƒ  ƒ } | i$ d t | ƒ ƒ |
 i$ d t ˆ  ƒ ƒ n WqÉqÉXqÉWqT qT qT W|
 i( d ƒ o d g }
 n | i( d ƒ o d g } n |
 | f Sd S(   sñ   Given a list of interface specifications (allow from ...),
    return a tuple of arrays representing IP addresses and broadcast
    addresses for each relevant interface.  Do this by parsing
    /etc/sysconfig/network-scripts/* if necessary.s&   ([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)s   ^%s$s   ^%s/%s$s   ^@IF\((.*)\)$s   Alls   *s   255.255.255.255c         C   s
   t  |  ƒ S(   N(   s   ints   x(   s   x(    (    s$   /usr/share/printconf/util/backend.pys   <lambda>Ã  s    i    c            s   ˆ |  ˆ  |  @S(   N(   s   ipns   xs   nmn(   s   x(   s   nmns   ipn(    s$   /usr/share/printconf/util/backend.pys   <lambda>Í  s    i   c            s   ˆ |  ˆ  |  @S(   N(   s
   ipallowedns   xs   nmn(   s   x(   s   nmns
   ipallowedn(    s$   /usr/share/printconf/util/backend.pys   <lambda>Î  s    s   %d.%d.%d.%di   c            s   ˆ |  ˆ  |  @S(   N(   s   ipns   xs   netmask(   s   x(   s   netmasks   ipn(    s$   /usr/share/printconf/util/backend.pys   <lambda>  s    c            s   ˆ |  ˆ  |  @S(   N(   s   networks   xs   netmask(   s   x(   s   netmasks   network(    s$   /usr/share/printconf/util/backend.pys   <lambda>  s    N()   s   ipaddrs	   broadcasts   ipaddr_re_strs   res   compiles	   ipaddr_res
   network_res   if_res
   interfacess   eachs   matchs   groupss   quads   maps
   ipallowedns   founds   rhpls   ethtools   get_devicess   devs
   get_ipaddrs   ipss   get_netmasks   nmss   ipmatchs   nmmatchs   ipns   nmns   ranges   nwns
   nwallowedns   tuples   get_broadcasts   bcss   bcmatchs   bcns   appends   networks   netmasks   spns   count(   s
   interfacess   ipns   ipss
   ipallowedns   spns   ipmatchs   nwns   if_res   nmss
   nwallowedns   ipaddrs   ipaddr_re_strs   matchs   nmmatchs	   broadcasts   netmasks   nmns   quads	   ipaddr_res   bcns
   network_res   devs   bcmatchs   networks   eachs   founds   bcs(    (   s   ipns
   ipallowedns   netmasks   nmns   networks$   /usr/share/printconf/util/backend.pys   grok_sysconfig_files­  s¼      		 	 s   Error getting contexts   /printconf/print_queuess   /printconf/default_queues   ws   /s   Browsings   BrowseProtocolss   BrowseOrders   BrowseAllows
   BrowseDenys   BrowseAddresss   Listens   Ports   <Printers   <DefaultPrinters    s   >s   Add '%s' configuration to %ss   Create %s%s.ppds   <Location />
s   Order Deny,Allow
s   Deny From All
s   Allow From 127.0.0.1
s   </Location>
s   Remove '%s' configurations   .ppds   @LOCALs#   /printconf/sharing_globals/browsings   Alls   For interfaces: s   ipaddr: s   broadcast: s   Browsing On
s   BrowseProtocols cups
s   BrowseOrder Deny,Allow
s   BrowseDeny from All
s   BrowseAllow from %s
s   BrowseAddress %s
s   Browsing Off
s   *s	   127.0.0.1s   Listen %s:631
i€  s   DEFAULTs5   /usr/bin/lpoptions -d $DEFAULT >/dev/null 2>/dev/null(e   s   printers_confs
   cupsd_confs   cupsd_conf_backups   ppd_dirs
   mime_typess
   mime_convss	   lpoptionss
   new_suffixs   autogens   globs   oss   syss   pwds   grps   res   signals   rhpl.ethtools   rhpls   cups_imports   getpwnams   lp_uids   getgrnams   sys_gids   paths   appends   printconf_confs   rhpl.translates   _s   N_s   which_spoolers   whichs   debug_prints   printconf_backends   exits   rebuilds   getopts   help_messages   argvs   optionss   argss   errors
   device_uris   test_smb_uriss   eachs   checkNspMarks   Nones   safely_creates   remove_printers_confs   add_printers_confs   remove_cupsd_confs   add_cupsd_confs   remove_cupsd_conf_globalss   set_filter_optionss   set_page_marginss
   create_ppds   adjust_mime_convss   adjust_mime_typess   grok_sysconfig_filess   readNsps   contexts   markNsps   datas   print_queuess   values   poss   files	   readliness   cupsd_conf_liness   printers_conf_liness   configured_queuess   accesss   F_OKs
   writeliness	   this_names   ls
   startswiths   indexs   start_indexs	   end_indexs   marker_lines   names   default_queues
   raw_queuess
   cjk_neededs
   interfacess   queues   removes   confs   extends   browse_interfacess   browsings   ipaddrs	   broadcasts   strs   lens	   localhosts   fs   closes   renames   environs   system(@   s   browse_interfacess   remove_cupsd_confs   confs   cupsd_conf_backups   safely_creates
   device_uris	   this_names   print_queuess	   end_indexs
   mime_typess   help_messages   start_indexs   default_queues
   mime_convss   rebuilds   printers_conf_liness   ipaddrs   remove_cupsd_conf_globalss	   lpoptionss   grok_sysconfig_filess   res   cups_imports   printconf_backends   cupsd_conf_liness   rhpls   N_s   getopts
   interfacess	   localhosts   set_page_marginss	   broadcasts   printers_confs   test_smb_uriss   add_cupsd_confs   whichs   autogens   adjust_mime_typess   globs   argss   remove_printers_confs   ppd_dirs   syss   pwds
   create_ppds   _s   sys_gids
   cupsd_confs   grps   fs   configured_queuess   signals   ls   adjust_mime_convss   queues   set_filter_optionss
   raw_queuess   lp_uids   contexts   eachs
   new_suffixs   add_printers_confs   oss   optionss   browsing(    (    s$   /usr/share/printconf/util/backend.pys   ?   sr  
							
				N	; 
	


		&		&		$	9	j	*	#	s	   		

	 	
	  $ 

