9.8
     )�Éa–Ü4ý()¨‰P@Š7Æ„¦-ÿË      )File not found.
     +ˆÇÎƒ-=¾Ë 	,    +a
    ´ií  ã                   @   sp   d dl Z d dlZddlmZmZ ddlmZ ddlmZ ddlmZ dgZ	G dd	„ d	e
ƒZG d
d„ dejƒZdS )é    Né   )Ú	reductionÚset_spawning_popen)Ú
popen_fork)Úspawn)ÚutilÚPopenc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_DupFdc                 C   s
   || _ d S ©N©Úfd©Úselfr   © r   ú9/usr/lib64/python3.9/multiprocessing/popen_spawn_posix.pyÚ__init__   s    z_DupFd.__init__c                 C   s   | j S r
   r   )r   r   r   r   Údetach   s    z_DupFd.detachN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r	      s   r	   c                       s4   e Zd ZdZeZ‡ fdd„Zdd„ Zdd„ Z‡  Z	S )r   r   c                    s   g | _ tƒ  |¡ d S r
   )Ú_fdsÚsuperr   )r   Úprocess_obj©Ú	__class__r   r   r      s    zPopen.__init__c                 C   s   | j  |¡ |S r
   )r   Úappendr   r   r   r   Úduplicate_for_child"   s    zPopen.duplicate_for_childc                 C   sÔ  ddl m} | ¡ }| j |¡ t |j¡}t 	¡ }t
| ƒ z$t ||¡ t ||¡ W t
d ƒ n
t
d ƒ 0 d  } } }}	zòt ¡ \}}t ¡ \}}	tj||d�}
| j ||g¡ t t ¡ |
| j¡| _|| _t|	ddd��}| | ¡ ¡ W d   ƒ n1 �s0    Y  W g }||	fD ]}|d u�r| |¡ �qt | tj|¡| _||fD ]}|d u�rRt |¡ �qRn`g }||	fD ]}|d u�r|| |¡ �q|t | tj|¡| _||fD ]}|d u�r²t |¡ �q²0 d S )Nr   )Úresource_tracker)Ú
tracker_fdZpipe_handleÚwbF)Úclosefd)Ú r   Zgetfdr   r   r   Zget_preparation_dataÚ_nameÚioÚBytesIOr   r   ÚdumpÚosÚpipeZget_command_lineÚextendr   Úspawnv_passfdsZget_executableÚpidÚsentinelÚopenÚwriteÚ	getbufferÚFinalizeÚ	close_fdsÚ	finalizerÚclose)r   r   r   r   Z	prep_dataÚfpÚparent_rÚchild_wÚchild_rÚparent_wÚcmdÚfZfds_to_closer   r   r   r   Ú_launch&   sP    ÿ
ÿ0

ø

zPopen._launch)
r   r   r   Úmethodr	   ÚDupFdr   r   r:   Ú__classcell__r   r   r   r   r      s
   )r#   r&   Úcontextr   r   r!   r   r   r   Ú__all__Úobjectr	   r   r   r   r   r   Ú<module>   s   
     -�Ê¾Ë      -File not found.
     /�Ê¾Ë      /File not found.
  $   1ˆl–Ãa¾”ji?u@?pÜŠbÑ¿Ï„ ¿Ä¿Ì '    1/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */

#ifndef ISC_LEX_H
#define ISC_LEX_H 1

/*****
***** Module Info
*****/

/*! \file isc/lex.h
 * \brief The "lex" module provides a lightweight tokenizer.  It can operate
 * on files or buffers, and can handle "include".  It is designed for
 * parsing of DNS master files and the BIND configuration file, but
 * should be general enough to tokenize other things, e.g. HTTP.
 *
 * \li MP:
 *	No synchronization is provided.  Clients must ensure exclusive
 *	access.
 *
 * \li Reliability:
 *	No anticipated impact.
 *
 * \li Resources:
 *	TBS
 *
 * \li Security:
 *	No anticipated impact.
 *
 * \li Standards:
 * 	None.
 */

/***
 *** Imports
 ***/

#include <stdbool.h>
#include <stdio.h>

#include <isc/lang.h>
#include <isc/region.h>
#include <isc/types.h>

ISC_LANG_BEGINDECLS

/***
 *** Options
 ***/

/*@{*/
/*!
 * Various options for isc_lex_gettoken().
 */

#define ISC_LEXOPT_EOL	     0x0001 /*%< Want end-of-line token. */
#define ISC_LEXOPT_EOF	     0x0002 /*%< Want end-of-file token. */
#define ISC_LEXOPT_INITIALWS 0x0004 /*%< Want initial whitespace. */
#define ISC_LEXOPT_NUMBER    0x0008 /*%< Recognize numbers. */
#defi