PK{Em$!simpy-3.0/.buildinfo# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: tags: PK{E~usimpy-3.0/objects.inv# Sphinx inventory version 2 # Project: SimPy # Version: 3.0 # The remainder of this file is compressed using zlib. xZKs8WP6l*U;o2{dvT7_`l 6KJZɔ"mOGQ[dgL ѽ[ZhB}]5 K%-2,w FɛϯEC{֯W WUʥ2LlYR2xތ%<,}!s]-ڢ&"=l>FFF\i >>U$*T*bUro$g5(9|{]}-Z X.EZt;yC?Mi5NM "LTl,T3)Rg#)(t;ˍoŖ))ǃrubЖDTҊLY dHt}bbescߥd܀$YIɓ 02{UԲb|R8WYL:3f?~'eI_tLꧼE8hy$ SimPy 3.0 documentation

Documentation for SimPy

Contents:

SimPy home

SimPy in 10 Minutes

In this section, you’ll learn the basics of SimPy in just a few minutes. Afterwards, you will be able to implement a simple simulation using SimPy and you’ll be able to make an educated decision if SimPy is what you need. We’ll also give you some hints on how to proceed to implement more complex simulations.

Installation

SimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have pip installed, just type

$ pip install simpy

and you are done.

Alternatively, you can download SimPy and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:

$ python setup.py install

You can now optionally run SimPy’s tests to see if everything works fine. You need pytest and mock for this:

$ python -c "import simpy; simpy.test()"

Upgrading from SimPy 2

If you are already familiar with SimPy 2, please read the Guide Porting from SimPy 2 to 3.

What’s Next

Now that you’ve installed SimPy, you probably want to simulate something. The next section will introduce you to SimPy’s basic concepts.

Basic Concepts

SimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled by processes. All processes live in an environment. They interact with the environment and with each other via events.

Processes are described by simple Python generators. You can call them process function or process method, depending on whether it is a normal function or method of a class. During their life time, they create events and yield them in order to wait for them to be triggered.

When a process yields an event, the process gets suspended. SimPy resumes the process, when the event occurs (we say that the event is triggered). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.

An important event type is the Timeout. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A Timeout and all other events can be created by calling the appropriate method of the Environment that the process lives in (Environment.timeout() for example).

Our First Process

Our first example will be a car process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.

So let’s start:

>>> def car(env):
...     while True:
...         print('Start parking at %d' % env.now)
...         parking_duration = 5
...         yield env.timeout(parking_duration)
...
...         print('Start driving at %d' % env.now)
...         trip_duration = 2
...         yield env.timeout(trip_duration)

Our car process requires a reference to an Environment (env) in order to create new events. The car‘s behaviour is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a yield statement is reached. Once the yielded event is triggered (“it occurs”), the simulation will resume the function at this statement.

As I said before, our car switches between the states parking and driving. It announces its new state by printing a message and the current simulation time (as returned by the Environment.now property). It then calls the Environment.timeout() factory function to create a Timeout event. This event describes the point in time the car is done parking (or driving, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.

Now that the behaviour of our car has been modelled, lets create an instance of it and see how it behaves:

>>> import simpy
>>> env = simpy.Environment()
>>> env.process(car(env))
<Process(car) object at 0x...>
>>> env.run(until=15)
Start parking at 0
Start driving at 5
Start parking at 7
Start driving at 12
Start parking at 14

The first thing we need to do is to create an instance of Environment. This instance is passed into our car process function. Calling it creates a process generator that needs to be started and added to the environment via Environment.process().

Note, that at this time, none of the code of our process function is being executed. It’s execution is merely scheduled at the current simulation time.

The Process returned by process() can be used for process interactions (we will cover that in the next section, so we will ignore it for now).

Finally, we start the simulation by calling meth:Environment.simulate() and passing the environment as well as an end time to it.

What’s Next?

You should now be familiar with Simpy’s terminology and basic concepts. In the next section, we will cover process interaction.

Process Interaction

The Process instance that is returned by Environment.process() can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.

Waiting for a Process

As it happens, a SimPy Process can be used like an event (technically, a process actually is an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.

Lets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.

We can model this with an additional charge() process for our car. Therefore, we refactor our car to be a class with two process methods: run() (which is the original car() process function) and charge().

The run process is automatically started when Car is instantiated. A new charge process is started every time the vehicle starts parking. By yielding the Process instance that Environment.process() returns, the run process starts waiting for it to finish:

>>> class Car(object):
...     def __init__(self, env):
...         self.env = env
...         # Start the run process everytime an instance is created.
...         self.proc = env.process(self.run())
...
...     def run(self):
...         while True:
...             print('Start parking and charging at %d' % env.now)
...             charge_duration = 5
...             # We yield the process that process() returns
...             # to wait for it to finish
...             yield env.process(self.charge(charge_duration))
...
...             # The charge process has finished and
...             # we can start driving again.
...             print('Start driving at %d' % env.now)
...             trip_duration = 2
...             yield env.timeout(trip_duration)
...
...     def charge(self, duration):
...         yield self.env.timeout(duration)

Starting the simulation is straight forward again: We create an environment, one (or more) cars and finally call meth:~Environment.simulate().

>>> import simpy
>>> env = simpy.Environment()
>>> car = Car(env)
>>> env.run(until=15)
Start parking and charging at 0
Start driving at 5
Start parking and charging at 7
Start driving at 12
Start parking and charging at 14

Interrupting Another Process

Imagine, you don’t want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.

SimPy allows you to interrupt a running process by calling its interrupt() method:

>>> def driver(env, car):
...     yield env.timeout(3)
...     car.action.interrupt()

The driver process has a reference to the car’s run process. After waiting for 3 time steps, it interrupts that process.

Interrupts are thrown into process functions as Interrupt exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):

>>> class Car(object):
...     def __init__(self, env):
...         self.env = env
...         self.action = env.process(self.run())
...
...     def run(self):
...         while True:
...             print('Start parking and charging at %d' % env.now)
...             charge_duration = 5
...             # We may get interrupted while charging the battery
...             try:
...                 yield env.process(self.charge(charge_duration))
...             except simpy.Interrupt:
...                 # When we received an interrupt, we stop charing and
...                 # switch to the "driving" state
...                 print('Was interrupted. Hope, the battery is full enough ...')
...
...             print('Start driving at %d' % env.now)
...             trip_duration = 2
...             yield env.timeout(trip_duration)
...
...     def charge(self, duration):
...         yield self.env.timeout(duration)

When you compare the output of this simulation with the previous example, you’ll notice that the car now starts driving at time 3 instead of 5:

>>> env = simpy.Environment()
>>> car = Car(env)
>>> env.process(driver(env, car))
<Process(driver) object at 0x...>
>>> env.run(until=15)
Start parking and charging at 0
Was interrupted. Hope, the battery is full enough ...
Start driving at 3
Start parking and charging at 5
Start driving at 10
Start parking and charging at 12

What’s Next

We just demonstrated two basic methods for process interactions—waiting for a process and interrupting a process. Take a look at the Topical Guides or the Process API reference for more details.

In the next section we will cover the basic usage of shared resources.

Shared Resources

SimPy offers three types of resources that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.

In this section, we’ll briefly introduce SimPy’s Resource class.

Basic Resource Usage

We’ll slightly modify our electric vehicle process car that we introduced in the last sections.

The car will now drive to a battery charging station (BCS) and request one of its two charing spots. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:

>>> def car(env, name, bcs, driving_time, charge_duration):
...     # Simulate driving to the BCS
...     yield env.timeout(driving_time)
...
...     # Request one of its charging spots
...     print('%s arriving at %d' % (name, env.now))
...     with bcs.request() as req:
...         yield req
...
...         # Charge the battery
...         print('%s starting to charge at %s' % (name, env.now))
...         yield env.timeout(charge_duration)
...         print('%s leaving the bcs at %s' % (name, env.now))

The resource’s request() method generates an event that lets you wait until the resource becomes available again. If you are resumed, you “own” the resource until you release it.

If you use the resource with the with statement as shown above, the resource is automatically being released. If you call request() without with, you are responsible to call release() once you are done using the resource.

When you release a resource, the next waiting process is resumed and now “owns” one of the resource’s slots. The basic Resource sorts waiting processes in a FIFO (first in—first out) way.

A resource needs a reference to an Environment and a capacity when it is created:

>>> import simpy
>>> env = simpy.Environment()
>>> bcs = simpy.Resource(env, capacity=2)

We can now create the car processes and pass a reference to our resource as well as some additional parameters to them:

>>> for i in range(4):
...     env.process(car(env, 'Car %d' % i, bcs, i*2, 5))
<Process(car) object at 0x...>
<Process(car) object at 0x...>
<Process(car) object at 0x...>
<Process(car) object at 0x...>

Finally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don’t need to specify an until time—the simulation will automatically stop when there are no more events left:

>>> env.run()
Car 0 arriving at 0
Car 0 starting to charge at 0
Car 1 arriving at 2
Car 1 starting to charge at 2
Car 2 arriving at 4
Car 0 leaving the bcs at 5
Car 2 starting to charge at 5
Car 3 arriving at 6
Car 1 leaving the bcs at 7
Car 3 starting to charge at 7
Car 2 leaving the bcs at 10
Car 3 leaving the bcs at 12

Note that the first to cars can start charing immediately after they arrive at the BCS, while cars 2 an 3 have to wait.

What’s Next

You should now be familiar with SimPy’s basic concepts. The next section shows you how you can proceed with using SimPy from here on.

How to Proceed

If you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various examples we provide.

If you are looking for a more detailed description of a certain aspect or feature of SimPy, the Topical Guides section might help you.

Finally, there is an API Reference that describes all functions and classes in full detail.

Topical Guides

This sections covers various aspects of SimPy more in-depth. It assumes that you have a basic understanding of SimPy’s capabilities and that you know what you are looking for.

Porting from SimPy 2 to 3

Porting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.

This guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.

Imports

In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (SimPy.Simulation), a real-time simulation (SimPy.SimulationRT) or something else. You usually had to import Simulation (or SimulationRT), Process and some of the SimPy keywords (hold or passivate, for example) from that package.

In SimPy 3, you usually need to import much less classes and modules (e.g., you don’t need direct access to Process and the SimPy keywords anymore). In most use cases you will now only need to import simpy.

SimPy 2

from Simpy.Simulation import Simulation, Process, hold

SimPy 3

import simpy

The Simulation* classes

SimPy 2 encapsulated the simulation state in a Simulation* class (e.g., Simulation, SimulationRT or SimulationTrace). This class also had a simulate() method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).

There was a global Simulation instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy’s object-orient API. This led to some confusion and problems, because you had to pass the Simulation instance around when you were using the OO API but not if you were using the procedural API.

In SimPy 3, an Environment replaces Simulation and RealtimeEnvironment replaces SimulationRT. You always need to instantiate an environment. There’s no more global state.

To execute a simulation, you call the environment’s run() method.

SimPy 2

# Procedural API
from SimPy.Simulation import initialize, simulate

initialize()
# Start processes
simulate(until=10)
# Object-oriented API
from SimPy.Simulation import Simulation

sim = Simulation()
# Start processes
sim.simulate(until=10)

SimPy3

import simpy

env = simpy.Environment()
# Start processes
env.run(until=10)

Defining a Process

Processes had to inherit the Process base class in SimPy 2. Subclasses had to implement at least a so called Process Execution Method (PEM) and in most cases __init__(). Each process needed to know the Simulation instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.

Processes were started by passing the Process and the generator returned by the PEM to either the global activate() function or the corresponding Simulation method.

A process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the Environment to interact with, but this is completely optional.

Processes are can be started by creating a Process instance and passing the generator to it. The environment provides a shortcut for this: process().

SimPy 2

# Procedural API
from Simpy.Simulation import Process

class MyProcess(Process):
    def __init__(self, another_param):
        super().__init__()
        self.another_param = another_param

    def run(self):
        """Implement the process' behavior."""

initialize()
proc = Process('Spam')
activate(proc, proc.run())
# Object-oriented API
from SimPy.Simulation import Simulation, Process

class MyProcess(Process):
    def __init__(self, sim, another_param):
        super().__init__(sim=sim)
        self.another_param = another_param

    def run(self):
        """Implement the process' behaviour."""

sim = Simulation()
proc = Process(sim, 'Spam')
sim.activate(proc, proc.run())

SimPy 3

import simpy

def my_process(env, another_param):
    """Implement the process' behavior."""

env = simpy.Environment()
proc = env.process(my_process(env, 'Spam'))

SimPy Keywords (hold etc.)

In SimPy 2, processes created new events by yielding a SimPy Keyword and some additional parameters (at least self). These keywords had to be imported from SimPy.Simulation* if they were used. Internally, the keywords were mapped to a function that generated the according event.

In SimPy 3, you directly yield events. You can instantiate an event directly or use the shortcuts provided by Environment.

Generally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the hold keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore hold has been replaced by a Timeout event.

Note

Process now inherits Event. You can thus yield a process to wait until the process terminates.

SimPy 2

yield hold, self, duration
yield passivate, self
yield request, self, resource
yield release, self, resource
yield waitevent, self, event
yield waitevent, self, [event_a, event_b, event_c]
yield queueevent, self, event_list
yield waituntil, self, cond_func
yield get, self, level, amount
yield put, self, level, amount

SimPy 3

from simpy.util import wait_for_any, wait_for_all

yield env.timeout(duration)        # hold: renamed
yield env.event()                  # passivate: renamed
yield resource.request()           # Request is now bound to class Resource
resource.release()                 # Release no longer needs to be yielded
yield event                        # waitevent: just yield the event
yield wait_for_any([event_a, event_b, event_c])  # waitevent
yield wait_for_all([event_a, event_b, event_c])  # This is new.
yield event_a | event_b            # Wait for either a or b. This is new.
yield event_a & event_b            # Wait for a and b. This is new.
# There is no direct equivalent for "queueevent"
yield env.process(cond_func(env))  # cond_func is now a process that
                                   # terminates when the cond. is True
                                   # (Yes, you can wait for processes now!)
yield container.get(amount)        # Level is now called Container
yield container.put(amount)

Interrupts

In SimPy 2, interrupt() was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.

The victim was not directly notified of the interrupt but had to check if the interrupted flag was set. It then had to reset the interrupt via interruptReset(). You could manually set the interruptCause attribute of the victim.

Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.

In SimPy 3, you call interrupt() on the victim process. You can optionally pass a cause. An Interrupt is then thrown into the victim process, which has to handle the interrupt via try: ... except Interrupt: ....

SimPy 2

class Interrupter(Process):
    def __init__(self, victim):
        super().__init__()
        self.victim = victim

    def run(self):
        yield hold, self, 1
        self.interrupt(self.victim_proc)
        self.victim_proc.interruptCause = 'Spam'

class Victim(Process):
    def run(self):
        yield hold, self, 10
        if self.interrupted:
            cause = self.interruptCause
            self.interruptReset()

SimPy 3

def interrupter(env, victim_proc):
    yield env.timeout(1)
    victim_proc.interrupt('Spam')

def victim(env):
    try:
        yield env.timeout(10)
    except Interrupt as interrupt:
        cause = interrupt.cause

Conclusion

This guide is by no means complete. If you run into problems, please have a look at the other guides, the examples or the API Reference. You are also very welcome to submit improvements. Just create a pull request at bitbucket.

Examples

All theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy’s features.

Here’s a list of examples grouped by features they demonstrate.

Condition events

Interrupts

Monitoring

Resources: Container

Resources: Preemptive Resource

Shared events

Waiting for other processes

All examples

Bank Renege

Covers:

  • Resources: Resource
  • Condition events

A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)

This example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.

New customers are created by the source process every few time steps.

"""
Bank renege example

Covers:

- Resources: Resource
- Condition events

Scenario:
  A counter with a random service time and customers who renege. Based on the
  program bank08.py from TheBank tutorial of SimPy 2. (KGM)

"""
import random

import simpy


RANDOM_SEED = 42
NEW_CUSTOMERS = 5  # Total number of customers
INTERVAL_CUSTOMERS = 10.0  # Generate new customers roughly every x seconds
MIN_PATIENCE = 1  # Min. customer patience
MAX_PATIENCE = 3  # Max. customer patience


def source(env, number, interval, counter):
    """Source generates customers randomly"""
    for i in range(number):
        c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0)
        env.process(c)
        t = random.expovariate(1.0 / interval)
        yield env.timeout(t)


def customer(env, name, counter, time_in_bank):
    """Customer arrives, is served and leaves."""
    arrive = env.now
    print('%7.4f %s: Here I am' % (arrive, name))

    with counter.request() as req:
        patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE)
        # Wait for the counter or abort at the end of our tether
        results = yield req | env.timeout(patience)

        wait = env.now - arrive

        if req in results:
            # We got to the counter
            print('%7.4f %s: Waited %6.3f' % (env.now, name, wait))

            tib = random.expovariate(1.0 / time_in_bank)
            yield env.timeout(tib)
            print('%7.4f %s: Finished' % (env.now, name))

        else:
            # We reneged
            print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait))


# Setup and start the simulation
print('Bank renege')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# Start processes and run
counter = simpy.Resource(env, capacity=1)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter))
env.run()

The simulation’s output:

Bank renege
 0.0000 Customer00: Here I am
 0.0000 Customer00: Waited  0.000
 3.8595 Customer00: Finished
10.2006 Customer01: Here I am
10.2006 Customer01: Waited  0.000
12.7265 Customer02: Here I am
13.9003 Customer02: RENEGED after  1.174
23.7507 Customer01: Finished
34.9993 Customer03: Here I am
34.9993 Customer03: Waited  0.000
37.9599 Customer03: Finished
40.4798 Customer04: Here I am
40.4798 Customer04: Waited  0.000
43.1401 Customer04: Finished

Carwash

Covers:

  • Waiting for other processes
  • Resources: Resource

The Carwash example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.

The carwash uses a Resource to model the limited number of washing machines. It also defines a process for washing a car.

When a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash’s wash processes and waits for it to finish. It finally releases the machine and leaves.

The cars are generated by a setup process. After creating an intial amount of cars it creates new car processes after a random time interval as long as the simulation continues.

"""
Carwasch example.

Covers:

- Waiting for other processes
- Resources: Resource

Scenario:
  A carwash has a limited number of washing machines and defines
  a washing processes that takes some (random) time.

  Car processes arrive at the carwash at a random time. If one washing
  machine is available, they start the washing process and wait for it
  to finish. If not, they wait until they an use one.

"""
import random

import simpy


RANDOM_SEED = 42
NUM_MACHINES = 2  # Number of machines in the carwash
WASHTIME = 5      # Minutes it takes to clean a car
T_INTER = 7       # Create a car every ~7 minutes
SIM_TIME = 20     # Simulation time in minutes


class Carwash(object):
    """A carwash has a limited number of machines (``NUM_MACHINES``) to
    clean cars in parallel.

    Cars have to request one of the machines. When they got one, they
    can start the washing processes and wait for it to finish (which
    takes ``washtime`` minutes).

    """
    def __init__(self, env, num_machines, washtime):
        self.env = env
        self.machine = simpy.Resource(env, num_machines)
        self.washtime = washtime

    def wash(self, car):
        """The washing processes. It takes a ``car`` processes and tries
        to clean it."""
        yield self.env.timeout(WASHTIME)
        print("Carwashed removed %d%% of %s's dirt." %
              (random.randint(50, 99), car))


def car(env, name, cw):
    """The car process (each car has a ``name``) arrives at the carwash
    (``cw``) and requests a cleaning machine.

    It then starts the washing process, waits for it to finish and
    leaves to never come back ...

    """
    print('%s arrives at the carwash at %.2f.' % (name, env.now))
    with cw.machine.request() as request:
        yield request

        print('%s enters the carwash at %.2f.' % (name, env.now))
        yield env.process(cw.wash(name))

        print('%s leaves the carwash at %.2f.' % (name, env.now))


def setup(env, num_machines, washtime, t_inter):
    """Create a carwash, a number of initial cars and keep creating cars
    approx. every ``t_inter`` minutes."""
    # Create the carwash
    carwash = Carwash(env, num_machines, washtime)

    # Create 4 initial cars
    for i in range(4):
        env.process(car(env, 'Car %d' % i, carwash))

    # Create more cars while the simulation is running
    while True:
        yield env.timeout(random.randint(t_inter-2, t_inter+2))
        i += 1
        env.process(car(env, 'Car %d' % i, carwash))


# Setup and start the simulation
print('Carwash')
print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)')
random.seed(RANDOM_SEED)  # This helps reproducing the results

# Create an environment and start the setup process
env = simpy.Environment()
env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER))

# Execute!
env.run(until=SIM_TIME)

The simulation’s output:

Carwash
Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)
Car 0 arrives at the carwash at 0.00.
Car 1 arrives at the carwash at 0.00.
Car 2 arrives at the carwash at 0.00.
Car 3 arrives at the carwash at 0.00.
Car 0 enters the carwash at 0.00.
Car 1 enters the carwash at 0.00.
Car 4 arrives at the carwash at 5.00.
Carwashed removed 97% of Car 0's dirt.
Carwashed removed 67% of Car 1's dirt.
Car 0 leaves the carwash at 5.00.
Car 1 leaves the carwash at 5.00.
Car 2 enters the carwash at 5.00.
Car 3 enters the carwash at 5.00.
Car 5 arrives at the carwash at 10.00.
Carwashed removed 64% of Car 2's dirt.
Carwashed removed 58% of Car 3's dirt.
Car 2 leaves the carwash at 10.00.
Car 3 leaves the carwash at 10.00.
Car 4 enters the carwash at 10.00.
Car 5 enters the carwash at 10.00.
Carwashed removed 97% of Car 4's dirt.
Carwashed removed 56% of Car 5's dirt.
Car 4 leaves the carwash at 15.00.
Car 5 leaves the carwash at 15.00.
Car 6 arrives at the carwash at 16.00.
Car 6 enters the carwash at 16.00.

Machine Shop

Covers:

  • Interrupts
  • Resources: PreemptiveResource

This example comprises a workshop with n identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.

A machine has two processes: working implements the actual behaviour of the machine (producing parts). break_machine periodically interrupts the working process to simulate the machine failure.

The repairman’s other job is also a process (implemented by other_job). The repairman itself is a PreemptiveResource with a capacity of 1. The machine repairing has a priority of 1, while the other job has a priority of 2 (the smaller the number, the higher the priority).

"""
Machine shop example

Covers:

- Interrupts
- Resources: PreemptiveResource

Scenario:
  A workshop has *n* identical machines. A stream of jobs (enough to
  keep the machines busy) arrives. Each machine breaks down
  periodically. Repairs are carried out by one repairman. The repairman
  has other, less important tasks to perform, too. Broken machines
  preempt theses tasks. The repairman continues them when he is done
  with the machine repair. The workshop works continuously.

"""
import random

import simpy


RANDOM_SEED = 42
PT_MEAN = 10.0         # Avg. processing time in minutes
PT_SIGMA = 2.0         # Sigma of processing time
MTTF = 300.0           # Mean time to failure in minutes
BREAK_MEAN = 1 / MTTF  # Param. for expovariate distribution
REPAIR_TIME = 30.0     # Time it takes to repair a machine in minutes
JOB_DURATION = 30.0    # Duration of other jobs in minutes
NUM_MACHINES = 10      # Number of machines in the machine shop
WEEKS = 4              # Simulation time in weeks
SIM_TIME = WEEKS * 7 * 24 * 60  # Simulation time in minutes


def time_per_part():
    """Return actual processing time for a concrete part."""
    return random.normalvariate(PT_MEAN, PT_SIGMA)


def time_to_failure():
    """Return time until next failure for a machine."""
    return random.expovariate(BREAK_MEAN)


class Machine(object):
    """A machine produces parts and my get broken every now and then.

    If it breaks, it requests a *repairman* and continues the production
    after the it is repaired.

    A machine has a *name* and a numberof *parts_made* thus far.

    """
    def __init__(self, env, name, repairman):
        self.env = env
        self.name = name
        self.parts_made = 0
        self.broken = False

        # Start "working" and "break_machine" processes for this machine.
        self.process = env.process(self.working(repairman))
        env.process(self.break_machine())

    def working(self, repairman):
        """Produce parts as long as the simulation runs.

        While making a part, the machine may break multiple times.
        Request a repairman when this happens.

        """
        while True:
            # Start making a new part
            done_in = time_per_part()
            while done_in:
                try:
                    # Working on the part
                    start = self.env.now
                    yield self.env.timeout(done_in)
                    done_in = 0  # Set to 0 to exit while loop.

                except simpy.Interrupt:
                    self.broken = True
                    done_in -= self.env.now - start  # How much time left?

                    # Request a repairman. This will preempt its "other_job".
                    with repairman.request(priority=1) as req:
                        yield req
                        yield self.env.timeout(REPAIR_TIME)

                    self.broken = False

            # Part is done.
            self.parts_made += 1

    def break_machine(self):
        """Break the machine every now and then."""
        while True:
            yield self.env.timeout(time_to_failure())
            if not self.broken:
                # Only break the machine if it is currently working.
                self.process.interrupt()


def other_jobs(env, repairman):
    """The repairman's other (unimportant) job."""
    while True:
        # Start a new job
        done_in = JOB_DURATION
        while done_in:
            # Retry the job until it is done.
            # It's priority is lower than that of machine repairs.
            with repairman.request(priority=2) as req:
                yield req
                try:
                    start = env.now
                    yield env.timeout(done_in)
                    done_in = 0
                except simpy.Interrupt:
                    done_in -= env.now - start


# Setup and start the simulation
print('Machine shop')
random.seed(RANDOM_SEED)  # This helps reproducing the results

# Create an environment and start the setup process
env = simpy.Environment()
repairman = simpy.PreemptiveResource(env, capacity=1)
machines = [Machine(env, 'Machine %d' % i, repairman)
        for i in range(NUM_MACHINES)]
env.process(other_jobs(env, repairman))

# Execute!
env.run(until=SIM_TIME)

# Analyis/results
print('Machine shop results after %s weeks' % WEEKS)
for machine in machines:
    print('%s made %d parts.' % (machine.name, machine.parts_made))

The simulation’s output:

Machine shop
Machine shop results after 4 weeks
Machine 0 made 3251 parts.
Machine 1 made 3273 parts.
Machine 2 made 3242 parts.
Machine 3 made 3343 parts.
Machine 4 made 3387 parts.
Machine 5 made 3244 parts.
Machine 6 made 3269 parts.
Machine 7 made 3185 parts.
Machine 8 made 3302 parts.
Machine 9 made 3279 parts.

Movie Renege

Covers:

  • Resources: Resource
  • Condition events
  • Shared events

This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1–6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).

The movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a Resource with a capacity of one.

The moviegoer process starts waiting until either it’s his turn (it acquires the counter resource) or until the sold out signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the sold out signal is triggered.

Moviegoers are generated by the customer arrivals process. It also chooses a movie and the number of tickets for the moviegoer.

"""
Movie renege example

Covers:

- Resources: Resource
- Condition events
- Shared events

Scenario:
  A movie theatre has one ticket counter selling tickets for three
  movies (next show only). When a movie is sold out, all people waiting
  to buy tickets for that movie renege (leave queue).

"""
import collections
import random

import simpy


RANDOM_SEED = 42
TICKETS = 50  # Number of tickets per movie
SIM_TIME = 120  # Simulate until


def moviegoer(env, movie, num_tickets, theater):
    """A moviegoer tries to by a number of tickets (*num_tickets*) for
    a certain *movie* in a *theater*.

    If the movie becomes sold out, she leaves the theater. If she gets
    to the counter, she tries to buy a number of tickets. If not enough
    tickets are left, she argues with the teller and leaves.

    If at most one ticket is left after the moviegoer bought her
    tickets, the *sold out* event for this movie is triggered causing
    all remaining moviegoers to leave.

    """
    with theater.counter.request() as my_turn:
        # Wait until its our turn or until the movie is sold out
        result = yield my_turn | theater.sold_out[movie]

        # Check if it's our turn of if movie is sold out
        if my_turn not in result:
            theater.num_renegers[movie] += 1
            env.exit()

        # Check if enough tickets left.
        if theater.available[movie] < num_tickets:
            # Moviegoer leaves after some discussion
            yield env.timeout(0.5)
            env.exit()

        # Buy tickets
        theater.available[movie] -= num_tickets
        if theater.available[movie] < 2:
            # Trigger the "sold out" event for the movie
            theater.sold_out[movie].succeed()
            theater.when_sold_out[movie] = env.now
            theater.available[movie] = 0
        yield env.timeout(1)


def customer_arrivals(env, theater):
    """Create new *moviegoers* until the sim time reaches 120."""
    while True:
        yield env.timeout(random.expovariate(1 / 0.5))

        movie = random.choice(theater.movies)
        num_tickets = random.randint(1, 6)
        if theater.available[movie]:
            env.process(moviegoer(env, movie, num_tickets, theater))


Theater = collections.namedtuple('Theater', 'counter, movies, available, '
                                            'sold_out, when_sold_out, '
                                            'num_renegers')


# Setup and start the simulation
print('Movie renege')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# Create movie theater
counter = simpy.Resource(env, capacity=1)
movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation']
available = {movie: TICKETS for movie in movies}
sold_out = {movie: env.event() for movie in movies}
when_sold_out = {movie: None for movie in movies}
num_renegers = {movie: 0 for movie in movies}
theater = Theater(counter, movies, available, sold_out, when_sold_out,
                  num_renegers)

# Start process and run
env.process(customer_arrivals(env, theater))
env.run(until=SIM_TIME)

# Analysis/results
for movie in movies:
    if theater.sold_out[movie]:
        print('Movie "%s" sold out %.1f minutes after ticket counter '
              'opening.' % (movie, theater.when_sold_out[movie]))
        print('  Number of people leaving queue when film sold out: %s' %
              theater.num_renegers[movie])

The simulation’s output:

Movie renege
Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 16
Movie "Kill Process" sold out 43.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 5
Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening.
  Number of people leaving queue when film sold out: 5

Gas Station Refueling

Covers:

  • Resources: Resource
  • Resources: Container
  • Waiting for other processes

This examples models a gas station and cars that arrive at the station for refueling.

The gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as Resource. The shared fuel tank is modeled with a Container.

Vehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.

The gas stations fuel level is reqularly monitored by gas station control. When the level drops below a certain threshold, a tank truck is called to refuel the gas station itself.

"""
Gas Station Refueling example

Covers:

- Resources: Resource
- Resources: Container
- Waiting for other processes

Scenario:
  A gas station has a limited number of gas pumps that share a common
  fuel reservoir. Cars randomly arrive at the gas station, request one
  of the fuel pumps and start refueling from that reservoir.

  A gas station control process observes the gas station's fuel level
  and calls a tank truck for refueling if the station's level drops
  below a threshold.

"""
import itertools
import random

import simpy


RANDOM_SEED = 42
GAS_STATION_SIZE = 200     # liters
THRESHOLD = 10             # Threshold for calling the tank truck (in %)
FUEL_TANK_SIZE = 50        # liters
FUEL_TANK_LEVEL = [5, 25]  # Min/max levels of fuel tanks (in liters)
REFUELING_SPEED = 2        # liters / second
TANK_TRUCK_TIME = 300      # Seconds it takes the tank truck to arrive
T_INTER = [30, 300]        # Create a car every [min, max] seconds
SIM_TIME = 1000            # Simulation time in seconds


def car(name, env, gas_station, fuel_pump):
    """A car arrives at the gas station for refueling.

    It requests one of the gas station's fuel pumps and tries to get the
    desired amount of gas from it. If the stations reservoir is
    depleted, the car has to wait for the tank truck to arrive.

    """
    fuel_tank_level = random.randint(*FUEL_TANK_LEVEL)
    print('%s arriving at gas station at %.1f' % (name, env.now))
    with gas_station.request() as req:
        start = env.now
        # Request one of the gas pumps
        yield req

        # Get the required amount of fuel
        liters_required = FUEL_TANK_SIZE - fuel_tank_level
        yield fuel_pump.get(liters_required)

        # The "actual" refueling process takes some time
        yield env.timeout(liters_required / REFUELING_SPEED)

        print('%s finished refueling in %.1f seconds.' % (name,
                                                          env.now - start))


def gas_station_control(env, fuel_pump):
    """Periodically check the level of the *fuel_pump* and call the tank
    truck if the level falls below a threshold."""
    while True:
        if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD:
            # We need to call the tank truck now!
            print('Calling tank truck at %d' % env.now)
            # Wait for the tank truck to arrive and refuel the station
            yield env.process(tank_truck(env, fuel_pump))

        yield env.timeout(10)  # Check every 10 seconds


def tank_truck(env, fuel_pump):
    """Arrives at the gas station after a certain delay and refuels it."""
    yield env.timeout(TANK_TRUCK_TIME)
    print('Tank truck arriving at time %d' % env.now)
    ammount = fuel_pump.capacity - fuel_pump.level
    print('Tank truck refuelling %.1f liters.' % ammount)
    yield fuel_pump.put(ammount)


def car_generator(env, gas_station, fuel_pump):
    """Generate new cars that arrive at the gas station."""
    for i in itertools.count():
        yield env.timeout(random.randint(*T_INTER))
        env.process(car('Car %d' % i, env, gas_station, fuel_pump))


# Setup and start the simulation
print('Gas Station refuelling')
random.seed(RANDOM_SEED)

# Create environment and start processes
env = simpy.Environment()
gas_station = simpy.Resource(env, 2)
fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE)
env.process(gas_station_control(env, fuel_pump))
env.process(car_generator(env, gas_station, fuel_pump))

# Execute!
env.run(until=SIM_TIME)

The simulation’s output:

Gas Station refuelling
Car 0 arriving at gas station at 87.0
Car 0 finished refueling in 18.5 seconds.
Car 1 arriving at gas station at 129.0
Car 1 finished refueling in 19.0 seconds.
Car 2 arriving at gas station at 284.0
Car 2 finished refueling in 21.0 seconds.
Car 3 arriving at gas station at 385.0
Car 3 finished refueling in 13.5 seconds.
Car 4 arriving at gas station at 459.0
Calling tank truck at 460
Car 4 finished refueling in 22.0 seconds.
Car 5 arriving at gas station at 705.0
Car 6 arriving at gas station at 750.0
Tank truck arriving at time 760
Tank truck refuelling 188.0 liters.
Car 6 finished refueling in 29.0 seconds.
Car 5 finished refueling in 76.5 seconds.
Car 7 arriving at gas station at 891.0
Car 7 finished refueling in 13.0 seconds.

Process Communication

Covers:

  • Resources: Store

This example shows how to interconnect simulation model elements together using “resources.Store” for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.

When Useful:

When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.

This is also useful when some information needs to be broadcast to many receiving processes

Finally, using pipes can simplify how processes are interconnected to each other in a simulation model.

Example By:
Keith Smith
"""
Process communication example

Covers:

- Resources: Store

Scenario:
  This example shows how to interconnect simulation model elements
  together using :class:`~simpy.resources.store.Store` for one-to-one,
  and many-to-one asynchronous processes. For one-to-many a simple
  BroadCastPipe class is constructed from Store.

When Useful:
  When a consumer process does not always wait on a generating process
  and these processes run asynchronously. This example shows how to
  create a buffer and also tell is the consumer process was late
  yielding to the event from a generating process.

  This is also useful when some information needs to be broadcast to
  many receiving processes

  Finally, using pipes can simplify how processes are interconnected to
  each other in a simulation model.

Example By:
  Keith Smith

"""
import random

import simpy


RANDOM_SEED = 42
SIM_TIME = 100


class BroadcastPipe(object):
    """A Broadcast pipe that allows one process to send messages to many.

    This construct is useful when message consumers are running at
    different rates than message generators and provides an event
    buffering to the consuming processes.

    The parameters are used to create a new
    :class:`~simpy.resources.store.Store` instance each time
    :meth:`get_output_conn()` is called.

    """
    def __init__(self, env, capacity=simpy.core.Infinity):
        self.env = env
        self.capacity = capacity
        self.pipes = []

    def put(self, value):
        """Broadcast a *value* to all receivers."""
        if not self.pipes:
            raise RuntimeError('There are no output pipes.')
        events = [store.put(value) for store in self.pipes]
        return self.env.all_of(events)  # Condition event for all "events"

    def get_output_conn(self):
        """Get a new output connection for this broadcast pipe.

        The return value is a :class:`~simpy.resources.store.Store`.

        """
        pipe = simpy.Store(self.env, capacity=self.capacity)
        self.pipes.append(pipe)
        return pipe


def message_generator(name, env, out_pipe):
    """A process which randomly generates messages."""
    while True:
        # wait for next transmission
        yield env.timeout(random.randint(6, 10))

        # messages are time stamped to later check if the consumer was
        # late getting them.  Note, using event.triggered to do this may
        # result in failure due to FIFO nature of simulation yields.
        # (i.e. if at the same env.now, message_generator puts a message
        # in the pipe first and then message_consumer gets from pipe,
        # the event.triggered will be True in the other order it will be
        # False
        msg = (env.now, '%s says hello at %d' % (name, env.now))
        out_pipe.put(msg)


def message_consumer(name, env, in_pipe):
    """A process which consumes messages."""
    while True:
        # Get event for message pipe
        msg = yield in_pipe.get()

        if msg[0] < env.now:
            # if message was already put into pipe, then
            # message_consumer was late getting to it. Depending on what
            # is being modeled this, may, or may not have some
            # significance
            print('LATE Getting Message: at time %d: %s received message: %s' %
                    (env.now, name, msg[1]))

        else:
            # message_consumer is synchronized with message_generator
            print('at time %d: %s received message: %s.' %
                    (env.now, name, msg[1]))

        # Process does some other work, which may result in missing messages
        yield env.timeout(random.randint(4, 8))


# Setup and start the simulation
print('Process communication')
random.seed(RANDOM_SEED)
env = simpy.Environment()

# For one-to-one or many-to-one type pipes, use Store
pipe = simpy.Store(env)
env.process(message_generator('Generator A', env, pipe))
env.process(message_consumer('Consumer A', env, pipe))

print('\nOne-to-one pipe communication\n')
env.run(until=SIM_TIME)

# For one-to many use BroadcastPipe
# (Note: could also be used for one-to-one,many-to-one or many-to-many)
env = simpy.Environment()
bc_pipe = BroadcastPipe(env)

env.process(message_generator('Generator A', env, bc_pipe))
env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn()))
env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn()))

print('\nOne-to-many pipe communication\n')
env.run(until=SIM_TIME)

The simulation’s output:

Process communication

One-to-one pipe communication

at time 6: Consumer A received message: Generator A says hello at 6.
at time 12: Consumer A received message: Generator A says hello at 12.
at time 19: Consumer A received message: Generator A says hello at 19.
at time 26: Consumer A received message: Generator A says hello at 26.
at time 36: Consumer A received message: Generator A says hello at 36.
at time 46: Consumer A received message: Generator A says hello at 46.
at time 52: Consumer A received message: Generator A says hello at 52.
at time 58: Consumer A received message: Generator A says hello at 58.
LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65
at time 75: Consumer A received message: Generator A says hello at 75.
at time 85: Consumer A received message: Generator A says hello at 85.
at time 95: Consumer A received message: Generator A says hello at 95.

One-to-many pipe communication

at time 10: Consumer A received message: Generator A says hello at 10.
at time 10: Consumer B received message: Generator A says hello at 10.
at time 18: Consumer A received message: Generator A says hello at 18.
at time 18: Consumer B received message: Generator A says hello at 18.
at time 27: Consumer A received message: Generator A says hello at 27.
at time 27: Consumer B received message: Generator A says hello at 27.
at time 34: Consumer A received message: Generator A says hello at 34.
at time 34: Consumer B received message: Generator A says hello at 34.
at time 40: Consumer A received message: Generator A says hello at 40.
LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40
at time 46: Consumer A received message: Generator A says hello at 46.
LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46
at time 56: Consumer A received message: Generator A says hello at 56.
at time 56: Consumer B received message: Generator A says hello at 56.
at time 65: Consumer A received message: Generator A says hello at 65.
at time 65: Consumer B received message: Generator A says hello at 65.
at time 74: Consumer A received message: Generator A says hello at 74.
at time 74: Consumer B received message: Generator A says hello at 74.
at time 82: Consumer A received message: Generator A says hello at 82.
at time 82: Consumer B received message: Generator A says hello at 82.
at time 92: Consumer A received message: Generator A says hello at 92.
at time 92: Consumer B received message: Generator A says hello at 92.
at time 98: Consumer B received message: Generator A says hello at 98.
at time 98: Consumer A received message: Generator A says hello at 98.

Event Latency

Covers:

  • Resources: Store

This example shows how to separate the time delay of events between processes from the processes themselves.

When Useful:

When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.

Can also be used to interconnect processes sending messages

Example by:
Keith Smith
"""
Event Latency example

Covers:

- Resources: Store

Scenario:
  This example shows how to separate the time delay of events between
  processes from the processes themselves.

When Useful:
  When modeling physical things such as cables, RF propagation, etc.  it
  better encapsulation to keep this propagation mechanism outside of the
  sending and receiving processes.

  Can also be used to interconnect processes sending messages

Example by:
  Keith Smith

"""
import simpy


SIM_DURATION = 100


class Cable(object):
    """This class represents the propagation through a cable."""
    def __init__(self, env, delay):
        self.env = env
        self.delay = delay
        self.store = simpy.Store(env)

    def latency(self, value):
        yield self.env.timeout(self.delay)
        self.store.put(value)

    def put(self, value):
        self.env.process(self.latency(value))

    def get(self):
        return self.store.get()


def sender(env, cable):
    """A process which randomly generates messages."""
    while True:
        # wait for next transmission
        yield env.timeout(5)
        cable.put('Sender sent this at %d' % env.now)


def receiver(env, cable):
    """A process which consumes messages."""
    while True:
        # Get event for message pipe
        msg = yield cable.get()
        print('Received this at %d while %s' % (env.now, msg))


# Setup and start the simulation
print('Event Latency')
env = simpy.Environment()

cable = Cable(env, 10)
env.process(sender(env, cable))
env.process(receiver(env, cable))

env.run(until=SIM_DURATION)

The simulation’s output:

Event Latency
Received this at 15 while Sender sent this at 5
Received this at 20 while Sender sent this at 10
Received this at 25 while Sender sent this at 15
Received this at 30 while Sender sent this at 20
Received this at 35 while Sender sent this at 25
Received this at 40 while Sender sent this at 30
Received this at 45 while Sender sent this at 35
Received this at 50 while Sender sent this at 40
Received this at 55 while Sender sent this at 45
Received this at 60 while Sender sent this at 50
Received this at 65 while Sender sent this at 55
Received this at 70 while Sender sent this at 60
Received this at 75 while Sender sent this at 65
Received this at 80 while Sender sent this at 70
Received this at 85 while Sender sent this at 75
Received this at 90 while Sender sent this at 80
Received this at 95 while Sender sent this at 85

You have ideas for better examples? Please send them to our mainling list or make a pull request on bitbucket.

API Reference

The API reference provides detailed descriptions of SimPy’s classes and functions. It should be helpful if you plan to extend Simpy with custom components.

simpy — The end user API

The simpy module provides SimPy’s end-user API. It aggregates Simpy’s most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.

Core classes and functions

  • Environment: SimPy’s central class. It contains the simulation’s state and lets the PEMs interact with it (i.e., schedule events).
  • Interrupt: This exception is thrown into a process if it gets interrupted by another one.

Resources

  • Container: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).
  • Store: Allows the production and consumption of discrete Python objects.
  • FilterStore: Like Store, but items taken out of it can be filtered with a user-defined function.

Monitoring

[Not yet implemented]

Other

simpy.test()

Runs SimPy’s test suite via py.test.

simpy.core — SimPy’s core components

This module contains the implementation of SimPy’s core classes. The most important ones are directly importable via simpy.

class simpy.core.BaseEnvironment

The abstract definition of an environment.

An implementation must at least provide the means to access the current time of the environment (see now) and to schedule (see schedule()) as well as execute (see step() and run()) events.

The class is meant to be subclassed for different execution environments. For example, SimPy defines a Environment for simulations with a virtual time and and a RealtimeEnvironment that schedules and executes events in real (e.g., wallclock) time.

now

The current time of the environment.

active_process

The currently active process of the environment.

schedule(event, priority=1, delay=0)

Schedule an event with a given priority and a delay.

There are two default priority values, URGENT and NORMAL.

step()

Process the next event.

run(until=None)

Executes step() until the given criterion until is met.

  • If it is None (which is the default) this method will return if there are no further events to be processed.
  • If it is an Event the method will continue stepping until this event has been triggered and will return its value.
  • If it can be converted to a number the method will continue stepping until the environment’s time reaches until.
class simpy.core.Environment(initial_time=0)

Inherits BaseEnvironment and implements a simulation environment which simulates the passing of time by stepping from event to event.

You can provide an initial_time for the environment. By defaults, it starts at 0.

This class also provides aliases for common event types, for example process, timeout and event.

now

The current simulation time.

active_process

The currently active process of the environment.

process(generator)

Create a new Process instance for generator.

timeout(delay, value=None)

Return a new Timeout event with a delay and, optionally, a value.

event()

Return a new Event instance. Yielding this event suspends a process until another process triggers the event.

all_of(events)

Return a new AllOf condition for a list of events.

any_of(events)

Return a new AnyOf condition for a list of events.

exit(value=None)

Convenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a value.

Note

From Python 3.3, you can use return value instead.

schedule(event, priority=1, delay=0)

Schedule an event with a given priority and a delay.

peek()

Get the time of the next scheduled event. Return Infinity if there is no further event.

step()

Process the next event.

Raise an EmptySchedule if no further events are available.

run(until=None)

Executes step() until the given criterion until is met.

  • If it is None (which is the default) this method will return if there are no further events to be processed.
  • If it is an Event the method will continue stepping until this event has been triggered and will return its value.
  • If it can be converted to a number the method will continue stepping until the environment’s time reaches until.
class simpy.core.BoundClass(cls)

Allows classes to behave like methods.

The __get__() descriptor is basically identical to function.__get__() and binds the first argument of the cls to the descriptor instance.

static bind_early(instance)

Bind all BoundClass attributes of the instance’s class to the instance itself to increase performance.

class simpy.core.EmptySchedule

Thrown by the Environment if there are no further events to be processed.

simpy.core.Infinity = inf

Convenience alias for infinity

simpy.events — Core event types

This events module contains the various event type used by the SimPy core.

The base class for all events is Event. Though it can be directly used, there are several specialized subclasses of it:

  • Timeout: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.
  • Initialize: Initializes a new Process.
  • Process: Processes are also modeled as an event so other processes can wait until another one finishes.
  • Condition: Events can be concatenated with | an & to either wait until one or both of the events are triggered.
  • AllOf: Special case of Condition; wait until a list of events has been triggered.
  • AnyOf: Special case of Condition; wait until one of a list of events has been triggered.

This module also defines the Interrupt exception.

simpy.events.PENDING = <object object at 0x7fa52f6103e0>

Unique object to identify pending values of events.

simpy.events.URGENT = 0

Priority of interrupts and process initialization events.

simpy.events.NORMAL = 1

Default priority used by events.

class simpy.events.Event(env)

Base class for all events.

Every event is bound to an environment env (see BaseEnvironment) and has an optional value.

An event has a list of callbacks. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals—you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.

This class also implements __and__() (&) and __or__() (|). If you concatenate two events using one of these operators, a Condition event is generated that lets you wait for both or one of them.

env = None

The Environment the event lives in.

callbacks = None

List of functions that are called when the event is processed.

triggered

Becomes True if the event has been triggered and its callbacks are about to be invoked.

processed

Becomes True if the event has been processed (e.g., its callbacks have been invoked).

value

The value of the event if it is available.

The value is available when the event has been triggered.

Raise a AttributeError if the value is not yet available.

trigger(event)

Triggers the event with the state and value of the provided event.

This method can be used directly as a callback function.

succeed(value=None)

Schedule the event and mark it as successful. Return the event instance.

You can optionally pass an arbitrary value that will be sent into processes waiting for that event.

Raise a RuntimeError if this event has already been scheduled.

fail(exception)

Schedule the event and mark it as failed. Return the event instance.

The exception will be thrown into processes waiting for that event.

Raise a ValueError if exception is not an Exception.

Raise a RuntimeError if this event has already been scheduled.

class simpy.events.Timeout(env, delay, value=None)

An Event that is scheduled with a certain delay after its creation.

This event can be used by processes to wait (or hold their state) for delay time steps. It is immediately scheduled at env.now + delay and has thus (in contrast to Event) no success() or fail() method.

class simpy.events.Initialize(env, process)

Initializes a process. Only used internally by Process.

class simpy.events.Process(env, generator)

A Process is a wrapper for the process generator (that is returned by a process function) during its execution.

It also contains internal and external status information and is used for process interaction, e.g., for interrupts.

Process inherits Event. You can thus wait for the termination of a process by simply yielding it from your process function.

An instance of this class is returned by simpy.core.Environment.process().

target

The event that the process is currently waiting for.

May be None if the process was just started or interrupted and did not yet yield a new event.

is_alive

True until the process generator exits.

interrupt(cause=None)

Interupt this process optionally providing a cause.

A process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a RuntimeError in these cases.

class simpy.events.Condition(env, evaluate, events)

A Condition Event groups several events and is triggered if a given condition (implemented by the evaluate function) becomes true.

The value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.

If one of the events fails, the condition also fails and forwards the exception of the failing event.

The evaluate function receives the list of target events and the dictionary with all values currently available. If it returns True, the condition is scheduled. The Condition.all_events() and Condition.any_events() functions are used to implement and (&) and or (|) for events.

Conditions events can be nested.

static all_events(events, values)

A condition function that returns True if all events have been triggered.

static any_events(events, values)

A condition function that returns True if at least one of events has been triggered.

class simpy.events.AllOf(env, events)

A Condition event that waits for all events.

class simpy.events.AnyOf(env, events)

A Condition event that waits until the first of events is triggered.

exception simpy.events.Interrupt(cause)

This exceptions is sent into a process if it was interrupted by another process (see Process.interrupt()).

cause may be none if no cause was explicitly passed to Process.interrupt().

An interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.

If a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.

cause

The cause of the interrupt or None if no cause was provided.

simpy.monitoring — Monitor SimPy simulations

SimPy’s monitoring capabilities will be added in version 3.1.

simpy.resources — SimPy’s built-in resource types

SimPy defines three kinds of resources with one or more concrete resource types each:

  • resource: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).
  • container: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).
  • store: Resources that allow the production and consumption of discrete Python objects.

The base module defines the base classes that are used by all resource types.

simpy.resources.base — Base classes for all resources

This module contains the base classes for Simpy’s resource system.

BaseResource defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. Put and Get are the base event types for this.

class simpy.resources.base.BaseResource(env)

This is the abstract base class for all SimPy resources.

All resources are bound to a specific Environment env.

You can put() something into the resources or get() something out of it. Both methods return an event that the requesting process has to yield.

If a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.

If a resources is too full or too empty to perform a put or get request, the event is pushed to the put_queue or get_queue. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.

put() and get() only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in _do_put() and _do_get().

PutQueue

The type to be used for the put_queue. This can either be a plain list (default) or a subclass of it.

alias of list

GetQueue

The type to be used for the get_queue. This can either be a plain list (default) or a subclass of it.

alias of list

put_queue = None

Queue/list of events waiting to get something out of the resource.

get_queue = None

Queue/list of events waiting to put something into the resource.

put

Create a new Put event.

alias of Put

get

Create a new Get event.

alias of Get

_do_put(event)

Actually perform the put operation.

This methods needs to be implemented by subclasses. It receives the put_event that is created at each request and doesn’t need to return anything.

_trigger_put(get_event)

Trigger pending put events after a get event has been executed.

_do_get(event)

Actually perform the get operation.

This methods needs to be implemented by subclasses. It receives the get_event that is created at each request and doesn’t need to return anything.

_trigger_get(put_event)

Trigger pending get events after a put event has been executed.

class simpy.resources.base.Put(resource)

The base class for all put events.

It receives the resource that created the event.

This event (and all of its subclasses) can act as context manager and can be used with the with statement to automatically cancel a put request if an exception or an simpy.events.Interrupt occurs:

with res.put(item) as request:
    yield request

It is not used directly by any resource, but rather sub-classed for each type.

cancel(exc_type, exc_value, traceback)

Cancel the current put request.

This method has to be called if a process received an Interrupt or an exception while yielding this event and is not going to yield this event again.

If the event was created in a with statement, this method is called automatically.

class simpy.resources.base.Get(resource)

The base class for all get events.

It receives the resource that created the event.

This event (and all of its subclasses) can act as context manager and can be used with the with statement to automatically cancel a get request if an exception or an simpy.events.Interrupt occurs:

with res.get() as request:
    yield request

It is not used directly by any resource, but rather sub-classed for each type.

cancel(exc_type, exc_value, traceback)

Cancel the current get request.

This method has to be called if a process received an Interrupt or an exception while yielding this event and is not going to yield this event again.

If the event was created in a with statement, this method is called automatically.

simpy.resources.container — Container type resources

This module contains all Container like resources.

Containers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).

For example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station’s storage tanks.

class simpy.resources.container.Container(env, capacity, init=0)

Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).

The env parameter is the Environment instance the container is bound to.

The capacity defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via init. It must be >= 0 and is 0 by default.

Raise a ValueError if capacity <= 0, init < 0 or init > capacity.

capacity

The maximum capacity of the container.

level

The current level of the container (a number between 0 and capacity).

put

Creates a new ContainerPut event.

alias of ContainerPut

get

Creates a new ContainerGet event.

alias of ContainerGet

class simpy.resources.container.ContainerPut(container, amount)

An event that puts amount into the container. The event is triggered as soon as there’s enough space in the container.

Raise a ValueError if amount <= 0.

amount = None

The amount to be put into the container.

class simpy.resources.container.ContainerGet(resource, amount)

An event that gets amount from the container. The event is triggered as soon as there’s enough content available in the container.

Raise a ValueError if amount <= 0.

amount = None

The amount to be taken out of the container.

simpy.resources.resource – Resource type resources

This module contains all Resource like resources.

These resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes request these resources to become a user (or to own them) and have to release them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).

Requesting a resources is modeled as “putting a process’ token into the resources” and releasing a resources correspondingly as “getting a process’ token out of the resource”. Thus, calling request()/release() is equivalent to calling put()/get(). Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.

Beside Resource, there are a PriorityResource, were processes can define a request priority, and a PreemptiveResource whose resource users can be preempted by other processes with a higher priority.

class simpy.resources.resource.Resource(env, capacity=1)

A resource has a limited number of slots that can be requested by a process.

If all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.

The env parameter is the Environment instance the resource is bound to.

The capacity defines the number of slots and must be a positive integer.

users = None

List of Request events for the processes that are currently using the resource.

queue = None

Queue/list of pending Request events that represent processes waiting to use the resource.

capacity

Maximum capacity of the resource.

count

Number of users currently using the resource.

request

Create a new Request event.

alias of Request

release

Create a new Release event.

alias of Release

class simpy.resources.resource.PriorityResource(env, capacity=1)

This class works like Resource, but requests are sorted by priority.

The queue is kept sorted by priority in ascending order (a lower value for priority results in a higher priority), so more important request will get the resource earlier.

PutQueue

The type to be used for the put_queue.

alias of SortedQueue

GetQueue

The type to be used for the get_queue.

alias of list

request

Create a new PriorityRequest event.

alias of PriorityRequest

class simpy.resources.resource.PreemptiveResource(env, capacity=1)

This resource mostly works like Resource, but users of the resource can be preempted by higher prioritized requests.

Furthermore, the queue of requests is also sorted by priority.

If a less important request is preempted, the process of that request will receive an Interrupt with a Preempted instance as cause.

class simpy.resources.resource.Preempted(by, usage_since)
by = None

The preempting simpy.events.Process.

usage_since = None

The simulation time at which the preempted process started to use the resource.

class simpy.resources.resource.Request(resource)

Request access on the resource. The event is triggered once access is granted.

If the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.

The request is automatically released when the request was created within a with statement.

class simpy.resources.resource.Release(resource, request)

Releases the access privilege to resource granted by request. This event is triggered immediately.

If there’s another process waiting for the resource, resume it.

If the request was made in a with statement (e.g., with res.request() as req:), this method is automatically called when the with block is left.

request = None

The request (Request) that is to be released.

class simpy.resources.resource.PriorityRequest(resource, priority=0, preempt=True)

Request the resource with a given priority. If the resource supports preemption and preempted is true other processes with access to the resource may be preempted (see PreemptiveResource for details).

This event type inherits Request and adds some additional attributes needed by PriorityResource and PreemptiveResource

priority = None

The priority of this request. A smaller number means higher priority.

preempt = None

Indicates whether the request should preempt a resource user or not (this flag is not taken into account by PriorityResource).

time = None

The time at which the request was made.

key = None

Key for sorting events. Consists of the priority (lower value is more important) and the time at witch the request was made (earlier requests are more important).

class simpy.resources.resource.SortedQueue(maxlen=None)

Queue that sorts events by their key attribute.

maxlen = None

Maximum length of the queue.

append(item)

Append item to the queue and keep the queue sorted.

Raise a RuntimeError if the queue is full.

simpy.resources.store — Store type resources

This module contains all Store like resources.

Stores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.

Beside Store, there is a FilterStore that lets you use a custom function to filter the objects you get out of the store.

class simpy.resources.store.Store(env, capacity=1)

Models the production and consumption of concrete Python objects.

Items put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.

The env parameter is the Environment instance the container is bound to.

The capacity defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A ValueError is raised if the value is negative.

items = None

List of the items within the store.

capacity

The maximum capacity of the store.

put

Create a new StorePut event.

alias of StorePut

get

Create a new StoreGet event.

alias of StoreGet

class simpy.resources.store.FilterStore(env, capacity=1)

The FilterStore subclasses Store and allows you to only get items that match a user-defined criteria.

This criteria is defined via a filter function that is passed to get(). get() only considers items for which this function returns True.

Note

In contrast to Store, processes trying to get an item from FilterStore won’t necessarily be processed in the same order that they made the request.

Example: The store is empty. Process 1 tries to get an item of type a, Process 2 an item of type b. Another process puts one item of type b into the store. Though Process 2 made his request after Process 1, it will receive that new item because Process 1 doesn’t want it.

GetQueue

The type to be used for the get_queue.

alias of FilterQueue

get

Create a new FilterStoreGet event.

alias of FilterStoreGet

class simpy.resources.store.StorePut(resource, item)

Put item into the store if possible or wait until it is.

item = None

The item to put into the store.

class simpy.resources.store.StoreGet(resource)

Get an item from the store or wait until one is available.

class simpy.resources.store.FilterStoreGet(resource, filter=lambda item: True)

Get an item from the store for which filter returns True. This event is triggered once such an event is available.

The default filter function returns True for all items, and thus this event exactly behaves like StoreGet.

filter = None

The filter function to use.

class simpy.resources.store.FilterQueue

The queue inherits list and modifies __getitem__() and __bool__() to appears to only contain events for which the store‘s item queue contains proper item.

__getitem__(key)

Get the keyth event from all events that have an item available in the corresponding store’s item queue.

__bool__()

Return True if the queue contains an event for which an item is available in the corresponding store’s item queue.

__nonzero__()

Provided for backwards compatability: __bool__() is only used from Python 3 onwards.

simpy.rt — Real-time simulations

Provides an environment whose time passes according to the (scaled) real-time (aka wallclock time).

class simpy.rt.RealtimeEnvironment(initial_time=0, factor=1.0, strict=True)

An Environment which uses the real (e.g. wallclock) time.

A time step will take factor seconds of real time (one second by default); e.g., if you step from 0 until 3 with factor=0.5, the simpy.core.BaseEnvironment.run() call will take at least 1.5 seconds.

If the processing of the events for a time step takes too long, a RuntimeError is raised in step(). You can disable this behavior by setting strict to False.

factor = None

Scaling factor of the real-time.

strict = None

Running mode of the environment. step() will raise a RuntimeError if this is set to True and the processing of events takes too long.

step()

Waits until enough real-time has passed for the next event to happen.

The delay is scaled according to the real-time factor. If the events of a time step are processed too slowly for the given factor and if strict is enabled, a RuntimeError is raised.

simpy.util — Utility functions for SimPy

This modules contains various utility functions:

simpy.util.start_delayed(env, generator, delay)

Return a helper process that starts another process for generator after a certain delay.

process() starts a process at the current simulation time. This helper allows you to start a process after a delay of delay simulation time units:

>>> from simpy import Environment
>>> from simpy.util import start_delayed
>>> def my_process(env, x):
...     print('%s, %s' % (env.now, x))
...     yield env.timeout(1)
...
>>> env = Environment()
>>> proc = start_delayed(env, my_process(env, 3), 5)
>>> env.run()
5, 3

Raise a ValueError if delay <= 0.

simpy.util.subscribe_at(event)

Register at the event to receive an interrupt when it occurs.

The most common use case for this is to pass a Process to get notified when it terminates.

Raise a RuntimeError if event has already occurred.

About SimPy

This sections is all about the non-technical stuff. How did SimPy evolve? Who was responsible for it? And what the heck were they tinking when they made it?

SimPy History & Change Log

SimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).

SimPy was based on efficient implementation of co-routines using Python’s generators capability.

SimPy 3 introduced a completely new and easier-to-use API, but still relied on Python’s generators as they proved to work very well.

The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.

3.0 – 2013-10-11

SimPy 3 has been completely rewritten from scratch. Our main goals were to simplify the API and code base as well as making SimPy more flexible and extensible. Some of the most important changes are:

  • Stronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a timeout (formerly known as hold), but even processes are now events, too (you can wait until a process terminates).
  • Events can be combined with & (and) and | (or) to create condition events.
  • Process can now be defined by any generator function. You don’t have to subclass Process anymore.
  • No more global simulation state. Every simulation stores its state in an environment which is comparable to the old Simulation class.
  • Improved resource system with newly added resource types.
  • Removed plotting and GUI capabilities. Pyside and matplotlib are much better with this.
  • Greatly improved test suite. Its cleaner, and the tests are shorter and more numerous.
  • Completely overhauled documentation.

There is a guide for porting from SimPy 2 to SimPy 3. If you want to stick to SimPy 2 for a while, change your requirements to 'SimPy>=2.3,<3'.

All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.

You can find information about older versions on the history page

2.3.1 – 2012-01-28

  • [NEW] More improvements on the documentation.
  • [FIX] Syntax error in tkconsole.py when installing on Py3.2.
  • [FIX] Added mock to the dep. list in SimPy.test().

2.3 – 2011-12-24

  • [NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.
  • [NEW] SimPy.test() method to run the tests on the installed version of SimPy.
  • [NEW] Tutorials/examples were integrated into the test suite.
  • [CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).
  • [CHANGE] Many documentation improvements.

2.2 – 2011-09-27

  • [CHANGE] Restructured package layout to be conform to the Hitchhiker’s Guide to packaging
  • [CHANGE] Tests have been ported to pytest.
  • [CHANGE] Documentation improvements and clean-ups.
  • [FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.

2.1 – 2010-06-03

  • [NEW] A function step has been added to the API. When called, it executes the next scheduled event. (step is actually a method of Simulation.)
  • [NEW] Another new function is peek. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.
  • [NEW] A simple interactive debugger stepping.py has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.
  • [NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.
  • [NEW] A new document describes tools for gaining insight into and debugging SimPy models.
  • [CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.
  • [CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.
  • [CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.
  • [CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.
  • [FIX] Functions allEventNotices and allEventTimes are working again.
  • [FIX] Error messages for methods in SimPy.Lib work again.

2.0.1 – 2009-04-06

  • [NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).
  • [FIX] Repaired a number of coding errors in several models in the SimPyModels folder.
  • [FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.
  • [FIX] Repaired errors in sample programs in documents:
    • Simulation with SimPy - In Depth Manual
    • SimPy’s Object Oriented API Manual
    • Simulation With Real Time Synchronization Manual
    • SimPlot Manual
    • Publication-quality Plot Production With Matplotlib Manual

2.0.0 – 2009-01-26

This is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.

API changes

In addition to its existing API, SimPy now also has an object oriented API. The additional API

  • allows running SimPy in parallel on multiple processors or multi-core CPUs,
  • supports better structuring of SimPy programs,
  • allows subclassing of class Simulation and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, and
  • reduces the total amount of SimPy code, thereby making it easier to maintain.

Note that the OO API is in addition to the old API. SimPy 2.0 is fully backward compatible.

Documentation format changes

SimPy’s documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.

March 2008: Version 1.9.1

This is a bug-fix release which cures the following bugs:

  • Excessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.
  • Runtime error for preempts of proceeses holding multiple Resource objects.

It also adds a Short Manual, describing only the basic facilities of SimPy.

December 2007: Version 1.9

This is a major release with added functionality/new user API calls and bug fixes.

Major changes
  • The event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the ‘heapq’ sorting package replaces ‘bisect’. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux’ idea!
  • The Manual has been edited and given an easier-to-read layout.
  • The Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.
Bug fixes
  • The tracing of ‘activate’ statements has been enabled.
Additions
  • A method returning the time-weighted variance of observations has been added to classes Monitor and Tally.
  • A shortcut activation method called “start” has been added to class Process.

January 2007: Version 1.8

Major Changes
  • SimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.
  • The Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.
  • The Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.
  • The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable ‘version’.
  • The __str__ method of Histogram was changed to return a table format.
Bug fixes
  • Repaired a bug in yield waituntil runtime code.
  • Introduced check for capacity parameter of a Level or a Store being a number > 0.
  • Added code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).
  • Repaired a bug in prettyprinting of Store objects.
Additions
  • New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.
  • yield get on a Store instance can now have a filter function.
  • All Monitor and Tally instances are automatically registered in list allMonitors and allTallies, respectively.
  • The new function startCollection allows activation of Monitors and Tallies at a specified time.
  • A printHistogram method was added to Tally and Monitor which generates a table-form histogram.
  • In SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.

June 2006: Version 1.7.1

This is a maintenance release. The API has not been changed/added to.

  • Repair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).
  • Repair of Level __init__ method to allow initialBuffered to be of either float or int type.
  • Addition of type test for Level get parameter ‘nrToGet’ to limit it to positive int or float.
  • To improve pretty-printed output of ‘Level’ objects, changed attribute ‘_nrBuffered’ to ‘nrBuffered’ (synonym for ‘amount’ property).
  • To improve pretty-printed output of ‘Store’ objects, added attribute ‘buffered’ (which refers to ‘_theBuffer’ attribute).

February 2006: Version 1.7

This is a major release.

  • Addition of an abstract class Buffer, with two sub-classes Store and Level Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.
  • Addition of two new yield statements:
    • yield put for putting items into a buffer, and
    • yield get for getting items from a buffer.
  • The Manual has undergone a major re-write/edit.
  • All scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all import statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.

September 2005: Version 1.6.1

This is a minor release.

  • Addition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.
  • Change of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).
  • Addition of function setHistogram to class Monitor for initializing histograms.
  • New function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.
  • Addition of function allEventTimes (returns event times of all scheduled events).

15 June 2005: Version 1.6

  • Addition of two compound yield statement forms to support the modelling of processes reneging from resource queues.
  • Addition of two test/demo files showing the use of the new reneging statements.
  • Addition of test for prior simulation initialization in method activate().
  • Repair of bug in monitoring thw waitQ of a resource when preemption occurs.
  • Major restructuring/editing to Manual and Cheatsheet.

1 February 2005: Version 1.5.1

  • MAJOR LICENSE CHANGE:

    Starting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.

  • Minor re-release

  • No additional/changed functionality

  • Includes unit test file’MonitorTest.py’ which had been accidentally deleted from 1.5

  • Provides updated version of ‘Bank.html’ tutorial.

  • Provides an additional tutorial (‘Bank2.html’) which shows how to use the new synchronization constructs introduced in SimPy 1.5.

  • More logical, cleaner version numbering in files.

1 December 2004: Version 1.5

  • No new functionality/API changes relative to 1.5 alpha
  • Repaired bug related to waiting/queuing for multiple events
  • SimulationRT: Improved synchronization with wallclock time on Unix/Linux

25 September 2004: Version 1.5alpha

  • New functionality/API additions

    • SimEvents and signalling synchronization constructs, with ‘yield waitevent’ and ‘yield queueevent’ commands.
    • A general “wait until” synchronization construct, with the ‘yield waituntil’ command.
  • No changes to 1.4.x API, i.e., existing code will work as before.

19 May 2004: Version 1.4.2

  • Sub-release to repair two bugs:

    • The unittest for monitored Resource queues does not fail anymore.
    • SimulationTrace now works correctly with “yield hold,self” form.
  • No functional or API changes

29 February 2004: Version 1.4.1

  • Sub-release to repair two bugs:

    • The (optional) monitoring of the activeQ in Resource now works correctly.
    • The “cellphone.py” example is now implemented correctly.
  • No functional or API changes

1 February 2004: Version 1.4

  • Released on SourceForge.net

22 December 2003: Version 1.4 alpha

  • New functionality/API changes

    • All classes in the SimPy API are now new style classes, i.e., they inherit from object either directly or indirectly.
    • Module Monitor.py has been merged into module Simulation.py and all SimulationXXX.py modules. Import of Simulation or any SimulationXXX module now also imports Monitor.
    • Some Monitor methods/attributes have changed. See Manual!
    • Monitor now inherits from list.
    • A class Histogram has been added to Simulation.py and all SimulationXXX.py modules.
    • A module SimulationRT has been added which allows synchronization between simulated and wallclock time.
    • A moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.
    • A Tk/Tkinter-based module SimGUI has been added which provides a SimPy GUI framework.
    • A Tk/Tkinter-based module SimPlot has been added which provides for plot output from SimPy programs.

22 June 2003: Version 1.3

  • No functional or API changes
  • Reduction of sourcecode linelength in Simulation.py to <= 80 characters

June 2003: Version 1.3 alpha

  • Significantly improved performance

  • Significant increase in number of quasi-parallel processes SimPy can handle

  • New functionality/API changes:

    • Addition of SimulationTrace, an event trace utility
    • Addition of Lister, a prettyprinter for instance attributes
    • No API changes
  • Internal changes:

    • Implementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!
  • Update of Manual to address tracing.

  • Update of Interfacing doc to address output visualization using Scientific Python gplt package.

29 April 2003: Version 1.2

  • No changes in API.

  • Internal changes:
    • Defined “True” and “False” in Simulation.py to support Python 2.2.

22 October 2002

  • Re-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.
  • No code changes whatever!

18 October 2002

  • Version 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.

  • More models

  • Documentation enhanced by a manual, a tutorial (“The Bank”) and installation instructions.

  • Major changes to the API:

    • Introduced ‘simulate(until=0)’ instead of ‘scheduler(till=0)’. Left ‘scheduler()’ in for backward compatibility, but marked as deprecated.

    • Added attribute “name” to class Process. Process constructor is now:

      def __init__(self,name="a_process")
      

      Backward compatible if keyword parameters used.

    • Changed Resource constructor to:

      def __init__(self,capacity=1,name="a_resource",unitName="units")
      

      Backward compatible if keyword parameters used.

27 September 2002

  • Version 0.2 Alpha-release, intended to attract feedback from users
  • Extended list of models
  • Upodated documentation

17 September 2002

  • Version 0.1.2 published on SourceForge; fully working, pre-alpha code
  • Implements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.
  • Contains basic documentation (cheatsheet) and simulation models for test and demonstration.

Acknowledgments

SimPy 2 has been primarily developed by Stefan Scherfke and Ontje Lünsdorf, starting from SimPy 1.9. Their work has resulted in a most elegant combination of an object oriented API with the existing API, maintaining full backward compatibility. It has been quite easy to integrate their product into the existing SimPy code and documentation environment.

Thanks, guys, for this great job! SimPy 2.0 is dedicated to you!

SimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.

Thanks, guys, for this great job! SimPy 3.0 is dedicated to you!

The many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.

Defense of Design

This document explains why SimPy is designed the way it is and how its design evolved over time.

Original Design of SimPy 1

SimPy 1 was heavily inspired by Simula 67 and Simscript. The basic entity of the framework was a process. A process described a temporal sequence of actions.

In SimPy 1, you implemented a process by sub-classing Process. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn’t of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the process execution method (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.

The simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from Process and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.

SimPy 1 also followed the “batteries included” approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations (“normal”, real-time, manual stepping, with tracing).

The following code fragment shows how a simple simulation could be implemented in SimPy 1:

from SimPy.Simulation import Process, hold, initialize, activate, simulate

class MyProcess(Process):
    def pem(self, repeat):
        for i in range(repeat):
            yield hold, self, 1

initialize()
proc = MyProcess()
activate(proc, proc.pem(3))
simulate(until=10)



sim = Simulation()
proc = MyProcess(sim=sim)
sim.activate(proc, proc.pem(3))
sim.simulate(until=10)

Changes in SimPy 2

Simpy 2 mostly sticked with Simpy 1’s design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the Simulation instance into your process to “bind” them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2’s OO-API looked like this:

from SimPy.Simulation import Simulation, Process, hold

class MyProcess(Process):
    def pem(self, repeat):
        for i in range(repeat):
            yield hold, self, 1

sim = Simulation()
proc = MyProcess(sim=sim)
sim.activate(proc, proc.pem(3))
sim.simulate(until=10)

Changes and Decisions in SimPy 3

The original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn’t expect the API changes to become as extensive as they ended up to be.

We also removed some of the included batteries, namely SimPy’s plotting and GUI capabilities, since dedicated libraries like matplotlib or PySide do a much better job here.

However, by far the most changes are—from the end user’s view—mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing yield hold, self, 1 with yield env.timeout(1)).

In short, the most notable changes in SimPy 3 are:

  • No more sub-classing of Process required. PEMs can even be simple module level functions.
  • The simulation state is now stored in an Environment which can also be used by a PEM to interact with the simulation.
  • PEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.

These changes are causing the above example to now look like this:

from simpy import Environment, simulate

def pem(env, repeat):
    for i in range(repeat):
        yield env.timeout(i)

env = Environment()
env.process(pem(env, 7))
simulate(env, until=10)

The following sections describe these changes in detail:

No More Sub-classing of Process

In Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The Process class still exists, but you don’t need to instantiate it by yourself, though. More on that later.

Processes Live in an Environment

Process and simulation state are decoupled. An Environment holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the Process or Environment class without affecting other components.

For the same reason, the simulate() method now is a module level function that takes an environment to simulate.

Stronger Focus on Events

In former versions, PEMs needed to yield one of SimPy’s built-in keywords (like hold) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the Simulation and Process making it very hard to extend SimPy with new functionality.

In Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a BaseEvent. Most events are generated by factory methods of Environment. For example, Environment.timeout() creates a Timeout event that replaces the hold keyword.

The Process is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were “washing” is a process that the car processes can wait for once they enter the washing station.

Creating Events via the Environment or Resources

The Environment and resources have methods to create new events, e.g. Environment.timeout() or Resource.request(). Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:

def event(self):
    return Event()

To simplify things, we wanted to use the event classes directly as methods:

class Environment(object)
    event = Event

This was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a BoundClass:

class BoundClass(object):
    """Allows classes to behave like methods. The ``__get__()`` descriptor
    is basically identical to ``function.__get__()`` and binds the first
    argument of the ``cls`` to the descriptor instance.

    """
    def __init__(self, cls):
        self.cls = cls

    def __get__(self, obj, type=None):
        if obj is None:
            return self.cls
        return types.MethodType(self.cls, obj)


class Environment(object):
    event = BoundClass(Event)

These methods are called a lot, so we added the event classes as types.MethodType to the instance of Environment (or the resources, respectively):

class Environment(object):
    def __init__(self):
        self.event = types.MethodType(Event, self)

It turned out the the class attributes (the BoundClass instances) were now quite useless, so we removed them allthough it was actually the “right” way to to add classes as methods to another class.

Release Process

This process describes the steps to execute in order to release a new version of SimPy.

Preparations

  1. Close all tickets for the next version.

  2. Update the minium required versions of dependencies in setup.py. Update the exact version of all entries in requirements.txt.

  3. Run tox from the project root. All tests for all supported versions must pass:

    $ tox
    [...]
    ________ summary ________
    py27: commands succeeded
    py32: commands succeeded
    py33: commands succeeded
    pypy: commands succeeded
    congratulations :)
    

    Note

    Tox will use the requirements.txt to setup the venvs, so make sure you’ve updated it!

  4. Build the docs (HTML is enough). Make sure there are no errors and undefined references.

    $ cd docs/
    $ make clean html
    $ cd ..
    
  5. Check if all authors are listed in AUTHORS.txt.

  6. Update the change logs (CHANGES.txt and docs/about/history.rst). Only keep changes for the current major release in CHANGES.txt and reference the history page from there.

  7. Commit all changes:

    $ hg ci -m 'Updated change log for the upcoming release.'
    
  8. Write a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.

Build and release

  1. Test the release process. Build a source distribution and a wheel package and test them:

    $ python setup.py sdist
    $ python setup.py bdist_wheel
    $ ls dist/
    simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gz
    

    Try installing them:

    $ rm -rf /tmp/simpy-sdist  # ensure clean state if ran repeatedly
    $ virtualenv /tmp/simpy-sdist
    $ /tmp/simpy-sdist/bin/pip install pytest
    $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz
    $ /tmp/simpy-sdist/bin/python
    >>> import simpy
    >>> simpy.__version__  # doctest: +SKIP
    'a.b.c'
    >>> simpy.test()  # doctest: +SKIP
    

    and

    $ rm -rf /tmp/simpy-wheel  # ensure clean state if ran repeatedly
    $ virtualenv /tmp/simpy-wheel
    $ /tmp/simpy-wheel/bin/pip install pytest
    $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy
    $ /tmp/simpy-wheel/bin/python
    >>> import simpy  # doctest: +SKIP
    >>> simpy.__version__  # doctest: +SKIP
    'a.b.c'
    >>> simpy.test()  # doctest: +SKIP
    
  2. Create or check your accounts for the test server <https://testpypi.python.org/pypi> and PyPI. Update your ~/.pypirc with your current credentials:

    [distutils]
    index-servers =
        pypi
        test
    
    [test]
    repository = https://testpypi.python.org/pypi
    username = <your test user name goes here>
    password = <your test password goes here>
    
    [pypi]
    repository = http://pypi.python.org/pypi
    username = <your production user name goes here>
    password = <your production password goes here>
    
  3. Register SimPy with the test server and upload the distributions:

    $ python setup.py register -r test
    $ python setup.py sdist upload -r test
    $ python setup.py bdist_wheel upload -r test
    
  4. Check if the package is displayed correctly: https://testpypi.python.org/pypi/simpy

  5. Test the installation again:

    $ pip install -i https://testpypi.python.org/pypi simpy
    
  6. Update the version number in simpy/__init__.py, commit and create a tag:

    $ hg ci -m 'Bump version from a.b.c to x.y.z'
    $ hg tag x.y.z
    $ hg push ssh://hg@bitbucket.org/simpy/simpy
    
  7. Finally upload the package to PyPI and test its installation one last time:

    $ python setup.py register
    $ python setup.py sdist upload
    $ python setup.py bdist_wheel upload
    $ pip install simpy
    
  8. Check if the package is displayed correctly: https://pypi.python.org/pypi/simpy

Post release

  1. Send the prepared email to the mailing list and post it on Google+.
  2. Update Wikipedia entries.
  3. Update Python Wiki
  4. Post something to Planet Python (e.g., via Stefan’s blog).

License

Indices and tables

Read the Docs v: 3.0
Versions
stable
latest
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK{E&?K?Ksimpy-3.0/index.html Overview — SimPy 3.0 documentation

Welcome

>>> import simpy
>>>
>>> def clock(env, name, tick):
...     while True:
...         print(name, env.now)
...         yield env.timeout(tick)
...
>>> env = simpy.Environment()
>>> env.process(clock(env, 'fast', 0.5))
<Process(clock) object at 0x...>
>>> env.process(clock(env, 'slow', 1))
<Process(clock) object at 0x...>
>>> env.run(until=2)
fast 0
slow 0
fast 0.5
slow 1
fast 1.0
fast 1.5

SimPy is a process-based discrete-event simulation framework based on standard Python. Its event dispatcher is based on Python’s generators and can also be used for asynchronous networking or to implement multi-agent systems (with both, simulated and real communication).

Processes in SimPy are simple Python generator functions and are used to model active components like customers, vehicles or agents. SimPy also provides various types of shared resources to model limited capacity congestion points (like servers, checkout counters and tunnels). From version 3.1, it will also provide monitoring capabilities to aid in gathering statistics about resources and processes.

Simulations can be performed “as fast as possible”, in real time (wall clock time) or by manually stepping through the events.

SimPy is not suited for continuous simulation. And it is overkill for simulations with a fixed step size where your processes don’t interact with each other or with shared resources — use a simple while loop in this case.

The SimPy distribution contains tutorials, in-depth documentation, and a large number of examples.

SimPy is released under the MIT License. Simulation model developers are encouraged to share their SimPy modeling techniques with the SimPy community. Please post a message to the SimPy-Users mailing list.

Documentation

Read the Docs v: 3.0
Versions
stable
latest
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK{Eq$simpy-3.0/.doctrees/contents.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xdocumentation for simpyqNXindices and tablesqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUdocumentation-for-simpyqhUindices-and-tablesquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX</var/build/user_builds/simpy/checkouts/3.0/docs/contents.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'haUnamesq(]q)hauUlineq*KUdocumentq+hh]q,(cdocutils.nodes title q-)q.}q/(hXDocumentation for SimPyq0hhhhhUtitleq1h!}q2(h#]h$]h%]h&]h(]uh*Kh+hh]q3cdocutils.nodes Text q4XDocumentation for SimPyq5q6}q7(hh0hh.ubaubcdocutils.nodes paragraph q8)q9}q:(hX Contents:q;hhhhhU paragraphqh4X Contents:q?q@}qA(hh;hh9ubaubcdocutils.nodes compound qB)qC}qD(hUhhhhhUcompoundqEh!}qF(h#]h$]qGUtoctree-wrapperqHah%]h&]h(]uh*Nh+hh]qIcsphinx.addnodes toctree qJ)qK}qL(hUhhChhhUtoctreeqMh!}qN(UnumberedqOKU includehiddenqPhXcontentsqQU titlesonlyqRUglobqSh&]h%]h#]h$]h(]UentriesqT]qU(X SimPy homeXindexqVqWNXsimpy_intro/indexqXqYNXtopical_guides/indexqZq[NXexamples/indexq\q]NXapi_reference/indexq^q_NX about/indexq`qaeUhiddenqbU includefilesqc]qd(hVhXhZh\h^h`eUmaxdepthqeKuh*Kh]ubaubh)qf}qg(hUhhhhhh h!}qh(h#]h$]h%]h&]qihah(]qjhauh*Kh+hh]qk(h-)ql}qm(hXIndices and tablesqnhhfhhhh1h!}qo(h#]h$]h%]h&]h(]uh*Kh+hh]qph4XIndices and tablesqqqr}qs(hhnhhlubaubcdocutils.nodes bullet_list qt)qu}qv(hUhhfhhhU bullet_listqwh!}qx(UbulletqyX*h&]h%]h#]h$]h(]uh*Kh+hh]qz(cdocutils.nodes list_item q{)q|}q}(hX:ref:`genindex`q~hhuhhhU list_itemqh!}q(h#]h$]h%]h&]h(]uh*Nh+hh]qh8)q}q(hh~hh|hhhhh!h7ubah"h#ubXcontentsq?h)q@}qA(hUh}qB(h]h]h]h]h]uh]qChXDocumentation for SimPyqDqE}qF(hXDocumentation for SimPyqGh!h@ubah"h#ubX about/historyqHh)qI}qJ(hUh}qK(h]h]h]h]h]uh]qLhXSimPy History & Change LogqMqN}qO(hXSimPy History & Change LogqPh!hIubah"h#ubXabout/defense_of_designqQh)qR}qS(hUh}qT(h]h]h]h]h]uh]qUhXDefense of DesignqVqW}qX(hXDefense of DesignqYh!hRubah"h#ubXindexqZh)q[}q\(hUh}q](h]h]h]h]h]uh]q^hX SimPy homeq_q`}qa(hX SimPy homeqbh!h[ubah"h#ubX"topical_guides/porting_from_simpy2qch)qd}qe(hUh}qf(h]h]h]h]h]uh]qghXPorting from SimPy 2 to 3qhqi}qj(hXPorting from SimPy 2 to 3qkh!hdubah"h#ubXapi_reference/simpy.utilqlh)qm}qn(hUh}qo(h]h]h]h]h]uh]qp(cdocutils.nodes literal qq)qr}qs(hX``simpy.util``qth}qu(h]h]h]h]h]uh!hmh]qvhX simpy.utilqwqx}qy(hUh!hrubah"UliteralqzubhX --- Utility functions for SimPyq{q|}q}(hX --- Utility functions for SimPyq~h!hmubeh"h#ubXexamples/process_communicationqh)q}q(hUh}q(h]h]h]h]h]uh]qhXProcess Communicationqq}q(hXProcess Communicationqh!hubah"h#ubX about/licenseqh)q}q(hUh}q(h]h]h]h]h]uh]qhXLicenseqq}q(hXLicenseqh!hubah"h#ubXabout/acknowledgementsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXAcknowledgmentsqq}q(hXAcknowledgmentsqh!hubah"h#ubXexamples/bank_renegeqh)q}q(hUh}q(h]h]h]h]h]uh]qhX Bank Renegeqq}q(hX Bank Renegeqh!hubah"h#ubXsimpy_intro/basic_conceptsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXBasic Conceptsqq}q(hXBasic Conceptsqh!hubah"h#ubXapi_reference/simpy.monitoringqh)q}q(hUh}q(h]h]h]h]h]uh]q(hq)q}q(hX``simpy.monitoring``qh}q(h]h]h]h]h]uh!hh]qhXsimpy.monitoringqq}q(hUh!hubah"hzubhX --- Monitor SimPy simulationsqq}q(hX --- Monitor SimPy simulationsqh!hubeh"h#ubXapi_reference/simpy.eventsqh)q}q(hUh}q(h]h]h]h]h]uh]q(hq)q}q(hX``simpy.events``qh}q(h]h]h]h]h]uh!hh]qhX simpy.eventsqDžq}q(hUh!hubah"hzubhX --- Core event typesqʅq}q(hX --- Core event typesqh!hubeh"h#ubXsimpy_intro/shared_resourcesqh)q}q(hUh}q(h]h]h]h]h]uh]qhXShared ResourcesqӅq}q(hXShared Resourcesqh!hubah"h#ubXexamples/gas_station_refuelqh)q}q(hUh}q(h]h]h]h]h]uh]qhXGas Station Refuelingq܅q}q(hXGas Station Refuelingqh!hubah"h#ubX'api_reference/simpy.resources.containerqh)q}q(hUh}q(h]h]h]h]h]uh]q(hq)q}q(hX``simpy.resources.container``qh}q(h]h]h]h]h]uh!hh]qhXsimpy.resources.containerqꅁq}q(hUh!hubah"hzubhX --- Container type resourcesq텁q}q(hX --- Container type resourcesqh!hubeh"h#ubXapi_reference/simpy.coreqh)q}q(hUh}q(h]h]h]h]h]uh]q(hq)q}q(hX``simpy.core``qh}q(h]h]h]h]h]uh!hh]qhX simpy.coreqq}q(hUh!hubah"hzubhX --- SimPy's core componentsqq}r(hX --- SimPy's core componentsrh!hubeh"h#ubXtopical_guides/indexrh)r}r(hUh}r(h]h]h]h]h]uh]rhXTopical Guidesrr}r (hXTopical Guidesr h!jubah"h#ubXexamples/indexr h)r }r (hUh}r(h]h]h]h]h]uh]rhXExamplesrr}r(hXExamplesrh!j ubah"h#ubXapi_reference/simpyrh)r}r(hUh}r(h]h]h]h]h]uh]r(hq)r}r(hX ``simpy``rh}r(h]h]h]h]h]uh!jh]rhXsimpyrr}r (hUh!jubah"hzubhX --- The end user APIr!r"}r#(hX --- The end user APIr$h!jubeh"h#ubXsimpy_intro/installationr%h)r&}r'(hUh}r((h]h]h]h]h]uh]r)hX Installationr*r+}r,(hX Installationr-h!j&ubah"h#ubXexamples/machine_shopr.h)r/}r0(hUh}r1(h]h]h]h]h]uh]r2hX Machine Shopr3r4}r5(hX Machine Shopr6h!j/ubah"h#ubXapi_reference/indexr7h)r8}r9(hUh}r:(h]h]h]h]h]uh]r;hX API Referencer<r=}r>(hX API Referencer?h!j8ubah"h#ubXabout/release_processr@h)rA}rB(hUh}rC(h]h]h]h]h]uh]rDhXRelease ProcessrErF}rG(hXRelease ProcessrHh!jAubah"h#ubX&api_reference/simpy.resources.resourcerIh)rJ}rK(hUh}rL(h]h]h]h]h]uh]rM(hq)rN}rO(hX``simpy.resources.resource``rPh}rQ(h]h]h]h]h]uh!jJh]rRhXsimpy.resources.resourcerSrT}rU(hUh!jNubah"hzubhX -- Resource type resourcesrVrW}rX(hX -- Resource type resourcesrYh!jJubeh"h#ubXexamples/carwashrZh)r[}r\(hUh}r](h]h]h]h]h]uh]r^hXCarwashr_r`}ra(hXCarwashrbh!j[ubah"h#ubX#api_reference/simpy.resources.storerch)rd}re(hUh}rf(h]h]h]h]h]uh]rg(hq)rh}ri(hX``simpy.resources.store``rjh}rk(h]h]h]h]h]uh!jdh]rlhXsimpy.resources.storermrn}ro(hUh!jhubah"hzubhX --- Store type resourcesrprq}rr(hX --- Store type resourcesrsh!jdubeh"h#ubXexamples/latencyrth)ru}rv(hUh}rw(h]h]h]h]h]uh]rxhX Event Latencyryrz}r{(hX Event Latencyr|h!juubah"h#ubX"api_reference/simpy.resources.baser}h)r~}r(hUh}r(h]h]h]h]h]uh]r(hq)r}r(hX``simpy.resources.base``rh}r(h]h]h]h]h]uh!j~h]rhXsimpy.resources.baserr}r(hUh!jubah"hzubhX# --- Base classes for all resourcesrr}r(hX# --- Base classes for all resourcesrh!j~ubeh"h#ubXapi_reference/simpy.resourcesrh)r}r(hUh}r(h]h]h]h]h]uh]r(hq)r}r(hX``simpy.resources``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.resourcesrr}r(hUh!jubah"hzubhX$ --- SimPy's built-in resource typesrr}r(hX$ --- SimPy's built-in resource typesrh!jubeh"h#ubXsimpy_intro/process_interactionrh)r}r(hUh}r(h]h]h]h]h]uh]rhXProcess Interactionrr}r(hXProcess Interactionrh!jubah"h#ubXapi_reference/simpy.rtrh)r}r(hUh}r(h]h]h]h]h]uh]r(hq)r}r(hX ``simpy.rt``rh}r(h]h]h]h]h]uh!jh]rhXsimpy.rtrr}r(hUh!jubah"hzubhX --- Real-time simulationsrr}r(hX --- Real-time simulationsrh!jubeh"h#ubuU domaindatar}r(Ustdr}r(UversionrKU anonlabelsr}r(UmodindexrU py-modindexUXbasic_conceptsrhUbasic-conceptsrUgenindexrjUXporting_from_simpy2rhcUporting-from-simpy2rUsearchrUsearchUuUlabelsr}r(jU py-modindexUcsphinx.locale _TranslationProxy rcsphinx.locale mygettext rU Module IndexrrjjrbjhjXBasic ConceptsjjUjjUIndexrrjjrbjhcjXPorting from SimPy 2 to 3jjUjjU Search PagerrjjrbuU progoptionsr}rUobjectsr}ruUc}r(j}rjKuUpyr}r(j}r(Xsimpy.core.EnvironmentrhXclassrXsimpy.events.ProcessrhXclassX)simpy.resources.resource.Resource.requestrjIX attributerXsimpy.events.Event.valuerhX attributeXsimpy.core.Environment.nowrhX attributerX#simpy.rt.RealtimeEnvironment.factorrjX attributerXsimpy.events.AllOfrhXclassX*simpy.resources.store.FilterQueue.__bool__rjcXmethodrX simpy.eventsrhUmodulerX0simpy.resources.resource.PriorityRequest.preemptrjIX attributerXsimpy.core.Environment.schedulerhXmethodrXsimpy.events.ConditionrhXclassX'simpy.resources.container.Container.putrhX attributeX.simpy.resources.base.BaseResource._trigger_putrj}XmethodX%simpy.resources.base.BaseResource.putrj}X attributeX(simpy.resources.resource.PriorityRequestrjIXclassrXsimpy.core.Environment.all_ofrhXmethodrXsimpy.resources.store.Store.getrjcX attributerX*simpy.resources.base.BaseResource.GetQueuerj}X attributeXsimpy.resources.base.Put.cancelrj}XmethodX2simpy.resources.resource.PriorityResource.PutQueuerjIX attributerX*simpy.resources.store.FilterStore.GetQueuerjcX attributerX$simpy.resources.resource.SortedQueuerjIXclassrX*simpy.resources.base.BaseResource.PutQueuerj}X attributeXsimpy.resourcesrjjX-simpy.resources.store.FilterQueue.__nonzero__rjcXmethodrXsimpy.resources.baserj}jX%simpy.resources.base.BaseResource.getrj}X attributeX%simpy.core.Environment.active_processrhX attributer X,simpy.resources.container.Container.capacityr hX attributeXsimpy.resources.base.Getr j}XclassXsimpy.core.Environment.processr hXmethodr Xsimpy.events.Event.triggerrhXmethodXsimpy.events.AnyOfrhXclassX$simpy.resources.store.FilterStoreGetrjcXclassrX%simpy.resources.resource.Preempted.byrjIX attributerXsimpy.events.Event.succeedrhXmethodX simpy.resources.resource.ReleaserjIXclassrXsimpy.events.InterruptrhX exceptionXsimpy.events.Interrupt.causerhX attributeX simpy.corerhjX simpy.utilrhljXsimpy.events.Event.envrhX attributeX)simpy.resources.base.BaseResource._do_putrj}XmethodX simpy.resources.resource.RequestrjIXclassrXsimpy.events.Event.callbacksrhX attributeX#simpy.resources.store.StorePut.itemr jcX attributer!X simpy.core.BoundClass.bind_earlyr"hX staticmethodr#Xsimpy.events.NORMALr$hXdataX"simpy.resources.resource.Preemptedr%jIXclassr&Xsimpy.events.Eventr'hXclassXsimpy.core.Environment.any_ofr(hXmethodr)Xsimpy.rtr*jjX!simpy.resources.store.FilterStorer+jcXclassr,X-simpy.resources.container.ContainerPut.amountr-hX attributeX'simpy.resources.resource.Resource.usersr.jIX attributer/X-simpy.resources.container.ContainerGet.amountr0hX attributeX'simpy.resources.resource.Resource.queuer1jIX attributer2Xsimpy.events.URGENTr3hXdataXsimpy.resources.store.StorePutr4jcXclassr5Xsimpy.events.Process.interruptr6hXmethodX+simpy.resources.base.BaseResource.put_queuer7j}X attributeXsimpy.core.BoundClassr8hXclassr9Xsimpy.events.Process.is_aliver:hX attributeX'simpy.resources.resource.Resource.countr;jIX attributer<X!simpy.events.Condition.any_eventsr=hX staticmethodXsimpy.util.subscribe_atr>hlXfunctionr?Xsimpy.resources.resourcer@jIjX#simpy.core.BaseEnvironment.schedulerAhXmethodrBX'simpy.resources.container.Container.getrChX attributeX+simpy.resources.resource.SortedQueue.maxlenrDjIX attributerEXsimpy.core.BaseEnvironmentrFhXclassrGXsimpy.resources.store.Store.putrHjcX attributerIXsimpy.core.Environment.steprJhXmethodrKXsimpy.core.Environment.runrLhXmethodrMXsimpy.events.TimeoutrNhXclassX)simpy.resources.resource.PriorityResourcerOjIXclassrPX*simpy.resources.resource.Resource.capacityrQjIX attributerRX simpy.testrSjXfunctionXsimpy.core.Environment.exitrThXmethodrUXsimpy.core.InfinityrVhXdatarWX+simpy.resources.resource.PreemptiveResourcerXjIXclassrYXsimpy.events.InitializerZhXclassXsimpy.resources.containerr[hjX!simpy.resources.base.BaseResourcer\j}XclassXsimpy.core.BaseEnvironment.runr]hXmethodr^X,simpy.resources.resource.PriorityRequest.keyr_jIX attributer`X1simpy.resources.resource.PriorityResource.requestrajIX attributerbX+simpy.resources.base.BaseResource.get_queuercj}X attributeXsimpy.resources.base.Putrdj}XclassXsimpy.events.Event.triggeredrehX attributeXsimpy.core.Environment.timeoutrfhXmethodrgX&simpy.resources.container.ContainerGetrhhXclassX+simpy.resources.store.FilterStoreGet.filterrijcX attributerjXsimpy.core.BaseEnvironment.steprkhXmethodrlXsimpy.util.start_delayedrmhlXfunctionrnX)simpy.resources.resource.Resource.releaserojIX attributerpXsimpy.core.EmptySchedulerqhXclassrrX#simpy.resources.container.ContainerrshXclassXsimpy.resources.storertjcjXsimpy.resources.base.Get.cancelruj}XmethodX-simpy.resources.store.FilterQueue.__getitem__rvjcXmethodrwX!simpy.resources.store.FilterQueuerxjcXclassryX1simpy.resources.resource.PriorityRequest.priorityrzjIX attributer{Xsimpy.core.Environment.peekr|hXmethodr}X#simpy.rt.RealtimeEnvironment.strictr~jX attributerXsimpyrjjX)simpy.resources.base.BaseResource._do_getrj}XmethodX%simpy.resources.store.FilterStore.getrjcX attributerX&simpy.resources.container.ContainerPutrhXclassX+simpy.resources.resource.SortedQueue.appendrjIXmethodrXsimpy.resources.store.StoreGetrjcXclassrXsimpy.events.Process.targetrhX attributeX)simpy.resources.container.Container.levelrhX attributeX$simpy.resources.store.Store.capacityrjcX attributerXsimpy.core.Environment.eventrhXmethodrXsimpy.core.BaseEnvironment.nowrhX attributerXsimpy.events.Event.failrhXmethodX.simpy.resources.base.BaseResource._trigger_getrj}XmethodX)simpy.core.BaseEnvironment.active_processrhX attributerX-simpy.resources.resource.PriorityRequest.timerjIX attributerXsimpy.events.Event.processedrhX attributeX.simpy.resources.resource.Preempted.usage_sincerjIX attributerX(simpy.resources.resource.Release.requestrjIX attributerXsimpy.monitoringrhjXsimpy.events.PENDINGrhXdataXsimpy.rt.RealtimeEnvironmentrjXclassrX!simpy.resources.resource.ResourcerjIXclassrX!simpy.rt.RealtimeEnvironment.steprjXmethodrXsimpy.resources.store.StorerjcXclassrX!simpy.events.Condition.all_eventsrhX staticmethodX!simpy.resources.store.Store.itemsrjcX attributerX2simpy.resources.resource.PriorityResource.GetQueuerjIX attributeruUmodulesr}r(j(hUUtj(hlUUtjt(jcUUtj(jUUtj(jUUtj@(jIUUtj(j}UUtj*(jUUtj[(hUUtj(hUUtj(hUUtujKuUjsr}r(j}rjKuUrstr}r(j}rjKuUcppr}r(j}rjKuuU glob_toctreesrh]RrU reread_alwaysrh]RrU doctreedirrXK/var/build/user_builds/simpy/checkouts/3.0/docs/_build/localmedia/.doctreesrUversioning_conditionrU citationsr}jK*Uintersphinx_inventoryr}r(X std:labelr}r(Xzipimporter-objectsr(XPythonrX3.4rXChttp://docs.python.org/3/library/zipimport.html#zipimporter-objectsXzipimporter ObjectstrXattribute-accessr(jjXBhttp://docs.python.org/3/reference/datamodel.html#attribute-accessXCustomizing attribute accesstrXhigh-level-embeddingr(jjXFhttp://docs.python.org/3/extending/embedding.html#high-level-embeddingXVery High Level EmbeddingtrXtut-calculatorr(jjXBhttp://docs.python.org/3/tutorial/introduction.html#tut-calculatorXUsing Python as a CalculatortrXdescriptor-objectsr(jjXAhttp://docs.python.org/3/c-api/descriptor.html#descriptor-objectsXDescriptor ObjectstrX blank-linesr(jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#blank-linesX Blank linestrX expressionsr(jjX?http://docs.python.org/3/reference/expressions.html#expressionsX ExpressionstrX install-cmdr(jjX>http://docs.python.org/3/distutils/commandref.html#install-cmdX.Installing modules: the install command familytrXfunc-bytearrayr(jjX>http://docs.python.org/3/library/functions.html#func-bytearrayX-trXpostinstallation-scriptr(jjXIhttp://docs.python.org/3/distutils/builtdist.html#postinstallation-scriptXThe Postinstallation scripttrXtut-command-line-argumentsr(jjXHhttp://docs.python.org/3/tutorial/stdlib.html#tut-command-line-argumentsXCommand Line ArgumentstrXdecimal-threadsr(jjX=http://docs.python.org/3/library/decimal.html#decimal-threadsXWorking with threadstrX!elementtree-xmlpullparser-objectsr(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlpullparser-objectsXXMLPullParser ObjectstrXnonlocalr(jjX=http://docs.python.org/3/reference/simple_stmts.html#nonlocalXThe nonlocal statementtrXqueue-listenerr(jjXEhttp://docs.python.org/3/library/logging.handlers.html#queue-listenerX QueueListenertrXinput-source-objectsr(jjXIhttp://docs.python.org/3/library/xml.sax.reader.html#input-source-objectsXInputSource ObjectstrXdoctest-advanced-apir(jjXBhttp://docs.python.org/3/library/doctest.html#doctest-advanced-apiX Advanced APItrXpep-380r(jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-380X0PEP 380: Syntax for Delegating to a SubgeneratortrX64-bit-access-rightsr(jjX>http://docs.python.org/3/library/winreg.html#bit-access-rightsX64-bit SpecifictrX typeobjectsr(jjX4http://docs.python.org/3/c-api/type.html#typeobjectsX Type ObjectstrX tut-definingr(jjX?http://docs.python.org/3/tutorial/controlflow.html#tut-definingXMore on Defining FunctionstrXbuilding-python-on-unixr(jjX@http://docs.python.org/3/using/unix.html#building-python-on-unixXBuilding PythontrX timer-objectsr(jjX=http://docs.python.org/3/library/threading.html#timer-objectsX Timer ObjectstrXtut-jsonr(jjX;http://docs.python.org/3/tutorial/inputoutput.html#tut-jsonX Saving structured data with jsontrXctypes-utility-functionsr(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-utility-functionsXUtility functionstrXinst-alt-install-prefix-windowsr(jjXKhttp://docs.python.org/3/install/index.html#inst-alt-install-prefix-windowsX3Alternate installation: Windows (the prefix scheme)trX tut-objectr(jjX9http://docs.python.org/3/tutorial/classes.html#tut-objectXA Word About Names and ObjectstrXpartial-objectsr(jjX?http://docs.python.org/3/library/functools.html#partial-objectsXpartial ObjectstrXrotating-file-handlerr(jjXLhttp://docs.python.org/3/library/logging.handlers.html#rotating-file-handlerXRotatingFileHandlertrXdecimal-recipesr(jjX=http://docs.python.org/3/library/decimal.html#decimal-recipesXRecipestrXprefix-matchingr(jjX>http://docs.python.org/3/library/argparse.html#prefix-matchingX(Argument abbreviations (prefix matching)trX specialattrsr(jjX;http://docs.python.org/3/library/stdtypes.html#specialattrsXSpecial AttributestrX format-stylesr(jjXBhttp://docs.python.org/3/howto/logging-cookbook.html#format-stylesX$Use of alternative formatting stylestrXlocale-gettextr(jjX;http://docs.python.org/3/library/locale.html#locale-gettextXAccess to message catalogstrXmailbox-examplesr(jjX>http://docs.python.org/3/library/mailbox.html#mailbox-examplesXExamplestr Xstruct-alignmentr (jjX=http://docs.python.org/3/library/struct.html#struct-alignmentXByte Order, Size, and Alignmenttr Xinst-how-install-worksr (jjXBhttp://docs.python.org/3/install/index.html#inst-how-install-worksXHow installation workstr X"optparse-conflicts-between-optionsr(jjXQhttp://docs.python.org/3/library/optparse.html#optparse-conflicts-between-optionsXConflicts between optionstrXinst-alt-install-homer(jjXAhttp://docs.python.org/3/install/index.html#inst-alt-install-homeX'Alternate installation: the home schemetrXelementtree-element-objectsr(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-element-objectsXElement ObjectstrX handle-objectr(jjX:http://docs.python.org/3/library/winreg.html#handle-objectXRegistry Handle ObjectstrX section-boolr(jjX7http://docs.python.org/3/whatsnew/2.3.html#section-boolXPEP 285: A Boolean TypetrXfaq-argument-vs-parameterr(jjXGhttp://docs.python.org/3/faq/programming.html#faq-argument-vs-parameterX8What is the difference between arguments and parameters?trXlogging-config-dict-connectionsr(jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-connectionsXObject connectionstrXwhatsnew-marshal-3r(jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-marshal-3XmarshaltrXdeprecated-aliasesr(jjXAhttp://docs.python.org/3/library/unittest.html#deprecated-aliasesXDeprecated aliasestrXdom-type-mappingr (jjX>http://docs.python.org/3/library/xml.dom.html#dom-type-mappingX Type Mappingtr!Xitertools-functionsr"(jjXChttp://docs.python.org/3/library/itertools.html#itertools-functionsXItertool functionstr#X epoll-objectsr$(jjX:http://docs.python.org/3/library/select.html#epoll-objectsX.Edge and Level Trigger Polling (epoll) Objectstr%Xwhatsnew-singledispatchr&(jjXBhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-singledispatchX-tr'Xpassr((jjX9http://docs.python.org/3/reference/simple_stmts.html#passXThe pass statementtr)Xtut-passr*(jjX;http://docs.python.org/3/tutorial/controlflow.html#tut-passXpass Statementstr+X%ctypes-loading-dynamic-link-librariesr,(jjXRhttp://docs.python.org/3/library/ctypes.html#ctypes-loading-dynamic-link-librariesXLoading dynamic link librariestr-Xdatetimeobjectsr.(jjX<http://docs.python.org/3/c-api/datetime.html#datetimeobjectsXDateTime Objectstr/Xinst-search-pathr0(jjX<http://docs.python.org/3/install/index.html#inst-search-pathXModifying Python's Search Pathtr1Xemail-examplesr2(jjXChttp://docs.python.org/3/library/email-examples.html#email-examplesXemail: Examplestr3Xzipimport-examplesr4(jjXBhttp://docs.python.org/3/library/zipimport.html#zipimport-examplesXExamplestr5Xdistutils-conceptsr6(jjXGhttp://docs.python.org/3/distutils/introduction.html#distutils-conceptsXConcepts & Terminologytr7X urllib-howtor8(jjX8http://docs.python.org/3/howto/urllib2.html#urllib-howtoX7HOWTO Fetch Internet Resources Using The urllib Packagetr9Xacks27r:(jjX1http://docs.python.org/3/whatsnew/2.7.html#acks27XAcknowledgementstr;Xtelnet-objectsr<(jjX>http://docs.python.org/3/library/telnetlib.html#telnet-objectsXTelnet Objectstr=Xxdr-exceptionsr>(jjX;http://docs.python.org/3/library/xdrlib.html#xdr-exceptionsX Exceptionstr?Xcustom-handlersr@(jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#custom-handlersX&Customizing handlers with dictConfig()trAXwhatsnew-selectorsrB(jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-selectorsX selectorstrCXownershiprulesrD(jjX@http://docs.python.org/3/extending/extending.html#ownershiprulesXOwnership RulestrEXcontents-of-module-rerF(jjX>http://docs.python.org/3/library/re.html#contents-of-module-reXModule ContentstrGX compilationrH(jjX=http://docs.python.org/3/extending/extending.html#compilationXCompilation and LinkagetrIXatomsrJ(jjX9http://docs.python.org/3/reference/expressions.html#atomsXAtomstrKX asyncio-tcp-echo-server-protocolrL(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-tcp-echo-server-protocolXTCP echo server protocoltrMXbuffer-request-typesrN(jjX?http://docs.python.org/3/c-api/buffer.html#buffer-request-typesXBuffer request typestrOXthreadsrP(jjX0http://docs.python.org/3/c-api/init.html#threadsX,Thread State and the Global Interpreter LocktrQX tut-appendixrR(jjX<http://docs.python.org/3/tutorial/appendix.html#tut-appendixXAppendixtrSXpickle-picklablerT(jjX=http://docs.python.org/3/library/pickle.html#pickle-picklableX"What can be pickled and unpickled?trUXcondition-objectsrV(jjXAhttp://docs.python.org/3/library/threading.html#condition-objectsXCondition ObjectstrWXsearchrX(jjX%http://docs.python.org/3/search.html#X Search PagetrYXdom-attributelist-objectsrZ(jjXGhttp://docs.python.org/3/library/xml.dom.html#dom-attributelist-objectsXNamedNodeMap Objectstr[Xelser\(jjX;http://docs.python.org/3/reference/compound_stmts.html#elseXThe if statementtr]Xcsv-fmt-paramsr^(jjX8http://docs.python.org/3/library/csv.html#csv-fmt-paramsX"Dialects and Formatting Parameterstr_X!email-contentmanager-api-examplesr`(jjXVhttp://docs.python.org/3/library/email-examples.html#email-contentmanager-api-examplesX"Examples using the Provisional APItraX tut-invokingrb(jjX?http://docs.python.org/3/tutorial/interpreter.html#tut-invokingXInvoking the InterpretertrcX repr-objectsrd(jjX:http://docs.python.org/3/library/reprlib.html#repr-objectsX Repr ObjectstreXmimetypes-objectsrf(jjXAhttp://docs.python.org/3/library/mimetypes.html#mimetypes-objectsXMimeTypes ObjectstrgXdebuggerrh(jjX2http://docs.python.org/3/library/pdb.html#debuggerXpdb --- The Python DebuggertriXimplicit-joiningrj(jjXIhttp://docs.python.org/3/reference/lexical_analysis.html#implicit-joiningXImplicit line joiningtrkXwhats-new-in-2.6rl(jjX;http://docs.python.org/3/whatsnew/2.6.html#whats-new-in-2-6XWhat's New in Python 2.6trmXtut-codingstylern(jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-codingstyleXIntermezzo: Coding StyletroXcalls-as-tuplesrp(jjXChttp://docs.python.org/3/library/unittest.mock.html#calls-as-tuplesX-trqXwave-write-objectsrr(jjX=http://docs.python.org/3/library/wave.html#wave-write-objectsXWave_write ObjectstrsXunixrt(jjX/http://docs.python.org/3/library/unix.html#unixXUnix Specific ServicestruX mailbox-mmdfrv(jjX:http://docs.python.org/3/library/mailbox.html#mailbox-mmdfXMMDFtrwXasyncio-protocolrx(jjXGhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-protocolX ProtocolstryX&optparse-what-positional-arguments-forrz(jjXUhttp://docs.python.org/3/library/optparse.html#optparse-what-positional-arguments-forX"What are positional arguments for?tr{Xmailbox-objectsr|(jjX=http://docs.python.org/3/library/mailbox.html#mailbox-objectsXMailbox objectstr}Xasyncore-example-2r~(jjXAhttp://docs.python.org/3/library/asyncore.html#asyncore-example-2X"asyncore Example basic echo servertrXefficient_string_concatenationr(jjXLhttp://docs.python.org/3/faq/programming.html#efficient-string-concatenationXDWhat is the most efficient way to concatenate many strings together?trX*ctypes-accessing-values-exported-from-dllsr(jjXWhttp://docs.python.org/3/library/ctypes.html#ctypes-accessing-values-exported-from-dllsX#Accessing values exported from dllstrXtut-argpassingr(jjXAhttp://docs.python.org/3/tutorial/interpreter.html#tut-argpassingXArgument PassingtrX distributingr(jjX=http://docs.python.org/3/extending/building.html#distributingX#Distributing your extension modulestrXhttp-password-mgrr(jjXFhttp://docs.python.org/3/library/urllib.request.html#http-password-mgrXHTTPPasswordMgr ObjectstrX optparse-putting-it-all-togetherr(jjXOhttp://docs.python.org/3/library/optparse.html#optparse-putting-it-all-togetherXPutting it all togethertrXprotocol-error-objectsr(jjXJhttp://docs.python.org/3/library/xmlrpc.client.html#protocol-error-objectsXProtocolError ObjectstrXsimple-xmlrpc-serversr(jjXIhttp://docs.python.org/3/library/xmlrpc.server.html#simple-xmlrpc-serversXSimpleXMLRPCServer ObjectstrXlogger-adapterr(jjX<http://docs.python.org/3/library/logging.html#logger-adapterXLoggerAdapter ObjectstrXdefault_valuesr(jjX9http://docs.python.org/3/howto/clinic.html#default-valuesXParameter default valuestrXinst-config-filesr(jjX=http://docs.python.org/3/install/index.html#inst-config-filesXDistutils Configuration FilestrX nullpointersr(jjX>http://docs.python.org/3/extending/extending.html#nullpointersX NULL PointerstrXrequest-objectsr(jjXDhttp://docs.python.org/3/library/urllib.request.html#request-objectsXRequest ObjectstrX using-indexr(jjX5http://docs.python.org/3/using/index.html#using-indexXPython Setup and UsagetrXgenindexr(jjX'http://docs.python.org/3/genindex.html#XIndextrX tut-genexpsr(jjX:http://docs.python.org/3/tutorial/classes.html#tut-genexpsXGenerator ExpressionstrX func-listr(jjX9http://docs.python.org/3/library/functions.html#func-listX-trX coroutiner(jjX<http://docs.python.org/3/library/asyncio-task.html#coroutineX CoroutinestrXstring-methodsr(jjX=http://docs.python.org/3/library/stdtypes.html#string-methodsXString MethodstrX descriptorsr(jjX=http://docs.python.org/3/reference/datamodel.html#descriptorsXImplementing DescriptorstrXoptparse-adding-new-typesr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-adding-new-typesXAdding new typestrX dict-viewsr(jjX9http://docs.python.org/3/library/stdtypes.html#dict-viewsXDictionary view objectstrXmailbox-mboxmessager(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox-mboxmessageX mboxMessagetrXbinaryr(jjX:http://docs.python.org/3/reference/expressions.html#binaryXBinary arithmetic operationstrXcporting-howtor(jjX;http://docs.python.org/3/howto/cporting.html#cporting-howtoX%Porting Extension Modules to Python 3trXftp-handler-objectsr(jjXHhttp://docs.python.org/3/library/urllib.request.html#ftp-handler-objectsXFTPHandler ObjectstrXlambdasr(jjX;http://docs.python.org/3/reference/expressions.html#lambdasXLambdastrXctypes-structured-data-typesr(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes-structured-data-typesXStructured data typestrXfile-cookie-jar-classesr(jjXLhttp://docs.python.org/3/library/http.cookiejar.html#file-cookie-jar-classesX;FileCookieJar subclasses and co-operation with web browserstrXencodings-overviewr(jjX?http://docs.python.org/3/library/codecs.html#encodings-overviewXEncodings and UnicodetrXoptparse-what-options-forr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-what-options-forXWhat are options for?trXinstancemethod-objectsr(jjXAhttp://docs.python.org/3/c-api/method.html#instancemethod-objectsXInstance Method ObjectstrX dom-objectsr(jjX9http://docs.python.org/3/library/xml.dom.html#dom-objectsXObjects in the DOMtrXdelr(jjX8http://docs.python.org/3/reference/simple_stmts.html#delXThe del statementtrXprofile-calibrationr(jjXAhttp://docs.python.org/3/library/profile.html#profile-calibrationX CalibrationtrXcacheftp-handler-objectsr(jjXMhttp://docs.python.org/3/library/urllib.request.html#cacheftp-handler-objectsXCacheFTPHandler ObjectstrXmailbox-mhmessager(jjX?http://docs.python.org/3/library/mailbox.html#mailbox-mhmessageX MHMessagetrXdefr(jjX:http://docs.python.org/3/reference/compound_stmts.html#defXFunction definitionstrXf1r(jjX0http://docs.python.org/3/library/sqlite3.html#f1X-trXfilesysr(jjX5http://docs.python.org/3/library/filesys.html#filesysXFile and Directory AccesstrXdatagram-handlerr(jjXGhttp://docs.python.org/3/library/logging.handlers.html#datagram-handlerXDatagramHandlertrXcookie-jar-objectsr(jjXGhttp://docs.python.org/3/library/http.cookiejar.html#cookie-jar-objectsX#CookieJar and FileCookieJar ObjectstrXbuilt-in-constsr(jjX?http://docs.python.org/3/library/constants.html#built-in-constsXBuilt-in ConstantstrXnumbersr(jjX@http://docs.python.org/3/reference/lexical_analysis.html#numbersXNumeric literalstrXfilterr(jjX4http://docs.python.org/3/library/logging.html#filterXFilter ObjectstrXassert-methodsr(jjX=http://docs.python.org/3/library/unittest.html#assert-methodsX-trX sortinghowtor(jjX8http://docs.python.org/3/howto/sorting.html#sortinghowtoXSorting HOW TOtrXtermios-exampler(jjX=http://docs.python.org/3/library/termios.html#termios-exampleXExampletrXasyncio-platform-supportr(jjXQhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio-platform-supportXPlatform supporttrXtut-standardmodulesr(jjXBhttp://docs.python.org/3/tutorial/modules.html#tut-standardmodulesXStandard ModulestrXmanifest-optionsr(jjXChttp://docs.python.org/3/distutils/sourcedist.html#manifest-optionsXManifest-related optionstrXtut-quality-controlr(jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-quality-controlXQuality ControltrXunittest-skippingr(jjX@http://docs.python.org/3/library/unittest.html#unittest-skippingX$Skipping tests and expected failurestrXctypes-arrays-pointersr(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes-arrays-pointersXArrays and pointerstrXstandardexceptionsr(jjXAhttp://docs.python.org/3/c-api/exceptions.html#standardexceptionsXStandard ExceptionstrXpyzipfile-objectsr(jjX?http://docs.python.org/3/library/zipfile.html#pyzipfile-objectsXPyZipFile ObjectstrXwin-dllsr(jjX8http://docs.python.org/3/extending/windows.html#win-dllsXUsing DLLs in PracticetrXmappingr(jjX3http://docs.python.org/3/c-api/mapping.html#mappingXMapping ProtocoltrXsequenceobjectsr(jjX<http://docs.python.org/3/c-api/concrete.html#sequenceobjectsXSequence ObjectstrXpep-412r(jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-412XPEP 412: Key-Sharing DictionarytrXstring-formattingr(jjX>http://docs.python.org/3/library/string.html#string-formattingXString FormattingtrXoptparse-creating-parserr(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-creating-parserXCreating the parsertrXnumericobjectsr(jjX;http://docs.python.org/3/c-api/concrete.html#numericobjectsXNumeric ObjectstrX constantsr(jjX6http://docs.python.org/3/library/winreg.html#constantsX ConstantstrXsummary-objectsr(jjX<http://docs.python.org/3/library/msilib.html#summary-objectsXSummary Information ObjectstrXpickle-protocolsr(jjX=http://docs.python.org/3/library/pickle.html#pickle-protocolsXData stream formattrX bytecodesr(jjX3http://docs.python.org/3/library/dis.html#bytecodesXPython Bytecode InstructionstrX id-classesr(jjXChttp://docs.python.org/3/reference/lexical_analysis.html#id-classesXReserved classes of identifierstrXnew-27-interpreterr(jjX=http://docs.python.org/3/whatsnew/2.7.html#new-27-interpreterXInterpreter Changestr X fundamentalr (jjX8http://docs.python.org/3/c-api/concrete.html#fundamentalXFundamental Objectstr Xincremental-decoder-objectsr (jjXHhttp://docs.python.org/3/library/codecs.html#incremental-decoder-objectsXIncrementalDecoder Objectstr Xdistutils-additional-filesr(jjXNhttp://docs.python.org/3/distutils/setupscript.html#distutils-additional-filesXInstalling Additional FilestrXdistutils-simple-exampler(jjXMhttp://docs.python.org/3/distutils/introduction.html#distutils-simple-exampleXA Simple ExampletrXextending-indexr(jjX=http://docs.python.org/3/extending/index.html#extending-indexX.Extending and Embedding the Python InterpretertrXinst-standard-installr(jjXAhttp://docs.python.org/3/install/index.html#inst-standard-installXStandard Build and InstalltrXmapping-structsr(jjX;http://docs.python.org/3/c-api/typeobj.html#mapping-structsXMapping Object StructurestrXtut-multi-threadingr(jjXBhttp://docs.python.org/3/tutorial/stdlib2.html#tut-multi-threadingXMulti-threadingtrX concurrencyr(jjX=http://docs.python.org/3/library/concurrency.html#concurrencyXConcurrent ExecutiontrXpath_fdr(jjX0http://docs.python.org/3/library/os.html#path-fdX-trX tokenize-clir(jjX;http://docs.python.org/3/library/tokenize.html#tokenize-cliXCommand-Line UsagetrXpypircr (jjX;http://docs.python.org/3/distutils/packageindex.html#pypircXThe .pypirc filetr!Xextending-errorsr"(jjXBhttp://docs.python.org/3/extending/extending.html#extending-errorsX!Intermezzo: Errors and Exceptionstr#X rlock-objectsr$(jjX=http://docs.python.org/3/library/threading.html#rlock-objectsX RLock Objectstr%X tut-intror&(jjX9http://docs.python.org/3/tutorial/appetite.html#tut-introXWhetting Your Appetitetr'Xdom-attr-objectsr((jjX>http://docs.python.org/3/library/xml.dom.html#dom-attr-objectsX Attr Objectstr)Xpep-308r*(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-308X PEP 308: Conditional Expressionstr+Xpep-309r,(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-309X%PEP 309: Partial Function Applicationtr-Xnew-26-interpreterr.(jjX=http://docs.python.org/3/whatsnew/2.6.html#new-26-interpreterXInterpreter Changestr/X o_ampersandr0(jjX3http://docs.python.org/3/c-api/arg.html#o-ampersandX-tr1Xasyncio-tcp-echo-client-streamsr2(jjXThttp://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-client-streamsXTCP echo client using streamstr3X queueobjectsr4(jjX8http://docs.python.org/3/library/queue.html#queueobjectsX Queue Objectstr5Xelementtree-functionsr6(jjXQhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-functionsX Functionstr7Xdeprecated-3.4r8(jjX9http://docs.python.org/3/whatsnew/3.4.html#deprecated-3-4X Deprecatedtr9Xreturnr:(jjX;http://docs.python.org/3/reference/simple_stmts.html#returnXThe return statementtr;Xdoctest-outputcheckerr<(jjXChttp://docs.python.org/3/library/doctest.html#doctest-outputcheckerXOutputChecker objectstr=X view-objectsr>(jjX9http://docs.python.org/3/library/msilib.html#view-objectsX View Objectstr?Xoptparse-cleanupr@(jjX?http://docs.python.org/3/library/optparse.html#optparse-cleanupXCleanuptrAXfloatingrB(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#floatingXFloating point literalstrCXbreakrD(jjX:http://docs.python.org/3/reference/simple_stmts.html#breakXThe break statementtrEX frameworkrF(jjX8http://docs.python.org/3/howto/webservers.html#frameworkX FrameworkstrGX tut-iteratorsrH(jjX<http://docs.python.org/3/tutorial/classes.html#tut-iteratorsX IteratorstrIX api-typesrJ(jjX3http://docs.python.org/3/c-api/intro.html#api-typesXTypestrKX setup-configrL(jjX?http://docs.python.org/3/distutils/configfile.html#setup-configX$Writing the Setup Configuration FiletrMXcompoundrN(jjX?http://docs.python.org/3/reference/compound_stmts.html#compoundXCompound statementstrOXdom-pi-objectsrP(jjX<http://docs.python.org/3/library/xml.dom.html#dom-pi-objectsXProcessingInstruction ObjectstrQX ssl-securityrR(jjX6http://docs.python.org/3/library/ssl.html#ssl-securityXSecurity considerationstrSXrecord-objectsrT(jjX;http://docs.python.org/3/library/msilib.html#record-objectsXRecord ObjectstrUXsearch-vs-matchrV(jjX8http://docs.python.org/3/library/re.html#search-vs-matchXsearch() vs. match()trWXpure-embeddingrX(jjX@http://docs.python.org/3/extending/embedding.html#pure-embeddingXPure EmbeddingtrYX trace-apirZ(jjX5http://docs.python.org/3/library/trace.html#trace-apiXProgrammatic Interfacetr[X+ctypes-accessing-functions-from-loaded-dllsr\(jjXXhttp://docs.python.org/3/library/ctypes.html#ctypes-accessing-functions-from-loaded-dllsX$Accessing functions from loaded dllstr]X24acksr^(jjX/http://docs.python.org/3/whatsnew/2.4.html#acksXAcknowledgementstr_X smtp-handlerr`(jjXChttp://docs.python.org/3/library/logging.handlers.html#smtp-handlerX SMTPHandlertraXbrowser-controllersrb(jjXDhttp://docs.python.org/3/library/webbrowser.html#browser-controllersXBrowser Controller ObjectstrcXgenexprrd(jjX;http://docs.python.org/3/reference/expressions.html#genexprXGenerator expressionstreXstdcomparisonsrf(jjX=http://docs.python.org/3/library/stdtypes.html#stdcomparisonsX ComparisonstrgXtraceback-examplerh(jjXAhttp://docs.python.org/3/library/traceback.html#traceback-exampleXTraceback ExamplestriXtut-formattingrj(jjXAhttp://docs.python.org/3/tutorial/inputoutput.html#tut-formattingXFancier Output FormattingtrkXasyncio-hello-world-callbackrl(jjXThttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-hello-world-callbackXHello World with call_soon()trmXportsrn(jjX0http://docs.python.org/3/whatsnew/2.5.html#portsXPort-Specific ChangestroXtut-firststepsrp(jjXBhttp://docs.python.org/3/tutorial/introduction.html#tut-firststepsXFirst Steps Towards ProgrammingtrqXwarning-categoriesrr(jjXAhttp://docs.python.org/3/library/warnings.html#warning-categoriesXWarning CategoriestrsXnumericrt(jjX5http://docs.python.org/3/library/numeric.html#numericX Numeric and Mathematical ModulestruX examples-imprv(jjX6http://docs.python.org/3/library/imp.html#examples-impXExamplestrwXtut-unpacking-argumentsrx(jjXJhttp://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-argumentsXUnpacking Argument ListstryXsocket-timeoutsrz(jjX<http://docs.python.org/3/library/socket.html#socket-timeoutsXNotes on socket timeoutstr{Xformatexamplesr|(jjX;http://docs.python.org/3/library/string.html#formatexamplesXFormat examplestr}X typesobjectsr~(jjX;http://docs.python.org/3/library/stdtypes.html#typesobjectsXClasses and Class InstancestrXtypesseq-tupler(jjX=http://docs.python.org/3/library/stdtypes.html#typesseq-tupleXTuplestrX whitespacer(jjXChttp://docs.python.org/3/reference/lexical_analysis.html#whitespaceXWhitespace between tokenstrXtruthr(jjX4http://docs.python.org/3/library/stdtypes.html#truthXTruth Value TestingtrX sqlite3-controlling-transactionsr(jjXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactionsXControlling TransactionstrXusing-on-generalr(jjX<http://docs.python.org/3/using/cmdline.html#using-on-generalXCommand line and environmenttrXtut-scopeexampler(jjX?http://docs.python.org/3/tutorial/classes.html#tut-scopeexampleXScopes and Namespaces ExampletrX terminal-sizer(jjX6http://docs.python.org/3/library/os.html#terminal-sizeXQuerying the size of a terminaltrXspecial-lookupr(jjX@http://docs.python.org/3/reference/datamodel.html#special-lookupXSpecial method lookuptrXfinalize-examplesr(jjX?http://docs.python.org/3/library/weakref.html#finalize-examplesXFinalizer ObjectstrXctypes-finding-shared-librariesr(jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-finding-shared-librariesXFinding shared librariestrXasyncio-watch-read-eventr(jjXPhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-watch-read-eventX'Watch a file descriptor for read eventstrX fault-objectsr(jjXAhttp://docs.python.org/3/library/xmlrpc.client.html#fault-objectsX Fault ObjectstrXcustom-logrecordr(jjXEhttp://docs.python.org/3/howto/logging-cookbook.html#custom-logrecordXCustomizing LogRecordtrX decimal-faqr(jjX9http://docs.python.org/3/library/decimal.html#decimal-faqX Decimal FAQtrXextending-intror(jjXAhttp://docs.python.org/3/extending/extending.html#extending-introXExtending Python with C or C++trX reusable-cmsr(jjX=http://docs.python.org/3/library/contextlib.html#reusable-cmsXReusable context managerstrX io-overviewr(jjX4http://docs.python.org/3/library/io.html#io-overviewXOverviewtrX uuid-exampler(jjX7http://docs.python.org/3/library/uuid.html#uuid-exampleXExampletrX netrc-objectsr(jjX9http://docs.python.org/3/library/netrc.html#netrc-objectsX netrc ObjectstrXdatetime-timedeltar(jjXAhttp://docs.python.org/3/library/datetime.html#datetime-timedeltaXtimedelta ObjectstrX magic-methodsr(jjXAhttp://docs.python.org/3/library/unittest.mock.html#magic-methodsXMocking Magic MethodstrXasyncio-event-loopsr(jjXLhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio-event-loopsXAvailable event loopstrX using-on-macr(jjX4http://docs.python.org/3/using/mac.html#using-on-macXUsing Python on a MacintoshtrXkevent-objectsr(jjX;http://docs.python.org/3/library/select.html#kevent-objectsXKevent ObjectstrXtarinfo-objectsr(jjX=http://docs.python.org/3/library/tarfile.html#tarinfo-objectsXTarInfo ObjectstrX*ctypes-structureunion-alignment-byte-orderr(jjXWhttp://docs.python.org/3/library/ctypes.html#ctypes-structureunion-alignment-byte-orderX-trX boolobjectsr(jjX4http://docs.python.org/3/c-api/bool.html#boolobjectsXBoolean ObjectstrXpackage-uploadr(jjXChttp://docs.python.org/3/distutils/packageindex.html#package-uploadXThe upload commandtrX other-langr(jjX5http://docs.python.org/3/whatsnew/2.5.html#other-langXOther Language ChangestrXpyclbr-class-objectsr(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr-class-objectsX Class ObjectstrXtut-exceptionsr(jjX<http://docs.python.org/3/tutorial/errors.html#tut-exceptionsX ExceptionstrXpep-3141r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3141X&PEP 3141: A Type Hierarchy for NumberstrX datamodelr(jjX;http://docs.python.org/3/reference/datamodel.html#datamodelX Data modeltrXtut-string-pattern-matchingr(jjXIhttp://docs.python.org/3/tutorial/stdlib.html#tut-string-pattern-matchingXString Pattern MatchingtrX cgi-intror(jjX3http://docs.python.org/3/library/cgi.html#cgi-introX-trXfeaturesr(jjX5http://docs.python.org/3/library/msilib.html#featuresXFeaturestrXwarning-testingr(jjX>http://docs.python.org/3/library/warnings.html#warning-testingXTesting WarningstrXsequence-structsr(jjX<http://docs.python.org/3/c-api/typeobj.html#sequence-structsXSequence Object StructurestrXmiscr(jjX/http://docs.python.org/3/library/misc.html#miscXMiscellaneous ServicestrXnumberr(jjX1http://docs.python.org/3/c-api/number.html#numberXNumber ProtocoltrX typesotherr(jjX9http://docs.python.org/3/library/stdtypes.html#typesotherXOther Built-in TypestrXbinary-objectsr(jjXBhttp://docs.python.org/3/library/xmlrpc.client.html#binary-objectsXBinary ObjectstrX customizationr(jjX?http://docs.python.org/3/reference/datamodel.html#customizationXBasic customizationtrX api-intror(jjX3http://docs.python.org/3/c-api/intro.html#api-introX IntroductiontrXtimeit-examplesr(jjX<http://docs.python.org/3/library/timeit.html#timeit-examplesXExamplestrXtkinter-basic-mappingr(jjXChttp://docs.python.org/3/library/tkinter.html#tkinter-basic-mappingXMapping Basic Tk into TkintertrX introductionr(jjXAhttp://docs.python.org/3/reference/introduction.html#introductionX IntroductiontrXsystemfunctionsr(jjX7http://docs.python.org/3/c-api/sys.html#systemfunctionsXSystem FunctionstrXunicodemethodsandslotsr(jjXBhttp://docs.python.org/3/c-api/unicode.html#unicodemethodsandslotsXMethods and Slot FunctionstrXtut-lists-as-queuesr(jjXIhttp://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-queuesXUsing Lists as QueuestrXbisect-exampler(jjX;http://docs.python.org/3/library/bisect.html#bisect-exampleX-trX api-includesr(jjX6http://docs.python.org/3/c-api/intro.html#api-includesX Include FilestrXinst-custom-installr(jjX?http://docs.python.org/3/install/index.html#inst-custom-installXCustom InstallationtrX logical-linesr(jjXFhttp://docs.python.org/3/reference/lexical_analysis.html#logical-linesX Logical linestrX3ctypes-calling-functions-with-own-custom-data-typesr(jjX`http://docs.python.org/3/library/ctypes.html#ctypes-calling-functions-with-own-custom-data-typesX1Calling functions with your own custom data typestrXtkinter-setting-optionsr(jjXEhttp://docs.python.org/3/library/tkinter.html#tkinter-setting-optionsXSetting OptionstrXdoctest-which-docstringsr(jjXFhttp://docs.python.org/3/library/doctest.html#doctest-which-docstringsXWhich Docstrings Are Examined?trXtypesfunctionsr(jjX=http://docs.python.org/3/library/stdtypes.html#typesfunctionsX FunctionstrXinst-alt-install-userr(jjXAhttp://docs.python.org/3/install/index.html#inst-alt-install-userX'Alternate installation: the user schemetrX tut-scriptsr(jjX;http://docs.python.org/3/tutorial/appendix.html#tut-scriptsXExecutable Python ScriptstrXorganizing-testsr(jjX?http://docs.python.org/3/library/unittest.html#organizing-testsXOrganizing test codetrXserverproxy-objectsr(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#serverproxy-objectsXServerProxy ObjectstrXxmlreader-objectsr(jjXFhttp://docs.python.org/3/library/xml.sax.reader.html#xmlreader-objectsXXMLReader ObjectstrXtut-delr(jjX=http://docs.python.org/3/tutorial/datastructures.html#tut-delXThe del statementtrXidler(jjX/http://docs.python.org/3/library/idle.html#idleXIDLEtrXasyncio-subprocessr(jjXKhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio-subprocessX SubprocesstrXinst-non-ms-compilersr(jjXAhttp://docs.python.org/3/install/index.html#inst-non-ms-compilersX(Using non-Microsoft compilers on WindowstrX custominterpr(jjX?http://docs.python.org/3/library/custominterp.html#custominterpXCustom Python InterpreterstrX arg-parsingr(jjX3http://docs.python.org/3/c-api/arg.html#arg-parsingX%Parsing arguments and building valuestr Xmswin-specific-servicesr (jjXEhttp://docs.python.org/3/library/windows.html#mswin-specific-servicesXMS Windows Specific Servicestr Xsequencematcher-examplesr (jjXFhttp://docs.python.org/3/library/difflib.html#sequencematcher-examplesXSequenceMatcher Examplestr Xcodec-registryr(jjX8http://docs.python.org/3/c-api/codec.html#codec-registryX$Codec registry and support functionstrXbitwiser(jjX;http://docs.python.org/3/reference/expressions.html#bitwiseXBinary bitwise operationstrXvenv-apir(jjX3http://docs.python.org/3/library/venv.html#venv-apiXAPItrX writer-implsr(jjX<http://docs.python.org/3/library/formatter.html#writer-implsXWriter ImplementationstrXformatting-stylesr(jjXFhttp://docs.python.org/3/howto/logging-cookbook.html#formatting-stylesX>Using particular formatting styles throughout your applicationtrXdifflib-interfacer(jjX?http://docs.python.org/3/library/difflib.html#difflib-interfaceX#A command-line interface to difflibtrXhowto-minimal-exampler(jjXAhttp://docs.python.org/3/howto/logging.html#howto-minimal-exampleXA simple exampletrXbltin-code-objectsr(jjXAhttp://docs.python.org/3/library/stdtypes.html#bltin-code-objectsX Code ObjectstrX os-processr(jjX3http://docs.python.org/3/library/os.html#os-processXProcess ManagementtrXline-structurer (jjXGhttp://docs.python.org/3/reference/lexical_analysis.html#line-structureXLine structuretr!X atom-literalsr"(jjXAhttp://docs.python.org/3/reference/expressions.html#atom-literalsXLiteralstr#Xentity-resolver-objectsr$(jjXMhttp://docs.python.org/3/library/xml.sax.handler.html#entity-resolver-objectsXEntityResolver Objectstr%Xtemplate-objectsr&(jjX<http://docs.python.org/3/library/pipes.html#template-objectsXTemplate Objectstr'Xobjectr((jjX1http://docs.python.org/3/c-api/object.html#objectXObject Protocoltr)Xlower-level-embeddingr*(jjXGhttp://docs.python.org/3/extending/embedding.html#lower-level-embeddingX-Beyond Very High Level Embedding: An overviewtr+Xwhatsnew-statisticsr,(jjX>http://docs.python.org/3/whatsnew/3.4.html#whatsnew-statisticsX statisticstr-Xnew-26-context-managersr.(jjXBhttp://docs.python.org/3/whatsnew/2.6.html#new-26-context-managersXWriting Context Managerstr/X faq-indexr0(jjX1http://docs.python.org/3/faq/index.html#faq-indexX!Python Frequently Asked Questionstr1Xstart-and-stopr2(jjXBhttp://docs.python.org/3/library/unittest.mock.html#start-and-stopXpatch methods: start and stoptr3Xdom-comment-objectsr4(jjXAhttp://docs.python.org/3/library/xml.dom.html#dom-comment-objectsXComment Objectstr5Xctypes-pointersr6(jjX<http://docs.python.org/3/library/ctypes.html#ctypes-pointersXPointerstr7Xoptparse-parsing-argumentsr8(jjXIhttp://docs.python.org/3/library/optparse.html#optparse-parsing-argumentsXParsing argumentstr9Xtut-weak-referencesr:(jjXBhttp://docs.python.org/3/tutorial/stdlib2.html#tut-weak-referencesXWeak Referencestr;Xinst-new-standardr<(jjX=http://docs.python.org/3/install/index.html#inst-new-standardXThe new standard: Distutilstr=Xnewtypesr>(jjX4http://docs.python.org/3/c-api/objimpl.html#newtypesXObject Implementation Supporttr?X ftp-objectsr@(jjX8http://docs.python.org/3/library/ftplib.html#ftp-objectsX FTP ObjectstrAX typebytearrayrB(jjX<http://docs.python.org/3/library/stdtypes.html#typebytearrayXBytearray ObjectstrCX tut-rangerD(jjX<http://docs.python.org/3/tutorial/controlflow.html#tut-rangeXThe range() FunctiontrEX tut-startuprF(jjX;http://docs.python.org/3/tutorial/appendix.html#tut-startupXThe Interactive Startup FiletrGXwsgirH(jjX3http://docs.python.org/3/howto/webservers.html#wsgiXStep back: WSGItrIXexpat-content-modelsrJ(jjXBhttp://docs.python.org/3/library/pyexpat.html#expat-content-modelsXContent Model DescriptionstrKXpep-3127rL(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3127X,PEP 3127: Integer Literal Support and SyntaxtrMXdeleting-attributesrN(jjXGhttp://docs.python.org/3/library/unittest.mock.html#deleting-attributesXDeleting AttributestrOXasyncio-register-socketrP(jjXNhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-register-socketX9Register an open socket to wait for data using a protocoltrQXcurses-functionsrR(jjX=http://docs.python.org/3/library/curses.html#curses-functionsX FunctionstrSX tar-unicoderT(jjX9http://docs.python.org/3/library/tarfile.html#tar-unicodeXUnicode issuestrUXkeywordsrV(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#keywordsXKeywordstrWXmemoryinterfacerX(jjX:http://docs.python.org/3/c-api/memory.html#memoryinterfaceXMemory InterfacetrYXveryhighrZ(jjX5http://docs.python.org/3/c-api/veryhigh.html#veryhighXThe Very High Level Layertr[Xabstract-basic-auth-handlerr\(jjXPhttp://docs.python.org/3/library/urllib.request.html#abstract-basic-auth-handlerX AbstractBasicAuthHandler Objectstr]Xlayoutr^(jjX8http://docs.python.org/3/library/tkinter.ttk.html#layoutX-tr_X writing-testsr`(jjX8http://docs.python.org/3/library/test.html#writing-testsX'Writing Unit Tests for the test packagetraXwindows-path-modrb(jjX<http://docs.python.org/3/using/windows.html#windows-path-modXFinding the Python executabletrcX dom-examplerd(jjXAhttp://docs.python.org/3/library/xml.dom.minidom.html#dom-exampleX DOM ExampletreXssl-nonblockingrf(jjX9http://docs.python.org/3/library/ssl.html#ssl-nonblockingXNotes on non-blocking socketstrgXmultiprocessing-auth-keysrh(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-auth-keysXAuthentication keystriXbinary-transformsrj(jjX>http://docs.python.org/3/library/codecs.html#binary-transformsXBinary TransformstrkXmemory-handlerrl(jjXEhttp://docs.python.org/3/library/logging.handlers.html#memory-handlerX MemoryHandlertrmXstream-writer-objectsrn(jjXBhttp://docs.python.org/3/library/codecs.html#stream-writer-objectsXStreamWriter ObjectstroXelementtree-xmlparser-objectsrp(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlparser-objectsXXMLParser ObjectstrqXscreenspecificrr(jjX;http://docs.python.org/3/library/turtle.html#screenspecificX;Methods specific to Screen, not inherited from TurtleScreentrsXsocket-handlerrt(jjXEhttp://docs.python.org/3/library/logging.handlers.html#socket-handlerX SocketHandlertruXtestcase-objectsrv(jjX?http://docs.python.org/3/library/unittest.html#testcase-objectsX Test casestrwX countingrefsrx(jjX<http://docs.python.org/3/c-api/refcounting.html#countingrefsXReference CountingtryX augassignrz(jjX>http://docs.python.org/3/reference/simple_stmts.html#augassignXAugmented assignment statementstr{Xasyncio-coroutine-not-scheduledr|(jjXQhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduledX(Detect coroutine objects never scheduledtr}Xnotationr~(jjX=http://docs.python.org/3/reference/introduction.html#notationXNotationtrXdefining-new-typesr(jjXChttp://docs.python.org/3/extending/newtypes.html#defining-new-typesXDefining New TypestrX library-indexr(jjX9http://docs.python.org/3/library/index.html#library-indexXThe Python Standard LibrarytrXsyslog-handlerr(jjXEhttp://docs.python.org/3/library/logging.handlers.html#syslog-handlerX SysLogHandlertrX cmd-objectsr(jjX5http://docs.python.org/3/library/cmd.html#cmd-objectsX Cmd ObjectstrXstruct-objectsr(jjX;http://docs.python.org/3/library/struct.html#struct-objectsXClassestrXconsole-objectsr(jjX:http://docs.python.org/3/library/code.html#console-objectsXInteractive Console ObjectstrXdecimal-tutorialr(jjX>http://docs.python.org/3/library/decimal.html#decimal-tutorialXQuick-start TutorialtrXelementtree-xpathr(jjXMhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpathX XPath supporttrXdoctest-execution-contextr(jjXGhttp://docs.python.org/3/library/doctest.html#doctest-execution-contextXWhat's the Execution Context?trXpep-338r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-338X%PEP 338: Executing Modules as ScriptstrX c-api-indexr(jjX5http://docs.python.org/3/c-api/index.html#c-api-indexXPython/C API Reference ManualtrXzeromq-handlersr(jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#zeromq-handlersX+Subclassing QueueHandler - a ZeroMQ exampletrXdom-text-objectsr(jjX>http://docs.python.org/3/library/xml.dom.html#dom-text-objectsXText and CDATASection ObjectstrXdecimal-rounding-modesr(jjXDhttp://docs.python.org/3/library/decimal.html#decimal-rounding-modesX ConstantstrXattributes-objectsr(jjXGhttp://docs.python.org/3/library/xml.sax.reader.html#attributes-objectsXThe Attributes InterfacetrXtut-setsr(jjX>http://docs.python.org/3/tutorial/datastructures.html#tut-setsXSetstrXposix-large-filesr(jjX=http://docs.python.org/3/library/posix.html#posix-large-filesXLarge File SupporttrX&implementing-the-arithmetic-operationsr(jjXThttp://docs.python.org/3/library/numbers.html#implementing-the-arithmetic-operationsX&Implementing the arithmetic operationstrXelementtree-pull-parsingr(jjXThttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-pull-parsingX!Pull API for non-blocking parsingtrXtypesseq-ranger(jjX=http://docs.python.org/3/library/stdtypes.html#typesseq-rangeXRangestrXsetr(jjX7http://docs.python.org/3/reference/expressions.html#setX Set displaystrXipaddress-howtor(jjX=http://docs.python.org/3/howto/ipaddress.html#ipaddress-howtoX'An introduction to the ipaddress moduletrX referencer(jjX<http://docs.python.org/3/distutils/commandref.html#referenceXCommand ReferencetrXsqlite3-cursor-objectsr(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3-cursor-objectsXCursor ObjectstrXstruct-examplesr(jjX<http://docs.python.org/3/library/struct.html#struct-examplesXExamplestrX operator-mapr(jjX;http://docs.python.org/3/library/operator.html#operator-mapXMapping Operators to FunctionstrXbuffer-structsr(jjX:http://docs.python.org/3/c-api/typeobj.html#buffer-structsXBuffer Object StructurestrX module-etreer(jjX7http://docs.python.org/3/whatsnew/2.5.html#module-etreeXThe ElementTree packagetrX codeobjectsr(jjX4http://docs.python.org/3/c-api/code.html#codeobjectsX Code ObjectstrX evalorderr(jjX=http://docs.python.org/3/reference/expressions.html#evalorderXEvaluation ordertrX supersededr(jjX;http://docs.python.org/3/library/superseded.html#supersededXSuperseded ModulestrXsax-error-handlerr(jjXGhttp://docs.python.org/3/library/xml.sax.handler.html#sax-error-handlerXErrorHandler ObjectstrXinst-how-build-worksr(jjX@http://docs.python.org/3/install/index.html#inst-how-build-worksXHow building workstrXfurther-examplesr(jjXMhttp://docs.python.org/3/library/unittest.mock-examples.html#further-examplesXFurther ExamplestrX asyncio-syncr(jjX?http://docs.python.org/3/library/asyncio-sync.html#asyncio-syncXSynchronization primitivestrX tut-comparingr(jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-comparingX#Comparing Sequences and Other TypestrX23section-otherr(jjX8http://docs.python.org/3/whatsnew/2.3.html#section-otherXOther Changes and FixestrXinst-alt-install-prefix-unixr(jjXHhttp://docs.python.org/3/install/index.html#inst-alt-install-prefix-unixX0Alternate installation: Unix (the prefix scheme)trX profilingr(jjX2http://docs.python.org/3/c-api/init.html#profilingXProfiling and TracingtrXwhatsnew34-sslcontextr(jjX@http://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sslcontextX-trXimportlib-sectionr(jjX<http://docs.python.org/3/whatsnew/2.7.html#importlib-sectionXNew module: importlibtrXctypes-data-typesr(jjX>http://docs.python.org/3/library/ctypes.html#ctypes-data-typesX Data typestrX noneobjectr(jjX3http://docs.python.org/3/c-api/none.html#noneobjectXThe None ObjecttrXpackage-path-rulesr(jjXAhttp://docs.python.org/3/reference/import.html#package-path-rulesXmodule.__path__trXxmlrpc-client-exampler(jjXIhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc-client-exampleXExample of Client UsagetrX builtincodecsr(jjX9http://docs.python.org/3/c-api/unicode.html#builtincodecsXBuilt-in CodecstrXfilters-dictconfigr(jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#filters-dictconfigX%Configuring filters with dictConfig()trXsetting-envvarsr(jjX;http://docs.python.org/3/using/windows.html#setting-envvarsX'Excursus: Setting environment variablestrXctypes-fundamental-data-typesr(jjXJhttp://docs.python.org/3/library/ctypes.html#ctypes-fundamental-data-typesXFundamental data typestrX tut-packagesr(jjX;http://docs.python.org/3/tutorial/modules.html#tut-packagesXPackagestrXunittest-command-line-interfacer(jjXNhttp://docs.python.org/3/library/unittest.html#unittest-command-line-interfaceXCommand-Line InterfacetrXwarning-filterr(jjX=http://docs.python.org/3/library/warnings.html#warning-filterXThe Warnings FiltertrXau-write-objectsr(jjX<http://docs.python.org/3/library/sunau.html#au-write-objectsXAU_write ObjectstrX decimal-notesr(jjX;http://docs.python.org/3/library/decimal.html#decimal-notesXFloating Point NotestrXpep-352r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-352X(PEP 352: Exceptions as New-Style ClassestrXwhatsnew-pep-442r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-442X!PEP 442: Safe Object FinalizationtrX apiabiversionr(jjX?http://docs.python.org/3/c-api/apiabiversion.html#apiabiversionXAPI and ABI VersioningtrXwhatsnew-pep-446r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-446X;PEP 446: Newly Created File Descriptors Are Non-InheritabletrXwhatsnew-pep-445r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-445X3PEP 445: Customization of CPython Memory AllocatorstrX os-file-dirr(jjX4http://docs.python.org/3/library/os.html#os-file-dirXFiles and DirectoriestrX lock-objectsr(jjX<http://docs.python.org/3/library/threading.html#lock-objectsX Lock ObjectstrXconverting-argument-sequencer(jjXMhttp://docs.python.org/3/library/subprocess.html#converting-argument-sequenceX6Converting an argument sequence to a string on WindowstrXlogging-cookbookr(jjXEhttp://docs.python.org/3/howto/logging-cookbook.html#logging-cookbookXLogging CookbooktrX tut-remarksr(jjX:http://docs.python.org/3/tutorial/classes.html#tut-remarksXRandom RemarkstrX interactiver(jjXGhttp://docs.python.org/3/reference/toplevel_components.html#interactiveXInteractive inputtrXdomeventstream-objectsr(jjXLhttp://docs.python.org/3/library/xml.dom.pulldom.html#domeventstream-objectsXDOMEventStream ObjectstrXprettyprinter-objectsr(jjXBhttp://docs.python.org/3/library/pprint.html#prettyprinter-objectsXPrettyPrinter ObjectstrXdom-exceptionsr(jjX<http://docs.python.org/3/library/xml.dom.html#dom-exceptionsX ExceptionstrXsimpler(jjX;http://docs.python.org/3/reference/simple_stmts.html#simpleXSimple statementstr Xdoc-xmlrpc-serversr (jjXFhttp://docs.python.org/3/library/xmlrpc.server.html#doc-xmlrpc-serversXDocXMLRPCServer Objectstr Xtut-ior (jjX9http://docs.python.org/3/tutorial/inputoutput.html#tut-ioXInput and Outputtr Xslotsr(jjX7http://docs.python.org/3/reference/datamodel.html#slotsX __slots__trXtut-ifr(jjX9http://docs.python.org/3/tutorial/controlflow.html#tut-ifX if StatementstrXusing-the-trackerr(jjX4http://docs.python.org/3/bugs.html#using-the-trackerXUsing the Python issue trackertrX typesseq-listr(jjX<http://docs.python.org/3/library/stdtypes.html#typesseq-listXListstrX sdist-cmdr(jjX<http://docs.python.org/3/distutils/commandref.html#sdist-cmdX1Creating a source distribution: the sdist commandtrXraiser(jjX:http://docs.python.org/3/reference/simple_stmts.html#raiseXThe raise statementtrXmailbox-maildirr(jjX=http://docs.python.org/3/library/mailbox.html#mailbox-maildirXMaildirtrX buildvaluer(jjX<http://docs.python.org/3/extending/extending.html#buildvalueXBuilding Arbitrary ValuestrXdoctest-simple-testfiler(jjXEhttp://docs.python.org/3/library/doctest.html#doctest-simple-testfileX.Simple Usage: Checking Examples in a Text FiletrX bltin-typesr (jjX:http://docs.python.org/3/library/stdtypes.html#bltin-typesXBuilt-in Typestr!Xcomprehensionsr"(jjXBhttp://docs.python.org/3/reference/expressions.html#comprehensionsX)Displays for lists, sets and dictionariestr#Xpep-3151r$(jjX3http://docs.python.org/3/whatsnew/3.3.html#pep-3151X5PEP 3151: Reworking the OS and IO exception hierarchytr%Xhttp-redirect-handlerr&(jjXJhttp://docs.python.org/3/library/urllib.request.html#http-redirect-handlerXHTTPRedirectHandler Objectstr'Xctypes-return-typesr((jjX@http://docs.python.org/3/library/ctypes.html#ctypes-return-typesX Return typestr)Xasyncio-transportr*(jjXHhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-transportX Transportstr+Xlogging-config-dictschemar,(jjXNhttp://docs.python.org/3/library/logging.config.html#logging-config-dictschemaXConfiguration dictionary schematr-X context-infor.(jjXAhttp://docs.python.org/3/howto/logging-cookbook.html#context-infoX4Adding contextual information to your logging outputtr/Xdictr0(jjX8http://docs.python.org/3/reference/expressions.html#dictXDictionary displaystr1Xprofile-limitationsr2(jjXAhttp://docs.python.org/3/library/profile.html#profile-limitationsX Limitationstr3X archivingr4(jjX9http://docs.python.org/3/library/archiving.html#archivingXData Compression and Archivingtr5Xinspect-classes-functionsr6(jjXGhttp://docs.python.org/3/library/inspect.html#inspect-classes-functionsXClasses and functionstr7Xmultiprocessing-address-formatsr8(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-address-formatsXAddress Formatstr9X re-examplesr:(jjX4http://docs.python.org/3/library/re.html#re-examplesXRegular Expression Examplestr;Xrlcompleter-configr<(jjX=http://docs.python.org/3/library/site.html#rlcompleter-configXReadline configurationtr=X func-ranger>(jjX:http://docs.python.org/3/library/functions.html#func-rangeX-tr?X nntp-objectsr@(jjX:http://docs.python.org/3/library/nntplib.html#nntp-objectsX NNTP ObjectstrAXoptparse-option-callbacksrB(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-option-callbacksXOption CallbackstrCX backtoexamplerD(jjX?http://docs.python.org/3/extending/extending.html#backtoexampleXBack to the ExampletrEXlauncherrF(jjX4http://docs.python.org/3/using/windows.html#launcherXPython Launcher for WindowstrGXurlparse-result-objectrH(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urlparse-result-objectXStructured Parse ResultstrIXreference-indexrJ(jjX=http://docs.python.org/3/reference/index.html#reference-indexXThe Python Language ReferencetrKXbuffer-structurerL(jjX;http://docs.python.org/3/c-api/buffer.html#buffer-structureXBuffer structuretrMXdistutils-build-ext-inplacerN(jjXNhttp://docs.python.org/3/distutils/configfile.html#distutils-build-ext-inplaceX-trOXwhilerP(jjX<http://docs.python.org/3/reference/compound_stmts.html#whileXThe while statementtrQXstream-recoder-objectsrR(jjXChttp://docs.python.org/3/library/codecs.html#stream-recoder-objectsXStreamRecoder ObjectstrSXtut-brieftourtworT(jjX?http://docs.python.org/3/tutorial/stdlib2.html#tut-brieftourtwoX-Brief Tour of the Standard Library -- Part IItrUXlisting-modulesrV(jjXChttp://docs.python.org/3/distutils/setupscript.html#listing-modulesXListing individual modulestrWXtut-output-formattingrX(jjXDhttp://docs.python.org/3/tutorial/stdlib2.html#tut-output-formattingXOutput FormattingtrYXminidom-and-domrZ(jjXEhttp://docs.python.org/3/library/xml.dom.minidom.html#minidom-and-domXminidom and the DOM standardtr[Xtut-os-interfacer\(jjX>http://docs.python.org/3/tutorial/stdlib.html#tut-os-interfaceXOperating System Interfacetr]X cgi-securityr^(jjX6http://docs.python.org/3/library/cgi.html#cgi-securityXCaring about securitytr_Xmailbox-mmdfmessager`(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox-mmdfmessageX MMDFMessagetraXctypes-function-prototypesrb(jjXGhttp://docs.python.org/3/library/ctypes.html#ctypes-function-prototypesXFunction prototypestrcXisrd(jjX6http://docs.python.org/3/reference/expressions.html#isX ComparisonstreXoptparse-option-attributesrf(jjXIhttp://docs.python.org/3/library/optparse.html#optparse-option-attributesXOption attributestrgX msi-tablesrh(jjX7http://docs.python.org/3/library/msilib.html#msi-tablesXPrecomputed tablestriX new-decimalrj(jjX6http://docs.python.org/3/whatsnew/3.3.html#new-decimalXdecimaltrkXinrl(jjX6http://docs.python.org/3/reference/expressions.html#inX ComparisonstrmXsection-encodingsrn(jjX<http://docs.python.org/3/whatsnew/2.3.html#section-encodingsXPEP 263: Source Code EncodingstroXfile-operationsrp(jjX<http://docs.python.org/3/library/shutil.html#file-operationsXDirectory and files operationstrqXifrr(jjX9http://docs.python.org/3/reference/compound_stmts.html#ifXThe if statementtrsXpep-3118-updatert(jjX:http://docs.python.org/3/whatsnew/3.3.html#pep-3118-updateXIPEP 3118: New memoryview implementation and buffer protocol documentationtruXmultiple-destinationsrv(jjXJhttp://docs.python.org/3/howto/logging-cookbook.html#multiple-destinationsX Logging to multiple destinationstrwXreadline-examplerx(jjX?http://docs.python.org/3/library/readline.html#readline-exampleXExampletryXoptparse-callback-example-5rz(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-5X#Callback example 5: fixed argumentstr{Xinstall-data-cmdr|(jjXChttp://docs.python.org/3/distutils/commandref.html#install-data-cmdX install_datatr}Xoptparse-callback-example-6r~(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-6X&Callback example 6: variable argumentstrXoptparse-callback-example-1r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-1X$Callback example 1: trivial callbacktrXoptparse-callback-example-3r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-3X4Callback example 3: check option order (generalized)trXoptparse-callback-example-2r(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-2X&Callback example 2: check option ordertrX developmentr(jjX=http://docs.python.org/3/library/development.html#developmentXDevelopment ToolstrX indentationr(jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#indentationX IndentationtrX assignmentr(jjX?http://docs.python.org/3/reference/simple_stmts.html#assignmentXAssignment statementstrXwhatsnew-asyncior(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-asyncioXasynciotrXpy-to-json-tabler(jjX;http://docs.python.org/3/library/json.html#py-to-json-tableX-trX setup-scriptr(jjX@http://docs.python.org/3/distutils/setupscript.html#setup-scriptXWriting the Setup ScripttrX custom-levelsr(jjX9http://docs.python.org/3/howto/logging.html#custom-levelsX Custom LevelstrXlevelsr(jjX4http://docs.python.org/3/library/logging.html#levelsXLogging LevelstrX%single-use-reusable-and-reentrant-cmsr(jjXVhttp://docs.python.org/3/library/contextlib.html#single-use-reusable-and-reentrant-cmsX3Single use, reusable and reentrant context managerstrXinst-platform-variationsr(jjXDhttp://docs.python.org/3/install/index.html#inst-platform-variationsXPlatform variationstrXasynchat-exampler(jjX?http://docs.python.org/3/library/asynchat.html#asynchat-exampleXasynchat ExampletrXosx-gui-scriptsr(jjX7http://docs.python.org/3/using/mac.html#osx-gui-scriptsXRunning scripts with a GUItrXoptparse-standard-option-typesr(jjXMhttp://docs.python.org/3/library/optparse.html#optparse-standard-option-typesXStandard option typestrXinst-config-syntaxr(jjX>http://docs.python.org/3/install/index.html#inst-config-syntaxXSyntax of config filestrXprofile-timersr(jjX<http://docs.python.org/3/library/profile.html#profile-timersXUsing a custom timertrXprogramsr(jjXDhttp://docs.python.org/3/reference/toplevel_components.html#programsXComplete Python programstrXoptparse-store-actionr(jjXDhttp://docs.python.org/3/library/optparse.html#optparse-store-actionXThe store actiontrXconcreter(jjX5http://docs.python.org/3/c-api/concrete.html#concreteXConcrete Objects LayertrXattribute-referencesr(jjXHhttp://docs.python.org/3/reference/expressions.html#attribute-referencesXAttribute referencestrXhttpconnection-objectsr(jjXHhttp://docs.python.org/3/library/http.client.html#httpconnection-objectsXHTTPConnection ObjectstrXopener-director-objectsr(jjXLhttp://docs.python.org/3/library/urllib.request.html#opener-director-objectsXOpenerDirector ObjectstrXusing-on-misc-optionsr(jjXAhttp://docs.python.org/3/using/cmdline.html#using-on-misc-optionsXMiscellaneous optionstrXthinicer(jjX9http://docs.python.org/3/extending/extending.html#thiniceXThin IcetrXpickle-dispatchr(jjX<http://docs.python.org/3/library/pickle.html#pickle-dispatchXDispatch TablestrX auto-speccingr(jjXAhttp://docs.python.org/3/library/unittest.mock.html#auto-speccingX AutospeccingtrXoptparse-generating-helpr(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-generating-helpXGenerating helptrX callingpythonr(jjX?http://docs.python.org/3/extending/extending.html#callingpythonXCalling Python Functions from CtrXconcrete-pathsr(jjX<http://docs.python.org/3/library/pathlib.html#concrete-pathsXConcrete pathstrX typesinternalr(jjX<http://docs.python.org/3/library/stdtypes.html#typesinternalXInternal ObjectstrXoption-flags-and-directivesr(jjXIhttp://docs.python.org/3/library/doctest.html#option-flags-and-directivesX Option FlagstrXctypes-callback-functionsr(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes-callback-functionsXCallback functionstrXother-methods-and-attrsr(jjXFhttp://docs.python.org/3/library/unittest.html#other-methods-and-attrsX-trX api-refcountsr(jjX7http://docs.python.org/3/c-api/intro.html#api-refcountsXReference CountstrX!distutils-installing-package-datar(jjXUhttp://docs.python.org/3/distutils/setupscript.html#distutils-installing-package-dataXInstalling Package DatatrXmixer-device-objectsr(jjXFhttp://docs.python.org/3/library/ossaudiodev.html#mixer-device-objectsXMixer Device ObjectstrXbltin-ellipsis-objectr(jjXDhttp://docs.python.org/3/library/stdtypes.html#bltin-ellipsis-objectXThe Ellipsis ObjecttrXbytearrayobjectsr(jjX>http://docs.python.org/3/c-api/bytearray.html#bytearrayobjectsXByte Array ObjectstrXwarning-suppressr(jjX?http://docs.python.org/3/library/warnings.html#warning-suppressX Temporarily Suppressing WarningstrXproxy-digest-auth-handlerr(jjXNhttp://docs.python.org/3/library/urllib.request.html#proxy-digest-auth-handlerXProxyDigestAuthHandler ObjectstrXlogical_operands_labelr(jjXDhttp://docs.python.org/3/library/decimal.html#logical-operands-labelXLogical operandstrXcookbook-rotator-namerr(jjXKhttp://docs.python.org/3/howto/logging-cookbook.html#cookbook-rotator-namerX>Using a rotator and namer to customize log rotation processingtrX tut-filesr(jjX<http://docs.python.org/3/tutorial/inputoutput.html#tut-filesXReading and Writing FilestrX floatobjectsr(jjX6http://docs.python.org/3/c-api/float.html#floatobjectsXFloating Point ObjectstrXfrequently-used-argumentsr(jjXJhttp://docs.python.org/3/library/subprocess.html#frequently-used-argumentsXFrequently Used ArgumentstrXwhatsnew_email_contentmanagerr(jjXHhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-email-contentmanagerX-trX&ctypes-bit-fields-in-structures-unionsr(jjXShttp://docs.python.org/3/library/ctypes.html#ctypes-bit-fields-in-structures-unionsX#Bit fields in structures and unionstrXfunc-frozensetr(jjX>http://docs.python.org/3/library/functions.html#func-frozensetX-trXgetting-startedr(jjXLhttp://docs.python.org/3/library/unittest.mock-examples.html#getting-startedX Using MocktrX proxy-handlerr(jjXBhttp://docs.python.org/3/library/urllib.request.html#proxy-handlerXProxyHandler ObjectstrXembeddingincplusplusr(jjXFhttp://docs.python.org/3/extending/embedding.html#embeddingincplusplusXEmbedding Python in C++trXmemoryoverviewr(jjX9http://docs.python.org/3/c-api/memory.html#memoryoverviewXOverviewtrXmanifestr(jjX;http://docs.python.org/3/distutils/sourcedist.html#manifestX"Specifying the files to distributetrXcontinuer(jjX=http://docs.python.org/3/reference/simple_stmts.html#continueXThe continue statementtrXhttpresponse-objectsr(jjXFhttp://docs.python.org/3/library/http.client.html#httpresponse-objectsXHTTPResponse ObjectstrX tut-fp-issuesr(jjXBhttp://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issuesX2Floating Point Arithmetic: Issues and LimitationstrXxmlparser-objectsr(jjX?http://docs.python.org/3/library/pyexpat.html#xmlparser-objectsXXMLParser ObjectstrXdecimal-decimalr(jjX=http://docs.python.org/3/library/decimal.html#decimal-decimalXDecimal objectstrXoptparse-reference-guider(jjXGhttp://docs.python.org/3/library/optparse.html#optparse-reference-guideXReference GuidetrXformatter-interfacer(jjXChttp://docs.python.org/3/library/formatter.html#formatter-interfaceXThe Formatter InterfacetrX msi-errorsr(jjX7http://docs.python.org/3/library/msilib.html#msi-errorsXErrorstrX event-objectsr(jjX=http://docs.python.org/3/library/threading.html#event-objectsX Event ObjectstrX numeric-hashr(jjX;http://docs.python.org/3/library/stdtypes.html#numeric-hashXHashing of numeric typestrXtut-list-toolsr(jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-list-toolsXTools for Working with ListstrXexamplesr(jjX9http://docs.python.org/3/distutils/examples.html#examplesXExamplestrX msvcrt-filesr(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt-filesXFile OperationstrXpep-328r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-328X&PEP 328: Absolute and Relative Importstr Xstringservicesr (jjX9http://docs.python.org/3/library/text.html#stringservicesXText Processing Servicestr Xforr (jjX:http://docs.python.org/3/reference/compound_stmts.html#forXThe for statementtr X mailbox-babylr(jjX;http://docs.python.org/3/library/mailbox.html#mailbox-babylXBabyltrXcommentsr(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#commentsXCommentstrXexception-changedr(jjX>http://docs.python.org/3/library/winreg.html#exception-changedX-trX func-bytesr(jjX:http://docs.python.org/3/library/functions.html#func-bytesX-trXpprint-exampler(jjX;http://docs.python.org/3/library/pprint.html#pprint-exampleXExampletrXhttp-digest-auth-handlerr(jjXMhttp://docs.python.org/3/library/urllib.request.html#http-digest-auth-handlerXHTTPDigestAuthHandler ObjectstrXundocr(jjX1http://docs.python.org/3/library/undoc.html#undocXUndocumented ModulestrX api-objectsr(jjX5http://docs.python.org/3/c-api/intro.html#api-objectsX#Objects, Types and Reference CountstrXpep-3119r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3119XPEP 3119: Abstract Base ClassestrXabstract-grammarr (jjX:http://docs.python.org/3/library/ast.html#abstract-grammarXAbstract Grammartr!Xsection-slicesr"(jjX9http://docs.python.org/3/whatsnew/2.3.html#section-slicesXExtended Slicestr#Xcodec-base-classesr$(jjX?http://docs.python.org/3/library/codecs.html#codec-base-classesXCodec Base Classestr%Xasyncore-example-1r&(jjXAhttp://docs.python.org/3/library/asyncore.html#asyncore-example-1X"asyncore Example basic HTTP clienttr'Xhttp-handler-objectsr((jjXIhttp://docs.python.org/3/library/urllib.request.html#http-handler-objectsXHTTPHandler Objectstr)Xelementtree-elementtree-objectsr*(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-elementtree-objectsXElementTree Objectstr+Xminidom-objectsr,(jjXEhttp://docs.python.org/3/library/xml.dom.minidom.html#minidom-objectsX DOM Objectstr-Xpickle-restrictr.(jjX<http://docs.python.org/3/library/pickle.html#pickle-restrictXRestricting Globalstr/X os-newstreamsr0(jjX6http://docs.python.org/3/library/os.html#os-newstreamsXFile Object Creationtr1Xfpectl-limitationsr2(jjX?http://docs.python.org/3/library/fpectl.html#fpectl-limitationsX$Limitations and other considerationstr3Xparsetupleandkeywordsr4(jjXGhttp://docs.python.org/3/extending/extending.html#parsetupleandkeywordsX*Keyword Parameters for Extension Functionstr5Xintegersr6(jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#integersXInteger literalstr7X using-on-unixr8(jjX6http://docs.python.org/3/using/unix.html#using-on-unixXUsing Python on Unix platformstr9X importsystemr:(jjX;http://docs.python.org/3/reference/import.html#importsystemXThe import systemtr;X conversionsr<(jjX?http://docs.python.org/3/reference/expressions.html#conversionsXArithmetic conversionstr=Xoptparse-callback-example-4r>(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-callback-example-4X-Callback example 4: check arbitrary conditiontr?Xinstalling-indexr@(jjX?http://docs.python.org/3/installing/index.html#installing-indexXInstalling Python ModulestrAXoptparse-other-methodsrB(jjXEhttp://docs.python.org/3/library/optparse.html#optparse-other-methodsX Other methodstrCXstream-handlerrD(jjXEhttp://docs.python.org/3/library/logging.handlers.html#stream-handlerX StreamHandlertrEXpackage-commandsrF(jjXEhttp://docs.python.org/3/distutils/packageindex.html#package-commandsXDistutils commandstrGXpackage-displayrH(jjXDhttp://docs.python.org/3/distutils/packageindex.html#package-displayXPyPI package displaytrIXiderJ(jjX+http://docs.python.org/3/using/mac.html#ideXThe IDEtrKXsemaphore-examplesrL(jjXBhttp://docs.python.org/3/library/threading.html#semaphore-examplesXSemaphore ExampletrMX module-sqliterN(jjX8http://docs.python.org/3/whatsnew/2.5.html#module-sqliteXThe sqlite3 packagetrOXsqlite3-connection-objectsrP(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3-connection-objectsXConnection ObjectstrQXlibrary-configrR(jjX:http://docs.python.org/3/howto/logging.html#library-configX!Configuring Logging for a LibrarytrSXcurses-panel-objectsrT(jjXGhttp://docs.python.org/3/library/curses.panel.html#curses-panel-objectsX Panel ObjectstrUX pickle-staterV(jjX9http://docs.python.org/3/library/pickle.html#pickle-stateXHandling Stateful ObjectstrWXproxy-basic-auth-handlerrX(jjXMhttp://docs.python.org/3/library/urllib.request.html#proxy-basic-auth-handlerXProxyBasicAuthHandler ObjectstrYXctypes-passing-pointersrZ(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-passing-pointersX6Passing pointers (or: passing parameters by reference)tr[X csv-contentsr\(jjX6http://docs.python.org/3/library/csv.html#csv-contentsXModule Contentstr]Xformatter-objectsr^(jjX?http://docs.python.org/3/library/logging.html#formatter-objectsXFormatter Objectstr_Xlogging-config-dict-incrementalr`(jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-incrementalXIncremental ConfigurationtraXreporting-bugsrb(jjX1http://docs.python.org/3/bugs.html#reporting-bugsXReporting BugstrcXwhatsnew-pep-456rd(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-456X2PEP 456: Secure and Interchangeable Hash AlgorithmtreXwhatsnew-pep-451rf(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-451X0PEP 451: A ModuleSpec Type for the Import SystemtrgXwhatsnew-pep-453rh(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-453X>PEP 453: Explicit Bootstrapping of PIP in Python InstallationstriXclassrj(jjX<http://docs.python.org/3/reference/compound_stmts.html#classXClass definitionstrkXwhatsnew34-snirl(jjX9http://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sniX-trmXnt-eventlog-handlerrn(jjXJhttp://docs.python.org/3/library/logging.handlers.html#nt-eventlog-handlerXNTEventLogHandlertroXwatched-file-handlerrp(jjXKhttp://docs.python.org/3/library/logging.handlers.html#watched-file-handlerXWatchedFileHandlertrqXexpaterror-objectsrr(jjX@http://docs.python.org/3/library/pyexpat.html#expaterror-objectsXExpatError ExceptionstrsXdebugger-commandsrt(jjX;http://docs.python.org/3/library/pdb.html#debugger-commandsXDebugger CommandstruX tut-cleanuprv(jjX9http://docs.python.org/3/tutorial/errors.html#tut-cleanupXDefining Clean-up ActionstrwXdoctest-debuggingrx(jjX?http://docs.python.org/3/library/doctest.html#doctest-debuggingX DebuggingtryX library-introrz(jjX9http://docs.python.org/3/library/intro.html#library-introX Introductiontr{Xthreadpoolexecutor-exampler|(jjXShttp://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-exampleXThreadPoolExecutor Exampletr}X tut-customizer~(jjX=http://docs.python.org/3/tutorial/appendix.html#tut-customizeXThe Customization ModulestrXweakref-objectsr(jjX=http://docs.python.org/3/library/weakref.html#weakref-objectsXWeak Reference ObjectstrXunittest-test-discoveryr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest-test-discoveryXTest DiscoverytrXmultiprocessing-start-methodsr(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-start-methodsX-trX asyncio-udp-echo-server-protocolr(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-server-protocolXUDP echo server protocoltrX%optparse-understanding-option-actionsr(jjXThttp://docs.python.org/3/library/optparse.html#optparse-understanding-option-actionsXUnderstanding option actionstrXwhatsnew-isolated-moder(jjXAhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-modeX-trX tut-breakr(jjX<http://docs.python.org/3/tutorial/controlflow.html#tut-breakX8break and continue Statements, and else Clauses on LoopstrXelementtree-treebuilder-objectsr(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-treebuilder-objectsXTreeBuilder ObjectstrX imap4-exampler(jjX;http://docs.python.org/3/library/imaplib.html#imap4-exampleX IMAP4 ExampletrXsocket-exampler(jjX;http://docs.python.org/3/library/socket.html#socket-exampleXExampletrXtut-file-wildcardsr(jjX@http://docs.python.org/3/tutorial/stdlib.html#tut-file-wildcardsXFile WildcardstrXtelnet-exampler(jjX>http://docs.python.org/3/library/telnetlib.html#telnet-exampleXTelnet ExampletrX creating-rpmsr(jjX?http://docs.python.org/3/distutils/builtdist.html#creating-rpmsXCreating RPM packagestrX poll-objectsr(jjX9http://docs.python.org/3/library/select.html#poll-objectsXPolling ObjectstrXelementtree-sectionr(jjX>http://docs.python.org/3/whatsnew/2.7.html#elementtree-sectionXUpdated module: ElementTree 1.3trXtarfile-commandliner(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile-commandlineXCommand Line InterfacetrX formatstringsr(jjX:http://docs.python.org/3/library/string.html#formatstringsXFormat String SyntaxtrX tut-interacr(jjX;http://docs.python.org/3/tutorial/appendix.html#tut-interacXInteractive ModetrX fileobjectsr(jjX4http://docs.python.org/3/c-api/file.html#fileobjectsX File ObjectstrXmultiple-processesr(jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#multiple-processesX0Logging to a single file from multiple processestrXtools-and-scriptsr(jjX=http://docs.python.org/3/using/scripts.html#tools-and-scriptsXAdditional Tools and ScriptstrXb64r(jjX0http://docs.python.org/3/library/codecs.html#b64X-trXabstractr(jjX5http://docs.python.org/3/c-api/abstract.html#abstractXAbstract Objects LayertrX tut-listsr(jjX=http://docs.python.org/3/tutorial/introduction.html#tut-listsXListstrXasyncio-date-callbackr(jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-date-callbackX*Display the current date with call_later()trX typesmappingr(jjX;http://docs.python.org/3/library/stdtypes.html#typesmappingXMapping Types --- dicttrX!optparse-handling-boolean-optionsr(jjXPhttp://docs.python.org/3/library/optparse.html#optparse-handling-boolean-optionsXHandling boolean (flag) optionstrX shlex-objectsr(jjX9http://docs.python.org/3/library/shlex.html#shlex-objectsX shlex ObjectstrXbltin-boolean-valuesr(jjXChttp://docs.python.org/3/library/stdtypes.html#bltin-boolean-valuesXBoolean ValuestrXconfigparser-objectsr(jjXGhttp://docs.python.org/3/library/configparser.html#configparser-objectsXConfigParser ObjectstrXcookie-objectsr(jjXAhttp://docs.python.org/3/library/http.cookies.html#cookie-objectsXCookie ObjectstrXtut-pkg-import-starr(jjXBhttp://docs.python.org/3/tutorial/modules.html#tut-pkg-import-starXImporting * From a PackagetrXtime-y2kissuesr(jjX9http://docs.python.org/3/library/time.html#time-y2kissuesX-trXmembership-test-detailsr(jjXKhttp://docs.python.org/3/reference/expressions.html#membership-test-detailsX-trXstring-conversionr(jjX@http://docs.python.org/3/c-api/conversion.html#string-conversionX String conversion and formattingtrXtut-firstclassesr(jjX?http://docs.python.org/3/tutorial/classes.html#tut-firstclassesXA First Look at ClassestrXdircmp-objectsr(jjX<http://docs.python.org/3/library/filecmp.html#dircmp-objectsXThe dircmp classtrX dnt-basicsr(jjX;http://docs.python.org/3/extending/newtypes.html#dnt-basicsX The BasicstrXdiffer-examplesr(jjX=http://docs.python.org/3/library/difflib.html#differ-examplesXDiffer ExampletrX operatorsr(jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#operatorsX OperatorstrXfunctions-in-cgi-moduler(jjXAhttp://docs.python.org/3/library/cgi.html#functions-in-cgi-moduleX FunctionstrXrefcountsinpythonr(jjXChttp://docs.python.org/3/extending/extending.html#refcountsinpythonXReference Counting in PythontrXatexit-exampler(jjX;http://docs.python.org/3/library/atexit.html#atexit-exampleXatexit ExampletrXinst-building-extr(jjX=http://docs.python.org/3/install/index.html#inst-building-extX$Building Extensions: Tips and TrickstrX codec-objectsr(jjX:http://docs.python.org/3/library/codecs.html#codec-objectsX Codec ObjectstrX utilitiesr(jjX7http://docs.python.org/3/c-api/utilities.html#utilitiesX UtilitiestrXdoctest-unittest-apir(jjXBhttp://docs.python.org/3/library/doctest.html#doctest-unittest-apiX Unittest APItrX setobjectsr(jjX2http://docs.python.org/3/c-api/set.html#setobjectsX Set ObjectstrX yieldexprr(jjX=http://docs.python.org/3/reference/expressions.html#yieldexprXYield expressionstrXlegacy-unit-testsr(jjX@http://docs.python.org/3/library/unittest.html#legacy-unit-testsXRe-using old test codetrXinspect-sourcer(jjX<http://docs.python.org/3/library/inspect.html#inspect-sourceXRetrieving source codetrX tut-functionsr(jjX@http://docs.python.org/3/tutorial/controlflow.html#tut-functionsXDefining FunctionstrXcompleter-objectsr(jjXChttp://docs.python.org/3/library/rlcompleter.html#completer-objectsXCompleter ObjectstrXcurses-window-objectsr(jjXBhttp://docs.python.org/3/library/curses.html#curses-window-objectsXWindow ObjectstrX2to3-referencer(jjX8http://docs.python.org/3/library/2to3.html#to3-referenceX/2to3 - Automated Python 2 to 3 code translationtrXmodulesr(jjX5http://docs.python.org/3/library/modules.html#modulesXImporting ModulestrX mailbox-mboxr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox-mboxXmboxtrXarbitrary-object-messagesr(jjXEhttp://docs.python.org/3/howto/logging.html#arbitrary-object-messagesX#Using arbitrary objects as messagestrXoptparse-extending-optparser(jjXJhttp://docs.python.org/3/library/optparse.html#optparse-extending-optparseXExtending optparsetrXwhatsnew-pathlibr(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pathlibXpathlibtrXdefused-packagesr(jjX:http://docs.python.org/3/library/xml.html#defused-packagesX(The defusedxml and defusedexpat PackagestrX reentrant-cmsr(jjX>http://docs.python.org/3/library/contextlib.html#reentrant-cmsXReentrant context managerstrXdescribing-extensionsr(jjXIhttp://docs.python.org/3/distutils/setupscript.html#describing-extensionsXDescribing extension modulestrXunittest-minimal-exampler(jjXGhttp://docs.python.org/3/library/unittest.html#unittest-minimal-exampleX Basic exampletrXjson-to-py-tabler(jjX;http://docs.python.org/3/library/json.html#json-to-py-tableX-trXiteratorr(jjX1http://docs.python.org/3/c-api/iter.html#iteratorXIterator ProtocoltrXexpression-inputr(jjXLhttp://docs.python.org/3/reference/toplevel_components.html#expression-inputXExpression inputtrXglobalr(jjX;http://docs.python.org/3/reference/simple_stmts.html#globalXThe global statementtrX$optparse-how-optparse-handles-errorsr(jjXShttp://docs.python.org/3/library/optparse.html#optparse-how-optparse-handles-errorsXHow optparse handles errorstr Xhttp-error-processor-objectsr (jjXQhttp://docs.python.org/3/library/urllib.request.html#http-error-processor-objectsXHTTPErrorProcessor Objectstr X bufferobjectsr (jjX8http://docs.python.org/3/c-api/buffer.html#bufferobjectsXBuffer Protocoltr Xtypememoryviewr(jjX=http://docs.python.org/3/library/stdtypes.html#typememoryviewX Memory ViewstrXlocator-objectsr(jjXDhttp://docs.python.org/3/library/xml.sax.reader.html#locator-objectsXLocator ObjectstrX"ctypes-calling-functions-continuedr(jjXOhttp://docs.python.org/3/library/ctypes.html#ctypes-calling-functions-continuedXCalling functions, continuedtrXasyncio-loggerr(jjX@http://docs.python.org/3/library/asyncio-dev.html#asyncio-loggerXLoggingtrXssl-certificatesr(jjX:http://docs.python.org/3/library/ssl.html#ssl-certificatesX CertificatestrX smtp-exampler(jjX:http://docs.python.org/3/library/smtplib.html#smtp-exampleX SMTP ExampletrXtut-inheritancer(jjX>http://docs.python.org/3/tutorial/classes.html#tut-inheritanceX InheritancetrXsection-pep307r(jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep307XPEP 307: Pickle EnhancementstrX install-indexr(jjX9http://docs.python.org/3/install/index.html#install-indexX*Installing Python Modules (Legacy version)trXdistutils-termr (jjXChttp://docs.python.org/3/distutils/introduction.html#distutils-termXDistutils-specific terminologytr!X meta-datar"(jjX=http://docs.python.org/3/distutils/setupscript.html#meta-dataXAdditional meta-datatr#Xfinallyr$(jjX>http://docs.python.org/3/reference/compound_stmts.html#finallyXThe try statementtr%Xtut-decimal-fpr&(jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-decimal-fpX!Decimal Floating Point Arithmetictr'Xstabler((jjX1http://docs.python.org/3/c-api/stable.html#stableX#Stable Application Binary Interfacetr)X api-debuggingr*(jjX7http://docs.python.org/3/c-api/intro.html#api-debuggingXDebugging Buildstr+Xtut-mathematicsr,(jjX=http://docs.python.org/3/tutorial/stdlib.html#tut-mathematicsX Mathematicstr-Xsupporting-cycle-detectionr.(jjXHhttp://docs.python.org/3/c-api/gcsupport.html#supporting-cycle-detectionX$Supporting Cyclic Garbage Collectiontr/X typesmodulesr0(jjX;http://docs.python.org/3/library/stdtypes.html#typesmodulesXModulestr1Xbooleansr2(jjX<http://docs.python.org/3/reference/expressions.html#booleansXBoolean operationstr3Xsemaphore-objectsr4(jjXAhttp://docs.python.org/3/library/threading.html#semaphore-objectsXSemaphore Objectstr5Xdevpoll-objectsr6(jjX<http://docs.python.org/3/library/select.html#devpoll-objectsX/dev/poll Polling Objectstr7Xdescriptor-invocationr8(jjXGhttp://docs.python.org/3/reference/datamodel.html#descriptor-invocationXInvoking Descriptorstr9X expat-errorsr:(jjX:http://docs.python.org/3/library/pyexpat.html#expat-errorsXExpat error constantstr;Xcompoundshapesr<(jjX;http://docs.python.org/3/library/turtle.html#compoundshapesXCompound shapestr=X metaclassesr>(jjX=http://docs.python.org/3/reference/datamodel.html#metaclassesXCustomizing class creationtr?X inst-intror@(jjX6http://docs.python.org/3/install/index.html#inst-introX IntroductiontrAXdata-handler-objectsrB(jjXIhttp://docs.python.org/3/library/urllib.request.html#data-handler-objectsXDataHandler ObjectstrCX tut-modulesrD(jjX:http://docs.python.org/3/tutorial/modules.html#tut-modulesXModulestrEXcomplexobjectsrF(jjX:http://docs.python.org/3/c-api/complex.html#complexobjectsXComplex Number ObjectstrGXtut-keybindingsrH(jjXBhttp://docs.python.org/3/tutorial/interactive.html#tut-keybindingsX"Tab Completion and History EditingtrIX pop3-objectsrJ(jjX9http://docs.python.org/3/library/poplib.html#pop3-objectsX POP3 ObjectstrKXextending-simpleexamplerL(jjXIhttp://docs.python.org/3/extending/extending.html#extending-simpleexampleXA Simple ExampletrMXtryrN(jjX:http://docs.python.org/3/reference/compound_stmts.html#tryXThe try statementtrOXtut-defaultargsrP(jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-defaultargsXDefault Argument ValuestrQX otherobjectsrR(jjX9http://docs.python.org/3/c-api/concrete.html#otherobjectsXFunction ObjectstrSX os-filenamesrT(jjX5http://docs.python.org/3/library/os.html#os-filenamesX=File Names, Command Line Arguments, and Environment VariablestrUXfilter-chain-specsrV(jjX=http://docs.python.org/3/library/lzma.html#filter-chain-specsXSpecifying custom filter chainstrWXphysical-linesrX(jjXGhttp://docs.python.org/3/reference/lexical_analysis.html#physical-linesXPhysical linestrYXhistory-and-licenserZ(jjX9http://docs.python.org/3/license.html#history-and-licenseXHistory and Licensetr[X tut-brieftourr\(jjX;http://docs.python.org/3/tutorial/stdlib.html#tut-brieftourX"Brief Tour of the Standard Librarytr]X whatsnew-enumr^(jjX8http://docs.python.org/3/whatsnew/3.4.html#whatsnew-enumXenumtr_X tar-examplesr`(jjX:http://docs.python.org/3/library/tarfile.html#tar-examplesXExamplestraXembedding-localerb(jjX=http://docs.python.org/3/library/locale.html#embedding-localeX4For extension writers and programs that embed PythontrcXfd_inheritancerd(jjX7http://docs.python.org/3/library/os.html#fd-inheritanceXInheritance of File DescriptorstreX module-ctypesrf(jjX8http://docs.python.org/3/whatsnew/2.5.html#module-ctypesXThe ctypes packagetrgXdoctest-directivesrh(jjX@http://docs.python.org/3/library/doctest.html#doctest-directivesX DirectivestriX subscriptionsrj(jjXAhttp://docs.python.org/3/reference/expressions.html#subscriptionsX SubscriptionstrkXrandom-examplesrl(jjX<http://docs.python.org/3/library/random.html#random-examplesXExamples and RecipestrmXitertools-recipesrn(jjXAhttp://docs.python.org/3/library/itertools.html#itertools-recipesXItertools RecipestroX!collections-abstract-base-classesrp(jjXWhttp://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classesX!Collections Abstract Base ClassestrqX asyncio-tcp-echo-client-protocolrr(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-tcp-echo-client-protocolXTCP echo client protocoltrsXdatetime-tzinfort(jjX>http://docs.python.org/3/library/datetime.html#datetime-tzinfoXtzinfo ObjectstruXmultiprocessing-programmingrv(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-programmingXProgramming guidelinestrwXsax-exception-objectsrx(jjXChttp://docs.python.org/3/library/xml.sax.html#sax-exception-objectsXSAXException ObjectstryX imap4-objectsrz(jjX;http://docs.python.org/3/library/imaplib.html#imap4-objectsX IMAP4 Objectstr{Xlogging-config-apir|(jjXGhttp://docs.python.org/3/library/logging.config.html#logging-config-apiXConfiguration functionstr}Xpep-353r~(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-353X(PEP 353: Using ssize_t as the index typetrX asyncio-devr(jjX=http://docs.python.org/3/library/asyncio-dev.html#asyncio-devXDevelop with asynciotrXobjectsr(jjX9http://docs.python.org/3/reference/datamodel.html#objectsXObjects, values and typestrXpep-357r(jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-357XPEP 357: The '__index__' methodtrXpackage-cmdoptionsr(jjXGhttp://docs.python.org/3/distutils/packageindex.html#package-cmdoptionsXAdditional command optionstrXdistributing-indexr(jjXChttp://docs.python.org/3/distributing/index.html#distributing-indexXDistributing Python ModulestrXurllib-examplesr(jjXDhttp://docs.python.org/3/library/urllib.request.html#urllib-examplesX-trXpackage-registerr(jjXEhttp://docs.python.org/3/distutils/packageindex.html#package-registerXThe register commandtrXdoctest-exceptionsr(jjX@http://docs.python.org/3/library/doctest.html#doctest-exceptionsXWhat About Exceptions?trX creating-stsr(jjX9http://docs.python.org/3/library/parser.html#creating-stsXCreating ST ObjectstrX tut-loggingr(jjX:http://docs.python.org/3/tutorial/stdlib2.html#tut-loggingXLoggingtrXurllib-request-examplesr(jjXLhttp://docs.python.org/3/library/urllib.request.html#urllib-request-examplesXExamplestrXhkey-constantsr(jjX;http://docs.python.org/3/library/winreg.html#hkey-constantsXHKEY_* ConstantstrXdatetime-objectsr(jjXDhttp://docs.python.org/3/library/xmlrpc.client.html#datetime-objectsXDateTime ObjectstrX with-locksr(jjX:http://docs.python.org/3/library/threading.html#with-locksX=Using locks, conditions, and semaphores in the with statementtrXshiftingr(jjX<http://docs.python.org/3/reference/expressions.html#shiftingXShifting operationstrXdecimal-signalsr(jjX=http://docs.python.org/3/library/decimal.html#decimal-signalsXSignalstrXtut-lists-as-stacksr(jjXIhttp://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-stacksXUsing Lists as StackstrXipcr(jjX-http://docs.python.org/3/library/ipc.html#ipcX)Interprocess Communication and NetworkingtrX tut-privater(jjX:http://docs.python.org/3/tutorial/classes.html#tut-privateXPrivate VariablestrXos-pathr(jjX0http://docs.python.org/3/library/os.html#os-pathX Miscellaneous System InformationtrXoptparse-default-valuesr(jjXFhttp://docs.python.org/3/library/optparse.html#optparse-default-valuesXDefault valuestrXtut-cleanup-withr(jjX>http://docs.python.org/3/tutorial/errors.html#tut-cleanup-withXPredefined Clean-up ActionstrXbooleanr(jjX6http://docs.python.org/3/library/stdtypes.html#booleanX#Boolean Operations --- and, or, nottrXsequence-typesr(jjX@http://docs.python.org/3/reference/datamodel.html#sequence-typesXEmulating container typestrXnetdatar(jjX5http://docs.python.org/3/library/netdata.html#netdataXInternet Data HandlingtrXmailbox-babylmessager(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox-babylmessageX BabylMessagetrXfpectl-exampler(jjX;http://docs.python.org/3/library/fpectl.html#fpectl-exampleXExampletrXattr-target-noter(jjXEhttp://docs.python.org/3/reference/simple_stmts.html#attr-target-noteX-trX exprstmtsr(jjX>http://docs.python.org/3/reference/simple_stmts.html#exprstmtsXExpression statementstrXsequence-matcherr(jjX>http://docs.python.org/3/library/difflib.html#sequence-matcherXSequenceMatcher ObjectstrXis notr(jjX:http://docs.python.org/3/reference/expressions.html#is-notX ComparisonstrX api-referencer(jjX<http://docs.python.org/3/distutils/apiref.html#api-referenceX API ReferencetrXfromr(jjX9http://docs.python.org/3/reference/simple_stmts.html#fromXThe import statementtrXdebug-setup-scriptr(jjXFhttp://docs.python.org/3/distutils/setupscript.html#debug-setup-scriptXDebugging the setup scripttrXhandlerr(jjX5http://docs.python.org/3/library/logging.html#handlerXHandler ObjectstrXbltin-notimplemented-objectr(jjXJhttp://docs.python.org/3/library/stdtypes.html#bltin-notimplemented-objectXThe NotImplemented ObjecttrXmemoryr(jjX1http://docs.python.org/3/c-api/memory.html#memoryXMemory ManagementtrXoptparse-defining-optionsr(jjXHhttp://docs.python.org/3/library/optparse.html#optparse-defining-optionsXDefining optionstrXtextseqr(jjX6http://docs.python.org/3/library/stdtypes.html#textseqXText Sequence Type --- strtrXfunc-memoryviewr(jjX?http://docs.python.org/3/library/functions.html#func-memoryviewX-trXtutorial-indexr(jjX;http://docs.python.org/3/tutorial/index.html#tutorial-indexXThe Python TutorialtrXextending-with-embeddingr(jjXJhttp://docs.python.org/3/extending/embedding.html#extending-with-embeddingXExtending Embedded PythontrXcross-compile-windowsr(jjXGhttp://docs.python.org/3/distutils/builtdist.html#cross-compile-windowsXCross-compiling on WindowstrXctypes-ctypes-referencer(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-ctypes-referenceXctypes referencetrXtut-arbitraryargsr(jjXDhttp://docs.python.org/3/tutorial/controlflow.html#tut-arbitraryargsXArbitrary Argument ListstrX tut-class-and-instance-variablesr(jjXOhttp://docs.python.org/3/tutorial/classes.html#tut-class-and-instance-variablesXClass and Instance VariablestrX mapobjectsr(jjX7http://docs.python.org/3/c-api/concrete.html#mapobjectsXContainer ObjectstrXdistutils-installing-scriptsr(jjXPhttp://docs.python.org/3/distutils/setupscript.html#distutils-installing-scriptsXInstalling ScriptstrXimplementationsr(jjXDhttp://docs.python.org/3/reference/introduction.html#implementationsXAlternate ImplementationstrXtut-filemethodsr(jjXBhttp://docs.python.org/3/tutorial/inputoutput.html#tut-filemethodsXMethods of File ObjectstrXcookie-exampler(jjXAhttp://docs.python.org/3/library/http.cookies.html#cookie-exampleXExampletrXwhatsnew-pep-436r(jjX;http://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-436XPEP 436: Argument ClinictrX windows-faqr(jjX5http://docs.python.org/3/faq/windows.html#windows-faqXPython on Windows FAQtrX23acksr(jjX/http://docs.python.org/3/whatsnew/2.3.html#acksXAcknowledgementstrXdefault-cookie-policy-objectsr(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#default-cookie-policy-objectsXDefaultCookiePolicy ObjectstrX types-setr(jjX8http://docs.python.org/3/library/stdtypes.html#types-setXSet Types --- set, frozensettrXc-wrapper-softwarer(jjX>http://docs.python.org/3/faq/extending.html#c-wrapper-softwareX.Writing C is hard; are there any alternatives?trXinst-alt-installr(jjX<http://docs.python.org/3/install/index.html#inst-alt-installXAlternate InstallationtrXdoctest-exampler(jjX=http://docs.python.org/3/library/doctest.html#doctest-exampleXExample ObjectstrXcabr(jjX0http://docs.python.org/3/library/msilib.html#cabX CAB ObjectstrX tut-tuplesr(jjX@http://docs.python.org/3/tutorial/datastructures.html#tut-tuplesXTuples and SequencestrX func-dictr(jjX9http://docs.python.org/3/library/functions.html#func-dictX-trXpep-3101r(jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3101X$PEP 3101: Advanced String FormattingtrXdom-node-objectsr(jjX>http://docs.python.org/3/library/xml.dom.html#dom-node-objectsX Node ObjectstrXpep-3105r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3105XPEP 3105: print As a Functiontr Xnot inr (jjX:http://docs.python.org/3/reference/expressions.html#not-inX Comparisonstr X type-structsr (jjX8http://docs.python.org/3/c-api/typeobj.html#type-structsX Type Objectstr Xuseful-handlersr (jjX;http://docs.python.org/3/howto/logging.html#useful-handlersXUseful Handlerstr Xsqlite3-module-contentsr (jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3-module-contentsXModule functions and constantstr Xunicodeexceptionsr (jjX@http://docs.python.org/3/c-api/exceptions.html#unicodeexceptionsXUnicode Exception Objectstr Xsocket-objectsr (jjX;http://docs.python.org/3/library/socket.html#socket-objectsXSocket Objectstr Xpure-pkgr (jjX9http://docs.python.org/3/distutils/examples.html#pure-pkgX%Pure Python distribution (by package)tr X typesnumericr (jjX;http://docs.python.org/3/library/stdtypes.html#typesnumericX%Numeric Types --- int, float, complextr Xstring-catenationr (jjXJhttp://docs.python.org/3/reference/lexical_analysis.html#string-catenationXString literal concatenationtr Xtut-methodobjectsr (jjX@http://docs.python.org/3/tutorial/classes.html#tut-methodobjectsXMethod Objectstr Xtut-instanceobjectsr (jjXBhttp://docs.python.org/3/tutorial/classes.html#tut-instanceobjectsXInstance Objectstr X re-syntaxr (jjX2http://docs.python.org/3/library/re.html#re-syntaxXRegular Expression Syntaxtr Xunicodeobjectsr (jjX:http://docs.python.org/3/c-api/unicode.html#unicodeobjectsXUnicode Objects and Codecstr Xctypes-fundamental-data-types-2r (jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-fundamental-data-types-2XFundamental data typestr Xmodule-wsgirefr (jjX9http://docs.python.org/3/whatsnew/2.5.html#module-wsgirefXThe wsgiref packagetr X getting-osxr (jjX3http://docs.python.org/3/using/mac.html#getting-osxX Getting and Installing MacPythontr! Xdeterministic-profilingr" (jjXEhttp://docs.python.org/3/library/profile.html#deterministic-profilingX What Is Deterministic Profiling?tr# Xprofiler$ (jjX5http://docs.python.org/3/library/profile.html#profileXThe Python Profilerstr% Xpyporting-howtor& (jjX=http://docs.python.org/3/howto/pyporting.html#pyporting-howtoX!Porting Python 2 Code to Python 3tr' Xgeneric-attribute-managementr( (jjXMhttp://docs.python.org/3/extending/newtypes.html#generic-attribute-managementXGeneric Attribute Managementtr) Xbltin-type-objectsr* (jjXAhttp://docs.python.org/3/library/stdtypes.html#bltin-type-objectsX Type Objectstr+ X tupleobjectsr, (jjX6http://docs.python.org/3/c-api/tuple.html#tupleobjectsX Tuple Objectstr- Xtut-classobjectsr. (jjX?http://docs.python.org/3/tutorial/classes.html#tut-classobjectsX Class Objectstr/ Xtut-userexceptionsr0 (jjX@http://docs.python.org/3/tutorial/errors.html#tut-userexceptionsXUser-defined Exceptionstr1 X longobjectsr2 (jjX4http://docs.python.org/3/c-api/long.html#longobjectsXInteger Objectstr3 Xasyncio-register-socket-streamsr4 (jjXThttp://docs.python.org/3/library/asyncio-stream.html#asyncio-register-socket-streamsX6Register an open socket to wait for data using streamstr5 X pop3-exampler6 (jjX9http://docs.python.org/3/library/poplib.html#pop3-exampleX POP3 Exampletr7 Xwhy-selfr8 (jjX1http://docs.python.org/3/faq/design.html#why-selfXCWhy must 'self' be used explicitly in method definitions and calls?tr9 Xasyncio-date-coroutiner: (jjXIhttp://docs.python.org/3/library/asyncio-task.html#asyncio-date-coroutineX.Example: Coroutine displaying the current datetr; Xcurses-textpad-objectsr< (jjXChttp://docs.python.org/3/library/curses.html#curses-textpad-objectsXTextbox objectstr= X tut-raisingr> (jjX9http://docs.python.org/3/tutorial/errors.html#tut-raisingXRaising Exceptionstr? Xallosr@ (jjX1http://docs.python.org/3/library/allos.html#allosX!Generic Operating System ServicestrA Xdom-accessor-methodsrB (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-accessor-methodsXAccessor MethodstrC Xinst-config-filenamesrD (jjXAhttp://docs.python.org/3/install/index.html#inst-config-filenamesX"Location and names of config filestrE XoptsrF (jjX/http://docs.python.org/3/whatsnew/2.5.html#optsX OptimizationstrG XelifrH (jjX;http://docs.python.org/3/reference/compound_stmts.html#elifXThe if statementtrI Xdnt-type-methodsrJ (jjXAhttp://docs.python.org/3/extending/newtypes.html#dnt-type-methodsX Type MethodstrK X tut-informalrL (jjX@http://docs.python.org/3/tutorial/introduction.html#tut-informalX"An Informal Introduction to PythontrM Xprocesspoolexecutor-examplerN (jjXThttp://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-exampleXProcessPoolExecutor ExampletrO Xdoctest-doctestparserrP (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestparserXDocTestParser objectstrQ X 2to3-fixersrR (jjX5http://docs.python.org/3/library/2to3.html#to3-fixersXFixerstrS X sect-rellinksrT (jjX8http://docs.python.org/3/whatsnew/2.2.html#sect-rellinksX Related LinkstrU Xlogging-config-fileformatrV (jjXNhttp://docs.python.org/3/library/logging.config.html#logging-config-fileformatXConfiguration file formattrW X ctypes-variable-sized-data-typesrX (jjXMhttp://docs.python.org/3/library/ctypes.html#ctypes-variable-sized-data-typesXVariable-sized data typestrY Xunknown-handler-objectsrZ (jjXLhttp://docs.python.org/3/library/urllib.request.html#unknown-handler-objectsXUnknownHandler Objectstr[ Xdom-conformancer\ (jjX=http://docs.python.org/3/library/xml.dom.html#dom-conformanceX Conformancetr] X tut-errorsr^ (jjX8http://docs.python.org/3/tutorial/errors.html#tut-errorsXErrors and Exceptionstr_ Xoptparse-adding-new-actionsr` (jjXJhttp://docs.python.org/3/library/optparse.html#optparse-adding-new-actionsXAdding new actionstra X slice-objectsrb (jjX7http://docs.python.org/3/c-api/slice.html#slice-objectsX Slice Objectstrc X tut-classesrd (jjX:http://docs.python.org/3/tutorial/classes.html#tut-classesXClassestre X 2to3-usingrf (jjX4http://docs.python.org/3/library/2to3.html#to3-usingX Using 2to3trg Xsignal-examplerh (jjX;http://docs.python.org/3/library/signal.html#signal-exampleXExampletri Xpythonrj (jjX3http://docs.python.org/3/library/python.html#pythonXPython Runtime Servicestrk Xprofiler-introductionrl (jjXChttp://docs.python.org/3/library/profile.html#profiler-introductionXIntroduction to the profilerstrm Xtut-keywordargsrn (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-keywordargsXKeyword Argumentstro Xwhatsnew-protocol-4rp (jjX>http://docs.python.org/3/whatsnew/3.4.html#whatsnew-protocol-4Xpickletrq Xoptparse-populating-parserrr (jjXIhttp://docs.python.org/3/library/optparse.html#optparse-populating-parserXPopulating the parsertrs Xnotrt (jjX7http://docs.python.org/3/reference/expressions.html#notXBoolean operationstru X package-indexrv (jjXBhttp://docs.python.org/3/distutils/packageindex.html#package-indexXThe Python Package Index (PyPI)trw X pure-pathsrx (jjX8http://docs.python.org/3/library/pathlib.html#pure-pathsX Pure pathstry Xdoctest-doctestrz (jjX=http://docs.python.org/3/library/doctest.html#doctest-doctestXDocTest Objectstr{ Xcryptor| (jjX3http://docs.python.org/3/library/crypto.html#cryptoXCryptographic Servicestr} X smtp-objectsr~ (jjX:http://docs.python.org/3/library/smtplib.html#smtp-objectsX SMTP Objectstr Xctypes-ctypes-tutorialr (jjXChttp://docs.python.org/3/library/ctypes.html#ctypes-ctypes-tutorialXctypes tutorialtr Xtut-dirr (jjX6http://docs.python.org/3/tutorial/modules.html#tut-dirXThe dir() Functiontr X handler-basicr (jjX9http://docs.python.org/3/howto/logging.html#handler-basicXHandlerstr X)ctypes-specifying-required-argument-typesr (jjXVhttp://docs.python.org/3/library/ctypes.html#ctypes-specifying-required-argument-typesX<Specifying the required argument types (function prototypes)tr Xsqlite3-row-objectsr (jjXAhttp://docs.python.org/3/library/sqlite3.html#sqlite3-row-objectsX Row Objectstr Xusing-on-windowsr (jjX<http://docs.python.org/3/using/windows.html#using-on-windowsXUsing Python on Windowstr Xexplicit-joiningr (jjXIhttp://docs.python.org/3/reference/lexical_analysis.html#explicit-joiningXExplicit line joiningtr Xpep-0343r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0343XPEP 343: The 'with' statementtr Xfilters-contextualr (jjXGhttp://docs.python.org/3/howto/logging-cookbook.html#filters-contextualX.Using Filters to impart contextual informationtr X access-rightsr (jjX:http://docs.python.org/3/library/winreg.html#access-rightsX Access Rightstr Xprofile-instantr (jjX=http://docs.python.org/3/library/profile.html#profile-instantXInstant User's Manualtr Xdoctest-doctestfinderr (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestfinderXDocTestFinder objectstr X encodingsr (jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#encodingsXEncoding declarationstr Xsubtestsr (jjX7http://docs.python.org/3/library/unittest.html#subtestsX-Distinguishing test iterations using subteststr Xnamingr (jjX=http://docs.python.org/3/reference/executionmodel.html#namingXNaming and bindingtr Xbuilding-on-windowsr (jjXChttp://docs.python.org/3/extending/windows.html#building-on-windowsX(Building C and C++ Extensions on Windowstr Xtut-dictionariesr (jjXFhttp://docs.python.org/3/tutorial/datastructures.html#tut-dictionariesX Dictionariestr X re-objectsr (jjX3http://docs.python.org/3/library/re.html#re-objectsXRegular Expression Objectstr Xelementtree-parsing-xmlr (jjXShttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-parsing-xmlX Parsing XMLtr Xapi-refcountdetailsr (jjX=http://docs.python.org/3/c-api/intro.html#api-refcountdetailsXReference Count Detailstr Xmodule-hashlibr (jjX9http://docs.python.org/3/whatsnew/2.5.html#module-hashlibXThe hashlib packagetr X func-tupler (jjX:http://docs.python.org/3/library/functions.html#func-tupleX-tr Xfunction-objectsr (jjX=http://docs.python.org/3/c-api/function.html#function-objectsXFunction Objectstr Xhttp-basic-auth-handlerr (jjXLhttp://docs.python.org/3/library/urllib.request.html#http-basic-auth-handlerXHTTPBasicAuthHandler Objectstr X curses-howtor (jjX7http://docs.python.org/3/howto/curses.html#curses-howtoXCurses Programming with Pythontr X ctypes-arraysr (jjX:http://docs.python.org/3/library/ctypes.html#ctypes-arraysXArraystr Xsection-enumerater (jjX<http://docs.python.org/3/whatsnew/2.3.html#section-enumerateXPEP 279: enumerate()tr Xinternetr (jjX7http://docs.python.org/3/library/internet.html#internetXInternet Protocols and Supporttr X os-fd-opsr (jjX2http://docs.python.org/3/library/os.html#os-fd-opsXFile Descriptor Operationstr Xslicingsr (jjX<http://docs.python.org/3/reference/expressions.html#slicingsXSlicingstr Xctypes-incomplete-typesr (jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-incomplete-typesXIncomplete Typestr Xdom-document-objectsr (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-document-objectsXDocument Objectstr Xtestsuite-objectsr (jjX@http://docs.python.org/3/library/unittest.html#testsuite-objectsXGrouping teststr Xwhatsnew-ensurepipr (jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-ensurepipX ensurepiptr Xmethod-objectsr (jjX9http://docs.python.org/3/c-api/method.html#method-objectsXMethod Objectstr Xoptparse-backgroundr (jjXBhttp://docs.python.org/3/library/optparse.html#optparse-backgroundX Backgroundtr X fileformatsr (jjX=http://docs.python.org/3/library/fileformats.html#fileformatsX File Formatstr Xossaudio-device-objectsr (jjXIhttp://docs.python.org/3/library/ossaudiodev.html#ossaudio-device-objectsXAudio Device Objectstr Xwhatsnew-tracemallocr (jjX?http://docs.python.org/3/whatsnew/3.4.html#whatsnew-tracemallocX tracemalloctr X st-errorsr (jjX6http://docs.python.org/3/library/parser.html#st-errorsXExceptions and Error Handlingtr Xpreparer (jjX9http://docs.python.org/3/reference/datamodel.html#prepareXPreparing the class namespacetr Xlanguager (jjX7http://docs.python.org/3/library/language.html#languageXPython Language Servicestr Xusing-on-interface-optionsr (jjXFhttp://docs.python.org/3/using/cmdline.html#using-on-interface-optionsXInterface optionstr Xfnpicr (jjX4http://docs.python.org/3/reference/import.html#fnpicX-tr Xdistutils-indexr (jjX=http://docs.python.org/3/distutils/index.html#distutils-indexX,Distributing Python Modules (Legacy version)tr Xvenv-defr (jjX3http://docs.python.org/3/library/venv.html#venv-defX-tr X pickle-instr (jjX8http://docs.python.org/3/library/pickle.html#pickle-instXPickling Class Instancestr Xbase-handler-objectsr (jjXIhttp://docs.python.org/3/library/urllib.request.html#base-handler-objectsXBaseHandler Objectstr X tut-stderrr (jjX8http://docs.python.org/3/tutorial/stdlib.html#tut-stderrX0Error Output Redirection and Program Terminationtr X cplusplusr (jjX;http://docs.python.org/3/extending/extending.html#cplusplusXWriting Extensions in C++tr Xbase-rotating-handlerr (jjXLhttp://docs.python.org/3/library/logging.handlers.html#base-rotating-handlerXBaseRotatingHandlertr Xlambdar (jjX:http://docs.python.org/3/reference/expressions.html#lambdaXLambdastr Xtimed-rotating-file-handlerr (jjXRhttp://docs.python.org/3/library/logging.handlers.html#timed-rotating-file-handlerXTimedRotatingFileHandlertr X richcmpfuncsr (jjX>http://docs.python.org/3/reference/datamodel.html#richcmpfuncsX-tr Xshutil-archiving-exampler (jjXEhttp://docs.python.org/3/library/shutil.html#shutil-archiving-exampleXArchiving exampletr Xpep-341r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-341X#PEP 341: Unified try/except/finallytr Xpep-342r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-342XPEP 342: New Generator Featurestr Xpep-343r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-343XPEP 343: The 'with' statementtr X msvcrt-otherr (jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt-otherXOther Functionstr Xtut-interactingr (jjXBhttp://docs.python.org/3/tutorial/interactive.html#tut-interactingX2Interactive Input Editing and History Substitutiontr Xadvanced-debuggingr (jjX;http://docs.python.org/3/c-api/init.html#advanced-debuggingXAdvanced Debugger Supporttr X!optparse-defining-callback-optionr (jjXPhttp://docs.python.org/3/library/optparse.html#optparse-defining-callback-optionXDefining a callback optiontr Xnew-module-contextlibr (jjX@http://docs.python.org/3/whatsnew/2.6.html#new-module-contextlibXThe contextlib moduletr Xstrftime-strptime-behaviorr (jjXIhttp://docs.python.org/3/library/datetime.html#strftime-strptime-behaviorX"strftime() and strptime() Behaviortr Xusing-capsulesr (jjX@http://docs.python.org/3/extending/extending.html#using-capsulesX)Providing a C API for an Extension Moduletr X mailbox-mhr (jjX8http://docs.python.org/3/library/mailbox.html#mailbox-mhXMHtr Xtypesr (jjX7http://docs.python.org/3/reference/datamodel.html#typesXThe standard type hierarchytr Xgilstater (jjX1http://docs.python.org/3/c-api/init.html#gilstateXNon-Python created threadstr Xtypeiterr (jjX7http://docs.python.org/3/library/stdtypes.html#typeiterXIterator Typestr Xgenerator-typesr (jjX>http://docs.python.org/3/library/stdtypes.html#generator-typesXGenerator Typestr Xwhatsnew-indexr (jjX;http://docs.python.org/3/whatsnew/index.html#whatsnew-indexXWhat's New in Pythontr Xlistsr (jjX9http://docs.python.org/3/reference/expressions.html#listsX List displaystr Xcookie-policy-objectsr (jjXJhttp://docs.python.org/3/library/http.cookiejar.html#cookie-policy-objectsXCookiePolicy Objectstr Xtut-performance-measurementr (jjXIhttp://docs.python.org/3/tutorial/stdlib.html#tut-performance-measurementXPerformance Measurementtr X api-embeddingr (jjX7http://docs.python.org/3/c-api/intro.html#api-embeddingXEmbedding Pythontr Xdom-implementation-objectsr (jjXHhttp://docs.python.org/3/library/xml.dom.html#dom-implementation-objectsXDOMImplementation Objectstr Xtypecontextmanagerr (jjXAhttp://docs.python.org/3/library/stdtypes.html#typecontextmanagerXContext Manager Typestr Xhttpmessage-objectsr (jjXEhttp://docs.python.org/3/library/http.client.html#httpmessage-objectsXHTTPMessage Objectstr X file-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#file-handlerX FileHandlertr Xlogging-basic-tutorialr (jjXBhttp://docs.python.org/3/howto/logging.html#logging-basic-tutorialXBasic Logging Tutorialtr Xasyncio-handle-blockingr (jjXIhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-handle-blockingX#Handle blocking functions correctlytr! Xtype-specific-methodsr" (jjXDhttp://docs.python.org/3/library/unittest.html#type-specific-methodsX-tr# Xexceptionhandlingr$ (jjX@http://docs.python.org/3/c-api/exceptions.html#exceptionhandlingXException Handlingtr% Xlogging-exceptionsr& (jjX>http://docs.python.org/3/howto/logging.html#logging-exceptionsX Exceptions raised during loggingtr' X tar-formatsr( (jjX9http://docs.python.org/3/library/tarfile.html#tar-formatsXSupported tar formatstr) X main_specr* (jjX8http://docs.python.org/3/reference/import.html#main-specX__main__.__spec__tr+ Xfuturer, (jjX;http://docs.python.org/3/reference/simple_stmts.html#futureXFuture statementstr- Xrawconfigparser-objectsr. (jjXJhttp://docs.python.org/3/library/configparser.html#rawconfigparser-objectsXRawConfigParser Objectstr/ Xcommand-line-interfacer0 (jjXChttp://docs.python.org/3/library/timeit.html#command-line-interfaceXCommand-Line Interfacetr1 Xtarfile-objectsr2 (jjX=http://docs.python.org/3/library/tarfile.html#tarfile-objectsXTarFile Objectstr3 Xandr4 (jjX7http://docs.python.org/3/reference/expressions.html#andXBoolean operationstr5 Xfunctionr6 (jjX?http://docs.python.org/3/reference/compound_stmts.html#functionXFunction definitionstr7 Xkeyword-only_parameterr8 (jjX=http://docs.python.org/3/glossary.html#keyword-only-parameterX-tr9 Xasyncio-pending-task-destroyedr: (jjXPhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-pending-task-destroyedXPending task destroyedtr; X ttkstylingr< (jjX<http://docs.python.org/3/library/tkinter.ttk.html#ttkstylingX Ttk Stylingtr= Xoptparse-terminologyr> (jjXChttp://docs.python.org/3/library/optparse.html#optparse-terminologyX Terminologytr? X tut-numbersr@ (jjX?http://docs.python.org/3/tutorial/introduction.html#tut-numbersXNumberstrA Xpure-modrB (jjX9http://docs.python.org/3/distutils/examples.html#pure-modX$Pure Python distribution (by module)trC Xsection-pymallocrD (jjX;http://docs.python.org/3/whatsnew/2.3.html#section-pymallocX(Pymalloc: A Specialized Object AllocatortrE X listobjectsrF (jjX4http://docs.python.org/3/c-api/list.html#listobjectsX List ObjectstrG Xabstract-digest-auth-handlerrH (jjXQhttp://docs.python.org/3/library/urllib.request.html#abstract-digest-auth-handlerX!AbstractDigestAuthHandler ObjectstrI Xtut-data-compressionrJ (jjXBhttp://docs.python.org/3/tutorial/stdlib.html#tut-data-compressionXData CompressiontrK X tut-morelistsrL (jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-morelistsX More on ListstrM Xtut-annotationsrN (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-annotationsXFunction AnnotationstrO Xoptparse-tutorialrP (jjX@http://docs.python.org/3/library/optparse.html#optparse-tutorialXTutorialtrQ X primariesrR (jjX=http://docs.python.org/3/reference/expressions.html#primariesX PrimariestrS XprocesscontrolrT (jjX6http://docs.python.org/3/c-api/sys.html#processcontrolXProcess ControltrU Xcallable-typesrV (jjX@http://docs.python.org/3/reference/datamodel.html#callable-typesXEmulating callable objectstrW X persistencerX (jjX=http://docs.python.org/3/library/persistence.html#persistenceXData PersistencetrY Xpep-3112rZ (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3112XPEP 3112: Byte Literalstr[ Xdoctest-soapboxr\ (jjX=http://docs.python.org/3/library/doctest.html#doctest-soapboxXSoapboxtr] Xpep-3110r^ (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3110X$PEP 3110: Exception-Handling Changestr_ X mod-pythonr` (jjX9http://docs.python.org/3/howto/webservers.html#mod-pythonX mod_pythontra X sqlite3-typesrb (jjX;http://docs.python.org/3/library/sqlite3.html#sqlite3-typesXSQLite and Python typestrc Xc99rd (jjX-http://docs.python.org/3/library/sys.html#c99X-tre Xpep-3118rf (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3118X!PEP 3118: Revised Buffer Protocoltrg Xregrtestrh (jjX3http://docs.python.org/3/library/test.html#regrtestX.Running tests using the command-line interfacetri Xctypes-structures-unionsrj (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-structures-unionsXStructures and unionstrk Xfunctional-howto-iteratorsrl (jjXIhttp://docs.python.org/3/howto/functional.html#functional-howto-iteratorsX Iteratorstrm Xincremental-parser-objectsrn (jjXOhttp://docs.python.org/3/library/xml.sax.reader.html#incremental-parser-objectsXIncrementalParser Objectstro X optparse-standard-option-actionsrp (jjXOhttp://docs.python.org/3/library/optparse.html#optparse-standard-option-actionsXStandard option actionstrq Xhttp-server-clirr (jjXAhttp://docs.python.org/3/library/http.server.html#http-server-cliX-trs Xtut-interactivert (jjXBhttp://docs.python.org/3/tutorial/interpreter.html#tut-interactiveXInteractive Modetru Xtut-binary-formatsrv (jjXAhttp://docs.python.org/3/tutorial/stdlib2.html#tut-binary-formatsX'Working with Binary Data Record Layoutstrw Xxml-vulnerabilitiesrx (jjX=http://docs.python.org/3/library/xml.html#xml-vulnerabilitiesXXML vulnerabilitiestry Xsection-generatorsrz (jjX=http://docs.python.org/3/whatsnew/2.3.html#section-generatorsXPEP 255: Simple Generatorstr{ Xasyncio-streamsr| (jjXDhttp://docs.python.org/3/library/asyncio-stream.html#asyncio-streamsXStreams (high-level API)tr} Xdom-documenttype-objectsr~ (jjXFhttp://docs.python.org/3/library/xml.dom.html#dom-documenttype-objectsXDocumentType Objectstr Xpep-3116r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3116XPEP 3116: New I/O Librarytr Xcommon-structsr (jjX=http://docs.python.org/3/c-api/structures.html#common-structsXCommon Object Structurestr Xctypes-foreign-functionsr (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-foreign-functionsXForeign functionstr X socket-howtor (jjX8http://docs.python.org/3/howto/sockets.html#socket-howtoXSocket Programming HOWTOtr Xdtd-handler-objectsr (jjXIhttp://docs.python.org/3/library/xml.sax.handler.html#dtd-handler-objectsXDTDHandler Objectstr X queue-handlerr (jjXDhttp://docs.python.org/3/library/logging.handlers.html#queue-handlerX QueueHandlertr X build-apir (jjX4http://docs.python.org/3/whatsnew/2.5.html#build-apiXBuild and C API Changestr Xhttps-handler-objectsr (jjXJhttp://docs.python.org/3/library/urllib.request.html#https-handler-objectsXHTTPSHandler Objectstr X source-distr (jjX>http://docs.python.org/3/distutils/sourcedist.html#source-distXCreating a Source Distributiontr Xxmlr (jjX-http://docs.python.org/3/library/xml.html#xmlXXML Processing Modulestr u(X importlibr (jjX4http://docs.python.org/3/whatsnew/3.3.html#importlibX/Using importlib as the Implementation of Importtr Xformatter-implsr (jjX?http://docs.python.org/3/library/formatter.html#formatter-implsXFormatter Implementationstr Xdynamic-featuresr (jjXGhttp://docs.python.org/3/reference/executionmodel.html#dynamic-featuresX!Interaction with dynamic featurestr X value-typesr (jjX8http://docs.python.org/3/library/winreg.html#value-typesX Value Typestr Xkqueue-objectsr (jjX;http://docs.python.org/3/library/select.html#kqueue-objectsXKqueue Objectstr X os-procinfor (jjX4http://docs.python.org/3/library/os.html#os-procinfoXProcess Parameterstr Xnetwork-loggingr (jjXDhttp://docs.python.org/3/howto/logging-cookbook.html#network-loggingX5Sending and receiving logging events across a networktr X 25modulesr (jjX2http://docs.python.org/3/whatsnew/2.5.html#modulesX"New, Improved, and Removed Modulestr X win-cookbookr (jjX<http://docs.python.org/3/extending/windows.html#win-cookbookXA Cookbook Approachtr Xinspect-signature-objectr (jjXFhttp://docs.python.org/3/library/inspect.html#inspect-signature-objectX1Introspecting callables with the Signature objecttr Xcapsulesr (jjX4http://docs.python.org/3/c-api/capsule.html#capsulesXCapsulestr Xdoctest-how-it-worksr (jjXBhttp://docs.python.org/3/library/doctest.html#doctest-how-it-worksX How It Workstr Xinspect-module-clir (jjX@http://docs.python.org/3/library/inspect.html#inspect-module-cliXCommand Line Interfacetr Xusing-on-envvarsr (jjX<http://docs.python.org/3/using/cmdline.html#using-on-envvarsXEnvironment variablestr X single-extr (jjX;http://docs.python.org/3/distutils/examples.html#single-extXSingle extension moduletr Xcodec-handling-improvementsr (jjXFhttp://docs.python.org/3/whatsnew/3.4.html#codec-handling-improvementsXImprovements to Codec Handlingtr Xarchiving-operationsr (jjXAhttp://docs.python.org/3/library/shutil.html#archiving-operationsXArchiving operationstr Xasyncio-tcp-echo-server-streamsr (jjXThttp://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-server-streamsXTCP echo server using streamstr X regex-howtor (jjX5http://docs.python.org/3/howto/regex.html#regex-howtoXRegular Expression HOWTOtr Xshelve-exampler (jjX;http://docs.python.org/3/library/shelve.html#shelve-exampleXExampletr X typesmethodsr (jjX;http://docs.python.org/3/library/stdtypes.html#typesmethodsXMethodstr Xtut-batteries-includedr (jjXDhttp://docs.python.org/3/tutorial/stdlib.html#tut-batteries-includedXBatteries Includedtr Xstream-reader-objectsr (jjXBhttp://docs.python.org/3/library/codecs.html#stream-reader-objectsXStreamReader Objectstr Xau-read-objectsr (jjX;http://docs.python.org/3/library/sunau.html#au-read-objectsXAU_read Objectstr Xatom-identifiersr (jjXDhttp://docs.python.org/3/reference/expressions.html#atom-identifiersXIdentifiers (Names)tr Xyieldr (jjX:http://docs.python.org/3/reference/simple_stmts.html#yieldXThe yield statementtr X dictobjectsr (jjX4http://docs.python.org/3/c-api/dict.html#dictobjectsXDictionary Objectstr Xmsvcrt-consoler (jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt-consoleX Console I/Otr X gen-objectsr (jjX3http://docs.python.org/3/c-api/gen.html#gen-objectsXGenerator Objectstr X whatsnew-multiprocessing-no-forkr (jjXKhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew-multiprocessing-no-forkX-tr Xconverting-stsr (jjX;http://docs.python.org/3/library/parser.html#converting-stsXConverting ST Objectstr Xdir_fdr (jjX/http://docs.python.org/3/library/os.html#dir-fdX-tr Xdoctest-warningsr (jjX>http://docs.python.org/3/library/doctest.html#doctest-warningsXWarningstr Xtut-templatingr (jjX=http://docs.python.org/3/tutorial/stdlib2.html#tut-templatingX Templatingtr Xdoctest-finding-examplesr (jjXFhttp://docs.python.org/3/library/doctest.html#doctest-finding-examplesX&How are Docstring Examples Recognized?tr Xfnlor (jjX3http://docs.python.org/3/reference/import.html#fnloX-tr X parenthesizedr (jjXAhttp://docs.python.org/3/reference/expressions.html#parenthesizedXParenthesized formstr Xlogging-advanced-tutorialr (jjXEhttp://docs.python.org/3/howto/logging.html#logging-advanced-tutorialXAdvanced Logging Tutorialtr Xpickle-exampler (jjX;http://docs.python.org/3/library/pickle.html#pickle-exampleXExamplestr Xpep-0371r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0371X$PEP 371: The multiprocessing Packagetr X26acksr (jjX/http://docs.python.org/3/whatsnew/2.6.html#acksXAcknowledgementstr X top-levelr (jjXEhttp://docs.python.org/3/reference/toplevel_components.html#top-levelXTop-level componentstr Xmorsel-objectsr (jjXAhttp://docs.python.org/3/library/http.cookies.html#morsel-objectsXMorsel Objectstr Xtut-syntaxerrorsr (jjX>http://docs.python.org/3/tutorial/errors.html#tut-syntaxerrorsX Syntax Errorstr Xwarning-functionsr (jjX@http://docs.python.org/3/library/warnings.html#warning-functionsXAvailable Functionstr Xmultiprocessing-managersr (jjXNhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-managersXManagerstr X null-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#null-handlerX NullHandlertr Xmsi-guir (jjX4http://docs.python.org/3/library/msilib.html#msi-guiX GUI classestr Xlexicalr (jjX@http://docs.python.org/3/reference/lexical_analysis.html#lexicalXLexical analysistr Xmac-package-managerr (jjX;http://docs.python.org/3/using/mac.html#mac-package-managerX%Installing Additional Python Packagestr Xtut-generatorsr (jjX=http://docs.python.org/3/tutorial/classes.html#tut-generatorsX Generatorstr Xtut-modulesasscriptsr (jjXChttp://docs.python.org/3/tutorial/modules.html#tut-modulesasscriptsXExecuting modules as scriptstr X http-handlerr (jjXChttp://docs.python.org/3/library/logging.handlers.html#http-handlerX HTTPHandlertr Ximportr (jjX;http://docs.python.org/3/reference/simple_stmts.html#importXThe import statementtr Xemail-pkg-historyr (jjX=http://docs.python.org/3/library/email.html#email-pkg-historyXPackage Historytr Xpep-0372r (jjX3http://docs.python.org/3/whatsnew/2.7.html#pep-0372X4PEP 372: Adding an Ordered Dictionary to collectionstr Xlogging-config-dict-internalobjr (jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-internalobjXAccess to internal objectstr Xpep-0370r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0370X)PEP 370: Per-user site-packages Directorytr X execmodelr (jjX@http://docs.python.org/3/reference/executionmodel.html#execmodelXExecution modeltr X!multiprocessing-listeners-clientsr (jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-listeners-clientsXListeners and Clientstr Xpep-0378r (jjX3http://docs.python.org/3/whatsnew/2.7.html#pep-0378X1PEP 378: Format Specifier for Thousands Separatortr Xinst-trivial-installr (jjX@http://docs.python.org/3/install/index.html#inst-trivial-installXBest case: trivial installationtr Xcreating-wininstr (jjXBhttp://docs.python.org/3/distutils/builtdist.html#creating-wininstXCreating Windows Installerstr Xmarshalling-utilsr (jjX=http://docs.python.org/3/c-api/marshal.html#marshalling-utilsXData marshalling supporttr Xtkinterr (jjX0http://docs.python.org/3/library/tk.html#tkinterX!Graphical User Interfaces with Tktr Xctypes-surprisesr (jjX=http://docs.python.org/3/library/ctypes.html#ctypes-surprisesX Surprisestr Xtut-searchpathr (jjX=http://docs.python.org/3/tutorial/modules.html#tut-searchpathXThe Module Search Pathtr Xelementtree-qname-objectsr (jjXUhttp://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-qname-objectsX QName Objectstr X tut-lambdar (jjX=http://docs.python.org/3/tutorial/controlflow.html#tut-lambdaXLambda Expressionstr X embeddingr (jjX;http://docs.python.org/3/extending/embedding.html#embeddingX'Embedding Python in Another Applicationtr X contextlibmodr (jjX8http://docs.python.org/3/whatsnew/2.5.html#contextlibmodXThe contextlib moduletr! Xhttp-cookie-processorr" (jjXJhttp://docs.python.org/3/library/urllib.request.html#http-cookie-processorXHTTPCookieProcessor Objectstr# X cmd-exampler$ (jjX5http://docs.python.org/3/library/cmd.html#cmd-exampleX Cmd Exampletr% Xposix-contentsr& (jjX:http://docs.python.org/3/library/posix.html#posix-contentsXNotable Module Contentstr' Xinst-tweak-flagsr( (jjX<http://docs.python.org/3/install/index.html#inst-tweak-flagsXTweaking compiler/linker flagstr) Xbuilt-in-funcsr* (jjX>http://docs.python.org/3/library/functions.html#built-in-funcsXBuilt-in Functionstr+ Xincremental-encoder-objectsr, (jjXHhttp://docs.python.org/3/library/codecs.html#incremental-encoder-objectsXIncrementalEncoder Objectstr- X os-miscfuncr. (jjX4http://docs.python.org/3/library/os.html#os-miscfuncXMiscellaneous Functionstr/ Xusing-on-cmdliner0 (jjX<http://docs.python.org/3/using/cmdline.html#using-on-cmdlineX Command linetr1 Xmailbox-maildirmessager2 (jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox-maildirmessageXMaildirMessagetr3 Xoptparse-other-actionsr4 (jjXEhttp://docs.python.org/3/library/optparse.html#optparse-other-actionsX Other actionstr5 Xfollow_symlinksr6 (jjX8http://docs.python.org/3/library/os.html#follow-symlinksX-tr7 X profile-statsr8 (jjX;http://docs.python.org/3/library/profile.html#profile-statsXThe Stats Classtr9 Xallocating-objectsr: (jjXAhttp://docs.python.org/3/c-api/allocation.html#allocating-objectsXAllocating Objects on the Heaptr; X$faq-augmented-assignment-tuple-errorr< (jjXRhttp://docs.python.org/3/faq/programming.html#faq-augmented-assignment-tuple-errorXKWhy does a_tuple[i] += ['item'] raise an exception when the addition works?tr= Xscheduler-objectsr> (jjX=http://docs.python.org/3/library/sched.html#scheduler-objectsXScheduler Objectstr? Xwhatsnew27-capsulesr@ (jjX>http://docs.python.org/3/whatsnew/2.7.html#whatsnew27-capsulesXCapsulestrA Xtut-loopidiomsrB (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-loopidiomsXLooping TechniquestrC XportingrD (jjX2http://docs.python.org/3/whatsnew/2.5.html#portingXPorting to Python 2.5trE Xlogging-config-dict-externalobjrF (jjXThttp://docs.python.org/3/library/logging.config.html#logging-config-dict-externalobjXAccess to external objectstrG X tut-multiplerH (jjX;http://docs.python.org/3/tutorial/classes.html#tut-multipleXMultiple InheritancetrI Xwhatsnew-tls-11-12rJ (jjX=http://docs.python.org/3/whatsnew/3.4.html#whatsnew-tls-11-12X-trK X exprlistsrL (jjX=http://docs.python.org/3/reference/expressions.html#exprlistsXExpression liststrM XbinaryservicesrN (jjX;http://docs.python.org/3/library/binary.html#binaryservicesXBinary Data ServicestrO X tut-scopesrP (jjX9http://docs.python.org/3/tutorial/classes.html#tut-scopesXPython Scopes and NamespacestrQ Xpep-476rR (jjX2http://docs.python.org/3/whatsnew/3.4.html#pep-476XMPEP 476: Enabling certificate verification by default for stdlib http clientstrS Xi18nrT (jjX/http://docs.python.org/3/library/i18n.html#i18nXInternationalizationtrU Xtut-source-encodingrV (jjXFhttp://docs.python.org/3/tutorial/interpreter.html#tut-source-encodingXSource Code EncodingtrW Xstream-reader-writerrX (jjXAhttp://docs.python.org/3/library/codecs.html#stream-reader-writerXStreamReaderWriter ObjectstrY Xdoctest-basic-apirZ (jjX?http://docs.python.org/3/library/doctest.html#doctest-basic-apiX Basic APItr[ Xglossaryr\ (jjX/http://docs.python.org/3/glossary.html#glossaryXGlossarytr] Xportingpythoncoder^ (jjX<http://docs.python.org/3/whatsnew/3.3.html#portingpythoncodeXPorting Python codetr_ Xsubclassing-reprsr` (jjX?http://docs.python.org/3/library/reprlib.html#subclassing-reprsXSubclassing Repr Objectstra Xbltin-null-objectrb (jjX@http://docs.python.org/3/library/stdtypes.html#bltin-null-objectXThe Null Objecttrc X frameworksrd (jjX;http://docs.python.org/3/library/frameworks.html#frameworksXProgram Frameworkstre X file-inputrf (jjXFhttp://docs.python.org/3/reference/toplevel_components.html#file-inputX File inputtrg Xshutil-copytree-examplerh (jjXDhttp://docs.python.org/3/library/shutil.html#shutil-copytree-exampleXcopytree exampletri Xgzip-usage-examplesrj (jjX>http://docs.python.org/3/library/gzip.html#gzip-usage-examplesXExamples of usagetrk Xdecimal-contextrl (jjX=http://docs.python.org/3/library/decimal.html#decimal-contextXContext objectstrm Xtut-dates-and-timesrn (jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-dates-and-timesXDates and Timestro Xsubprocess-replacementsrp (jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess-replacementsX4Replacing Older Functions with the subprocess Moduletrq Xhash-algorithmsrr (jjX=http://docs.python.org/3/library/hashlib.html#hash-algorithmsXHash algorithmstrs Xdistutils-intrort (jjXDhttp://docs.python.org/3/distutils/introduction.html#distutils-introXAn Introduction to Distutilstru Xasyncio-delayed-callsrv (jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-delayed-callsX Delayed callstrw Xlogrecord-attributesrx (jjXBhttp://docs.python.org/3/library/logging.html#logrecord-attributesXLogRecord attributestry Xzipfile-objectsrz (jjX=http://docs.python.org/3/library/zipfile.html#zipfile-objectsXZipFile Objectstr{ Xasyncio-debug-moder| (jjXDhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-modeXDebug mode of asynciotr} Xtut-forr~ (jjX:http://docs.python.org/3/tutorial/controlflow.html#tut-forXfor Statementstr X trace-clir (jjX5http://docs.python.org/3/library/trace.html#trace-cliXCommand-Line Usagetr Xdoctest-optionsr (jjX=http://docs.python.org/3/library/doctest.html#doctest-optionsX Option Flagstr X compilingr (jjX;http://docs.python.org/3/extending/embedding.html#compilingX-Compiling and Linking under Unix-like systemstr Xunittest-contentsr (jjX@http://docs.python.org/3/library/unittest.html#unittest-contentsXClasses and functionstr Xfunc-setr (jjX8http://docs.python.org/3/library/functions.html#func-setX-tr Xweakrefobjectsr (jjX:http://docs.python.org/3/c-api/weakref.html#weakrefobjectsXWeak Reference Objectstr Xtut-structuresr (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-structuresXData Structurestr Xpyclbr-function-objectsr (jjXDhttp://docs.python.org/3/library/pyclbr.html#pyclbr-function-objectsXFunction Objectstr Xmmediar (jjX/http://docs.python.org/3/library/mm.html#mmediaXMultimedia Servicestr Xother-improvements-3.4r (jjXAhttp://docs.python.org/3/whatsnew/3.4.html#other-improvements-3-4XOther Improvementstr Xthread-objectsr (jjX>http://docs.python.org/3/library/threading.html#thread-objectsXThread Objectstr Xinitializationr (jjX7http://docs.python.org/3/c-api/init.html#initializationX)Initialization, Finalization, and Threadstr Xsimplexmlrpcserver-exampler (jjXNhttp://docs.python.org/3/library/xmlrpc.server.html#simplexmlrpcserver-exampleXSimpleXMLRPCServer Exampletr X st-objectsr (jjX7http://docs.python.org/3/library/parser.html#st-objectsX ST Objectstr X expat-exampler (jjX;http://docs.python.org/3/library/pyexpat.html#expat-exampleXExampletr X bitstring-opsr (jjX<http://docs.python.org/3/library/stdtypes.html#bitstring-opsX#Bitwise Operations on Integer Typestr X datetime-dater (jjX<http://docs.python.org/3/library/datetime.html#datetime-dateX date Objectstr X datatypesr (jjX9http://docs.python.org/3/library/datatypes.html#datatypesX Data Typestr X moduleobjectsr (jjX8http://docs.python.org/3/c-api/module.html#moduleobjectsXModule Objectstr Xtypesseq-mutabler (jjX?http://docs.python.org/3/library/stdtypes.html#typesseq-mutableXMutable Sequence Typestr X reflectionr (jjX9http://docs.python.org/3/c-api/reflection.html#reflectionX Reflectiontr Xmarkupr (jjX3http://docs.python.org/3/library/markup.html#markupX"Structured Markup Processing Toolstr X identifiersr (jjXDhttp://docs.python.org/3/reference/lexical_analysis.html#identifiersXIdentifiers and keywordstr Xshlex-parsing-rulesr (jjX?http://docs.python.org/3/library/shlex.html#shlex-parsing-rulesX Parsing Rulestr Xpep-397r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-397X$PEP 397: Python Launcher for Windowstr Xpep-393r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-393X'PEP 393: Flexible String Representationtr Xasyncio-multithreadingr (jjXHhttp://docs.python.org/3/library/asyncio-dev.html#asyncio-multithreadingXConcurrency and multithreadingtr X comparisonsr (jjX?http://docs.python.org/3/reference/expressions.html#comparisonsX Comparisonstr X tut-errorr (jjX9http://docs.python.org/3/tutorial/appendix.html#tut-errorXError Handlingtr Xctypes-calling-functionsr (jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes-calling-functionsXCalling functionstr X tut-interpr (jjX=http://docs.python.org/3/tutorial/interpreter.html#tut-interpX#The Interpreter and Its Environmenttr Xlogging-config-dict-userdefr (jjXPhttp://docs.python.org/3/library/logging.config.html#logging-config-dict-userdefXUser-defined objectstr Xwarning-ignoredr (jjX>http://docs.python.org/3/library/warnings.html#warning-ignoredX(Updating Code For New Versions of Pythontr X#optparse-raising-errors-in-callbackr (jjXRhttp://docs.python.org/3/library/optparse.html#optparse-raising-errors-in-callbackXRaising errors in a callbacktr X numeric-typesr (jjX?http://docs.python.org/3/reference/datamodel.html#numeric-typesXEmulating numeric typestr Xpep-3129r (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-3129XPEP 3129: Class Decoratorstr Xunaryr (jjX9http://docs.python.org/3/reference/expressions.html#unaryX'Unary arithmetic and bitwise operationstr X methodtabler (jjX=http://docs.python.org/3/extending/extending.html#methodtableX5The Module's Method Table and Initialization Functiontr Xtypesseq-commonr (jjX>http://docs.python.org/3/library/stdtypes.html#typesseq-commonXCommon Sequence Operationstr X exceptionsr (jjXAhttp://docs.python.org/3/reference/executionmodel.html#exceptionsX Exceptionstr Xexceptr (jjX=http://docs.python.org/3/reference/compound_stmts.html#exceptXThe try statementtr X specialnamesr (jjX>http://docs.python.org/3/reference/datamodel.html#specialnamesXSpecial method namestr Xtypesseqr (jjX7http://docs.python.org/3/library/stdtypes.html#typesseqX%Sequence Types --- list, tuple, rangetr Xtut-morecontrolr (jjXBhttp://docs.python.org/3/tutorial/controlflow.html#tut-morecontrolXMore Control Flow Toolstr Xother-gui-packagesr (jjXAhttp://docs.python.org/3/library/othergui.html#other-gui-packagesX'Other Graphical User Interface Packagestr Xnumber-structsr (jjX:http://docs.python.org/3/c-api/typeobj.html#number-structsXNumber Object Structurestr Xloggerr (jjX4http://docs.python.org/3/library/logging.html#loggerXLogger Objectstr Xtut-commentaryr (jjXAhttp://docs.python.org/3/tutorial/interactive.html#tut-commentaryX+Alternatives to the Interactive Interpretertr X bytesobjectsr (jjX6http://docs.python.org/3/c-api/bytes.html#bytesobjectsX Bytes Objectstr X typebytesr (jjX8http://docs.python.org/3/library/stdtypes.html#typebytesXBytestr Xlisting-packagesr (jjXDhttp://docs.python.org/3/distutils/setupscript.html#listing-packagesXListing whole packagestr Xmodulefinder-exampler (jjXGhttp://docs.python.org/3/library/modulefinder.html#modulefinder-exampleXExample usage of ModuleFindertr Xmailbox-message-objectsr (jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox-message-objectsXMessage objectstr Xstandard-encodingsr (jjX?http://docs.python.org/3/library/codecs.html#standard-encodingsXStandard Encodingstr Xinstall-scripts-cmdr (jjXFhttp://docs.python.org/3/distutils/commandref.html#install-scripts-cmdXinstall_scriptstr X python-termsr (jjXAhttp://docs.python.org/3/distutils/introduction.html#python-termsXGeneral Python terminologytr Xtypesseq-immutabler (jjXAhttp://docs.python.org/3/library/stdtypes.html#typesseq-immutableXImmutable Sequence Typestr Xdom-nodelist-objectsr (jjXBhttp://docs.python.org/3/library/xml.dom.html#dom-nodelist-objectsXNodeList Objectstr Xstruct-format-stringsr (jjXBhttp://docs.python.org/3/library/struct.html#struct-format-stringsXFormat Stringstr Xwhere-to-patchr (jjXBhttp://docs.python.org/3/library/unittest.mock.html#where-to-patchXWhere to patchtr Xmore-metacharactersr (jjX=http://docs.python.org/3/howto/regex.html#more-metacharactersXMore Metacharacterstr Xapi-exceptionsr (jjX8http://docs.python.org/3/c-api/intro.html#api-exceptionsX Exceptionstr Xxdr-unpacker-objectsr (jjXAhttp://docs.python.org/3/library/xdrlib.html#xdr-unpacker-objectsXUnpacker Objectstr Xsignals-and-threadsr (jjX@http://docs.python.org/3/library/signal.html#signals-and-threadsXSignals and threadstr Xweakref-supportr (jjX@http://docs.python.org/3/extending/newtypes.html#weakref-supportXWeak Reference Supporttr Xxdr-packer-objectsr (jjX?http://docs.python.org/3/library/xdrlib.html#xdr-packer-objectsXPacker Objectstr Xinterpreter-objectsr (jjX>http://docs.python.org/3/library/code.html#interpreter-objectsXInteractive Interpreter Objectstr X unicode-howtor (jjX9http://docs.python.org/3/howto/unicode.html#unicode-howtoX Unicode HOWTOtr Xasyncio-hello-world-coroutiner (jjXPhttp://docs.python.org/3/library/asyncio-task.html#asyncio-hello-world-coroutineXExample: Hello World coroutinetr Xsequencer (jjX5http://docs.python.org/3/c-api/sequence.html#sequenceXSequence Protocoltr Xmodindexr (jjX*http://docs.python.org/3/py-modindex.html#X Module Indextr Xdatabase-objectsr (jjX=http://docs.python.org/3/library/msilib.html#database-objectsXDatabase Objectstr X binhex-notesr (jjX9http://docs.python.org/3/library/binhex.html#binhex-notesXNotestr Xfilesystem-encodingr (jjX<http://docs.python.org/3/library/os.html#filesystem-encodingX=File Names, Command Line Arguments, and Environment Variablestr X frame-objectsr (jjX?http://docs.python.org/3/reference/datamodel.html#frame-objectsX-tr X inspect-typesr (jjX;http://docs.python.org/3/library/inspect.html#inspect-typesXTypes and memberstr Xwave-read-objectsr (jjX<http://docs.python.org/3/library/wave.html#wave-read-objectsXWave_read Objectstr X tut-listcompsr (jjXChttp://docs.python.org/3/tutorial/datastructures.html#tut-listcompsXList Comprehensionstr Xopcode_collectionsr (jjX<http://docs.python.org/3/library/dis.html#opcode-collectionsXOpcode collectionstr Xdynamic-linkingr (jjX?http://docs.python.org/3/extending/windows.html#dynamic-linkingX$Differences Between Unix and Windowstr Xliteralsr (jjXAhttp://docs.python.org/3/reference/lexical_analysis.html#literalsXLiteralstr! X datetime-timer" (jjX<http://docs.python.org/3/library/datetime.html#datetime-timeX time Objectstr# Xsection-pep302r$ (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep302XPEP 302: New Import Hookstr% Xsection-pep301r& (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep301X1PEP 301: Package Index and Metadata for Distutilstr' Xweakref-exampler( (jjX=http://docs.python.org/3/library/weakref.html#weakref-exampleXExampletr) Xsection-pep305r* (jjX9http://docs.python.org/3/whatsnew/2.3.html#section-pep305XPEP 305: Comma-separated Filestr+ X delimitersr, (jjXChttp://docs.python.org/3/reference/lexical_analysis.html#delimitersX Delimiterstr- Xupgrading-optparse-coder. (jjXFhttp://docs.python.org/3/library/argparse.html#upgrading-optparse-codeXUpgrading optparse codetr/ X textservicesr0 (jjX7http://docs.python.org/3/library/text.html#textservicesXText Processing Servicestr1 X refcountsr2 (jjX;http://docs.python.org/3/extending/extending.html#refcountsXReference Countstr3 Xusing-the-cgi-moduler4 (jjX>http://docs.python.org/3/library/cgi.html#using-the-cgi-moduleXUsing the cgi moduletr5 Xnew-25-context-managersr6 (jjXBhttp://docs.python.org/3/whatsnew/2.5.html#new-25-context-managersXWriting Context Managerstr7 Xdoctest-simple-testmodr8 (jjXDhttp://docs.python.org/3/library/doctest.html#doctest-simple-testmodX-Simple Usage: Checking Examples in Docstringstr9 Xtut-oddsr: (jjX7http://docs.python.org/3/tutorial/classes.html#tut-oddsX Odds and Endstr; Xhtmlparser-examplesr< (jjXEhttp://docs.python.org/3/library/html.parser.html#htmlparser-examplesXExamplestr= Xbltin-exceptionsr> (jjXAhttp://docs.python.org/3/library/exceptions.html#bltin-exceptionsXBuilt-in Exceptionstr? Xpowerr@ (jjX9http://docs.python.org/3/reference/expressions.html#powerXThe power operatortrA X built-distrB (jjX<http://docs.python.org/3/distutils/builtdist.html#built-distXCreating Built DistributionstrC Xmultiprocessing-examplesrD (jjXNhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing-examplesXExamplestrE X asyncio-udp-echo-client-protocolrF (jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-client-protocolXUDP echo client protocoltrG X tut-usingrH (jjX<http://docs.python.org/3/tutorial/interpreter.html#tut-usingXUsing the Python InterpretertrI Xdoctest-doctestrunnerrJ (jjXChttp://docs.python.org/3/library/doctest.html#doctest-doctestrunnerXDocTestRunner objectstrK X imaginaryrL (jjXBhttp://docs.python.org/3/reference/lexical_analysis.html#imaginaryXImaginary literalstrM X optparse-printing-version-stringrN (jjXOhttp://docs.python.org/3/library/optparse.html#optparse-printing-version-stringXPrinting a version stringtrO Xcursespanel-functionsrP (jjXHhttp://docs.python.org/3/library/curses.panel.html#cursespanel-functionsX FunctionstrQ X tut-handlingrR (jjX:http://docs.python.org/3/tutorial/errors.html#tut-handlingXHandling ExceptionstrS Xdatetime-timezonerT (jjX@http://docs.python.org/3/library/datetime.html#datetime-timezoneXtimezone ObjectstrU Xoptparse-how-callbacks-calledrV (jjXLhttp://docs.python.org/3/library/optparse.html#optparse-how-callbacks-calledXHow callbacks are calledtrW Xtut-exceptionclassesrX (jjXChttp://docs.python.org/3/tutorial/classes.html#tut-exceptionclassesXExceptions Are Classes TootrY Xwhatsnew27-python31rZ (jjX>http://docs.python.org/3/whatsnew/2.7.html#whatsnew27-python31XThe Future for Python 2.xtr[ Xtut-docstringsr\ (jjXAhttp://docs.python.org/3/tutorial/controlflow.html#tut-docstringsXDocumentation Stringstr] X log-recordr^ (jjX8http://docs.python.org/3/library/logging.html#log-recordXLogRecord Objectstr_ X parsetupler` (jjX<http://docs.python.org/3/extending/extending.html#parsetupleX,Extracting Parameters in Extension Functionstra Xmemoryview-objectsrb (jjXAhttp://docs.python.org/3/c-api/memoryview.html#memoryview-objectsX-trc Xosrd (jjX*http://docs.python.org/3/c-api/sys.html#osXOperating System Utilitiestre Xorrf (jjX6http://docs.python.org/3/reference/expressions.html#orXBoolean operationstrg Xpep-0366rh (jjX3http://docs.python.org/3/whatsnew/2.6.html#pep-0366X5PEP 366: Explicit Relative Imports From a Main Moduletri Xargparse-tutorialrj (jjX0http://docs.python.org/3/howto/argparse.html#id1X-trk Xdatetime-datetimerl (jjX@http://docs.python.org/3/library/datetime.html#datetime-datetimeXdatetime Objectstrm Xlogging-import-resolutionrn (jjXNhttp://docs.python.org/3/library/logging.config.html#logging-import-resolutionX&Import resolution and custom importerstro Xformat-charactersrp (jjX>http://docs.python.org/3/library/struct.html#format-charactersXFormat Characterstrq X formatspecrr (jjX7http://docs.python.org/3/library/string.html#formatspecX"Format Specification Mini-Languagetrs Xparsing-ascii-encoded-bytesrt (jjXNhttp://docs.python.org/3/library/urllib.parse.html#parsing-ascii-encoded-bytesXParsing ASCII Encoded Bytestru Xmemoryexamplesrv (jjX9http://docs.python.org/3/c-api/memory.html#memoryexamplesXExamplestrw Xdom-element-objectsrx (jjXAhttp://docs.python.org/3/library/xml.dom.html#dom-element-objectsXElement Objectstry X 25interactiverz (jjX6http://docs.python.org/3/whatsnew/2.5.html#interactiveXInteractive Interpreter Changestr{ Xdiffer-objectsr| (jjX<http://docs.python.org/3/library/difflib.html#differ-objectsXDiffer Objectstr} Xinst-splitting-upr~ (jjX=http://docs.python.org/3/install/index.html#inst-splitting-upXSplitting the job uptr Xtut-conditionsr (jjXDhttp://docs.python.org/3/tutorial/datastructures.html#tut-conditionsXMore on Conditionstr Xiterator-objectsr (jjX=http://docs.python.org/3/c-api/iterator.html#iterator-objectsXIterator Objectstr X querying-stsr (jjX9http://docs.python.org/3/library/parser.html#querying-stsXQueries on ST Objectstr Xscripts-pyvenvr (jjX:http://docs.python.org/3/using/scripts.html#scripts-pyvenvX&pyvenv - Creating virtual environmentstr Xdebugger-aliasesr (jjX:http://docs.python.org/3/library/pdb.html#debugger-aliasesX-tr Xfnmor (jjX3http://docs.python.org/3/reference/import.html#fnmoX-tr Xbuildingr (jjX9http://docs.python.org/3/extending/building.html#buildingX,Building C and C++ Extensions with distutilstr Xcontext-managersr (jjXBhttp://docs.python.org/3/reference/datamodel.html#context-managersXWith Statement Context Managerstr X other-tokensr (jjXEhttp://docs.python.org/3/reference/lexical_analysis.html#other-tokensX Other tokenstr X cell-objectsr (jjX5http://docs.python.org/3/c-api/cell.html#cell-objectsX Cell Objectstr Ximport-mod-attrsr (jjX?http://docs.python.org/3/reference/import.html#import-mod-attrsX Import-related module attributestr Xfile-handler-objectsr (jjXIhttp://docs.python.org/3/library/urllib.request.html#file-handler-objectsXFileHandler Objectstr X match-objectsr (jjX6http://docs.python.org/3/library/re.html#match-objectsX Match Objectstr X tut-whatnowr (jjX:http://docs.python.org/3/tutorial/whatnow.html#tut-whatnowX What Now?tr X new-emailr (jjX4http://docs.python.org/3/whatsnew/3.3.html#new-emailXemailtr Xpickle-persistentr (jjX>http://docs.python.org/3/library/pickle.html#pickle-persistentXPersistence of External Objectstr Xwithr (jjX;http://docs.python.org/3/reference/compound_stmts.html#withXThe with statementtr X inspect-stackr (jjX;http://docs.python.org/3/library/inspect.html#inspect-stackXThe interpreter stacktr Xwriter-interfacer (jjX@http://docs.python.org/3/library/formatter.html#writer-interfaceXThe Writer Interfacetr Xunittest-sectionr (jjX;http://docs.python.org/3/whatsnew/2.7.html#unittest-sectionXUpdated module: unittesttr X tut-stringsr (jjX?http://docs.python.org/3/tutorial/introduction.html#tut-stringsXStringstr Xzipinfo-objectsr (jjX=http://docs.python.org/3/library/zipfile.html#zipinfo-objectsXZipInfo Objectstr Xctypes-loading-shared-librariesr (jjXLhttp://docs.python.org/3/library/ctypes.html#ctypes-loading-shared-librariesXLoading shared librariestr Xpy27-maintenance-enhancementsr (jjXHhttp://docs.python.org/3/whatsnew/2.7.html#py27-maintenance-enhancementsX5New Features Added to Python 2.7 Maintenance Releasestr Xasr (jjX9http://docs.python.org/3/reference/compound_stmts.html#asXThe with statementtr Xattributes-ns-objectsr (jjXJhttp://docs.python.org/3/library/xml.sax.reader.html#attributes-ns-objectsXThe AttributesNS Interfacetr Xtut-internet-accessr (jjXAhttp://docs.python.org/3/tutorial/stdlib.html#tut-internet-accessXInternet Accesstr Xpep-405r (jjX2http://docs.python.org/3/whatsnew/3.3.html#pep-405XPEP 405: Virtual Environmentstr X importingr (jjX4http://docs.python.org/3/c-api/import.html#importingXImporting Modulestr X functionsr (jjX6http://docs.python.org/3/library/winreg.html#functionsX Functionstr X csv-examplesr (jjX6http://docs.python.org/3/library/csv.html#csv-examplesXExamplestr Xtut-moremodulesr (jjX>http://docs.python.org/3/tutorial/modules.html#tut-moremodulesXMore on Modulestr Xtext-transformsr (jjX<http://docs.python.org/3/library/codecs.html#text-transformsXText Transformstr X binaryseqr (jjX8http://docs.python.org/3/library/stdtypes.html#binaryseqX6Binary Sequence Types --- bytes, bytearray, memoryviewtr Xpython-interfacer (jjX=http://docs.python.org/3/library/timeit.html#python-interfaceXPython Interfacetr X tut-fp-errorr (jjXAhttp://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-errorXRepresentation Errortr X msi-directoryr (jjX:http://docs.python.org/3/library/msilib.html#msi-directoryXDirectory Objectstr Xold-string-formattingr (jjXDhttp://docs.python.org/3/library/stdtypes.html#old-string-formattingXprintf-style String Formattingtr Xfunc-strr (jjX8http://docs.python.org/3/library/functions.html#func-strX-tr Xtut-classdefinitionr (jjXBhttp://docs.python.org/3/tutorial/classes.html#tut-classdefinitionXClass Definition Syntaxtr Xcontent-handler-objectsr (jjXMhttp://docs.python.org/3/library/xml.sax.handler.html#content-handler-objectsXContentHandler Objectstr Xtemplate-stringsr (jjX=http://docs.python.org/3/library/string.html#template-stringsXTemplate stringstr X,optparse-querying-manipulating-option-parserr (jjX[http://docs.python.org/3/library/optparse.html#optparse-querying-manipulating-option-parserX,Querying and manipulating your option parsertr Xctypes-type-conversionsr (jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes-type-conversionsXType conversionstr Xassertr (jjX;http://docs.python.org/3/reference/simple_stmts.html#assertXThe assert statementtr Xoperator-summaryr (jjXDhttp://docs.python.org/3/reference/expressions.html#operator-summaryXOperator precedencetr Xwhatsnew34-win-cert-storer (jjXDhttp://docs.python.org/3/whatsnew/3.4.html#whatsnew34-win-cert-storeX-tr Xcallsr (jjX9http://docs.python.org/3/reference/expressions.html#callsXCallstr Xpep-314r (jjX2http://docs.python.org/3/whatsnew/2.5.html#pep-314X3PEP 314: Metadata for Python Software Packages v1.1tr X bytes-methodsr (jjX<http://docs.python.org/3/library/stdtypes.html#bytes-methodsXBytes and Bytearray Operationstr Xextending-distutilsr (jjXEhttp://docs.python.org/3/distutils/extending.html#extending-distutilsXExtending Distutilstr Xstringsr (jjX@http://docs.python.org/3/reference/lexical_analysis.html#stringsXString and Bytes literalstr Xasyncio-event-loopr (jjXJhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loopXBase Event Looptr uXc:memberr }r (XPy_buffer.internalr (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.internalX-tr XPyModuleDef.m_reloadr (jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_reloadX-tr XPyTypeObject.tp_printr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_printX-tr XPyTypeObject.tp_descr_setr (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_setX-tr XPyObject.ob_typer (jjX>http://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_typeX-tr XPyModuleDef.m_namer (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_nameX-tr XPySequenceMethods.sq_concatr (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_concatX-tr XPy_buffer.itemsizer (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.itemsizeX-tr XPyModuleDef.m_docr (jjX>http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_docX-tr XPyTypeObject.tp_weaklistr (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklistX-tr XPyTypeObject.tp_freer (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_freeX-tr XPy_buffer.shaper (jjX<http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.shapeX-tr XPyTypeObject.tp_getattror (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattroX-tr XPy_buffer.stridesr (jjX>http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.stridesX-tr X tp_as_mappingr (jjX;http://docs.python.org/3/c-api/typeobj.html#c.tp_as_mappingX-tr XPyModuleDef.m_sizer (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_sizeX-tr X Py_buffer.bufr (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.bufX-tr XPyObject._ob_nextr (jjX?http://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_nextX-tr XPySequenceMethods.sq_lengthr (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_lengthX-tr XPySequenceMethods.sq_ass_itemr (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_ass_itemX-tr XPyTypeObject.tp_initr (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_initX-tr X#PySequenceMethods.sq_inplace_repeatr (jjXQhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_repeatX-tr XPyTypeObject.tp_basicsizer (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_basicsizeX-tr XPyTypeObject.tp_itemsizer (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_itemsizeX-tr XPyModuleDef.m_traverser (jjXChttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_traverseX-tr XPyTypeObject.tp_membersr (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_membersX-tr XPy_buffer.readonlyr (jjX?http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.readonlyX-tr! XPyTypeObject.tp_reservedr" (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_reservedX-tr# X#PySequenceMethods.sq_inplace_concatr$ (jjXQhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_concatX-tr% XPyTypeObject.tp_traverser& (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_traverseX-tr' XPyModuleDef.m_methodsr( (jjXBhttp://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_methodsX-tr) XPyTypeObject.tp_dictr* (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dictX-tr+ XPyTypeObject.tp_basesr, (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_basesX-tr- XPyTypeObject.tp_getattrr. (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattrX-tr/ XPyMappingMethods.mp_lengthr0 (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_lengthX-tr1 XPyTypeObject.tp_allocr2 (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_allocX-tr3 XPyTypeObject.tp_docr4 (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_docX-tr5 X Py_buffer.lenr6 (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.lenX-tr7 XPyTypeObject.tp_clearr8 (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_clearX-tr9 XPyTypeObject.tp_setattror: (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattroX-tr; XPySequenceMethods.sq_repeatr< (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_repeatX-tr= XPyModuleDef.m_baser> (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_baseX-tr? XPyBufferProcs.bf_releasebufferr@ (jjXLhttp://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_releasebufferX-trA XPyTypeObject.tp_getsetrB (jjXDhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getsetX-trC XPyModuleDef.m_freerD (jjX?http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_freeX-trE XPyTypeObject.tp_newrF (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_newX-trG XPyTypeObject.tp_hashrH (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_hashX-trI XPyTypeObject.tp_subclassesrJ (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_subclassesX-trK XPyTypeObject.tp_baserL (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_baseX-trM XPyTypeObject.tp_freesrN (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_freesX-trO X!PyMappingMethods.mp_ass_subscriptrP (jjXOhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_ass_subscriptX-trQ X Py_buffer.objrR (jjX:http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.objX-trS XPySequenceMethods.sq_containsrT (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_containsX-trU XPyTypeObject.tp_weaklistoffsetrV (jjXLhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklistoffsetX-trW XPyTypeObject.tp_deallocrX (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_deallocX-trY XPyModuleDef.m_clearrZ (jjX@http://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_clearX-tr[ XPyTypeObject.tp_iterr\ (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iterX-tr] XPyTypeObject.tp_descr_getr^ (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_getX-tr_ XPyObject.ob_refcntr` (jjX@http://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_refcntX-tra XPyTypeObject.tp_allocsrb (jjXDhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_allocsX-trc XPyTypeObject.tp_richcomparerd (jjXIhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_richcompareX-tre XPyTypeObject.tp_reprrf (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_reprX-trg XPyBufferProcs.bf_getbufferrh (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_getbufferX-tri XPyTypeObject.tp_dictoffsetrj (jjXHhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dictoffsetX-trk XPyObject._ob_prevrl (jjX?http://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_prevX-trm XPyTypeObject.tp_strrn (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_strX-tro XPyTypeObject.tp_mrorp (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_mroX-trq XPyTypeObject.tp_as_bufferrr (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_bufferX-trs XPyTypeObject.tp_cachert (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_cacheX-tru XPy_buffer.ndimrv (jjX;http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.ndimX-trw XPyTypeObject.tp_iternextrx (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iternextX-try XPyTypeObject.tp_callrz (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_callX-tr{ XPyTypeObject.tp_maxallocr| (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_maxallocX-tr} XPyTypeObject.tp_nextr~ (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_nextX-tr X tp_as_numberr (jjX:http://docs.python.org/3/c-api/typeobj.html#c.tp_as_numberX-tr XPyTypeObject.tp_finalizer (jjXFhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_finalizeX-tr XPyTypeObject.tp_methodsr (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_methodsX-tr XPyTypeObject.tp_setattrr (jjXEhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattrX-tr XPyTypeObject.tp_is_gcr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_is_gcX-tr XPyTypeObject.tp_namer (jjXBhttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_nameX-tr XPySequenceMethods.sq_itemr (jjXGhttp://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_itemX-tr XPy_buffer.suboffsetsr (jjXAhttp://docs.python.org/3/c-api/buffer.html#c.Py_buffer.suboffsetsX-tr Xtp_as_sequencer (jjX<http://docs.python.org/3/c-api/typeobj.html#c.tp_as_sequenceX-tr XPyVarObject.ob_sizer (jjXAhttp://docs.python.org/3/c-api/typeobj.html#c.PyVarObject.ob_sizeX-tr XPyTypeObject.tp_flagsr (jjXChttp://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_flagsX-tr XPy_buffer.formatr (jjX=http://docs.python.org/3/c-api/buffer.html#c.Py_buffer.formatX-tr XPyMappingMethods.mp_subscriptr (jjXKhttp://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_subscriptX-tr uXpy:classr }r (X bytearrayr (jjX9http://docs.python.org/3/library/functions.html#bytearrayX-tr Xhttp.cookiejar.LWPCookieJarr (jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.LWPCookieJarX-tr X nntplib.NNTPr (jjX:http://docs.python.org/3/library/nntplib.html#nntplib.NNTPX-tr X"http.server.BaseHTTPRequestHandlerr (jjXThttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandlerX-tr Xdatetime.timedeltar (jjXAhttp://docs.python.org/3/library/datetime.html#datetime.timedeltaX-tr Xprofile.Profiler (jjX=http://docs.python.org/3/library/profile.html#profile.ProfileX-tr Xurllib.request.HTTPHandlerr (jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandlerX-tr Xmsilib.Controlr (jjX;http://docs.python.org/3/library/msilib.html#msilib.ControlX-tr X"importlib.machinery.FrozenImporterr (jjXRhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FrozenImporterX-tr Xpkgutil.ImpImporterr (jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.ImpImporterX-tr X"unittest.mock.NonCallableMagicMockr (jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMagicMockX-tr X#urllib.request.HTTPBasicAuthHandlerr (jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandlerX-tr Xinspect.Parameterr (jjX?http://docs.python.org/3/library/inspect.html#inspect.ParameterX-tr Xcollections.abc.Iteratorr (jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.IteratorX-tr Xinspect.Signaturer (jjX?http://docs.python.org/3/library/inspect.html#inspect.SignatureX-tr Xtkinter.ttk.Progressbarr (jjXIhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.ProgressbarX-tr Xmailbox.BabylMessager (jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessageX-tr Xcollections.abc.Sequencer (jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SequenceX-tr Xasynchat.async_chatr (jjXBhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chatX-tr Xtypes.ModuleTyper (jjX<http://docs.python.org/3/library/types.html#types.ModuleTypeX-tr Xsocketserver.BaseServerr (jjXJhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServerX-tr Ximportlib.machinery.PathFinderr (jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinderX-tr Xasyncore.dispatcherr (jjXBhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcherX-tr Xxml.dom.pulldom.DOMEventStreamr (jjXThttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStreamX-tr Xtkinter.ttk.Notebookr (jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.NotebookX-tr Xemail.parser.FeedParserr (jjXJhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParserX-tr X,email.headerregistry.ContentTransferEncodingr (jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncodingX-tr Xemail.message.MIMEPartr (jjXQhttp://docs.python.org/3/library/email.contentmanager.html#email.message.MIMEPartX-tr X"xml.sax.xmlreader.AttributesNSImplr (jjXWhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNSImplX-tr Xlistr (jjX3http://docs.python.org/3/library/stdtypes.html#listX-tr X shelve.Shelfr (jjX9http://docs.python.org/3/library/shelve.html#shelve.ShelfX-tr X multiprocessing.pool.AsyncResultr (jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResultX-tr Xasyncore.file_wrapperr (jjXDhttp://docs.python.org/3/library/asyncore.html#asyncore.file_wrapperX-tr X array.arrayr (jjX7http://docs.python.org/3/library/array.html#array.arrayX-tr Xlogging.handlers.SysLogHandlerr (jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandlerX-tr X numbers.Realr (jjX:http://docs.python.org/3/library/numbers.html#numbers.RealX-tr Xurllib.request.ProxyHandlerr (jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandlerX-tr Xcollections.abc.MappingViewr (jjXQhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MappingViewX-tr Xsubprocess.Popenr (jjXAhttp://docs.python.org/3/library/subprocess.html#subprocess.PopenX-tr X%xmlrpc.server.CGIXMLRPCRequestHandlerr (jjXYhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandlerX-tr Xcollections.abc.Containerr (jjXOhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ContainerX-tr Xtkinter.tix.StdButtonBoxr (jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.StdButtonBoxX-tr Xwsgiref.handlers.CGIHandlerr (jjXIhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.CGIHandlerX-tr Xwsgiref.handlers.SimpleHandlerr (jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.SimpleHandlerX-tr Xtkinter.tix.tixCommandr (jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommandX-tr Xos.terminal_sizer (jjX9http://docs.python.org/3/library/os.html#os.terminal_sizeX-tr Xpprint.PrettyPrinterr (jjXAhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinterX-tr X lzma.LZMAFiler (jjX8http://docs.python.org/3/library/lzma.html#lzma.LZMAFileX-tr X logging.handlers.DatagramHandlerr (jjXWhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandlerX-tr Xdecimal.DefaultContextr (jjXDhttp://docs.python.org/3/library/decimal.html#decimal.DefaultContextX-tr Xurllib.request.DataHandlerr(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandlerX-trX#distutils.command.build_py.build_pyr(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_pyX-trXcalendar.LocaleTextCalendarr(jjXJhttp://docs.python.org/3/library/calendar.html#calendar.LocaleTextCalendarX-trXasyncio.Handler(jjXFhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.HandleX-trX chunk.Chunkr(jjX7http://docs.python.org/3/library/chunk.html#chunk.ChunkX-tr Ximportlib.abc.ExecutionLoaderr (jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.ExecutionLoaderX-tr Xctypes.c_longdoubler (jjX@http://docs.python.org/3/library/ctypes.html#ctypes.c_longdoubleX-tr Xasyncio.StreamWriterr(jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriterX-trX%urllib.request.ProxyDigestAuthHandlerr(jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandlerX-trXxml.sax.handler.ContentHandlerr(jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandlerX-trXtypes.SimpleNamespacer(jjXAhttp://docs.python.org/3/library/types.html#types.SimpleNamespaceX-trX!xml.etree.ElementTree.TreeBuilderr(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilderX-trXio.BufferedRWPairr(jjX:http://docs.python.org/3/library/io.html#io.BufferedRWPairX-trX$multiprocessing.managers.SyncManagerr(jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManagerX-trXtkinter.tix.Tkr(jjX@http://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TkX-trXmultiprocessing.SimpleQueuer(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueueX-trXnumbers.Numberr (jjX<http://docs.python.org/3/library/numbers.html#numbers.NumberX-tr!Xtkinter.tix.DirTreer"(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirTreeX-tr#Xipaddress.IPv4Interfacer$(jjXGhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4InterfaceX-tr%X dis.Bytecoder&(jjX6http://docs.python.org/3/library/dis.html#dis.BytecodeX-tr'Xmsilib.Featurer((jjX;http://docs.python.org/3/library/msilib.html#msilib.FeatureX-tr)Xcodeop.CommandCompilerr*(jjXChttp://docs.python.org/3/library/codeop.html#codeop.CommandCompilerX-tr+Xdoctest.DocTestRunnerr,(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunnerX-tr-Xtracemalloc.Snapshotr.(jjXFhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.SnapshotX-tr/Xdecimal.Roundedr0(jjX=http://docs.python.org/3/library/decimal.html#decimal.RoundedX-tr1Xthreading.BoundedSemaphorer2(jjXJhttp://docs.python.org/3/library/threading.html#threading.BoundedSemaphoreX-tr3Xemail.parser.BytesFeedParserr4(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesFeedParserX-tr5Xasyncio.Serverr6(jjXFhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.ServerX-tr7Xtracemalloc.StatisticDiffr8(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiffX-tr9X asyncio.Eventr:(jjX@http://docs.python.org/3/library/asyncio-sync.html#asyncio.EventX-tr;Xformatter.AbstractWriterr<(jjXHhttp://docs.python.org/3/library/formatter.html#formatter.AbstractWriterX-tr=Xtyper>(jjX4http://docs.python.org/3/library/functions.html#typeX-tr?Xcollections.abc.KeysViewr@(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.KeysViewX-trAX ctypes.c_uintrB(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_uintX-trCXlogging.StreamHandlerrD(jjXLhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandlerX-trEXhtml.parser.HTMLParserrF(jjXHhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParserX-trGXfileinput.FileInputrH(jjXChttp://docs.python.org/3/library/fileinput.html#fileinput.FileInputX-trIXimaplib.IMAP4_SSLrJ(jjX?http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4_SSLX-trKXssl.SSLContextrL(jjX8http://docs.python.org/3/library/ssl.html#ssl.SSLContextX-trMXemail.generator.GeneratorrN(jjXOhttp://docs.python.org/3/library/email.generator.html#email.generator.GeneratorX-trOXtime.struct_timerP(jjX;http://docs.python.org/3/library/time.html#time.struct_timeX-trQXasyncio.SubprocessProtocolrR(jjXQhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocolX-trSXtkinter.tix.DirSelectDialogrT(jjXMhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirSelectDialogX-trUXtkinter.tix.TListrV(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TListX-trWXshelve.DbfilenameShelfrX(jjXChttp://docs.python.org/3/library/shelve.html#shelve.DbfilenameShelfX-trYXformatter.DumbWriterrZ(jjXDhttp://docs.python.org/3/library/formatter.html#formatter.DumbWriterX-tr[Xvenv.EnvBuilderr\(jjX:http://docs.python.org/3/library/venv.html#venv.EnvBuilderX-tr]Xtkinter.tix.NoteBookr^(jjXFhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.NoteBookX-tr_X(xmlrpc.server.SimpleXMLRPCRequestHandlerr`(jjX\http://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandlerX-traXxml.etree.ElementTree.Elementrb(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementX-trcXthreading.Timerrd(jjX?http://docs.python.org/3/library/threading.html#threading.TimerX-treXdistutils.ccompiler.CCompilerrf(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompilerX-trgXmodulefinder.ModuleFinderrh(jjXLhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinderX-triXurllib.request.URLopenerrj(jjXMhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopenerX-trkXcollections.abc.Setrl(jjXIhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SetX-trmXmultiprocessing.Lockrn(jjXJhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.LockX-troXthreading.Barrierrp(jjXAhttp://docs.python.org/3/library/threading.html#threading.BarrierX-trqXtracemalloc.Filterrr(jjXDhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.FilterX-trsX test.support.EnvironmentVarGuardrt(jjXKhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuardX-truX ftplib.FTPrv(jjX7http://docs.python.org/3/library/ftplib.html#ftplib.FTPX-trwXmailbox.MMDFMessagerx(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessageX-tryXos.sched_paramrz(jjX7http://docs.python.org/3/library/os.html#os.sched_paramX-tr{X mailbox.MHr|(jjX8http://docs.python.org/3/library/mailbox.html#mailbox.MHX-tr}Xargparse.Actionr~(jjX>http://docs.python.org/3/library/argparse.html#argparse.ActionX-trXnntplib.NNTP_SSLr(jjX>http://docs.python.org/3/library/nntplib.html#nntplib.NNTP_SSLX-trXdatetime.timezoner(jjX@http://docs.python.org/3/library/datetime.html#datetime.timezoneX-trXemail.mime.message.MIMEMessager(jjXOhttp://docs.python.org/3/library/email.mime.html#email.mime.message.MIMEMessageX-trXctypes.c_void_pr(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_void_pX-trXxml.dom.pulldom.SAX2DOMr(jjXMhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.SAX2DOMX-trXemail.headerregistry.BaseHeaderr(jjXZhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeaderX-trX&concurrent.futures.ProcessPoolExecutorr(jjX_http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutorX-trXtkinter.ttk.Styler(jjXChttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.StyleX-trX&argparse.ArgumentDefaultsHelpFormatterr(jjXUhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentDefaultsHelpFormatterX-trXimportlib.abc.FileLoaderr(jjXHhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoaderX-trXturtle.RawTurtler(jjX=http://docs.python.org/3/library/turtle.html#turtle.RawTurtleX-trXunittest.TestCaser(jjX@http://docs.python.org/3/library/unittest.html#unittest.TestCaseX-trXurllib.request.Requestr(jjXKhttp://docs.python.org/3/library/urllib.request.html#urllib.request.RequestX-trX xml.sax.xmlreader.AttributesImplr(jjXUhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesImplX-trXthreading.Eventr(jjX?http://docs.python.org/3/library/threading.html#threading.EventX-trXemail.headerregistry.Addressr(jjXWhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressX-trXcollections.abc.MutableSequencer(jjXUhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSequenceX-trX%xmlrpc.server.DocXMLRPCRequestHandlerr(jjXYhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCRequestHandlerX-trXasyncio.Semaphorer(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.SemaphoreX-trXpathlib.WindowsPathr(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.WindowsPathX-trXlogging.NullHandlerr(jjXJhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandlerX-trX"logging.handlers.NTEventLogHandlerr(jjXYhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandlerX-trX csv.excelr(jjX3http://docs.python.org/3/library/csv.html#csv.excelX-trXcsv.unix_dialectr(jjX:http://docs.python.org/3/library/csv.html#csv.unix_dialectX-trX pstats.Statsr(jjX:http://docs.python.org/3/library/profile.html#pstats.StatsX-trXasyncio.StreamReaderr(jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReaderX-trXurllib.parse.ParseResultBytesr(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultBytesX-trXurllib.parse.DefragResultBytesr(jjXQhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultBytesX-trXtkinter.tix.CheckListr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.CheckListX-trXmailbox.MHMessager(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MHMessageX-trXdoctest.Exampler(jjX=http://docs.python.org/3/library/doctest.html#doctest.ExampleX-trX turtle.Shaper(jjX9http://docs.python.org/3/library/turtle.html#turtle.ShapeX-trX'urllib.request.AbstractBasicAuthHandlerr(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandlerX-trX tkinter.Tkr(jjX8http://docs.python.org/3/library/tkinter.html#tkinter.TkX-trXsqlite3.Connectionr(jjX@http://docs.python.org/3/library/sqlite3.html#sqlite3.ConnectionX-trXpathlib.PurePosixPathr(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePosixPathX-trXdecimal.Contextr(jjX=http://docs.python.org/3/library/decimal.html#decimal.ContextX-trXconfigparser.ConfigParserr(jjXLhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParserX-trXasyncio.ProactorEventLoopr(jjXRhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.ProactorEventLoopX-trXtkinter.tix.ExFileSelectBoxr(jjXMhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ExFileSelectBoxX-trXxmlrpc.client.MultiCallr(jjXKhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.MultiCallX-trX struct.Structr(jjX:http://docs.python.org/3/library/struct.html#struct.StructX-trX turtle.Screenr(jjX:http://docs.python.org/3/library/turtle.html#turtle.ScreenX-trXbdb.Breakpointr(jjX8http://docs.python.org/3/library/bdb.html#bdb.BreakpointX-trXctypes.py_objectr(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.py_objectX-trX-email.headerregistry.ContentDispositionHeaderr(jjXhhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentDispositionHeaderX-trX)importlib.machinery.WindowsRegistryFinderr(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.WindowsRegistryFinderX-trX reprlib.Reprr(jjX:http://docs.python.org/3/library/reprlib.html#reprlib.ReprX-trXasyncio.Futurer(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.FutureX-trXtest.support.WarningsRecorderr(jjXHhttp://docs.python.org/3/library/test.html#test.support.WarningsRecorderX-trXdecimal.BasicContextr(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.BasicContextX-trXctypes.c_size_tr(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_size_tX-trXemail.header.Headerr(jjXFhttp://docs.python.org/3/library/email.header.html#email.header.HeaderX-trX#xml.sax.xmlreader.IncrementalParserr(jjXXhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParserX-trXtkinter.tix.Meterr(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.MeterX-trXoptparse.OptionParserr(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.OptionParserX-trXfloatr(jjX5http://docs.python.org/3/library/functions.html#floatX-trX ctypes.c_charr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_charX-trXtkinter.tix.LabelEntryr(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.LabelEntryX-trXhttp.client.HTTPSConnectionr(jjXMhttp://docs.python.org/3/library/http.client.html#http.client.HTTPSConnectionX-trX abc.ABCMetar(jjX5http://docs.python.org/3/library/abc.html#abc.ABCMetaX-trXlzma.LZMACompressorr(jjX>http://docs.python.org/3/library/lzma.html#lzma.LZMACompressorX-trX ctypes.c_intr(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.c_intX-trXformatter.NullFormatterr(jjXGhttp://docs.python.org/3/library/formatter.html#formatter.NullFormatterX-trXxml.sax.saxutils.XMLFilterBaser(jjXRhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLFilterBaseX-trXdistutils.cmd.Commandr(jjXDhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.CommandX-trXmultiprocessing.Barrierr(jjXMhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BarrierX-trXsmtpd.SMTPServerr(jjX<http://docs.python.org/3/library/smtpd.html#smtpd.SMTPServerX-trX mailbox.mboxr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox.mboxX-tr Xasyncio.BaseEventLoopr (jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoopX-tr X msilib.Dialogr (jjX:http://docs.python.org/3/library/msilib.html#msilib.DialogX-tr X!argparse.MetavarTypeHelpFormatterr(jjXPhttp://docs.python.org/3/library/argparse.html#argparse.MetavarTypeHelpFormatterX-trXcodecs.IncrementalDecoderr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoderX-trXlogging.handlers.SocketHandlerr(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandlerX-trX#multiprocessing.connection.Listenerr(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.ListenerX-trXturtle.TurtleScreenr(jjX@http://docs.python.org/3/library/turtle.html#turtle.TurtleScreenX-trXjson.JSONEncoderr(jjX;http://docs.python.org/3/library/json.html#json.JSONEncoderX-trX turtle.Vec2Dr(jjX9http://docs.python.org/3/library/turtle.html#turtle.Vec2DX-trXhttp.cookiejar.CookiePolicyr(jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicyX-trXcsv.DictReaderr(jjX8http://docs.python.org/3/library/csv.html#csv.DictReaderX-trXdifflib.HtmlDiffr (jjX>http://docs.python.org/3/library/difflib.html#difflib.HtmlDiffX-tr!Xemail.mime.base.MIMEBaser"(jjXIhttp://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBaseX-tr#Xtracemalloc.Tracebackr$(jjXGhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.TracebackX-tr%Xctypes.HRESULTr&(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.HRESULTX-tr'Xtkinter.tix.PanedWindowr((jjXIhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.PanedWindowX-tr)Ximportlib.abc.PathEntryFinderr*(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinderX-tr+Xcollections.abc.Iterabler,(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.IterableX-tr-Xthreading.localr.(jjX?http://docs.python.org/3/library/threading.html#threading.localX-tr/Xunittest.TestLoaderr0(jjXBhttp://docs.python.org/3/library/unittest.html#unittest.TestLoaderX-tr1Xio.BufferedReaderr2(jjX:http://docs.python.org/3/library/io.html#io.BufferedReaderX-tr3Xmultiprocessing.Processr4(jjXMhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ProcessX-tr5Xstring.Formatterr6(jjX=http://docs.python.org/3/library/string.html#string.FormatterX-tr7X weakref.refr8(jjX9http://docs.python.org/3/library/weakref.html#weakref.refX-tr9Xcode.InteractiveConsoler:(jjXBhttp://docs.python.org/3/library/code.html#code.InteractiveConsoleX-tr;X)logging.handlers.TimedRotatingFileHandlerr<(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandlerX-tr=Xselectors.DefaultSelectorr>(jjXIhttp://docs.python.org/3/library/selectors.html#selectors.DefaultSelectorX-tr?Xpathlib.PureWindowsPathr@(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PureWindowsPathX-trAXturtle.ScrolledCanvasrB(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.ScrolledCanvasX-trCX%distutils.command.bdist_msi.bdist_msirD(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.command.bdist_msi.bdist_msiX-trEX"email.headerregistry.AddressHeaderrF(jjX]http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeaderX-trGXzipfile.PyZipFilerH(jjX?http://docs.python.org/3/library/zipfile.html#zipfile.PyZipFileX-trIXthreading.LockrJ(jjX>http://docs.python.org/3/library/threading.html#threading.LockX-trKXmsilib.RadioButtonGrouprL(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.RadioButtonGroupX-trMXcontextlib.ExitStackrN(jjXEhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStackX-trOX imaplib.IMAP4rP(jjX;http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4X-trQXlogging.handlers.MemoryHandlerrR(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandlerX-trSXjson.JSONDecoderrT(jjX;http://docs.python.org/3/library/json.html#json.JSONDecoderX-trUX&email.headerregistry.ContentTypeHeaderrV(jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeaderX-trWXnumbers.RationalrX(jjX>http://docs.python.org/3/library/numbers.html#numbers.RationalX-trYX(wsgiref.simple_server.WSGIRequestHandlerrZ(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandlerX-tr[Xcollections.abc.ItemsViewr\(jjXOhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ItemsViewX-tr]Xtracemalloc.Framer^(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.FrameX-tr_Xdecimal.DecimalExceptionr`(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.DecimalExceptionX-traXasyncio.Protocolrb(jjXGhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ProtocolX-trcXftplib.FTP_TLSrd(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLSX-treXhttp.cookies.SimpleCookierf(jjXLhttp://docs.python.org/3/library/http.cookies.html#http.cookies.SimpleCookieX-trgXcollections.abc.Callablerh(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.CallableX-triXdistutils.core.Extensionrj(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.core.ExtensionX-trkXtest.support.TransientResourcerl(jjXIhttp://docs.python.org/3/library/test.html#test.support.TransientResourceX-trmXlogging.handlers.SMTPHandlerrn(jjXShttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandlerX-troX(xmlrpc.server.DocCGIXMLRPCRequestHandlerrp(jjX\http://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandlerX-trqXasyncio.SelectorEventLooprr(jjXRhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.SelectorEventLoopX-trsX'importlib.machinery.ExtensionFileLoaderrt(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoaderX-truXxml.sax.xmlreader.Locatorrv(jjXNhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.LocatorX-trwXdistutils.core.Commandrx(jjXEhttp://docs.python.org/3/distutils/apiref.html#distutils.core.CommandX-tryXio.TextIOWrapperrz(jjX9http://docs.python.org/3/library/io.html#io.TextIOWrapperX-tr{Xwsgiref.handlers.BaseHandlerr|(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandlerX-tr}Xinspect.BoundArgumentsr~(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.BoundArgumentsX-trXdecimal.Clampedr(jjX=http://docs.python.org/3/library/decimal.html#decimal.ClampedX-trXunittest.mock.NonCallableMockr(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMockX-trX&urllib.request.HTTPDefaultErrorHandlerr(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDefaultErrorHandlerX-trXurllib.request.HTTPSHandlerr(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandlerX-trXasyncio.DatagramProtocolr(jjXOhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocolX-trXimaplib.IMAP4_streamr(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4_streamX-trX xmlrpc.server.SimpleXMLRPCServerr(jjXThttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServerX-trX turtle.RawPenr(jjX:http://docs.python.org/3/library/turtle.html#turtle.RawPenX-trX"multiprocessing.managers.BaseProxyr(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxyX-trXctypes.BigEndianStructurer(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes.BigEndianStructureX-trXweakref.WeakKeyDictionaryr(jjXGhttp://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionaryX-trXemail.policy.EmailPolicyr(jjXKhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicyX-trXxml.sax.handler.EntityResolverr(jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolverX-trXhttp.cookies.BaseCookier(jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookieX-trXweakref.finalizer(jjX>http://docs.python.org/3/library/weakref.html#weakref.finalizeX-trXcollections.UserDictr(jjXFhttp://docs.python.org/3/library/collections.html#collections.UserDictX-trXpipes.Templater(jjX:http://docs.python.org/3/library/pipes.html#pipes.TemplateX-trXctypes.LibraryLoaderr(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.LibraryLoaderX-trX"urllib.request.HTTPCookieProcessorr(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessorX-trXsmtpd.MailmanProxyr(jjX>http://docs.python.org/3/library/smtpd.html#smtpd.MailmanProxyX-trXmailbox.Maildirr(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MaildirX-trXwsgiref.util.FileWrapperr(jjXFhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.FileWrapperX-trXcollections.abc.Mappingr(jjXMhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MappingX-trXstrr(jjX2http://docs.python.org/3/library/stdtypes.html#strX-trXtkinter.tix.InputOnlyr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.InputOnlyX-trXsmtpd.SMTPChannelr(jjX=http://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannelX-trXimp.NullImporterr(jjX:http://docs.python.org/3/library/imp.html#imp.NullImporterX-trXsymtable.Functionr(jjX@http://docs.python.org/3/library/symtable.html#symtable.FunctionX-trX#email.headerregistry.HeaderRegistryr(jjX^http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistryX-trX$http.server.SimpleHTTPRequestHandlerr(jjXVhttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandlerX-trXmultiprocessing.JoinableQueuer(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueueX-trXpoplib.POP3_SSLr(jjX<http://docs.python.org/3/library/poplib.html#poplib.POP3_SSLX-trXipaddress.IPv4Addressr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4AddressX-trXtkinter.tix.ButtonBoxr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ButtonBoxX-trXtkinter.tix.ListNoteBookr(jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ListNoteBookX-trX&email.mime.application.MIMEApplicationr(jjXWhttp://docs.python.org/3/library/email.mime.html#email.mime.application.MIMEApplicationX-trXconcurrent.futures.Executorr(jjXThttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ExecutorX-trXio.BufferedWriterr(jjX:http://docs.python.org/3/library/io.html#io.BufferedWriterX-trXpdb.Pdbr(jjX1http://docs.python.org/3/library/pdb.html#pdb.PdbX-trXtkinter.tix.OptionMenur(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.OptionMenuX-trXemail.policy.Policyr(jjXFhttp://docs.python.org/3/library/email.policy.html#email.policy.PolicyX-trX datetime.dater(jjX<http://docs.python.org/3/library/datetime.html#datetime.dateX-trXtupler(jjX4http://docs.python.org/3/library/stdtypes.html#tupleX-trXcollections.UserListr(jjXFhttp://docs.python.org/3/library/collections.html#collections.UserListX-trX datetime.timer(jjX<http://docs.python.org/3/library/datetime.html#datetime.timeX-trXurllib.request.OpenerDirectorr(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirectorX-trXbz2.BZ2Compressorr(jjX;http://docs.python.org/3/library/bz2.html#bz2.BZ2CompressorX-trXdis.Instructionr(jjX9http://docs.python.org/3/library/dis.html#dis.InstructionX-trX multiprocessing.BoundedSemaphorer(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BoundedSemaphoreX-trXnumbers.Integralr(jjX>http://docs.python.org/3/library/numbers.html#numbers.IntegralX-trX ctypes.c_byter(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_byteX-trXctypes.c_int16r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int16X-trXzipfile.ZipFiler(jjX=http://docs.python.org/3/library/zipfile.html#zipfile.ZipFileX-trXselectors.BaseSelectorr(jjXFhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelectorX-trXipaddress.IPv4Networkr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4NetworkX-trXobjectr(jjX6http://docs.python.org/3/library/functions.html#objectX-trX ctypes.c_boolr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_boolX-trXemail.headerregistry.DateHeaderr(jjXZhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeaderX-trXdistutils.core.Distributionr(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.core.DistributionX-trX$importlib.machinery.SourceFileLoaderr(jjXThttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoaderX-trXcollections.abc.Sizedr(jjXKhttp://docs.python.org/3/library/collections.abc.html#collections.abc.SizedX-trXasyncio.Conditionr(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.ConditionX-trX#importlib.machinery.BuiltinImporterr(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.BuiltinImporterX-trXformatter.AbstractFormatterr(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.AbstractFormatterX-trXemail.message.EmailMessager(jjXUhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessageX-trXdecimal.Decimalr(jjX=http://docs.python.org/3/library/decimal.html#decimal.DecimalX-trXcodecs.StreamReaderWriterr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamReaderWriterX-trXimportlib.abc.MetaPathFinderr(jjXLhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinderX-trXtkinter.tix.Controlr(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ControlX-tr Xasyncore.file_dispatcherr (jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.file_dispatcherX-tr Xsetr (jjX2http://docs.python.org/3/library/stdtypes.html#setX-tr Xmultiprocessing.Eventr(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.EventX-trXxdrlib.Unpackerr(jjX<http://docs.python.org/3/library/xdrlib.html#xdrlib.UnpackerX-trX"email.mime.multipart.MIMEMultipartr(jjXShttp://docs.python.org/3/library/email.mime.html#email.mime.multipart.MIMEMultipartX-trXctypes.c_uint16r(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint16X-trXhttp.cookiejar.CookieJarr(jjXMhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJarX-trXmultiprocessing.RLockr(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLockX-trXimportlib.abc.SourceLoaderr(jjXJhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoaderX-trX"http.cookiejar.DefaultCookiePolicyr(jjXWhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicyX-trXcollections.abc.MutableSetr(jjXPhttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSetX-trXdoctest.DocTestr (jjX=http://docs.python.org/3/library/doctest.html#doctest.DocTestX-tr!Xctypes.c_uint8r"(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_uint8X-tr#Xcodecs.StreamReaderr$(jjX@http://docs.python.org/3/library/codecs.html#codecs.StreamReaderX-tr%Xtkinter.tix.Treer&(jjXBhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.TreeX-tr'X queue.Queuer((jjX7http://docs.python.org/3/library/queue.html#queue.QueueX-tr)Xctypes._FuncPtrr*(jjX<http://docs.python.org/3/library/ctypes.html#ctypes._FuncPtrX-tr+Xdictr,(jjX3http://docs.python.org/3/library/stdtypes.html#dictX-tr-Xtextwrap.TextWrapperr.(jjXChttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapperX-tr/Xzipfile.ZipInfor0(jjX=http://docs.python.org/3/library/zipfile.html#zipfile.ZipInfoX-tr1Xctypes.c_ubyter2(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_ubyteX-tr3Xqueue.PriorityQueuer4(jjX?http://docs.python.org/3/library/queue.html#queue.PriorityQueueX-tr5Xxmlrpc.server.DocXMLRPCServerr6(jjXQhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServerX-tr7Xpickle.Unpicklerr8(jjX=http://docs.python.org/3/library/pickle.html#pickle.UnpicklerX-tr9Xhttp.client.HTTPConnectionr:(jjXLhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnectionX-tr;Xctypes.c_uint64r<(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint64X-tr=Xfunctools.partialmethodr>(jjXGhttp://docs.python.org/3/library/functools.html#functools.partialmethodX-tr?Xthreading.Conditionr@(jjXChttp://docs.python.org/3/library/threading.html#threading.ConditionX-trAXctypes.c_wcharrB(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_wcharX-trCXemail.mime.audio.MIMEAudiorD(jjXKhttp://docs.python.org/3/library/email.mime.html#email.mime.audio.MIMEAudioX-trEXbytesrF(jjX5http://docs.python.org/3/library/functions.html#bytesX-trGXlogging.handlers.QueueListenerrH(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListenerX-trIX ctypes.CDLLrJ(jjX8http://docs.python.org/3/library/ctypes.html#ctypes.CDLLX-trKXcollections.abc.MutableMappingrL(jjXThttp://docs.python.org/3/library/collections.abc.html#collections.abc.MutableMappingX-trMXurllib.parse.DefragResultrN(jjXLhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultX-trOX(importlib.machinery.SourcelessFileLoaderrP(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoaderX-trQXmsilib.DirectoryrR(jjX=http://docs.python.org/3/library/msilib.html#msilib.DirectoryX-trSXasyncio.ReadTransportrT(jjXLhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransportX-trUXhttp.cookiejar.MozillaCookieJarrV(jjXThttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.MozillaCookieJarX-trWXwarnings.catch_warningsrX(jjXFhttp://docs.python.org/3/library/warnings.html#warnings.catch_warningsX-trYXctypes.c_floatrZ(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_floatX-tr[X xdrlib.Packerr\(jjX:http://docs.python.org/3/library/xdrlib.html#xdrlib.PackerX-tr]Xurllib.request.CacheFTPHandlerr^(jjXShttp://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandlerX-tr_Xtkinter.tix.PopupMenur`(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.PopupMenuX-traXxml.sax.handler.ErrorHandlerrb(jjXRhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandlerX-trcXtkinter.tix.DirListrd(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirListX-treXtkinter.tix.HListrf(jjXChttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.HListX-trgXtkinter.tix.Formrh(jjXBhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FormX-triXasyncore.dispatcher_with_sendrj(jjXLhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher_with_sendX-trkX ctypes.PyDLLrl(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.PyDLLX-trmXsymtable.SymbolTablern(jjXChttp://docs.python.org/3/library/symtable.html#symtable.SymbolTableX-troX csv.Dialectrp(jjX5http://docs.python.org/3/library/csv.html#csv.DialectX-trqXurllib.request.BaseHandlerrr(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandlerX-trsXurllib.request.HTTPPasswordMgrrt(jjXShttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrX-truXemail.message.Messagerv(jjXIhttp://docs.python.org/3/library/email.message.html#email.message.MessageX-trwXcodecs.StreamWriterrx(jjX@http://docs.python.org/3/library/codecs.html#codecs.StreamWriterX-tryX ctypes.c_longrz(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_longX-tr{Xasyncio.PriorityQueuer|(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.PriorityQueueX-tr}Xdecimal.Subnormalr~(jjX?http://docs.python.org/3/library/decimal.html#decimal.SubnormalX-trX asyncio.Queuer(jjX@http://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueX-trXselectors.SelectSelectorr(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.SelectSelectorX-trXcollections.defaultdictr(jjXIhttp://docs.python.org/3/library/collections.html#collections.defaultdictX-trXdecimal.Inexactr(jjX=http://docs.python.org/3/library/decimal.html#decimal.InexactX-trX&email.headerregistry.MIMEVersionHeaderr(jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeaderX-trX wsgiref.simple_server.WSGIServerr(jjXNhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServerX-trX!http.server.CGIHTTPRequestHandlerr(jjXShttp://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandlerX-trXmultiprocessing.Conditionr(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ConditionX-trX smtplib.SMTPr(jjX:http://docs.python.org/3/library/smtplib.html#smtplib.SMTPX-trXio.IncrementalNewlineDecoderr(jjXEhttp://docs.python.org/3/library/io.html#io.IncrementalNewlineDecoderX-trX frozensetr(jjX8http://docs.python.org/3/library/stdtypes.html#frozensetX-trXemail.mime.text.MIMETextr(jjXIhttp://docs.python.org/3/library/email.mime.html#email.mime.text.MIMETextX-trX asyncio.Taskr(jjX?http://docs.python.org/3/library/asyncio-task.html#asyncio.TaskX-trXargparse.RawTextHelpFormatterr(jjXLhttp://docs.python.org/3/library/argparse.html#argparse.RawTextHelpFormatterX-trXthreading.Threadr(jjX@http://docs.python.org/3/library/threading.html#threading.ThreadX-trXtkinter.tix.FileEntryr(jjXGhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FileEntryX-trXctypes.c_longlongr(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.c_longlongX-trXmultiprocessing.Queuer(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.QueueX-trXcmd.Cmdr(jjX1http://docs.python.org/3/library/cmd.html#cmd.CmdX-trXmultiprocessing.pool.Poolr(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.PoolX-trXunittest.mock.Mockr(jjXFhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.MockX-trXunittest.FunctionTestCaser(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.FunctionTestCaseX-trXoptparse.OptionGroupr(jjXChttp://docs.python.org/3/library/optparse.html#optparse.OptionGroupX-trXdifflib.Differr(jjX<http://docs.python.org/3/library/difflib.html#difflib.DifferX-trXhttp.cookies.Morselr(jjXFhttp://docs.python.org/3/library/http.cookies.html#http.cookies.MorselX-trXpathlib.PosixPathr(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.PosixPathX-trX ctypes.c_int8r(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.c_int8X-trX smtplib.LMTPr(jjX:http://docs.python.org/3/library/smtplib.html#smtplib.LMTPX-trX plistlib.Datar(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.DataX-trXsmtplib.SMTP_SSLr(jjX>http://docs.python.org/3/library/smtplib.html#smtplib.SMTP_SSLX-trXasyncio.BaseSubprocessTransportr(jjXVhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransportX-trXmailbox.mboxMessager(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessageX-trXcollections.UserStringr(jjXHhttp://docs.python.org/3/library/collections.html#collections.UserStringX-trX!xml.etree.ElementTree.ElementTreer(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTreeX-trXtkinter.tix.DirSelectBoxr(jjXJhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.DirSelectBoxX-trXmimetypes.MimeTypesr(jjXChttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypesX-trXctypes.c_doubler(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_doubleX-trXdecimal.DivisionByZeror(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.DivisionByZeroX-trXgettext.NullTranslationsr(jjXFhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslationsX-trXemail.generator.BytesGeneratorr(jjXThttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGeneratorX-trX ctypes.WinDLLr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.WinDLLX-trXpickle.Picklerr(jjX;http://docs.python.org/3/library/pickle.html#pickle.PicklerX-trXtarfile.TarInfor(jjX=http://docs.python.org/3/library/tarfile.html#tarfile.TarInfoX-trXpkgutil.ImpLoaderr(jjX?http://docs.python.org/3/library/pkgutil.html#pkgutil.ImpLoaderX-trXcollections.abc.Hashabler(jjXNhttp://docs.python.org/3/library/collections.abc.html#collections.abc.HashableX-trX,email.headerregistry.ParameterizedMIMEHeaderr(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeaderX-trXconfigparser.RawConfigParserr(jjXOhttp://docs.python.org/3/library/configparser.html#configparser.RawConfigParserX-trX#logging.handlers.WatchedFileHandlerr(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandlerX-trXurllib.request.UnknownHandlerr(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandlerX-trXthreading.RLockr(jjX?http://docs.python.org/3/library/threading.html#threading.RLockX-trX io.FileIOr(jjX2http://docs.python.org/3/library/io.html#io.FileIOX-trXwsgiref.handlers.BaseCGIHandlerr(jjXMhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseCGIHandlerX-trXcurses.textpad.Textboxr(jjXChttp://docs.python.org/3/library/curses.html#curses.textpad.TextboxX-trX turtle.Turtler(jjX:http://docs.python.org/3/library/turtle.html#turtle.TurtleX-trXsymtable.Classr(jjX=http://docs.python.org/3/library/symtable.html#symtable.ClassX-trXrandom.SystemRandomr(jjX@http://docs.python.org/3/library/random.html#random.SystemRandomX-trXsqlite3.Cursorr(jjX<http://docs.python.org/3/library/sqlite3.html#sqlite3.CursorX-trXsched.schedulerr(jjX;http://docs.python.org/3/library/sched.html#sched.schedulerX-trXhttp.cookiejar.Cookier(jjXJhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieX-trXtarfile.TarFiler(jjX=http://docs.python.org/3/library/tarfile.html#tarfile.TarFileX-trXctypes.c_uint32r(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_uint32X-trXdecimal.InvalidOperationr(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.InvalidOperationX-trXcalendar.HTMLCalendarr(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendarX-trXweakref.WeakMethodr(jjX@http://docs.python.org/3/library/weakref.html#weakref.WeakMethodX-trXemail.mime.image.MIMEImager(jjXKhttp://docs.python.org/3/library/email.mime.html#email.mime.image.MIMEImageX-trXdifflib.SequenceMatcherr(jjXEhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcherX-trX asynchat.fifor(jjX<http://docs.python.org/3/library/asynchat.html#asynchat.fifoX-trXpropertyr(jjX8http://docs.python.org/3/library/functions.html#propertyX-trX(email.mime.nonmultipart.MIMENonMultipartr(jjXYhttp://docs.python.org/3/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipartX-tr X$argparse.RawDescriptionHelpFormatterr (jjXShttp://docs.python.org/3/library/argparse.html#argparse.RawDescriptionHelpFormatterX-tr Xwsgiref.handlers.IISCGIHandlerr (jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.IISCGIHandlerX-tr Xmailbox.MaildirMessager(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessageX-trXtkinter.ttk.Treeviewr(jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.TreeviewX-trXxml.dom.pulldom.PullDomr(jjXMhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.PullDomX-trXlogging.Formatterr(jjX?http://docs.python.org/3/library/logging.html#logging.FormatterX-trXasyncio.BoundedSemaphorer(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.BoundedSemaphoreX-trXlogging.LoggerAdapterr(jjXChttp://docs.python.org/3/library/logging.html#logging.LoggerAdapterX-trX$multiprocessing.managers.BaseManagerr(jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManagerX-trXxml.etree.ElementTree.QNamer(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.QNameX-trXhttp.server.HTTPServerr(jjXHhttp://docs.python.org/3/library/http.server.html#http.server.HTTPServerX-trXcodeop.Compiler (jjX;http://docs.python.org/3/library/codeop.html#codeop.CompileX-tr!Xasyncio.StreamReaderProtocolr"(jjXQhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReaderProtocolX-tr#Xthreading.Semaphorer$(jjXChttp://docs.python.org/3/library/threading.html#threading.SemaphoreX-tr%Xselectors.SelectorKeyr&(jjXEhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKeyX-tr'X"asyncio.asyncio.subprocess.Processr((jjX[http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.ProcessX-tr)Xcomplexr*(jjX7http://docs.python.org/3/library/functions.html#complexX-tr+Xunittest.TestResultr,(jjXBhttp://docs.python.org/3/library/unittest.html#unittest.TestResultX-tr-X sqlite3.Rowr.(jjX9http://docs.python.org/3/library/sqlite3.html#sqlite3.RowX-tr/Xdecimal.ExtendedContextr0(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ExtendedContextX-tr1Xcalendar.TextCalendarr2(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendarX-tr3X io.RawIOBaser4(jjX5http://docs.python.org/3/library/io.html#io.RawIOBaseX-tr5Xstring.Templater6(jjX<http://docs.python.org/3/library/string.html#string.TemplateX-tr7Xast.ASTr8(jjX1http://docs.python.org/3/library/ast.html#ast.ASTX-tr9Xctypes.c_ssize_tr:(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.c_ssize_tX-tr;X"distutils.fancy_getopt.FancyGetoptr<(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetoptX-tr=X shlex.shlexr>(jjX7http://docs.python.org/3/library/shlex.html#shlex.shlexX-tr?Xshelve.BsdDbShelfr@(jjX>http://docs.python.org/3/library/shelve.html#shelve.BsdDbShelfX-trAXurllib.parse.ParseResultrB(jjXKhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultX-trCX(email.headerregistry.SingleAddressHeaderrD(jjXchttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeaderX-trEXdecimal.UnderflowrF(jjX?http://docs.python.org/3/library/decimal.html#decimal.UnderflowX-trGXimportlib.abc.LoaderrH(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.abc.LoaderX-trIXcollections.CounterrJ(jjXEhttp://docs.python.org/3/library/collections.html#collections.CounterX-trKXdoctest.DocTestFinderrL(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestFinderX-trMXmailbox.MailboxrN(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MailboxX-trOX#email.contentmanager.ContentManagerrP(jjX^http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManagerX-trQXtkinter.ttk.ComboboxrR(jjXFhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.ComboboxX-trSXdatetime.datetimerT(jjX@http://docs.python.org/3/library/datetime.html#datetime.datetimeX-trUX ssl.SSLSocketrV(jjX7http://docs.python.org/3/library/ssl.html#ssl.SSLSocketX-trWXast.NodeTransformerrX(jjX=http://docs.python.org/3/library/ast.html#ast.NodeTransformerX-trYX mmap.mmaprZ(jjX4http://docs.python.org/3/library/mmap.html#mmap.mmapX-tr[X%concurrent.futures.ThreadPoolExecutorr\(jjX^http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutorX-tr]X"configparser.ExtendedInterpolationr^(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ExtendedInterpolationX-tr_X enum.IntEnumr`(jjX7http://docs.python.org/3/library/enum.html#enum.IntEnumX-traXsmtpd.PureProxyrb(jjX;http://docs.python.org/3/library/smtpd.html#smtpd.PureProxyX-trcXimportlib.abc.Finderrd(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.abc.FinderX-treX$urllib.request.HTTPDigestAuthHandlerrf(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandlerX-trgXurllib.request.FTPHandlerrh(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandlerX-triXast.NodeVisitorrj(jjX9http://docs.python.org/3/library/ast.html#ast.NodeVisitorX-trkXlogging.handlers.HTTPHandlerrl(jjXShttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandlerX-trmX memoryviewrn(jjX9http://docs.python.org/3/library/stdtypes.html#memoryviewX-troXargparse.ArgumentParserrp(jjXFhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParserX-trqXcodecs.IncrementalEncoderrr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoderX-trsXcode.InteractiveInterpreterrt(jjXFhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreterX-truXctypes._SimpleCDatarv(jjX@http://docs.python.org/3/library/ctypes.html#ctypes._SimpleCDataX-trwXcollections.ChainMaprx(jjXFhttp://docs.python.org/3/library/collections.html#collections.ChainMapX-tryXio.BufferedRandomrz(jjX:http://docs.python.org/3/library/io.html#io.BufferedRandomX-tr{Xmultiprocessing.Semaphorer|(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SemaphoreX-tr}X bz2.BZ2Filer~(jjX5http://docs.python.org/3/library/bz2.html#bz2.BZ2FileX-trXdoctest.DebugRunnerr(jjXAhttp://docs.python.org/3/library/doctest.html#doctest.DebugRunnerX-trXqueue.LifoQueuer(jjX;http://docs.python.org/3/library/queue.html#queue.LifoQueueX-trXasyncio.WriteTransportr(jjXMhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransportX-trXlogging.FileHandlerr(jjXJhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandlerX-trXimportlib.machinery.ModuleSpecr(jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpecX-trX'email.headerregistry.UnstructuredHeaderr(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.UnstructuredHeaderX-trXctypes.c_ulonglongr(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.c_ulonglongX-trXdecimal.FloatOperationr(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.FloatOperationX-trXsymtable.Symbolr(jjX>http://docs.python.org/3/library/symtable.html#symtable.SymbolX-trXselectors.EpollSelectorr(jjXGhttp://docs.python.org/3/library/selectors.html#selectors.EpollSelectorX-trX email.generator.DecodedGeneratorr(jjXVhttp://docs.python.org/3/library/email.generator.html#email.generator.DecodedGeneratorX-trXipaddress.IPv6Networkr(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6NetworkX-trXtkinter.tix.LabelFramer(jjXHhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.LabelFrameX-trXsubprocess.STARTUPINFOr(jjXGhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFOX-trXxml.sax.saxutils.XMLGeneratorr(jjXQhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLGeneratorX-trXxml.sax.handler.DTDHandlerr(jjXPhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandlerX-trXunittest.mock.PropertyMockr(jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.PropertyMockX-trXipaddress.IPv6Interfacer(jjXGhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6InterfaceX-trXunittest.TestSuiter(jjXAhttp://docs.python.org/3/library/unittest.html#unittest.TestSuiteX-trXdecimal.Overflowr(jjX>http://docs.python.org/3/library/decimal.html#decimal.OverflowX-trXemail.parser.Parserr(jjXFhttp://docs.python.org/3/library/email.parser.html#email.parser.ParserX-trXimportlib.machinery.FileFinderr(jjXNhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinderX-trXemail.parser.BytesParserr(jjXKhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesParserX-trXcollections.OrderedDictr(jjXIhttp://docs.python.org/3/library/collections.html#collections.OrderedDictX-trXxmlrpc.client.ServerProxyr(jjXMhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxyX-trX io.IOBaser(jjX2http://docs.python.org/3/library/io.html#io.IOBaseX-trXargparse.FileTyper(jjX@http://docs.python.org/3/library/argparse.html#argparse.FileTypeX-trXctypes.Structurer(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.StructureX-trXmailbox.Messager(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MessageX-trX ctypes.OleDLLr(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.OleDLLX-trX io.StringIOr(jjX4http://docs.python.org/3/library/io.html#io.StringIOX-trXselectors.PollSelectorr(jjXFhttp://docs.python.org/3/library/selectors.html#selectors.PollSelectorX-trXselectors.KqueueSelectorr(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.KqueueSelectorX-trXfilecmp.dircmpr(jjX<http://docs.python.org/3/library/filecmp.html#filecmp.dircmpX-trXslicer(jjX5http://docs.python.org/3/library/functions.html#sliceX-trX#xml.etree.ElementTree.XMLPullParserr(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParserX-trX enum.Enumr(jjX4http://docs.python.org/3/library/enum.html#enum.EnumX-trXunittest.TextTestRunnerr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunnerX-trXurllib.parse.SplitResultBytesr(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultBytesX-trXemail.charset.Charsetr(jjXIhttp://docs.python.org/3/library/email.charset.html#email.charset.CharsetX-trXasyncio.LifoQueuer(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.LifoQueueX-trXemail.policy.Compat32r(jjXHhttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32X-trXctypes.c_int64r(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int64X-trX msilib.CABr(jjX7http://docs.python.org/3/library/msilib.html#msilib.CABX-trXmultiprocessing.Connectionr(jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ConnectionX-trX trace.Tracer(jjX7http://docs.python.org/3/library/trace.html#trace.TraceX-trXtkinter.tix.FileSelectBoxr(jjXKhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.FileSelectBoxX-trXlogging.Loggerr(jjX<http://docs.python.org/3/library/logging.html#logging.LoggerX-trXabc.ABCr(jjX1http://docs.python.org/3/library/abc.html#abc.ABCX-trXbdb.Bdbr(jjX1http://docs.python.org/3/library/bdb.html#bdb.BdbX-trX timeit.Timerr(jjX9http://docs.python.org/3/library/timeit.html#timeit.TimerX-trXurllib.parse.SplitResultr(jjXKhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultX-trXhttp.cookiejar.FileCookieJarr(jjXQhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJarX-trX(urllib.request.AbstractDigestAuthHandlerr(jjX]http://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandlerX-trXranger(jjX4http://docs.python.org/3/library/stdtypes.html#rangeX-trXnumbers.Complexr(jjX=http://docs.python.org/3/library/numbers.html#numbers.ComplexX-trXcalendar.LocaleHTMLCalendarr(jjXJhttp://docs.python.org/3/library/calendar.html#calendar.LocaleHTMLCalendarX-trXcollections.dequer(jjXChttp://docs.python.org/3/library/collections.html#collections.dequeX-trX msilib.Binaryr(jjX:http://docs.python.org/3/library/msilib.html#msilib.BinaryX-trX mailbox.MMDFr(jjX:http://docs.python.org/3/library/mailbox.html#mailbox.MMDFX-trXctypes.LittleEndianStructurer(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.LittleEndianStructureX-trX io.BytesIOr(jjX3http://docs.python.org/3/library/io.html#io.BytesIOX-trXcontextlib.ContextDecoratorr(jjXLhttp://docs.python.org/3/library/contextlib.html#contextlib.ContextDecoratorX-trXxml.sax.xmlreader.XMLReaderr(jjXPhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReaderX-trXfractions.Fractionr(jjXBhttp://docs.python.org/3/library/fractions.html#fractions.FractionX-trXcalendar.Calendarr(jjX@http://docs.python.org/3/library/calendar.html#calendar.CalendarX-trXurllib.request.FancyURLopenerr(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopenerX-trXtelnetlib.Telnetr(jjX@http://docs.python.org/3/library/telnetlib.html#telnetlib.TelnetX-trXhttp.client.HTTPResponser(jjXJhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponseX-tr Xxml.sax.xmlreader.InputSourcer (jjXRhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSourceX-tr Xctypes.c_int32r (jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_int32X-tr X poplib.POP3r(jjX8http://docs.python.org/3/library/poplib.html#poplib.POP3X-trXasyncio.BaseTransportr(jjXLhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransportX-trX(distutils.command.build_py.build_py_2to3r(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_py_2to3X-trXemail.headerregistry.Groupr(jjXUhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.GroupX-trXformatter.NullWriterr(jjXDhttp://docs.python.org/3/library/formatter.html#formatter.NullWriterX-trXctypes.c_ulongr(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_ulongX-trXconcurrent.futures.Futurer(jjXRhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FutureX-trXurllib.request.FileHandlerr(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandlerX-trXdoctest.DocTestParserr(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTestParserX-trXconfigparser.BasicInterpolationr (jjXRhttp://docs.python.org/3/library/configparser.html#configparser.BasicInterpolationX-tr!X$logging.handlers.RotatingFileHandlerr"(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandlerX-tr#Xipaddress.IPv6Addressr$(jjXEhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6AddressX-tr%Xdistutils.text_file.TextFiler&(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFileX-tr'Ximportlib.abc.ResourceLoaderr((jjXLhttp://docs.python.org/3/library/importlib.html#importlib.abc.ResourceLoaderX-tr)Xctypes.c_wchar_pr*(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.c_wchar_pX-tr+Xxml.etree.ElementTree.XMLParserr,(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParserX-tr-Xctypes.c_char_pr.(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_char_pX-tr/Xweakref.WeakSetr0(jjX=http://docs.python.org/3/library/weakref.html#weakref.WeakSetX-tr1Xasyncio.AbstractEventLoopPolicyr2(jjXXhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.AbstractEventLoopPolicyX-tr3X csv.Snifferr4(jjX5http://docs.python.org/3/library/csv.html#csv.SnifferX-tr5Xtracemalloc.Tracer6(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.TraceX-tr7Xargparse.Namespacer8(jjXAhttp://docs.python.org/3/library/argparse.html#argparse.NamespaceX-tr9X$urllib.request.ProxyBasicAuthHandlerr:(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandlerX-tr;X ctypes._CDatar<(jjX:http://docs.python.org/3/library/ctypes.html#ctypes._CDataX-tr=Xtypes.MappingProxyTyper>(jjXBhttp://docs.python.org/3/library/types.html#types.MappingProxyTypeX-tr?X pathlib.Pathr@(jjX:http://docs.python.org/3/library/pathlib.html#pathlib.PathX-trAXtkinter.ttk.WidgetrB(jjXDhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.WidgetX-trCXtrace.CoverageResultsrD(jjXAhttp://docs.python.org/3/library/trace.html#trace.CoverageResultsX-trEXintrF(jjX3http://docs.python.org/3/library/functions.html#intX-trGX uuid.UUIDrH(jjX4http://docs.python.org/3/library/uuid.html#uuid.UUIDX-trIX!urllib.request.HTTPErrorProcessorrJ(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessorX-trKX$logging.handlers.BaseRotatingHandlerrL(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandlerX-trMXctypes.c_ushortrN(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.c_ushortX-trOXtracemalloc.StatisticrP(jjXGhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticX-trQXcodecs.StreamRecoderrR(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.StreamRecoderX-trSXwsgiref.headers.HeadersrT(jjXEhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.HeadersX-trUX ctypes.UnionrV(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.UnionX-trWX mailbox.BabylrX(jjX;http://docs.python.org/3/library/mailbox.html#mailbox.BabylX-trYX test.support.SuppressCrashReportrZ(jjXKhttp://docs.python.org/3/library/test.html#test.support.SuppressCrashReportX-tr[Xdatetime.tzinfor\(jjX>http://docs.python.org/3/library/datetime.html#datetime.tzinfoX-tr]Ximportlib.abc.InspectLoaderr^(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoaderX-tr_Xcsv.DictWriterr`(jjX8http://docs.python.org/3/library/csv.html#csv.DictWriterX-traXunittest.mock.MagicMockrb(jjXKhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.MagicMockX-trcXdoctest.OutputCheckerrd(jjXChttp://docs.python.org/3/library/doctest.html#doctest.OutputCheckerX-treXlogging.Filterrf(jjX<http://docs.python.org/3/library/logging.html#logging.FilterX-trgXboolrh(jjX4http://docs.python.org/3/library/functions.html#boolX-triXsmtpd.DebuggingServerrj(jjXAhttp://docs.python.org/3/library/smtpd.html#smtpd.DebuggingServerX-trkXtkinter.tix.ComboBoxrl(jjXFhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.ComboBoxX-trmX xml.etree.ElementTree.ParseErrorrn(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseErrorX-troXos.stat_resultrp(jjX7http://docs.python.org/3/library/os.html#os.stat_resultX-trqXunittest.TextTestResultrr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TextTestResultX-trsXasyncio.JoinableQueuert(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueueX-truXzipimport.zipimporterrv(jjXEhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporterX-trwXweakref.WeakValueDictionaryrx(jjXIhttp://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionaryX-tryX gzip.GzipFilerz(jjX8http://docs.python.org/3/library/gzip.html#gzip.GzipFileX-tr{Xtkinter.tix.Balloonr|(jjXEhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.BalloonX-tr}X netrc.netrcr~(jjX7http://docs.python.org/3/library/netrc.html#netrc.netrcX-trX"urllib.robotparser.RobotFileParserr(jjX[http://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParserX-trXlogging.LogRecordr(jjX?http://docs.python.org/3/library/logging.html#logging.LogRecordX-trXtkinter.tix.Selectr(jjXDhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.SelectX-trX.urllib.request.HTTPPasswordMgrWithDefaultRealmr(jjXchttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithDefaultRealmX-trXbz2.BZ2Decompressorr(jjX=http://docs.python.org/3/library/bz2.html#bz2.BZ2DecompressorX-trXlogging.handlers.QueueHandlerr(jjXThttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandlerX-trX"urllib.request.HTTPRedirectHandlerr(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandlerX-trXio.BufferedIOBaser(jjX:http://docs.python.org/3/library/io.html#io.BufferedIOBaseX-trXctypes.c_shortr(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.c_shortX-trXpathlib.PurePathr(jjX>http://docs.python.org/3/library/pathlib.html#pathlib.PurePathX-trX csv.excel_tabr(jjX7http://docs.python.org/3/library/csv.html#csv.excel_tabX-trX asyncio.Lockr(jjX?http://docs.python.org/3/library/asyncio-sync.html#asyncio.LockX-trXcollections.abc.ValuesViewr(jjXPhttp://docs.python.org/3/library/collections.abc.html#collections.abc.ValuesViewX-trX!logging.handlers.BufferingHandlerr(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandlerX-trX io.TextIOBaser(jjX6http://docs.python.org/3/library/io.html#io.TextIOBaseX-trXlzma.LZMADecompressorr(jjX@http://docs.python.org/3/library/lzma.html#lzma.LZMADecompressorX-truXc:varr}r(XPy_NotImplementedr(jjX>http://docs.python.org/3/c-api/object.html#c.Py_NotImplementedX-trXPy_single_inputr(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.Py_single_inputX-trX PyDict_Typer(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_TypeX-trX PyTrace_LINEr(jjX7http://docs.python.org/3/c-api/init.html#c.PyTrace_LINEX-trX PyCell_Typer(jjX6http://docs.python.org/3/c-api/cell.html#c.PyCell_TypeX-trX PyModule_Typer(jjX:http://docs.python.org/3/c-api/module.html#c.PyModule_TypeX-trX Py_eval_inputr(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.Py_eval_inputX-trXPyFunction_Typer(jjX>http://docs.python.org/3/c-api/function.html#c.PyFunction_TypeX-trXPyStructSequence_UnnamedFieldr(jjXIhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_UnnamedFieldX-trX PyFloat_Typer(jjX8http://docs.python.org/3/c-api/float.html#c.PyFloat_TypeX-trXPySeqIter_Typer(jjX=http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_TypeX-trX PyTuple_Typer(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_TypeX-trXPyTrace_C_EXCEPTIONr(jjX>http://docs.python.org/3/c-api/init.html#c.PyTrace_C_EXCEPTIONX-trXPyComplex_Typer(jjX<http://docs.python.org/3/c-api/complex.html#c.PyComplex_TypeX-trXPyOS_InputHookr(jjX=http://docs.python.org/3/c-api/veryhigh.html#c.PyOS_InputHookX-trX PyList_Typer(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_TypeX-trX Py_file_inputr(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.Py_file_inputX-trXPyImport_FrozenModulesr(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_FrozenModulesX-trXPyByteArray_Typer(jjX@http://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_TypeX-trX PyTrace_CALLr(jjX7http://docs.python.org/3/c-api/init.html#c.PyTrace_CALLX-trXCO_FUTURE_DIVISIONr(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.CO_FUTURE_DIVISIONX-trXPyFrozenSet_Typer(jjX:http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_TypeX-trX PyType_Typer(jjX6http://docs.python.org/3/c-api/type.html#c.PyType_TypeX-trX PyMethod_Typer(jjX:http://docs.python.org/3/c-api/method.html#c.PyMethod_TypeX-trX_Py_NoneStructr(jjX?http://docs.python.org/3/c-api/allocation.html#c._Py_NoneStructX-trXPyTrace_RETURNr(jjX9http://docs.python.org/3/c-api/init.html#c.PyTrace_RETURNX-trXPyUnicode_Typer(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TypeX-trXPyInstanceMethod_Typer(jjXBhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_TypeX-trXPyOS_ReadlineFunctionPointerr(jjXKhttp://docs.python.org/3/c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointerX-trX PyCode_Typer(jjX6http://docs.python.org/3/c-api/code.html#c.PyCode_TypeX-trX PyLong_Typer(jjX6http://docs.python.org/3/c-api/long.html#c.PyLong_TypeX-trXPyTrace_C_CALLr(jjX9http://docs.python.org/3/c-api/init.html#c.PyTrace_C_CALLX-trXPyTrace_EXCEPTIONr(jjX<http://docs.python.org/3/c-api/init.html#c.PyTrace_EXCEPTIONX-trXPy_Noner(jjX2http://docs.python.org/3/c-api/none.html#c.Py_NoneX-trXPyTrace_C_RETURNr(jjX;http://docs.python.org/3/c-api/init.html#c.PyTrace_C_RETURNX-trXPyCallIter_Typer(jjX>http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_TypeX-trX PyGen_Typer(jjX4http://docs.python.org/3/c-api/gen.html#c.PyGen_TypeX-trX PySlice_Typer(jjX8http://docs.python.org/3/c-api/slice.html#c.PySlice_TypeX-trX PySet_Typer(jjX4http://docs.python.org/3/c-api/set.html#c.PySet_TypeX-trXPy_Falser(jjX3http://docs.python.org/3/c-api/bool.html#c.Py_FalseX-trXPy_Truer(jjX2http://docs.python.org/3/c-api/bool.html#c.Py_TrueX-trX PyBytes_Typer(jjX8http://docs.python.org/3/c-api/bytes.html#c.PyBytes_TypeX-trXPyProperty_Typer(jjX@http://docs.python.org/3/c-api/descriptor.html#c.PyProperty_TypeX-truX py:moduler}r(Xfilecmpr(jjX<http://docs.python.org/3/library/filecmp.html#module-filecmpX-trXdistutils.debugr(jjXEhttp://docs.python.org/3/distutils/apiref.html#module-distutils.debugX-trXdbmr(jjX4http://docs.python.org/3/library/dbm.html#module-dbmX-trXcurses.textpadr(jjXBhttp://docs.python.org/3/library/curses.html#module-curses.textpadX-trXrandomr(jjX:http://docs.python.org/3/library/random.html#module-randomX-trXttyr(jjX4http://docs.python.org/3/library/tty.html#module-ttyX-trX subprocessr(jjXBhttp://docs.python.org/3/library/subprocess.html#module-subprocessX-trXcoder(jjX6http://docs.python.org/3/library/code.html#module-codeX-tr Xgcr (jjX2http://docs.python.org/3/library/gc.html#module-gcX-tr Xptyr (jjX4http://docs.python.org/3/library/pty.html#module-ptyX-tr Xdistutils.sysconfigr(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.sysconfigX-trXtypesr(jjX8http://docs.python.org/3/library/types.html#module-typesX-trX _dummy_threadr(jjXHhttp://docs.python.org/3/library/_dummy_thread.html#module-_dummy_threadX-trX email.policyr(jjXFhttp://docs.python.org/3/library/email.policy.html#module-email.policyX-trXdistutils.bcppcompilerr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.bcppcompilerX-trX importlibr(jjX@http://docs.python.org/3/library/importlib.html#module-importlibX-trX curses.panelr(jjXFhttp://docs.python.org/3/library/curses.panel.html#module-curses.panelX-trXpprintr(jjX:http://docs.python.org/3/library/pprint.html#module-pprintX-trX tracemallocr(jjXDhttp://docs.python.org/3/library/tracemalloc.html#module-tracemallocX-trXdbm.gnur (jjX8http://docs.python.org/3/library/dbm.html#module-dbm.gnuX-tr!Xxml.etree.ElementTreer"(jjXXhttp://docs.python.org/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTreeX-tr#Xsmtplibr$(jjX<http://docs.python.org/3/library/smtplib.html#module-smtplibX-tr%X functoolsr&(jjX@http://docs.python.org/3/library/functools.html#module-functoolsX-tr'Xwinregr((jjX:http://docs.python.org/3/library/winreg.html#module-winregX-tr)X urllib.parser*(jjXFhttp://docs.python.org/3/library/urllib.parse.html#module-urllib.parseX-tr+Xstringr,(jjX:http://docs.python.org/3/library/string.html#module-stringX-tr-Xnntplibr.(jjX<http://docs.python.org/3/library/nntplib.html#module-nntplibX-tr/Xzipfiler0(jjX<http://docs.python.org/3/library/zipfile.html#module-zipfileX-tr1Xwaver2(jjX6http://docs.python.org/3/library/wave.html#module-waveX-tr3X distutils.cmdr4(jjXChttp://docs.python.org/3/distutils/apiref.html#module-distutils.cmdX-tr5Xsslr6(jjX4http://docs.python.org/3/library/ssl.html#module-sslX-tr7Xcollections.abcr8(jjXLhttp://docs.python.org/3/library/collections.abc.html#module-collections.abcX-tr9Xdatetimer:(jjX>http://docs.python.org/3/library/datetime.html#module-datetimeX-tr;X unittest.mockr<(jjXHhttp://docs.python.org/3/library/unittest.mock.html#module-unittest.mockX-tr=X email.errorsr>(jjXFhttp://docs.python.org/3/library/email.errors.html#module-email.errorsX-tr?Xresourcer@(jjX>http://docs.python.org/3/library/resource.html#module-resourceX-trAXbisectrB(jjX:http://docs.python.org/3/library/bisect.html#module-bisectX-trCXcmdrD(jjX4http://docs.python.org/3/library/cmd.html#module-cmdX-trEXbinhexrF(jjX:http://docs.python.org/3/library/binhex.html#module-binhexX-trGXpydocrH(jjX8http://docs.python.org/3/library/pydoc.html#module-pydocX-trIX html.parserrJ(jjXDhttp://docs.python.org/3/library/html.parser.html#module-html.parserX-trKXrunpyrL(jjX8http://docs.python.org/3/library/runpy.html#module-runpyX-trMXmsilibrN(jjX:http://docs.python.org/3/library/msilib.html#module-msilibX-trOXshlexrP(jjX8http://docs.python.org/3/library/shlex.html#module-shlexX-trQXmultiprocessing.poolrR(jjXQhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.poolX-trSXmultiprocessingrT(jjXLhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessingX-trUXdummy_threadingrV(jjXLhttp://docs.python.org/3/library/dummy_threading.html#module-dummy_threadingX-trWXdisrX(jjX4http://docs.python.org/3/library/dis.html#module-disX-trYXxml.dom.minidomrZ(jjXLhttp://docs.python.org/3/library/xml.dom.minidom.html#module-xml.dom.minidomX-tr[Xasyncorer\(jjX>http://docs.python.org/3/library/asyncore.html#module-asyncoreX-tr]X compileallr^(jjXBhttp://docs.python.org/3/library/compileall.html#module-compileallX-tr_Xftplibr`(jjX:http://docs.python.org/3/library/ftplib.html#module-ftplibX-traXlocalerb(jjX:http://docs.python.org/3/library/locale.html#module-localeX-trcXatexitrd(jjX:http://docs.python.org/3/library/atexit.html#module-atexitX-treXxml.sax.saxutilsrf(jjXKhttp://docs.python.org/3/library/xml.sax.utils.html#module-xml.sax.saxutilsX-trgXcalendarrh(jjX>http://docs.python.org/3/library/calendar.html#module-calendarX-triXmailcaprj(jjX<http://docs.python.org/3/library/mailcap.html#module-mailcapX-trkXtimeitrl(jjX:http://docs.python.org/3/library/timeit.html#module-timeitX-trmXabcrn(jjX4http://docs.python.org/3/library/abc.html#module-abcX-troX_threadrp(jjX<http://docs.python.org/3/library/_thread.html#module-_threadX-trqXplistlibrr(jjX>http://docs.python.org/3/library/plistlib.html#module-plistlibX-trsXbdbrt(jjX4http://docs.python.org/3/library/bdb.html#module-bdbX-truXurllib.responserv(jjXKhttp://docs.python.org/3/library/urllib.request.html#module-urllib.responseX-trwX py_compilerx(jjXBhttp://docs.python.org/3/library/py_compile.html#module-py_compileX-tryXemail.contentmanagerrz(jjXVhttp://docs.python.org/3/library/email.contentmanager.html#module-email.contentmanagerX-tr{Xtarfiler|(jjX<http://docs.python.org/3/library/tarfile.html#module-tarfileX-tr}Xpathlibr~(jjX<http://docs.python.org/3/library/pathlib.html#module-pathlibX-trXurllibr(jjX:http://docs.python.org/3/library/urllib.html#module-urllibX-trXposixr(jjX8http://docs.python.org/3/library/posix.html#module-posixX-trXdistutils.command.buildr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.buildX-trXemailr(jjX8http://docs.python.org/3/library/email.html#module-emailX-trXfcntlr(jjX8http://docs.python.org/3/library/fcntl.html#module-fcntlX-trXxmlr(jjX4http://docs.python.org/3/library/xml.html#module-xmlX-trXinspectr(jjX<http://docs.python.org/3/library/inspect.html#module-inspectX-trXoptparser(jjX>http://docs.python.org/3/library/optparse.html#module-optparseX-trXmailboxr(jjX<http://docs.python.org/3/library/mailbox.html#module-mailboxX-trXctypesr(jjX:http://docs.python.org/3/library/ctypes.html#module-ctypesX-trXcodecsr(jjX:http://docs.python.org/3/library/codecs.html#module-codecsX-trXdistutils.ccompilerr(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.ccompilerX-trXstructr(jjX:http://docs.python.org/3/library/struct.html#module-structX-trXtkinterr(jjX<http://docs.python.org/3/library/tkinter.html#module-tkinterX-trX email.headerr(jjXFhttp://docs.python.org/3/library/email.header.html#module-email.headerX-trXpipesr(jjX8http://docs.python.org/3/library/pipes.html#module-pipesX-trXwsgirefr(jjX<http://docs.python.org/3/library/wsgiref.html#module-wsgirefX-trXqueuer(jjX8http://docs.python.org/3/library/queue.html#module-queueX-trX itertoolsr(jjX@http://docs.python.org/3/library/itertools.html#module-itertoolsX-trXdistutils.spawnr(jjXEhttp://docs.python.org/3/distutils/apiref.html#module-distutils.spawnX-trXdoctestr(jjX<http://docs.python.org/3/library/doctest.html#module-doctestX-trXpstatsr(jjX;http://docs.python.org/3/library/profile.html#module-pstatsX-trXpdbr(jjX4http://docs.python.org/3/library/pdb.html#module-pdbX-trXbase64r(jjX:http://docs.python.org/3/library/base64.html#module-base64X-trXdistutils.command.bdist_msir(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_msiX-trXunittestr(jjX>http://docs.python.org/3/library/unittest.html#module-unittestX-trX http.cookiesr(jjXFhttp://docs.python.org/3/library/http.cookies.html#module-http.cookiesX-trX test.supportr(jjX>http://docs.python.org/3/library/test.html#module-test.supportX-trXtkinter.scrolledtextr(jjXVhttp://docs.python.org/3/library/tkinter.scrolledtext.html#module-tkinter.scrolledtextX-trX email.charsetr(jjXHhttp://docs.python.org/3/library/email.charset.html#module-email.charsetX-trXselectr(jjX:http://docs.python.org/3/library/select.html#module-selectX-trXpkgutilr(jjX<http://docs.python.org/3/library/pkgutil.html#module-pkgutilX-trXplatformr(jjX>http://docs.python.org/3/library/platform.html#module-platformX-trXbinasciir(jjX>http://docs.python.org/3/library/binascii.html#module-binasciiX-trXjsonr(jjX6http://docs.python.org/3/library/json.html#module-jsonX-trXtokenizer(jjX>http://docs.python.org/3/library/tokenize.html#module-tokenizeX-trX fractionsr(jjX@http://docs.python.org/3/library/fractions.html#module-fractionsX-trXcProfiler(jjX=http://docs.python.org/3/library/profile.html#module-cProfileX-trX email.utilsr(jjXChttp://docs.python.org/3/library/email.util.html#module-email.utilsX-trX webbrowserr(jjXBhttp://docs.python.org/3/library/webbrowser.html#module-webbrowserX-trXxml.parsers.expat.errorsr(jjXMhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expat.errorsX-trXemail.iteratorsr(jjXLhttp://docs.python.org/3/library/email.iterators.html#module-email.iteratorsX-trX tkinter.ttkr(jjXDhttp://docs.python.org/3/library/tkinter.ttk.html#module-tkinter.ttkX-trX pickletoolsr(jjXDhttp://docs.python.org/3/library/pickletools.html#module-pickletoolsX-trX unicodedatar(jjXDhttp://docs.python.org/3/library/unicodedata.html#module-unicodedataX-trX wsgiref.utilr(jjXAhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.utilX-trXzlibr(jjX6http://docs.python.org/3/library/zlib.html#module-zlibX-trX modulefinderr(jjXFhttp://docs.python.org/3/library/modulefinder.html#module-modulefinderX-trX faulthandlerr(jjXFhttp://docs.python.org/3/library/faulthandler.html#module-faulthandlerX-trXshelver(jjX:http://docs.python.org/3/library/shelve.html#module-shelveX-trXfnmatchr(jjX<http://docs.python.org/3/library/fnmatch.html#module-fnmatchX-trXwsgiref.headersr(jjXDhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.headersX-trXpickler(jjX:http://docs.python.org/3/library/pickle.html#module-pickleX-trX socketserverr(jjXFhttp://docs.python.org/3/library/socketserver.html#module-socketserverX-trXdistutils.command.build_pyr(jjXPhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_pyX-trXsiter(jjX6http://docs.python.org/3/library/site.html#module-siteX-trXnumbersr(jjX<http://docs.python.org/3/library/numbers.html#module-numbersX-trXior(jjX2http://docs.python.org/3/library/io.html#module-ioX-trXdistutils.command.build_extr(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_extX-trXsndhdrr(jjX:http://docs.python.org/3/library/sndhdr.html#module-sndhdrX-trX email.messager(jjXHhttp://docs.python.org/3/library/email.message.html#module-email.messageX-trXdistutils.command.sdistr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.sdistX-trXweakrefr(jjX<http://docs.python.org/3/library/weakref.html#module-weakrefX-trXshutilr(jjX:http://docs.python.org/3/library/shutil.html#module-shutilX-trXwsgiref.validater(jjXEhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.validateX-trXdbm.dumbr(jjX9http://docs.python.org/3/library/dbm.html#module-dbm.dumbX-trXpyclbrr(jjX:http://docs.python.org/3/library/pyclbr.html#module-pyclbrX-trXsqlite3r(jjX<http://docs.python.org/3/library/sqlite3.html#module-sqlite3X-trX ossaudiodevr(jjXDhttp://docs.python.org/3/library/ossaudiodev.html#module-ossaudiodevX-tr Xconcurrent.futuresr (jjXRhttp://docs.python.org/3/library/concurrent.futures.html#module-concurrent.futuresX-tr Xdbm.ndbmr (jjX9http://docs.python.org/3/library/dbm.html#module-dbm.ndbmX-tr Xprofiler(jjX<http://docs.python.org/3/library/profile.html#module-profileX-trXtabnannyr(jjX>http://docs.python.org/3/library/tabnanny.html#module-tabnannyX-trXschedr(jjX8http://docs.python.org/3/library/sched.html#module-schedX-trXurllib.requestr(jjXJhttp://docs.python.org/3/library/urllib.request.html#module-urllib.requestX-trXdistutils.archive_utilr(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.archive_utilX-trXsysr(jjX4http://docs.python.org/3/library/sys.html#module-sysX-trXcodeopr(jjX:http://docs.python.org/3/library/codeop.html#module-codeopX-trXnisr(jjX4http://docs.python.org/3/library/nis.html#module-nisX-trX email.parserr(jjXFhttp://docs.python.org/3/library/email.parser.html#module-email.parserX-trX ipaddressr (jjX@http://docs.python.org/3/library/ipaddress.html#module-ipaddressX-tr!Xos.pathr"(jjX<http://docs.python.org/3/library/os.path.html#module-os.pathX-tr#Xargparser$(jjX>http://docs.python.org/3/library/argparse.html#module-argparseX-tr%X xmlrpc.serverr&(jjXHhttp://docs.python.org/3/library/xmlrpc.server.html#module-xmlrpc.serverX-tr'Xgrpr((jjX4http://docs.python.org/3/library/grp.html#module-grpX-tr)Xdistutils.corer*(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.coreX-tr+Xdifflibr,(jjX<http://docs.python.org/3/library/difflib.html#module-difflibX-tr-Xdistutils.errorsr.(jjXFhttp://docs.python.org/3/distutils/apiref.html#module-distutils.errorsX-tr/X selectorsr0(jjX@http://docs.python.org/3/library/selectors.html#module-selectorsX-tr1X urllib.errorr2(jjXFhttp://docs.python.org/3/library/urllib.error.html#module-urllib.errorX-tr3Xencodings.idnar4(jjXBhttp://docs.python.org/3/library/codecs.html#module-encodings.idnaX-tr5Xdistutils.msvccompilerr6(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.msvccompilerX-tr7Xgzipr8(jjX6http://docs.python.org/3/library/gzip.html#module-gzipX-tr9X rlcompleterr:(jjXDhttp://docs.python.org/3/library/rlcompleter.html#module-rlcompleterX-tr;Xheapqr<(jjX8http://docs.python.org/3/library/heapq.html#module-heapqX-tr=X distutilsr>(jjX@http://docs.python.org/3/library/distutils.html#module-distutilsX-tr?X html.entitiesr@(jjXHhttp://docs.python.org/3/library/html.entities.html#module-html.entitiesX-trAXaudiooprB(jjX<http://docs.python.org/3/library/audioop.html#module-audioopX-trCXdistutils.command.configrD(jjXNhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.configX-trEXaifcrF(jjX6http://docs.python.org/3/library/aifc.html#module-aifcX-trGX sysconfigrH(jjX@http://docs.python.org/3/library/sysconfig.html#module-sysconfigX-trIXvenvrJ(jjX6http://docs.python.org/3/library/venv.html#module-venvX-trKXdistutils.fancy_getoptrL(jjXLhttp://docs.python.org/3/distutils/apiref.html#module-distutils.fancy_getoptX-trMXwsgiref.simple_serverrN(jjXJhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.simple_serverX-trOX http.clientrP(jjXDhttp://docs.python.org/3/library/http.client.html#module-http.clientX-trQXxml.parsers.expat.modelrR(jjXLhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expat.modelX-trSX email.mimerT(jjXBhttp://docs.python.org/3/library/email.mime.html#module-email.mimeX-trUXmsvcrtrV(jjX:http://docs.python.org/3/library/msvcrt.html#module-msvcrtX-trWX distutils.command.bdist_packagerrX(jjXVhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_packagerX-trYXimportlib.utilrZ(jjXEhttp://docs.python.org/3/library/importlib.html#module-importlib.utilX-tr[Xdistutils.command.registerr\(jjXPhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.registerX-tr]Xdistutils.dep_utilr^(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.dep_utilX-tr_Xbuiltinsr`(jjX>http://docs.python.org/3/library/builtins.html#module-builtinsX-traXuuidrb(jjX6http://docs.python.org/3/library/uuid.html#module-uuidX-trcXtempfilerd(jjX>http://docs.python.org/3/library/tempfile.html#module-tempfileX-treXmmaprf(jjX6http://docs.python.org/3/library/mmap.html#module-mmapX-trgXimprh(jjX4http://docs.python.org/3/library/imp.html#module-impX-triXlogging.configrj(jjXJhttp://docs.python.org/3/library/logging.config.html#module-logging.configX-trkX collectionsrl(jjXDhttp://docs.python.org/3/library/collections.html#module-collectionsX-trmXdistutils.filelistrn(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.filelistX-troXdistutils.cygwinccompilerrp(jjXOhttp://docs.python.org/3/distutils/apiref.html#module-distutils.cygwinccompilerX-trqX zipimportrr(jjX@http://docs.python.org/3/library/zipimport.html#module-zipimportX-trsX!distutils.command.install_scriptsrt(jjXWhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_scriptsX-truXmultiprocessing.dummyrv(jjXRhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.dummyX-trwXtextwraprx(jjX>http://docs.python.org/3/library/textwrap.html#module-textwrapX-tryX importlib.abcrz(jjXDhttp://docs.python.org/3/library/importlib.html#module-importlib.abcX-tr{X http.serverr|(jjXDhttp://docs.python.org/3/library/http.server.html#module-http.serverX-tr}Xmultiprocessing.sharedctypesr~(jjXYhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.sharedctypesX-trXcsvr(jjX4http://docs.python.org/3/library/csv.html#module-csvX-trXsignalr(jjX:http://docs.python.org/3/library/signal.html#module-signalX-trXsunaur(jjX8http://docs.python.org/3/library/sunau.html#module-sunauX-trXdistutils.command.installr(jjXOhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.installX-trXtokenr(jjX8http://docs.python.org/3/library/token.html#module-tokenX-trXemail.encodersr(jjXJhttp://docs.python.org/3/library/email.encoders.html#module-email.encodersX-trXdistutils.command.build_clibr(jjXRhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_clibX-trXxml.sax.xmlreaderr(jjXMhttp://docs.python.org/3/library/xml.sax.reader.html#module-xml.sax.xmlreaderX-trXquoprir(jjX:http://docs.python.org/3/library/quopri.html#module-quopriX-trXdecimalr(jjX<http://docs.python.org/3/library/decimal.html#module-decimalX-trX curses.asciir(jjXFhttp://docs.python.org/3/library/curses.ascii.html#module-curses.asciiX-trXdistutils.versionr(jjXGhttp://docs.python.org/3/distutils/apiref.html#module-distutils.versionX-trXchunkr(jjX8http://docs.python.org/3/library/chunk.html#module-chunkX-trXmacpathr(jjX<http://docs.python.org/3/library/macpath.html#module-macpathX-trXstatr(jjX6http://docs.python.org/3/library/stat.html#module-statX-trXxml.parsers.expatr(jjXFhttp://docs.python.org/3/library/pyexpat.html#module-xml.parsers.expatX-trXdistutils.distr(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.distX-trXlzmar(jjX6http://docs.python.org/3/library/lzma.html#module-lzmaX-trXlogging.handlersr(jjXNhttp://docs.python.org/3/library/logging.handlers.html#module-logging.handlersX-trXasynchatr(jjX>http://docs.python.org/3/library/asynchat.html#module-asynchatX-trXimaplibr(jjX<http://docs.python.org/3/library/imaplib.html#module-imaplibX-trXdistutils.command.bdist_wininstr(jjXUhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_wininstX-trXrer(jjX2http://docs.python.org/3/library/re.html#module-reX-trXencodings.utf_8_sigr(jjXGhttp://docs.python.org/3/library/codecs.html#module-encodings.utf_8_sigX-trX!distutils.command.install_headersr(jjXWhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_headersX-trXmultiprocessing.managersr(jjXUhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.managersX-trXsymbolr(jjX:http://docs.python.org/3/library/symbol.html#module-symbolX-trXmathr(jjX6http://docs.python.org/3/library/math.html#module-mathX-trXcgir(jjX4http://docs.python.org/3/library/cgi.html#module-cgiX-trXastr(jjX4http://docs.python.org/3/library/ast.html#module-astX-trXenumr(jjX6http://docs.python.org/3/library/enum.html#module-enumX-trX turtledemor(jjX>http://docs.python.org/3/library/turtle.html#module-turtledemoX-trXemail.headerregistryr(jjXVhttp://docs.python.org/3/library/email.headerregistry.html#module-email.headerregistryX-trXloggingr(jjX<http://docs.python.org/3/library/logging.html#module-loggingX-trXsocketr(jjX:http://docs.python.org/3/library/socket.html#module-socketX-trXimghdrr(jjX:http://docs.python.org/3/library/imghdr.html#module-imghdrX-trX ensurepipr(jjX@http://docs.python.org/3/library/ensurepip.html#module-ensurepipX-trX tracebackr(jjX@http://docs.python.org/3/library/traceback.html#module-tracebackX-trXnetrcr(jjX8http://docs.python.org/3/library/netrc.html#module-netrcX-trX telnetlibr(jjX@http://docs.python.org/3/library/telnetlib.html#module-telnetlibX-trXerrnor(jjX8http://docs.python.org/3/library/errno.html#module-errnoX-trXsmtpdr(jjX8http://docs.python.org/3/library/smtpd.html#module-smtpdX-trXosr(jjX2http://docs.python.org/3/library/os.html#module-osX-trXmarshalr(jjX<http://docs.python.org/3/library/marshal.html#module-marshalX-trXdistutils.command.bdistr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdistX-trX __future__r(jjXBhttp://docs.python.org/3/library/__future__.html#module-__future__X-trXdistutils.command.install_libr(jjXShttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_libX-trXcursesr(jjX:http://docs.python.org/3/library/curses.html#module-cursesX-trXdistutils.dir_utilr(jjXHhttp://docs.python.org/3/distutils/apiref.html#module-distutils.dir_utilX-trXdistutils.commandr(jjXGhttp://docs.python.org/3/distutils/apiref.html#module-distutils.commandX-trXfpectlr(jjX:http://docs.python.org/3/library/fpectl.html#module-fpectlX-trX fileinputr(jjX@http://docs.python.org/3/library/fileinput.html#module-fileinputX-trXoperatorr(jjX>http://docs.python.org/3/library/operator.html#module-operatorX-trXdistutils.utilr(jjXDhttp://docs.python.org/3/distutils/apiref.html#module-distutils.utilX-trXarrayr(jjX8http://docs.python.org/3/library/array.html#module-arrayX-trXxml.dom.pulldomr(jjXLhttp://docs.python.org/3/library/xml.dom.pulldom.html#module-xml.dom.pulldomX-trXdistutils.command.install_datar(jjXThttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_dataX-trX statisticsr(jjXBhttp://docs.python.org/3/library/statistics.html#module-statisticsX-trXdistutils.command.checkr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.checkX-trXurllib.robotparserr(jjXRhttp://docs.python.org/3/library/urllib.robotparser.html#module-urllib.robotparserX-trXmultiprocessing.connectionr(jjXWhttp://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.connectionX-trXxml.sax.handlerr(jjXLhttp://docs.python.org/3/library/xml.sax.handler.html#module-xml.sax.handlerX-trXimportlib.machineryr(jjXJhttp://docs.python.org/3/library/importlib.html#module-importlib.machineryX-trXdistutils.command.build_scriptsr(jjXUhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_scriptsX-trXxdrlibr(jjX:http://docs.python.org/3/library/xdrlib.html#module-xdrlibX-trXpwdr(jjX4http://docs.python.org/3/library/pwd.html#module-pwdX-trXturtler(jjX:http://docs.python.org/3/library/turtle.html#module-turtleX-trXcopyr(jjX6http://docs.python.org/3/library/copy.html#module-copyX-trXhashlibr(jjX<http://docs.python.org/3/library/hashlib.html#module-hashlibX-tr X distutils.logr (jjXChttp://docs.python.org/3/distutils/apiref.html#module-distutils.logX-tr Xkeywordr (jjX<http://docs.python.org/3/library/keyword.html#module-keywordX-tr Xsyslogr(jjX:http://docs.python.org/3/library/syslog.html#module-syslogX-trXuur(jjX2http://docs.python.org/3/library/uu.html#module-uuX-trXdistutils.command.bdist_rpmr(jjXQhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_rpmX-trX tkinter.tixr(jjXDhttp://docs.python.org/3/library/tkinter.tix.html#module-tkinter.tixX-trX stringprepr(jjXBhttp://docs.python.org/3/library/stringprep.html#module-stringprepX-trXdistutils.extensionr(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.extensionX-trXcolorsysr(jjX>http://docs.python.org/3/library/colorsys.html#module-colorsysX-trXwinsoundr(jjX>http://docs.python.org/3/library/winsound.html#module-winsoundX-trXdistutils.command.cleanr(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.cleanX-trXhtmlr (jjX6http://docs.python.org/3/library/html.html#module-htmlX-tr!Xreprlibr"(jjX<http://docs.python.org/3/library/reprlib.html#module-reprlibX-tr#Xxml.saxr$(jjX<http://docs.python.org/3/library/xml.sax.html#module-xml.saxX-tr%Xparserr&(jjX:http://docs.python.org/3/library/parser.html#module-parserX-tr'Xgetpassr((jjX<http://docs.python.org/3/library/getpass.html#module-getpassX-tr)X contextlibr*(jjXBhttp://docs.python.org/3/library/contextlib.html#module-contextlibX-tr+X__main__r,(jjX>http://docs.python.org/3/library/__main__.html#module-__main__X-tr-Xcopyregr.(jjX<http://docs.python.org/3/library/copyreg.html#module-copyregX-tr/Xsymtabler0(jjX>http://docs.python.org/3/library/symtable.html#module-symtableX-tr1X xmlrpc.clientr2(jjXHhttp://docs.python.org/3/library/xmlrpc.client.html#module-xmlrpc.clientX-tr3X configparserr4(jjXFhttp://docs.python.org/3/library/configparser.html#module-configparserX-tr5Xbz2r6(jjX4http://docs.python.org/3/library/bz2.html#module-bz2X-tr7Xlib2to3r8(jjX9http://docs.python.org/3/library/2to3.html#module-lib2to3X-tr9X threadingr:(jjX@http://docs.python.org/3/library/threading.html#module-threadingX-tr;Xcryptr<(jjX8http://docs.python.org/3/library/crypt.html#module-cryptX-tr=Xwsgiref.handlersr>(jjXEhttp://docs.python.org/3/library/wsgiref.html#module-wsgiref.handlersX-tr?Xdistutils.unixccompilerr@(jjXMhttp://docs.python.org/3/distutils/apiref.html#module-distutils.unixccompilerX-trAXgettextrB(jjX<http://docs.python.org/3/library/gettext.html#module-gettextX-trCXtestrD(jjX6http://docs.python.org/3/library/test.html#module-testX-trEXgetoptrF(jjX:http://docs.python.org/3/library/getopt.html#module-getoptX-trGXemail.generatorrH(jjXLhttp://docs.python.org/3/library/email.generator.html#module-email.generatorX-trIX mimetypesrJ(jjX@http://docs.python.org/3/library/mimetypes.html#module-mimetypesX-trKXspwdrL(jjX6http://docs.python.org/3/library/spwd.html#module-spwdX-trMXdistutils.command.bdist_dumbrN(jjXRhttp://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_dumbX-trOXtracerP(jjX8http://docs.python.org/3/library/trace.html#module-traceX-trQXwarningsrR(jjX>http://docs.python.org/3/library/warnings.html#module-warningsX-trSXhttp.cookiejarrT(jjXJhttp://docs.python.org/3/library/http.cookiejar.html#module-http.cookiejarX-trUXglobrV(jjX6http://docs.python.org/3/library/glob.html#module-globX-trWXcgitbrX(jjX8http://docs.python.org/3/library/cgitb.html#module-cgitbX-trYXtermiosrZ(jjX<http://docs.python.org/3/library/termios.html#module-termiosX-tr[Xdistutils.file_utilr\(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.file_utilX-tr]Xreadliner^(jjX>http://docs.python.org/3/library/readline.html#module-readlineX-tr_Xxml.domr`(jjX<http://docs.python.org/3/library/xml.dom.html#module-xml.domX-traX formatterrb(jjX@http://docs.python.org/3/library/formatter.html#module-formatterX-trcXencodings.mbcsrd(jjXBhttp://docs.python.org/3/library/codecs.html#module-encodings.mbcsX-treX linecacherf(jjX@http://docs.python.org/3/library/linecache.html#module-linecacheX-trgXcmathrh(jjX8http://docs.python.org/3/library/cmath.html#module-cmathX-triXtimerj(jjX6http://docs.python.org/3/library/time.html#module-timeX-trkXdistutils.text_filerl(jjXIhttp://docs.python.org/3/distutils/apiref.html#module-distutils.text_fileX-trmXpoplibrn(jjX:http://docs.python.org/3/library/poplib.html#module-poplibX-troXhmacrp(jjX6http://docs.python.org/3/library/hmac.html#module-hmacX-trqXasynciorr(jjX<http://docs.python.org/3/library/asyncio.html#module-asyncioX-trsuX std:envvarrt}ru(XPYTHONIOENCODINGrv(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONIOENCODINGX-trwX PYTHONDEBUGrx(jjX>http://docs.python.org/3/using/cmdline.html#envvar-PYTHONDEBUGX-tryX PYTHONPATHrz(jjX=http://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATHX-tr{X PYTHONCASEOKr|(jjX?http://docs.python.org/3/using/cmdline.html#envvar-PYTHONCASEOKX-tr}XPYTHONDONTWRITEBYTECODEr~(jjXJhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONDONTWRITEBYTECODEX-trX PYTHONHOMEr(jjX=http://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOMEX-trXPYTHONFAULTHANDLERr(jjXEhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONFAULTHANDLERX-trXPYTHONEXECUTABLEr(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONEXECUTABLEX-trXPYTHONUNBUFFEREDr(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFEREDX-trXPYTHONDUMPREFSr(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONDUMPREFSX-trXPYTHONASYNCIODEBUGr(jjXEhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONASYNCIODEBUGX-trXPYTHONTHREADDEBUGr(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONTHREADDEBUGX-trX PYTHONINSPECTr(jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONINSPECTX-trX PYTHONSTARTUPr(jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUPX-trX PYTHONVERBOSEr(jjX@http://docs.python.org/3/using/cmdline.html#envvar-PYTHONVERBOSEX-trXPYTHONMALLOCSTATSr(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOCSTATSX-trXPYTHONHASHSEEDr(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEEDX-trXPYTHONTRACEMALLOCr(jjXDhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONTRACEMALLOCX-trXPYTHONNOUSERSITEr(jjXChttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONNOUSERSITEX-trXPYTHONWARNINGSr(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGSX-trXPYTHONOPTIMIZEr(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONOPTIMIZEX-trXPYTHONUSERBASEr(jjXAhttp://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASEX-truX std:opcoder}r(XLOAD_CLASSDEREFr(jjX@http://docs.python.org/3/library/dis.html#opcode-LOAD_CLASSDEREFX-trX LIST_APPENDr(jjX<http://docs.python.org/3/library/dis.html#opcode-LIST_APPENDX-trX INPLACE_XORr(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_XORX-trX CALL_FUNCTIONr(jjX>http://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTIONX-trXDUP_TOPr(jjX8http://docs.python.org/3/library/dis.html#opcode-DUP_TOPX-trX STORE_GLOBALr(jjX=http://docs.python.org/3/library/dis.html#opcode-STORE_GLOBALX-trXINPLACE_SUBTRACTr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_SUBTRACTX-trX STORE_NAMEr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_NAMEX-trX DELETE_SUBSCRr(jjX>http://docs.python.org/3/library/dis.html#opcode-DELETE_SUBSCRX-trX STORE_ATTRr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_ATTRX-trX YIELD_VALUEr(jjX<http://docs.python.org/3/library/dis.html#opcode-YIELD_VALUEX-trX END_FINALLYr(jjX<http://docs.python.org/3/library/dis.html#opcode-END_FINALLYX-trXINPLACE_FLOOR_DIVIDEr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_FLOOR_DIVIDEX-trX MAKE_FUNCTIONr(jjX>http://docs.python.org/3/library/dis.html#opcode-MAKE_FUNCTIONX-trXMAP_ADDr(jjX8http://docs.python.org/3/library/dis.html#opcode-MAP_ADDX-trX BINARY_XORr(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_XORX-trX BREAK_LOOPr(jjX;http://docs.python.org/3/library/dis.html#opcode-BREAK_LOOPX-trX STORE_SUBSCRr(jjX=http://docs.python.org/3/library/dis.html#opcode-STORE_SUBSCRX-trX UNPACK_EXr(jjX:http://docs.python.org/3/library/dis.html#opcode-UNPACK_EXX-trX RETURN_VALUEr(jjX=http://docs.python.org/3/library/dis.html#opcode-RETURN_VALUEX-trXINPLACE_MULTIPLYr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_MULTIPLYX-trX POP_BLOCKr(jjX:http://docs.python.org/3/library/dis.html#opcode-POP_BLOCKX-trX LOAD_ATTRr(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_ATTRX-trX SETUP_LOOPr(jjX;http://docs.python.org/3/library/dis.html#opcode-SETUP_LOOPX-trX BUILD_SETr(jjX:http://docs.python.org/3/library/dis.html#opcode-BUILD_SETX-trXPOP_TOPr(jjX8http://docs.python.org/3/library/dis.html#opcode-POP_TOPX-trXBINARY_TRUE_DIVIDEr(jjXChttp://docs.python.org/3/library/dis.html#opcode-BINARY_TRUE_DIVIDEX-trXROT_TWOr(jjX8http://docs.python.org/3/library/dis.html#opcode-ROT_TWOX-trX LOAD_CONSTr(jjX;http://docs.python.org/3/library/dis.html#opcode-LOAD_CONSTX-trX SETUP_FINALLYr(jjX>http://docs.python.org/3/library/dis.html#opcode-SETUP_FINALLYX-trX IMPORT_FROMr(jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_FROMX-trXINPLACE_TRUE_DIVIDEr(jjXDhttp://docs.python.org/3/library/dis.html#opcode-INPLACE_TRUE_DIVIDEX-trXUNARY_POSITIVEr(jjX?http://docs.python.org/3/library/dis.html#opcode-UNARY_POSITIVEX-trXCALL_FUNCTION_KWr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_KWX-trX INPLACE_ANDr(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_ANDX-trXCALL_FUNCTION_VAR_KWr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_VAR_KWX-trX DELETE_FASTr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_FASTX-trX EXTENDED_ARGr(jjX=http://docs.python.org/3/library/dis.html#opcode-EXTENDED_ARGX-trX SETUP_EXCEPTr(jjX=http://docs.python.org/3/library/dis.html#opcode-SETUP_EXCEPTX-trX INPLACE_POWERr(jjX>http://docs.python.org/3/library/dis.html#opcode-INPLACE_POWERX-trX IMPORT_NAMEr(jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_NAMEX-trXUNARY_NEGATIVEr(jjX?http://docs.python.org/3/library/dis.html#opcode-UNARY_NEGATIVEX-trX LOAD_GLOBALr(jjX<http://docs.python.org/3/library/dis.html#opcode-LOAD_GLOBALX-trX LOAD_NAMEr(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_NAMEX-trX YIELD_FROMr(jjX;http://docs.python.org/3/library/dis.html#opcode-YIELD_FROMX-trXFOR_ITERr(jjX9http://docs.python.org/3/library/dis.html#opcode-FOR_ITERX-trX DELETE_NAMEr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_NAMEX-trX BUILD_TUPLEr(jjX<http://docs.python.org/3/library/dis.html#opcode-BUILD_TUPLEX-trX BUILD_LISTr(jjX;http://docs.python.org/3/library/dis.html#opcode-BUILD_LISTX-trX DELETE_DEREFr(jjX=http://docs.python.org/3/library/dis.html#opcode-DELETE_DEREFX-trX HAVE_ARGUMENTr(jjX>http://docs.python.org/3/library/dis.html#opcode-HAVE_ARGUMENTX-tr X COMPARE_OPr (jjX;http://docs.python.org/3/library/dis.html#opcode-COMPARE_OPX-tr X BINARY_ORr (jjX:http://docs.python.org/3/library/dis.html#opcode-BINARY_ORX-tr XUNPACK_SEQUENCEr(jjX@http://docs.python.org/3/library/dis.html#opcode-UNPACK_SEQUENCEX-trX STORE_FASTr(jjX;http://docs.python.org/3/library/dis.html#opcode-STORE_FASTX-trX BINARY_ANDr(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_ANDX-trXCALL_FUNCTION_VARr(jjXBhttp://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_VARX-trX WITH_CLEANUPr(jjX=http://docs.python.org/3/library/dis.html#opcode-WITH_CLEANUPX-trX DELETE_ATTRr(jjX<http://docs.python.org/3/library/dis.html#opcode-DELETE_ATTRX-trXPOP_JUMP_IF_TRUEr(jjXAhttp://docs.python.org/3/library/dis.html#opcode-POP_JUMP_IF_TRUEX-trXJUMP_IF_FALSE_OR_POPr(jjXEhttp://docs.python.org/3/library/dis.html#opcode-JUMP_IF_FALSE_OR_POPX-trXSET_ADDr(jjX8http://docs.python.org/3/library/dis.html#opcode-SET_ADDX-trX CONTINUE_LOOPr (jjX>http://docs.python.org/3/library/dis.html#opcode-CONTINUE_LOOPX-tr!X LOAD_DEREFr"(jjX;http://docs.python.org/3/library/dis.html#opcode-LOAD_DEREFX-tr#X RAISE_VARARGSr$(jjX>http://docs.python.org/3/library/dis.html#opcode-RAISE_VARARGSX-tr%XPOP_JUMP_IF_FALSEr&(jjXBhttp://docs.python.org/3/library/dis.html#opcode-POP_JUMP_IF_FALSEX-tr'X DELETE_GLOBALr((jjX>http://docs.python.org/3/library/dis.html#opcode-DELETE_GLOBALX-tr)X BINARY_MODULOr*(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_MODULOX-tr+XGET_ITERr,(jjX9http://docs.python.org/3/library/dis.html#opcode-GET_ITERX-tr-X STORE_DEREFr.(jjX<http://docs.python.org/3/library/dis.html#opcode-STORE_DEREFX-tr/X BINARY_ADDr0(jjX;http://docs.python.org/3/library/dis.html#opcode-BINARY_ADDX-tr1X LOAD_FASTr2(jjX:http://docs.python.org/3/library/dis.html#opcode-LOAD_FASTX-tr3X UNARY_NOTr4(jjX:http://docs.python.org/3/library/dis.html#opcode-UNARY_NOTX-tr5X BINARY_LSHIFTr6(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_LSHIFTX-tr7XJUMP_IF_TRUE_OR_POPr8(jjXDhttp://docs.python.org/3/library/dis.html#opcode-JUMP_IF_TRUE_OR_POPX-tr9X LOAD_CLOSUREr:(jjX=http://docs.python.org/3/library/dis.html#opcode-LOAD_CLOSUREX-tr;X DUP_TOP_TWOr<(jjX<http://docs.python.org/3/library/dis.html#opcode-DUP_TOP_TWOX-tr=X IMPORT_STARr>(jjX<http://docs.python.org/3/library/dis.html#opcode-IMPORT_STARX-tr?XBINARY_FLOOR_DIVIDEr@(jjXDhttp://docs.python.org/3/library/dis.html#opcode-BINARY_FLOOR_DIVIDEX-trAX INPLACE_ORrB(jjX;http://docs.python.org/3/library/dis.html#opcode-INPLACE_ORX-trCX BINARY_RSHIFTrD(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_RSHIFTX-trEXLOAD_BUILD_CLASSrF(jjXAhttp://docs.python.org/3/library/dis.html#opcode-LOAD_BUILD_CLASSX-trGXBINARY_SUBTRACTrH(jjX@http://docs.python.org/3/library/dis.html#opcode-BINARY_SUBTRACTX-trIX STORE_MAPrJ(jjX:http://docs.python.org/3/library/dis.html#opcode-STORE_MAPX-trKX INPLACE_ADDrL(jjX<http://docs.python.org/3/library/dis.html#opcode-INPLACE_ADDX-trMXINPLACE_LSHIFTrN(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_LSHIFTX-trOXINPLACE_MODULOrP(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_MODULOX-trQX BINARY_SUBSCRrR(jjX>http://docs.python.org/3/library/dis.html#opcode-BINARY_SUBSCRX-trSX BINARY_POWERrT(jjX=http://docs.python.org/3/library/dis.html#opcode-BINARY_POWERX-trUX POP_EXCEPTrV(jjX;http://docs.python.org/3/library/dis.html#opcode-POP_EXCEPTX-trWX BUILD_MAPrX(jjX:http://docs.python.org/3/library/dis.html#opcode-BUILD_MAPX-trYX ROT_THREErZ(jjX:http://docs.python.org/3/library/dis.html#opcode-ROT_THREEX-tr[X SETUP_WITHr\(jjX;http://docs.python.org/3/library/dis.html#opcode-SETUP_WITHX-tr]X UNARY_INVERTr^(jjX=http://docs.python.org/3/library/dis.html#opcode-UNARY_INVERTX-tr_X PRINT_EXPRr`(jjX;http://docs.python.org/3/library/dis.html#opcode-PRINT_EXPRX-traXINPLACE_RSHIFTrb(jjX?http://docs.python.org/3/library/dis.html#opcode-INPLACE_RSHIFTX-trcX MAKE_CLOSURErd(jjX=http://docs.python.org/3/library/dis.html#opcode-MAKE_CLOSUREX-treXBINARY_MULTIPLYrf(jjX@http://docs.python.org/3/library/dis.html#opcode-BINARY_MULTIPLYX-trgX BUILD_SLICErh(jjX<http://docs.python.org/3/library/dis.html#opcode-BUILD_SLICEX-triX JUMP_ABSOLUTErj(jjX>http://docs.python.org/3/library/dis.html#opcode-JUMP_ABSOLUTEX-trkXNOPrl(jjX4http://docs.python.org/3/library/dis.html#opcode-NOPX-trmX JUMP_FORWARDrn(jjX=http://docs.python.org/3/library/dis.html#opcode-JUMP_FORWARDX-trouX std:2to3fixerrp}rq(Xxrangerr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-xrangeX-trsX numliteralsrt(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-numliteralsX-truXreducerv(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-reduceX-trwX set_literalrx(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-set_literalX-tryXimports2rz(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-imports2X-tr{Xinternr|(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-internX-tr}Xhas_keyr~(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-has_keyX-trXlongr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-longX-trXunicoder(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-unicodeX-trX xreadlinesr(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-xreadlinesX-trXoperatorr(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-operatorX-trXapplyr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-applyX-trX isinstancer(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-isinstanceX-trXnonzeror(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-nonzeroX-trX basestringr(jjX?http://docs.python.org/3/library/2to3.html#2to3fixer-basestringX-trXraiser(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-raiseX-trXzipr(jjX8http://docs.python.org/3/library/2to3.html#2to3fixer-zipX-trXgetcwdur(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-getcwduX-trXexecfiler(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-execfileX-trXurllibr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-urllibX-trX funcattrsr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-funcattrsX-trXfuturer(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-futureX-trXdictr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-dictX-trXitertools_importsr(jjXFhttp://docs.python.org/3/library/2to3.html#2to3fixer-itertools_importsX-trXimportsr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-importsX-trXprintr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-printX-trXimportr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-importX-trXws_commar(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-ws_commaX-trX metaclassr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-metaclassX-trXexceptr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-exceptX-trXmapr(jjX8http://docs.python.org/3/library/2to3.html#2to3fixer-mapX-trXassertsr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-assertsX-trX standarderrorr(jjXBhttp://docs.python.org/3/library/2to3.html#2to3fixer-standarderrorX-trXexecr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-execX-trXbufferr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-bufferX-trX tuple_paramsr(jjXAhttp://docs.python.org/3/library/2to3.html#2to3fixer-tuple_paramsX-trXreprr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-reprX-trXcallabler(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-callableX-trXnextr(jjX9http://docs.python.org/3/library/2to3.html#2to3fixer-nextX-trXinputr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-inputX-trXthrowr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-throwX-trXtypesr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-typesX-trXrenamesr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-renamesX-trXner(jjX7http://docs.python.org/3/library/2to3.html#2to3fixer-neX-trXidiomsr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-idiomsX-trX raw_inputr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-raw_inputX-trXparenr(jjX:http://docs.python.org/3/library/2to3.html#2to3fixer-parenX-trXfilterr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-filterX-trXreloadr(jjX;http://docs.python.org/3/library/2to3.html#2to3fixer-reloadX-trX itertoolsr(jjX>http://docs.python.org/3/library/2to3.html#2to3fixer-itertoolsX-trXsys_excr(jjX<http://docs.python.org/3/library/2to3.html#2to3fixer-sys_excX-trX methodattrsr(jjX@http://docs.python.org/3/library/2to3.html#2to3fixer-methodattrsX-trXexitfuncr(jjX=http://docs.python.org/3/library/2to3.html#2to3fixer-exitfuncX-truXc:macror}r(XPyBUF_F_CONTIGUOUSr(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyBUF_F_CONTIGUOUSX-trXPy_RETURN_NOTIMPLEMENTEDr(jjXEhttp://docs.python.org/3/c-api/object.html#c.Py_RETURN_NOTIMPLEMENTEDX-trX PyObject_HEADr(jjX>http://docs.python.org/3/c-api/structures.html#c.PyObject_HEADX-trXPyVarObject_HEAD_INITr(jjXFhttp://docs.python.org/3/c-api/structures.html#c.PyVarObject_HEAD_INITX-trXPy_BLOCK_THREADSr(jjX;http://docs.python.org/3/c-api/init.html#c.Py_BLOCK_THREADSX-trXPyBUF_INDIRECTr(jjX;http://docs.python.org/3/c-api/buffer.html#c.PyBUF_INDIRECTX-trXPyUnicode_4BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_KINDX-trX PyBUF_FULL_ROr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULL_ROX-trXPyObject_HEAD_INITr(jjXChttp://docs.python.org/3/c-api/structures.html#c.PyObject_HEAD_INITX-trXPy_RETURN_NONEr(jjX9http://docs.python.org/3/c-api/none.html#c.Py_RETURN_NONEX-trXPyBUF_RECORDS_ROr(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDS_ROX-trXPy_UNICODE_JOIN_SURROGATESr(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATESX-trXPyBUF_WRITABLEr(jjX;http://docs.python.org/3/c-api/buffer.html#c.PyBUF_WRITABLEX-trX PyBUF_STRIDESr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDESX-trXPyBUF_C_CONTIGUOUSr(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyBUF_C_CONTIGUOUSX-trX PyBUF_FORMATr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FORMATX-trXPy_UNICODE_IS_HIGH_SURROGATEr(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_HIGH_SURROGATEX-trXPy_RETURN_FALSEr(jjX:http://docs.python.org/3/c-api/bool.html#c.Py_RETURN_FALSEX-trXPy_BEGIN_ALLOW_THREADSr(jjXAhttp://docs.python.org/3/c-api/init.html#c.Py_BEGIN_ALLOW_THREADSX-trX PyBUF_CONTIGr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIGX-trX PyBUF_STRIDEDr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDEDX-trXPyUnicode_2BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_KINDX-tr XPy_UNBLOCK_THREADSr (jjX=http://docs.python.org/3/c-api/init.html#c.Py_UNBLOCK_THREADSX-tr XPy_UNICODE_IS_SURROGATEr (jjXEhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_SURROGATEX-tr X PyBUF_RECORDSr(jjX:http://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDSX-trXPyBUF_NDr(jjX5http://docs.python.org/3/c-api/buffer.html#c.PyBUF_NDX-trX PyBUF_FULLr(jjX7http://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULLX-trXPyObject_VAR_HEADr(jjXBhttp://docs.python.org/3/c-api/structures.html#c.PyObject_VAR_HEADX-trX PyBUF_SIMPLEr(jjX9http://docs.python.org/3/c-api/buffer.html#c.PyBUF_SIMPLEX-trXPyUnicode_WCHAR_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WCHAR_KINDX-trXPy_UNICODE_IS_LOW_SURROGATEr(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_LOW_SURROGATEX-trXPyUnicode_1BYTE_KINDr(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_KINDX-trXPyBUF_CONTIG_ROr(jjX<http://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIG_ROX-trXPy_END_ALLOW_THREADSr (jjX?http://docs.python.org/3/c-api/init.html#c.Py_END_ALLOW_THREADSX-tr!XPyBUF_ANY_CONTIGUOUSr"(jjXAhttp://docs.python.org/3/c-api/buffer.html#c.PyBUF_ANY_CONTIGUOUSX-tr#XPy_RETURN_TRUEr$(jjX9http://docs.python.org/3/c-api/bool.html#c.Py_RETURN_TRUEX-tr%XPyBUF_STRIDED_ROr&(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDED_ROX-tr'uXstd:pdbcommandr(}r)(Xhelpr*(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-helpX-tr+Xjumpr,(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-jumpX-tr-X undisplayr.(jjX>http://docs.python.org/3/library/pdb.html#pdbcommand-undisplayX-tr/Xrunr0(jjX8http://docs.python.org/3/library/pdb.html#pdbcommand-runX-tr1Xtbreakr2(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-tbreakX-tr3X!(jjX6http://docs.python.org/3/library/pdb.html#pdbcommand-!X-tr4Xquitr5(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-quitX-tr6Xppr7(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-ppX-tr8Xp(jjX6http://docs.python.org/3/library/pdb.html#pdbcommand-pX-tr9Xunaliasr:(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-unaliasX-tr;Xinteractr<(jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-interactX-tr=Xnextr>(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-nextX-tr?Xsourcer@(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-sourceX-trAX conditionrB(jjX>http://docs.python.org/3/library/pdb.html#pdbcommand-conditionX-trCXuntilrD(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-untilX-trEXenablerF(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-enableX-trGXreturnrH(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-returnX-trIXargsrJ(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-argsX-trKXbreakrL(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-breakX-trMXsteprN(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-stepX-trOXdisablerP(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-disableX-trQXrestartrR(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-restartX-trSXdownrT(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-downX-trUXcommandsrV(jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-commandsX-trWXwhatisrX(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-whatisX-trYXclearrZ(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-clearX-tr[Xlistr\(jjX9http://docs.python.org/3/library/pdb.html#pdbcommand-listX-tr]Xupr^(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-upX-tr_Xdisplayr`(jjX<http://docs.python.org/3/library/pdb.html#pdbcommand-displayX-traXignorerb(jjX;http://docs.python.org/3/library/pdb.html#pdbcommand-ignoreX-trcXaliasrd(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-aliasX-treXcontinuerf(jjX=http://docs.python.org/3/library/pdb.html#pdbcommand-continueX-trgXwhererh(jjX:http://docs.python.org/3/library/pdb.html#pdbcommand-whereX-triXllrj(jjX7http://docs.python.org/3/library/pdb.html#pdbcommand-llX-trkuX std:tokenrl}rm(Xtry_stmtrn(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try_stmtX-troX longstringrp(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringX-trqXshortstringitemrr(jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringitemX-trsXdirective_option_namert(jjXQhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_option_nameX-truX xid_continuerv(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-xid_continueX-trwXhexdigitrx(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-hexdigitX-tryXassignment_stmtrz(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-assignment_stmtX-tr{Xsuiter|(jjXJhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-suiteX-tr}X try2_stmtr~(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try2_stmtX-trXand_exprr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-and_exprX-trXdigitr(jjXLhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-digitX-trXlongstringitemr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringitemX-trX simple_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-simple_stmtX-trX lower_boundr(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-lower_boundX-trX exponentfloatr(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-exponentfloatX-trXclassdefr(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-classdefX-trX bytesprefixr(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesprefixX-trXslicingr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-slicingX-trXfor_stmtr(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-for_stmtX-trXlongstringcharr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longstringcharX-trX binintegerr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-binintegerX-trXintegerr(jjXNhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-integerX-trX longbytesitemr(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytesitemX-trX decoratorr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-decoratorX-trXnamer(jjXGhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-nameX-trX key_datumr(jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-key_datumX-trXnumeric_stringr(jjXLhttp://docs.python.org/3/library/functions.html#grammar-token-numeric_stringX-trX dict_displayr(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-dict_displayX-trXif_stmtr(jjXLhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-if_stmtX-trXparameter_listr(jjXShttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-parameter_listX-trXdirective_optionr(jjXLhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_optionX-trX raise_stmtr(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-raise_stmtX-trX list_displayr(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-list_displayX-trX stringliteralr(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringliteralX-trXfuncnamer(jjXMhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-funcnameX-trX with_stmtr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-with_stmtX-trXcomp_forr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_forX-trXbindigitr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bindigitX-trXpositional_argumentsr(jjXVhttp://docs.python.org/3/reference/expressions.html#grammar-token-positional_argumentsX-trX identifierr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-identifierX-trX shortbytesr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytesX-trXexpression_nocondr(jjXShttp://docs.python.org/3/reference/expressions.html#grammar-token-expression_nocondX-trXmoduler(jjXIhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-moduleX-trXor_testr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-or_testX-trX xid_startr(jjXPhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-xid_startX-trXfuture_statementr(jjXShttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-future_statementX-trXor_exprr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-or_exprX-trX enclosurer(jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-enclosureX-trXrelative_moduler(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-relative_moduleX-trXcomp_ifr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_ifX-trXexponentr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-exponentX-trX directiver(jjXEhttp://docs.python.org/3/library/doctest.html#grammar-token-directiveX-trXa_exprr(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-a_exprX-trX shift_exprr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-shift_exprX-trX lc_letterr(jjXLhttp://docs.python.org/3/reference/introduction.html#grammar-token-lc_letterX-trX stringprefixr(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringprefixX-trX argument_listr(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-argument_listX-trX decoratorsr(jjXOhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-decoratorsX-trX compound_stmtr(jjXRhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-compound_stmtX-trXshortbytesitemr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytesitemX-trX dotted_namer(jjXPhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-dotted_nameX-trX nonlocal_stmtr(jjXPhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-nonlocal_stmtX-trXdict_comprehensionr(jjXThttp://docs.python.org/3/reference/expressions.html#grammar-token-dict_comprehensionX-trXid_startr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-id_startX-trX longbytesr(jjXPhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytesX-trX augtargetr(jjXLhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-augtargetX-trX index_stringr(jjXGhttp://docs.python.org/3/library/string.html#grammar-token-index_stringX-trXand_testr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-and_testX-trXxor_exprr(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-xor_exprX-trX try1_stmtr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-try1_stmtX-trX comparisonr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-comparisonX-trXattribute_namer(jjXIhttp://docs.python.org/3/library/string.html#grammar-token-attribute_nameX-trX pass_stmtr(jjXLhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-pass_stmtX-trX upper_boundr(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-upper_boundX-trX imagnumberr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-imagnumberX-trX proper_slicer(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-proper_sliceX-trX yield_atomr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-yield_atomX-trXstrider(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-strideX-tr Xbytesescapeseqr (jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesescapeseqX-tr X comp_iterr (jjXKhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_iterX-tr X expressionr(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-expressionX-trXarg_namer(jjXChttp://docs.python.org/3/library/string.html#grammar-token-arg_nameX-trX element_indexr(jjXHhttp://docs.python.org/3/library/string.html#grammar-token-element_indexX-trX keyword_itemr(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-keyword_itemX-trXprimaryr(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-primaryX-trX classnamer(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-classnameX-trX return_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-return_stmtX-trX comprehensionr(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-comprehensionX-trX format_specr(jjXFhttp://docs.python.org/3/library/string.html#grammar-token-format_specX-trXshortstringcharr (jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringcharX-tr!X defparameterr"(jjXQhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-defparameterX-tr#X slice_listr$(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-slice_listX-tr%X lambda_exprr&(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-lambda_exprX-tr'X import_stmtr((jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-import_stmtX-tr)X parenth_formr*(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-parenth_formX-tr+X continue_stmtr,(jjXPhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-continue_stmtX-tr-Xu_exprr.(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-u_exprX-tr/Xwidthr0(jjX@http://docs.python.org/3/library/string.html#grammar-token-widthX-tr1Xliteralr2(jjXIhttp://docs.python.org/3/reference/expressions.html#grammar-token-literalX-tr3X attributerefr4(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-attributerefX-tr5Xcallr6(jjXFhttp://docs.python.org/3/reference/expressions.html#grammar-token-callX-tr7Xaugopr8(jjXHhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-augopX-tr9Xfractionr:(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-fractionX-tr;Xtyper<(jjX?http://docs.python.org/3/library/string.html#grammar-token-typeX-tr=Xshortbytescharr>(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortbytescharX-tr?X longbytescharr@(jjXThttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-longbytescharX-trAX statementrB(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-statementX-trCX precisionrD(jjXDhttp://docs.python.org/3/library/string.html#grammar-token-precisionX-trEX on_or_offrF(jjXEhttp://docs.python.org/3/library/doctest.html#grammar-token-on_or_offX-trGX target_listrH(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-target_listX-trIX bytesliteralrJ(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-bytesliteralX-trKXaugmented_assignment_stmtrL(jjX\http://docs.python.org/3/reference/simple_stmts.html#grammar-token-augmented_assignment_stmtX-trMXatomrN(jjXFhttp://docs.python.org/3/reference/expressions.html#grammar-token-atomX-trOXfuncdefrP(jjXLhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-funcdefX-trQXstringescapeseqrR(jjXVhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-stringescapeseqX-trSXsignrT(jjXBhttp://docs.python.org/3/library/functions.html#grammar-token-signX-trUX field_namerV(jjXEhttp://docs.python.org/3/library/string.html#grammar-token-field_nameX-trWX subscriptionrX(jjXNhttp://docs.python.org/3/reference/expressions.html#grammar-token-subscriptionX-trYXkey_datum_listrZ(jjXPhttp://docs.python.org/3/reference/expressions.html#grammar-token-key_datum_listX-tr[Xtargetr\(jjXIhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-targetX-tr]X file_inputr^(jjXThttp://docs.python.org/3/reference/toplevel_components.html#grammar-token-file_inputX-tr_Xalignr`(jjX@http://docs.python.org/3/library/string.html#grammar-token-alignX-traX set_displayrb(jjXMhttp://docs.python.org/3/reference/expressions.html#grammar-token-set_displayX-trcX slice_itemrd(jjXLhttp://docs.python.org/3/reference/expressions.html#grammar-token-slice_itemX-treXintpartrf(jjXNhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-intpartX-trgX yield_stmtrh(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-yield_stmtX-triX comp_operatorrj(jjXOhttp://docs.python.org/3/reference/expressions.html#grammar-token-comp_operatorX-trkXyield_expressionrl(jjXRhttp://docs.python.org/3/reference/expressions.html#grammar-token-yield_expressionX-trmXreplacement_fieldrn(jjXLhttp://docs.python.org/3/library/string.html#grammar-token-replacement_fieldX-troXnot_testrp(jjXJhttp://docs.python.org/3/reference/expressions.html#grammar-token-not_testX-trqXfillrr(jjX?http://docs.python.org/3/library/string.html#grammar-token-fillX-trsX break_stmtrt(jjXMhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-break_stmtX-truX conversionrv(jjXEhttp://docs.python.org/3/library/string.html#grammar-token-conversionX-trwX octintegerrx(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-octintegerX-tryX inheritancerz(jjXPhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-inheritanceX-tr{X eval_inputr|(jjXThttp://docs.python.org/3/reference/toplevel_components.html#grammar-token-eval_inputX-tr}Xnanr~(jjXAhttp://docs.python.org/3/library/functions.html#grammar-token-nanX-trXfeaturer(jjXJhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-featureX-trXpowerr(jjXGhttp://docs.python.org/3/reference/expressions.html#grammar-token-powerX-trXdecimalintegerr(jjXUhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-decimalintegerX-trXexpression_stmtr(jjXRhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-expression_stmtX-trX global_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-global_stmtX-trX with_itemr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-with_itemX-trX parameterr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-parameterX-trX id_continuer(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-id_continueX-trXinfinityr(jjXFhttp://docs.python.org/3/library/functions.html#grammar-token-infinityX-trXoctdigitr(jjXOhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-octdigitX-trXdirective_optionsr(jjXMhttp://docs.python.org/3/library/doctest.html#grammar-token-directive_optionsX-trX numeric_valuer(jjXKhttp://docs.python.org/3/library/functions.html#grammar-token-numeric_valueX-trX nonzerodigitr(jjXShttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-nonzerodigitX-trXkeyword_argumentsr(jjXShttp://docs.python.org/3/reference/expressions.html#grammar-token-keyword_argumentsX-trX shortstringr(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-shortstringX-trXm_exprr(jjXHhttp://docs.python.org/3/reference/expressions.html#grammar-token-m_exprX-trXinteractive_inputr(jjX[http://docs.python.org/3/reference/toplevel_components.html#grammar-token-interactive_inputX-trX hexintegerr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-hexintegerX-trX stmt_listr(jjXNhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-stmt_listX-trX assert_stmtr(jjXNhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-assert_stmtX-trX floatnumberr(jjXRhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-floatnumberX-trXlambda_expr_nocondr(jjXThttp://docs.python.org/3/reference/expressions.html#grammar-token-lambda_expr_nocondX-trXgenerator_expressionr(jjXVhttp://docs.python.org/3/reference/expressions.html#grammar-token-generator_expressionX-trXexpression_listr(jjXQhttp://docs.python.org/3/reference/expressions.html#grammar-token-expression_listX-trXdel_stmtr(jjXKhttp://docs.python.org/3/reference/simple_stmts.html#grammar-token-del_stmtX-trX while_stmtr(jjXOhttp://docs.python.org/3/reference/compound_stmts.html#grammar-token-while_stmtX-trXconditional_expressionr(jjXXhttp://docs.python.org/3/reference/expressions.html#grammar-token-conditional_expressionX-trX pointfloatr(jjXQhttp://docs.python.org/3/reference/lexical_analysis.html#grammar-token-pointfloatX-truX py:exceptionr}r(Xxml.dom.SyntaxErrr(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.SyntaxErrX-trXmailbox.ExternalClashErrorr(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.ExternalClashErrorX-trXhttp.client.CannotSendHeaderr(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.CannotSendHeaderX-trX ssl.SSLErrorr(jjX6http://docs.python.org/3/library/ssl.html#ssl.SSLErrorX-trX SyntaxErrorr(jjX<http://docs.python.org/3/library/exceptions.html#SyntaxErrorX-trX dbm.errorr(jjX3http://docs.python.org/3/library/dbm.html#dbm.errorX-trXBrokenPipeErrorr(jjX@http://docs.python.org/3/library/exceptions.html#BrokenPipeErrorX-trXnntplib.NNTPProtocolErrorr(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPProtocolErrorX-trXsmtplib.SMTPSenderRefusedr(jjXGhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPSenderRefusedX-trXstatistics.StatisticsErrorr(jjXKhttp://docs.python.org/3/library/statistics.html#statistics.StatisticsErrorX-trX sunau.Errorr(jjX7http://docs.python.org/3/library/sunau.html#sunau.ErrorX-trXgetopt.GetoptErrorr(jjX?http://docs.python.org/3/library/getopt.html#getopt.GetoptErrorX-trXnntplib.NNTPReplyErrorr(jjXDhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPReplyErrorX-trXuu.Errorr(jjX1http://docs.python.org/3/library/uu.html#uu.ErrorX-trXxml.dom.InvalidStateErrr(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidStateErrX-trX NameErrorr(jjX:http://docs.python.org/3/library/exceptions.html#NameErrorX-trXssl.CertificateErrorr(jjX>http://docs.python.org/3/library/ssl.html#ssl.CertificateErrorX-trXtarfile.ReadErrorr(jjX?http://docs.python.org/3/library/tarfile.html#tarfile.ReadErrorX-trXemail.errors.MessageParseErrorr(jjXQhttp://docs.python.org/3/library/email.errors.html#email.errors.MessageParseErrorX-trXConnectionResetErrorr(jjXEhttp://docs.python.org/3/library/exceptions.html#ConnectionResetErrorX-trXxml.dom.DomstringSizeErrr(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DomstringSizeErrX-trXtarfile.HeaderErrorr(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.HeaderErrorX-trX queue.Emptyr(jjX7http://docs.python.org/3/library/queue.html#queue.EmptyX-trX%configparser.InterpolationSyntaxErrorr(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationSyntaxErrorX-trXmailbox.FormatErrorr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.FormatErrorX-trXtest.support.TestFailedr(jjXBhttp://docs.python.org/3/library/test.html#test.support.TestFailedX-trXFileExistsErrorr(jjX@http://docs.python.org/3/library/exceptions.html#FileExistsErrorX-trX zlib.errorr(jjX5http://docs.python.org/3/library/zlib.html#zlib.errorX-trXpickle.PickleErrorr(jjX?http://docs.python.org/3/library/pickle.html#pickle.PickleErrorX-trXTabErrorr(jjX9http://docs.python.org/3/library/exceptions.html#TabErrorX-trXnetrc.NetrcParseErrorr(jjXAhttp://docs.python.org/3/library/netrc.html#netrc.NetrcParseErrorX-trXsubprocess.CalledProcessErrorr(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessErrorX-trXsocket.timeoutr(jjX;http://docs.python.org/3/library/socket.html#socket.timeoutX-trXUnicodeDecodeErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeDecodeErrorX-trX SyntaxWarningr(jjX>http://docs.python.org/3/library/exceptions.html#SyntaxWarningX-trXhttp.client.UnknownProtocolr(jjXMhttp://docs.python.org/3/library/http.client.html#http.client.UnknownProtocolX-trX StopIterationr(jjX>http://docs.python.org/3/library/exceptions.html#StopIterationX-trX IndexErrorr(jjX;http://docs.python.org/3/library/exceptions.html#IndexErrorX-trXhttp.cookies.CookieErrorr(jjXKhttp://docs.python.org/3/library/http.cookies.html#http.cookies.CookieErrorX-trXRuntimeWarningr(jjX?http://docs.python.org/3/library/exceptions.html#RuntimeWarningX-tr Xtarfile.CompressionErrorr (jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.CompressionErrorX-tr Xxml.sax.SAXExceptionr (jjXBhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXExceptionX-tr Xxml.dom.InuseAttributeErrr(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InuseAttributeErrX-trXtarfile.StreamErrorr(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.StreamErrorX-trX curses.errorr(jjX9http://docs.python.org/3/library/curses.html#curses.errorX-trXWarningr(jjX8http://docs.python.org/3/library/exceptions.html#WarningX-trXasyncio.QueueEmptyr(jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueEmptyX-trXzipfile.BadZipFiler(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.BadZipFileX-trX#multiprocessing.AuthenticationErrorr(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.AuthenticationErrorX-trX dbm.gnu.errorr(jjX7http://docs.python.org/3/library/dbm.html#dbm.gnu.errorX-trXurllib.error.URLErrorr(jjXHhttp://docs.python.org/3/library/urllib.error.html#urllib.error.URLErrorX-trXparser.ParserErrorr (jjX?http://docs.python.org/3/library/parser.html#parser.ParserErrorX-tr!XIsADirectoryErrorr"(jjXBhttp://docs.python.org/3/library/exceptions.html#IsADirectoryErrorX-tr#Xssl.SSLWantReadErrorr$(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLWantReadErrorX-tr%X struct.errorr&(jjX9http://docs.python.org/3/library/struct.html#struct.errorX-tr'Xtabnanny.NannyNagr((jjX@http://docs.python.org/3/library/tabnanny.html#tabnanny.NannyNagX-tr)XUnicodeTranslateErrorr*(jjXFhttp://docs.python.org/3/library/exceptions.html#UnicodeTranslateErrorX-tr+X"configparser.DuplicateSectionErrorr,(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.DuplicateSectionErrorX-tr-Xbinascii.Errorr.(jjX=http://docs.python.org/3/library/binascii.html#binascii.ErrorX-tr/Xdbm.dumb.errorr0(jjX8http://docs.python.org/3/library/dbm.html#dbm.dumb.errorX-tr1XPermissionErrorr2(jjX@http://docs.python.org/3/library/exceptions.html#PermissionErrorX-tr3Xxml.dom.NamespaceErrr4(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamespaceErrX-tr5Xssl.SSLWantWriteErrorr6(jjX?http://docs.python.org/3/library/ssl.html#ssl.SSLWantWriteErrorX-tr7Xasyncio.QueueFullr8(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.QueueFullX-tr9Xos.errorr:(jjX1http://docs.python.org/3/library/os.html#os.errorX-tr;Xio.UnsupportedOperationr<(jjX@http://docs.python.org/3/library/io.html#io.UnsupportedOperationX-tr=Xpickle.UnpicklingErrorr>(jjXChttp://docs.python.org/3/library/pickle.html#pickle.UnpicklingErrorX-tr?X!urllib.error.ContentTooShortErrorr@(jjXThttp://docs.python.org/3/library/urllib.error.html#urllib.error.ContentTooShortErrorX-trAXmultiprocessing.TimeoutErrorrB(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.TimeoutErrorX-trCX BufferErrorrD(jjX<http://docs.python.org/3/library/exceptions.html#BufferErrorX-trEX LookupErrorrF(jjX<http://docs.python.org/3/library/exceptions.html#LookupErrorX-trGXxml.dom.NotSupportedErrrH(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NotSupportedErrX-trIXConnectionErrorrJ(jjX@http://docs.python.org/3/library/exceptions.html#ConnectionErrorX-trKXFloatingPointErrorrL(jjXChttp://docs.python.org/3/library/exceptions.html#FloatingPointErrorX-trMXconfigparser.ErrorrN(jjXEhttp://docs.python.org/3/library/configparser.html#configparser.ErrorX-trOXFileNotFoundErrorrP(jjXBhttp://docs.python.org/3/library/exceptions.html#FileNotFoundErrorX-trQXhttp.client.NotConnectedrR(jjXJhttp://docs.python.org/3/library/http.client.html#http.client.NotConnectedX-trSXconfigparser.NoOptionErrorrT(jjXMhttp://docs.python.org/3/library/configparser.html#configparser.NoOptionErrorX-trUX BytesWarningrV(jjX=http://docs.python.org/3/library/exceptions.html#BytesWarningX-trWXConnectionRefusedErrorrX(jjXGhttp://docs.python.org/3/library/exceptions.html#ConnectionRefusedErrorX-trYXio.BlockingIOErrorrZ(jjX;http://docs.python.org/3/library/io.html#io.BlockingIOErrorX-tr[Xxml.dom.DOMExceptionr\(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMExceptionX-tr]XIndentationErrorr^(jjXAhttp://docs.python.org/3/library/exceptions.html#IndentationErrorX-tr_Xxml.dom.HierarchyRequestErrr`(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.HierarchyRequestErrX-traX FutureWarningrb(jjX>http://docs.python.org/3/library/exceptions.html#FutureWarningX-trcX xdrlib.Errorrd(jjX9http://docs.python.org/3/library/xdrlib.html#xdrlib.ErrorX-treX select.errorrf(jjX9http://docs.python.org/3/library/select.html#select.errorX-trgXnntplib.NNTPErrorrh(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTPErrorX-triXmailbox.NoSuchMailboxErrorrj(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.NoSuchMailboxErrorX-trkXconfigparser.InterpolationErrorrl(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationErrorX-trmXzipfile.LargeZipFilern(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.LargeZipFileX-troXsignal.ItimerErrorrp(jjX?http://docs.python.org/3/library/signal.html#signal.ItimerErrorX-trqXthreading.BrokenBarrierErrorrr(jjXLhttp://docs.python.org/3/library/threading.html#threading.BrokenBarrierErrorX-trsXbinascii.Incompletert(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.IncompleteX-truXurllib.error.HTTPErrorrv(jjXIhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPErrorX-trwXzipfile.BadZipfilerx(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.BadZipfileX-tryXftplib.error_protorz(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.error_protoX-tr{Xsocket.gaierrorr|(jjX<http://docs.python.org/3/library/socket.html#socket.gaierrorX-tr}X TypeErrorr~(jjX:http://docs.python.org/3/library/exceptions.html#TypeErrorX-trXsmtplib.SMTPDataErrorr(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPDataErrorX-trXKeyboardInterruptr(jjXBhttp://docs.python.org/3/library/exceptions.html#KeyboardInterruptX-trX UserWarningr(jjX<http://docs.python.org/3/library/exceptions.html#UserWarningX-trXZeroDivisionErrorr(jjXBhttp://docs.python.org/3/library/exceptions.html#ZeroDivisionErrorX-trXdoctest.UnexpectedExceptionr(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedExceptionX-trX%email.errors.MultipartConversionErrorr(jjXXhttp://docs.python.org/3/library/email.errors.html#email.errors.MultipartConversionErrorX-trXxml.dom.InvalidCharacterErrr(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidCharacterErrX-trXEOFErrorr(jjX9http://docs.python.org/3/library/exceptions.html#EOFErrorX-trXResourceWarningr(jjX@http://docs.python.org/3/library/exceptions.html#ResourceWarningX-trX$configparser.InterpolationDepthErrorr(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.InterpolationDepthErrorX-trX SystemErrorr(jjX<http://docs.python.org/3/library/exceptions.html#SystemErrorX-trXxml.parsers.expat.ExpatErrorr(jjXJhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatErrorX-trXweakref.ReferenceErrorr(jjXDhttp://docs.python.org/3/library/weakref.html#weakref.ReferenceErrorX-trX BaseExceptionr(jjX>http://docs.python.org/3/library/exceptions.html#BaseExceptionX-trXemail.errors.BoundaryErrorr(jjXMhttp://docs.python.org/3/library/email.errors.html#email.errors.BoundaryErrorX-trX,concurrent.futures.process.BrokenProcessPoolr(jjXehttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.process.BrokenProcessPoolX-trX _thread.errorr(jjX;http://docs.python.org/3/library/_thread.html#_thread.errorX-trXssl.SSLEOFErrorr(jjX9http://docs.python.org/3/library/ssl.html#ssl.SSLEOFErrorX-trX RuntimeErrorr(jjX=http://docs.python.org/3/library/exceptions.html#RuntimeErrorX-trX GeneratorExitr(jjX>http://docs.python.org/3/library/exceptions.html#GeneratorExitX-trXxml.dom.InvalidAccessErrr(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidAccessErrX-trXChildProcessErrorr(jjXBhttp://docs.python.org/3/library/exceptions.html#ChildProcessErrorX-trXssl.SSLSyscallErrorr(jjX=http://docs.python.org/3/library/ssl.html#ssl.SSLSyscallErrorX-trXemail.errors.MessageErrorr(jjXLhttp://docs.python.org/3/library/email.errors.html#email.errors.MessageErrorX-trXhtml.parser.HTMLParseErrorr(jjXLhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParseErrorX-trXftplib.error_tempr(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.error_tempX-trXasyncio.IncompleteReadErrorr(jjXPhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadErrorX-trXProcessLookupErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#ProcessLookupErrorX-trXzipimport.ZipImportErrorr(jjXHhttp://docs.python.org/3/library/zipimport.html#zipimport.ZipImportErrorX-trX#http.client.ImproperConnectionStater(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.ImproperConnectionStateX-trX UnicodeErrorr(jjX=http://docs.python.org/3/library/exceptions.html#UnicodeErrorX-trXipaddress.NetmaskValueErrorr(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.NetmaskValueErrorX-trX mailbox.Errorr(jjX;http://docs.python.org/3/library/mailbox.html#mailbox.ErrorX-trXimaplib.IMAP4.readonlyr(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readonlyX-trXtest.support.ResourceDeniedr(jjXFhttp://docs.python.org/3/library/test.html#test.support.ResourceDeniedX-trX binhex.Errorr(jjX9http://docs.python.org/3/library/binhex.html#binhex.ErrorX-trXReferenceErrorr(jjX?http://docs.python.org/3/library/exceptions.html#ReferenceErrorX-trXhttp.client.BadStatusLiner(jjXKhttp://docs.python.org/3/library/http.client.html#http.client.BadStatusLineX-trXxml.dom.NotFoundErrr(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NotFoundErrX-trX getopt.errorr(jjX9http://docs.python.org/3/library/getopt.html#getopt.errorX-trXmailbox.NotEmptyErrorr(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.NotEmptyErrorX-trXshutil.SameFileErrorr(jjXAhttp://docs.python.org/3/library/shutil.html#shutil.SameFileErrorX-trXpoplib.error_protor(jjX?http://docs.python.org/3/library/poplib.html#poplib.error_protoX-trXemail.errors.HeaderParseErrorr(jjXPhttp://docs.python.org/3/library/email.errors.html#email.errors.HeaderParseErrorX-trX Exceptionr(jjX:http://docs.python.org/3/library/exceptions.html#ExceptionX-trX TimeoutErrorr(jjX=http://docs.python.org/3/library/exceptions.html#TimeoutErrorX-trX bdb.BdbQuitr(jjX5http://docs.python.org/3/library/bdb.html#bdb.BdbQuitX-trX locale.Errorr(jjX9http://docs.python.org/3/library/locale.html#locale.ErrorX-trXwebbrowser.Errorr(jjXAhttp://docs.python.org/3/library/webbrowser.html#webbrowser.ErrorX-trXhttp.client.IncompleteReadr(jjXLhttp://docs.python.org/3/library/http.client.html#http.client.IncompleteReadX-trX xml.dom.NoModificationAllowedErrr(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NoModificationAllowedErrX-trXUnicodeEncodeErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeEncodeErrorX-trXIOErrorr(jjX8http://docs.python.org/3/library/exceptions.html#IOErrorX-trXdbm.ndbm.errorr(jjX8http://docs.python.org/3/library/dbm.html#dbm.ndbm.errorX-trXKeyErrorr(jjX9http://docs.python.org/3/library/exceptions.html#KeyErrorX-trXssl.SSLZeroReturnErrorr(jjX@http://docs.python.org/3/library/ssl.html#ssl.SSLZeroReturnErrorX-trX!http.client.UnimplementedFileModer(jjXShttp://docs.python.org/3/library/http.client.html#http.client.UnimplementedFileModeX-trXsmtplib.SMTPResponseExceptionr(jjXKhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPResponseExceptionX-trXpy_compile.PyCompileErrorr(jjXJhttp://docs.python.org/3/library/py_compile.html#py_compile.PyCompileErrorX-trXtokenize.TokenErrorr(jjXBhttp://docs.python.org/3/library/tokenize.html#tokenize.TokenErrorX-trXasyncio.InvalidStateErrorr(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.InvalidStateErrorX-trXhttp.client.CannotSendRequestr(jjXOhttp://docs.python.org/3/library/http.client.html#http.client.CannotSendRequestX-trXxml.dom.IndexSizeErrr(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.IndexSizeErrX-trXArithmeticErrorr(jjX@http://docs.python.org/3/library/exceptions.html#ArithmeticErrorX-trX xml.sax.SAXNotSupportedExceptionr(jjXNhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotSupportedExceptionX-trXConnectionAbortedErrorr(jjXGhttp://docs.python.org/3/library/exceptions.html#ConnectionAbortedErrorX-trXnntplib.NNTPDataErrorr(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPDataErrorX-trXftplib.error_replyr(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.error_replyX-trXdoctest.DocTestFailurer(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailureX-tr Xossaudiodev.OSSAudioErrorr (jjXKhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.OSSAudioErrorX-tr Xxml.sax.SAXParseExceptionr (jjXGhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXParseExceptionX-tr X socket.herrorr(jjX:http://docs.python.org/3/library/socket.html#socket.herrorX-trX MemoryErrorr(jjX<http://docs.python.org/3/library/exceptions.html#MemoryErrorX-trXfpectl.FloatingPointErrorr(jjXFhttp://docs.python.org/3/library/fpectl.html#fpectl.FloatingPointErrorX-trXsmtplib.SMTPConnectErrorr(jjXFhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPConnectErrorX-trX SystemExitr(jjX;http://docs.python.org/3/library/exceptions.html#SystemExitX-trXimaplib.IMAP4.errorr(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.errorX-trXNotADirectoryErrorr(jjXChttp://docs.python.org/3/library/exceptions.html#NotADirectoryErrorX-trXsubprocess.TimeoutExpiredr(jjXJhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpiredX-trXhttp.client.InvalidURLr(jjXHhttp://docs.python.org/3/library/http.client.html#http.client.InvalidURLX-trXmultiprocessing.BufferTooShortr (jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.BufferTooShortX-tr!Xnntplib.NNTPPermanentErrorr"(jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPPermanentErrorX-tr#Ximaplib.IMAP4.abortr$(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.abortX-tr%Xsmtplib.SMTPRecipientsRefusedr&(jjXKhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPRecipientsRefusedX-tr'Xxdrlib.ConversionErrorr((jjXChttp://docs.python.org/3/library/xdrlib.html#xdrlib.ConversionErrorX-tr)XEnvironmentErrorr*(jjXAhttp://docs.python.org/3/library/exceptions.html#EnvironmentErrorX-tr+Xunittest.SkipTestr,(jjX@http://docs.python.org/3/library/unittest.html#unittest.SkipTestX-tr-X nis.errorr.(jjX3http://docs.python.org/3/library/nis.html#nis.errorX-tr/XInterruptedErrorr0(jjXAhttp://docs.python.org/3/library/exceptions.html#InterruptedErrorX-tr1XOSErrorr2(jjX8http://docs.python.org/3/library/exceptions.html#OSErrorX-tr3XDeprecationWarningr4(jjXChttp://docs.python.org/3/library/exceptions.html#DeprecationWarningX-tr5Xsmtplib.SMTPHeloErrorr6(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPHeloErrorX-tr7X&configparser.MissingSectionHeaderErrorr8(jjXYhttp://docs.python.org/3/library/configparser.html#configparser.MissingSectionHeaderErrorX-tr9XUnicodeWarningr:(jjX?http://docs.python.org/3/library/exceptions.html#UnicodeWarningX-tr;X queue.Fullr<(jjX6http://docs.python.org/3/library/queue.html#queue.FullX-tr=Xnntplib.NNTPTemporaryErrorr>(jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPTemporaryErrorX-tr?Xre.errorr@(jjX1http://docs.python.org/3/library/re.html#re.errorX-trAXxml.dom.WrongDocumentErrrB(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.WrongDocumentErrX-trCX wave.ErrorrD(jjX5http://docs.python.org/3/library/wave.html#wave.ErrorX-trEXpickle.PicklingErrorrF(jjXAhttp://docs.python.org/3/library/pickle.html#pickle.PicklingErrorX-trGX ImportWarningrH(jjX>http://docs.python.org/3/library/exceptions.html#ImportWarningX-trIX ValueErrorrJ(jjX;http://docs.python.org/3/library/exceptions.html#ValueErrorX-trKXftplib.error_permrL(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.error_permX-trMXipaddress.AddressValueErrorrN(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.AddressValueErrorX-trOX csv.ErrorrP(jjX3http://docs.python.org/3/library/csv.html#csv.ErrorX-trQXresource.errorrR(jjX=http://docs.python.org/3/library/resource.html#resource.errorX-trSX socket.errorrT(jjX9http://docs.python.org/3/library/socket.html#socket.errorX-trUXxml.dom.InvalidModificationErrrV(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidModificationErrX-trWX#http.client.UnknownTransferEncodingrX(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.UnknownTransferEncodingX-trYXconfigparser.ParsingErrorrZ(jjXLhttp://docs.python.org/3/library/configparser.html#configparser.ParsingErrorX-tr[Xlzma.LZMAErrorr\(jjX9http://docs.python.org/3/library/lzma.html#lzma.LZMAErrorX-tr]Xasyncio.TimeoutErrorr^(jjXGhttp://docs.python.org/3/library/asyncio-task.html#asyncio.TimeoutErrorX-tr_Xconfigparser.NoSectionErrorr`(jjXNhttp://docs.python.org/3/library/configparser.html#configparser.NoSectionErrorX-traX,configparser.InterpolationMissingOptionErrorrb(jjX_http://docs.python.org/3/library/configparser.html#configparser.InterpolationMissingOptionErrorX-trcXsmtplib.SMTPAuthenticationErrorrd(jjXMhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPAuthenticationErrorX-treXBlockingIOErrorrf(jjX@http://docs.python.org/3/library/exceptions.html#BlockingIOErrorX-trgX copy.errorrh(jjX5http://docs.python.org/3/library/copy.html#copy.errorX-triXmultiprocessing.ProcessErrorrj(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ProcessErrorX-trkXtarfile.ExtractErrorrl(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.ExtractErrorX-trmXhttp.client.ResponseNotReadyrn(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.ResponseNotReadyX-troXhttp.cookiejar.LoadErrorrp(jjXMhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.LoadErrorX-trqX shutil.Errorrr(jjX9http://docs.python.org/3/library/shutil.html#shutil.ErrorX-trsXAssertionErrorrt(jjX?http://docs.python.org/3/library/exceptions.html#AssertionErrorX-truXsmtplib.SMTPExceptionrv(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPExceptionX-trwX audioop.errorrx(jjX;http://docs.python.org/3/library/audioop.html#audioop.errorX-tryXtarfile.TarErrorrz(jjX>http://docs.python.org/3/library/tarfile.html#tarfile.TarErrorX-tr{Xsmtplib.SMTPServerDisconnectedr|(jjXLhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTPServerDisconnectedX-tr}Xgetpass.GetPassWarningr~(jjXDhttp://docs.python.org/3/library/getpass.html#getpass.GetPassWarningX-trXsubprocess.SubprocessErrorr(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.SubprocessErrorX-trXxml.parsers.expat.errorr(jjXEhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errorX-trXhttp.client.HTTPExceptionr(jjXKhttp://docs.python.org/3/library/http.client.html#http.client.HTTPExceptionX-trXPendingDeprecationWarningr(jjXJhttp://docs.python.org/3/library/exceptions.html#PendingDeprecationWarningX-trXUnboundLocalErrorr(jjXBhttp://docs.python.org/3/library/exceptions.html#UnboundLocalErrorX-trX!configparser.DuplicateOptionErrorr(jjXThttp://docs.python.org/3/library/configparser.html#configparser.DuplicateOptionErrorX-trX ImportErrorr(jjX<http://docs.python.org/3/library/exceptions.html#ImportErrorX-trX!xml.sax.SAXNotRecognizedExceptionr(jjXOhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotRecognizedExceptionX-trXxml.dom.NoDataAllowedErrr(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NoDataAllowedErrX-trXctypes.ArgumentErrorr(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.ArgumentErrorX-trXNotImplementedErrorr(jjXDhttp://docs.python.org/3/library/exceptions.html#NotImplementedErrorX-trXAttributeErrorr(jjX?http://docs.python.org/3/library/exceptions.html#AttributeErrorX-trX OverflowErrorr(jjX>http://docs.python.org/3/library/exceptions.html#OverflowErrorX-trX WindowsErrorr(jjX=http://docs.python.org/3/library/exceptions.html#WindowsErrorX-truXpy:staticmethodr}r(Xbytearray.maketransr(jjXBhttp://docs.python.org/3/library/stdtypes.html#bytearray.maketransX-trX str.maketransr(jjX<http://docs.python.org/3/library/stdtypes.html#str.maketransX-trXbytes.maketransr(jjX>http://docs.python.org/3/library/stdtypes.html#bytes.maketransX-truXc:typer}r(X PyMethodDefr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyMethodDefX-trX PyModuleDefr(jjX8http://docs.python.org/3/c-api/module.html#c.PyModuleDefX-trXPyMemAllocatorDomainr(jjXAhttp://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorDomainX-trX PyASCIIObjectr(jjX;http://docs.python.org/3/c-api/unicode.html#c.PyASCIIObjectX-trXPyMemAllocatorr(jjX;http://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorX-trXPy_UCS4r(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4X-trXPy_UCS2r(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS2X-trX_inittabr(jjX5http://docs.python.org/3/c-api/import.html#c._inittabX-trXPy_UCS1r(jjX5http://docs.python.org/3/c-api/unicode.html#c.Py_UCS1X-trXPyInterpreterStater(jjX=http://docs.python.org/3/c-api/init.html#c.PyInterpreterStateX-trXPySequenceMethodsr(jjX?http://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethodsX-trX Py_UNICODEr(jjX8http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODEX-trX PyGenObjectr(jjX5http://docs.python.org/3/c-api/gen.html#c.PyGenObjectX-trXPyStructSequence_Descr(jjXAhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_DescX-trX PyCFunctionr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyCFunctionX-trX PyTupleObjectr(jjX9http://docs.python.org/3/c-api/tuple.html#c.PyTupleObjectX-trXPyObjectArenaAllocatorr(jjXChttp://docs.python.org/3/c-api/memory.html#c.PyObjectArenaAllocatorX-trX PyCellObjectr(jjX7http://docs.python.org/3/c-api/cell.html#c.PyCellObjectX-trXinquiryr(jjX7http://docs.python.org/3/c-api/gcsupport.html#c.inquiryX-trX PyTypeObjectr(jjX7http://docs.python.org/3/c-api/type.html#c.PyTypeObjectX-trXPyNumberMethodsr(jjX=http://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethodsX-trXPyCompilerFlagsr(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlagsX-trXPyComplexObjectr(jjX=http://docs.python.org/3/c-api/complex.html#c.PyComplexObjectX-trXPyFunctionObjectr(jjX?http://docs.python.org/3/c-api/function.html#c.PyFunctionObjectX-trX PyCapsuler(jjX7http://docs.python.org/3/c-api/capsule.html#c.PyCapsuleX-trXPyCapsule_Destructorr(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_DestructorX-trX PyVarObjectr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyVarObjectX-trXPyObjectr(jjX9http://docs.python.org/3/c-api/structures.html#c.PyObjectX-trX PyMemberDefr(jjX<http://docs.python.org/3/c-api/structures.html#c.PyMemberDefX-trX PyDictObjectr(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDictObjectX-trX PyCodeObjectr(jjX7http://docs.python.org/3/c-api/code.html#c.PyCodeObjectX-trX PyBytesObjectr(jjX9http://docs.python.org/3/c-api/bytes.html#c.PyBytesObjectX-trX PySetObjectr(jjX5http://docs.python.org/3/c-api/set.html#c.PySetObjectX-trX PyFloatObjectr(jjX9http://docs.python.org/3/c-api/float.html#c.PyFloatObjectX-trX Py_complexr(jjX8http://docs.python.org/3/c-api/complex.html#c.Py_complexX-trX_frozenr(jjX4http://docs.python.org/3/c-api/import.html#c._frozenX-trXPyMappingMethodsr(jjX>http://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethodsX-trXPyUnicodeObjectr(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicodeObjectX-trX PyLongObjectr(jjX7http://docs.python.org/3/c-api/long.html#c.PyLongObjectX-trX Py_bufferr(jjX6http://docs.python.org/3/c-api/buffer.html#c.Py_bufferX-trX PyListObjectr(jjX7http://docs.python.org/3/c-api/list.html#c.PyListObjectX-trXPyStructSequence_Fieldr(jjXBhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_FieldX-trX PyThreadStater(jjX8http://docs.python.org/3/c-api/init.html#c.PyThreadStateX-trX visitprocr(jjX9http://docs.python.org/3/c-api/gcsupport.html#c.visitprocX-trX PyBufferProcsr(jjX;http://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcsX-trXPyCFunctionWithKeywordsr(jjXHhttp://docs.python.org/3/c-api/structures.html#c.PyCFunctionWithKeywordsX-trXPyByteArrayObjectr(jjXAhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArrayObjectX-trX Py_tracefuncr(jjX7http://docs.python.org/3/c-api/init.html#c.Py_tracefuncX-trX traverseprocr(jjX<http://docs.python.org/3/c-api/gcsupport.html#c.traverseprocX-trXPyCompactUnicodeObjectr(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyCompactUnicodeObjectX-tr uX py:methodr }r (Xchunk.Chunk.isattyr (jjX>http://docs.python.org/3/library/chunk.html#chunk.Chunk.isattyX-tr Xmemoryview.castr(jjX>http://docs.python.org/3/library/stdtypes.html#memoryview.castX-trXpathlib.Path.unlinkr(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.unlinkX-trXmsilib.Dialog.controlr(jjXBhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.controlX-trX.xml.parsers.expat.xmlparser.ElementDeclHandlerr(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ElementDeclHandlerX-trXdatetime.tzinfo.utcoffsetr(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.utcoffsetX-trXcurses.panel.Panel.userptrr(jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.userptrX-trXbytearray.findr(jjX=http://docs.python.org/3/library/stdtypes.html#bytearray.findX-trX#difflib.SequenceMatcher.quick_ratior(jjXQhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.quick_ratioX-trX(importlib.machinery.FileFinder.find_specr(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.find_specX-trXbdb.Breakpoint.bpformatr (jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpformatX-tr!Xcurses.window.hliner"(jjX@http://docs.python.org/3/library/curses.html#curses.window.hlineX-tr#Xlogging.Handler.releaser$(jjXEhttp://docs.python.org/3/library/logging.html#logging.Handler.releaseX-tr%Xftplib.FTP.loginr&(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.loginX-tr'Xtarfile.TarFile.addfiler((jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.addfileX-tr)X3urllib.request.ProxyBasicAuthHandler.http_error_407r*(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandler.http_error_407X-tr+Xasynchat.fifo.popr,(jjX@http://docs.python.org/3/library/asynchat.html#asynchat.fifo.popX-tr-X!decimal.Context.compare_total_magr.(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_total_magX-tr/Xshlex.shlex.get_tokenr0(jjXAhttp://docs.python.org/3/library/shlex.html#shlex.shlex.get_tokenX-tr1Xunittest.TestCase.assertWarnsr2(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertWarnsX-tr3Xlzma.LZMACompressor.compressr4(jjXGhttp://docs.python.org/3/library/lzma.html#lzma.LZMACompressor.compressX-tr5Xcollections.deque.countr6(jjXIhttp://docs.python.org/3/library/collections.html#collections.deque.countX-tr7Ximaplib.IMAP4.loginr8(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.loginX-tr9X smtpd.SMTPServer.process_messager:(jjXLhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.process_messageX-tr;Xsocket.socket.connectr<(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.connectX-tr=Xemail.policy.Policy.cloner>(jjXLhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.cloneX-tr?Xtelnetlib.Telnet.read_eagerr@(jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_eagerX-trAXemail.generator.Generator.writerB(jjXUhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.writeX-trCXsched.scheduler.enterrD(jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.enterX-trEX+xml.sax.handler.ContentHandler.endElementNSrF(jjXahttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElementNSX-trGXbdb.Bdb.clear_bpbynumberrH(jjXBhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_bpbynumberX-trIXtarfile.TarFile.getmemberrJ(jjXGhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getmemberX-trKXqueue.Queue.fullrL(jjX<http://docs.python.org/3/library/queue.html#queue.Queue.fullX-trMXpathlib.Path.touchrN(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.touchX-trOXdecimal.Context.maxrP(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.maxX-trQX!gettext.NullTranslations.lgettextrR(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.lgettextX-trSXarray.array.fromstringrT(jjXBhttp://docs.python.org/3/library/array.html#array.array.fromstringX-trUXtracemalloc.Snapshot.compare_torV(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.compare_toX-trWX(xml.etree.ElementTree.XMLPullParser.feedrX(jjXdhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.feedX-trYXio.BytesIO.getvaluerZ(jjX<http://docs.python.org/3/library/io.html#io.BytesIO.getvalueX-tr[Xrlcompleter.Completer.completer\(jjXPhttp://docs.python.org/3/library/rlcompleter.html#rlcompleter.Completer.completeX-tr]Xhtml.parser.HTMLParser.closer^(jjXNhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.closeX-tr_Xoptparse.OptionParser.get_usager`(jjXNhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_usageX-traX%ossaudiodev.oss_audio_device.channelsrb(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.channelsX-trcX'xml.sax.handler.ErrorHandler.fatalErrorrd(jjX]http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.fatalErrorX-treX,multiprocessing.managers.BaseProxy._getvaluerf(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._getvalueX-trgXimaplib.IMAP4.getaclrh(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getaclX-triXclass.__subclasses__rj(jjXChttp://docs.python.org/3/library/stdtypes.html#class.__subclasses__X-trkXshlex.shlex.push_sourcerl(jjXChttp://docs.python.org/3/library/shlex.html#shlex.shlex.push_sourceX-trmXargparse.ArgumentParser.exitrn(jjXKhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.exitX-troXctypes._CData.from_addressrp(jjXGhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_addressX-trqX multiprocessing.Queue.put_nowaitrr(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.put_nowaitX-trsXint.bit_lengthrt(jjX=http://docs.python.org/3/library/stdtypes.html#int.bit_lengthX-truX#wsgiref.handlers.BaseHandler._flushrv(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler._flushX-trwXmailbox.Maildir.get_filerx(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_fileX-tryX str.formatrz(jjX9http://docs.python.org/3/library/stdtypes.html#str.formatX-tr{Xdecimal.Decimal.normalizer|(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.normalizeX-tr}X str.isalnumr~(jjX:http://docs.python.org/3/library/stdtypes.html#str.isalnumX-trXcurses.window.getmaxyxr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getmaxyxX-trX calendar.Calendar.itermonthdays2r(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdays2X-trXasyncio.Task.cancelr(jjXFhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.cancelX-trX.http.server.BaseHTTPRequestHandler.send_headerr(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_headerX-trX9xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_titler(jjXmhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_titleX-trX code.InteractiveConsole.interactr(jjXKhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.interactX-trXqueue.Queue.put_nowaitr(jjXBhttp://docs.python.org/3/library/queue.html#queue.Queue.put_nowaitX-trXftplib.FTP.set_debuglevelr(jjXFhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.set_debuglevelX-trX1urllib.request.HTTPRedirectHandler.http_error_302r(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_302X-trXcurses.window.clrtobotr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.clrtobotX-trXxdrlib.Unpacker.unpack_floatr(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_floatX-trX1urllib.request.HTTPRedirectHandler.http_error_307r(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_307X-trX!xml.etree.ElementTree.Element.setr(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.setX-trXobject.__ilshift__r(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__ilshift__X-trXsubprocess.Popen.pollr(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.pollX-trXfilecmp.dircmp.reportr(jjXChttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.reportX-trXnntplib.NNTP.set_debuglevelr(jjXIhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.set_debuglevelX-trXdecimal.Decimal.logical_andr(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_andX-trXemail.charset.Charset.__str__r(jjXQhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__str__X-trXdatetime.date.isoweekdayr(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.isoweekdayX-trX4urllib.request.ProxyDigestAuthHandler.http_error_407r(jjXihttp://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandler.http_error_407X-trXsymtable.Function.get_localsr(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_localsX-trX1xml.parsers.expat.xmlparser.EndDoctypeDeclHandlerr(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndDoctypeDeclHandlerX-trXbytearray.replacer(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.replaceX-trXthreading.Thread.is_aliver(jjXIhttp://docs.python.org/3/library/threading.html#threading.Thread.is_aliveX-trXobject.__setitem__r(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__setitem__X-trXcodecs.IncrementalDecoder.resetr(jjXLhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.resetX-trX"asyncio.BaseEventLoop.sock_connectr(jjXZhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_connectX-trXmemoryview.releaser(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.releaseX-trX xml.dom.Document.createElementNSr(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createElementNSX-trX"socketserver.RequestHandler.finishr(jjXUhttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.finishX-trX-distutils.ccompiler.CCompiler.link_executabler(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_executableX-trXset.popr(jjX6http://docs.python.org/3/library/stdtypes.html#set.popX-trX%asyncio.BaseEventLoop.run_in_executorr(jjX]http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_in_executorX-trX&unittest.TestResult.addExpectedFailurer(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addExpectedFailureX-trX'ssl.SSLContext.set_default_verify_pathsr(jjXQhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_default_verify_pathsX-trXsched.scheduler.emptyr(jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.emptyX-trXobject.__rsub__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rsub__X-trX&email.policy.Policy.header_fetch_parser(jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_fetch_parseX-trXpickle.Pickler.dumpr(jjX@http://docs.python.org/3/library/pickle.html#pickle.Pickler.dumpX-trX%xml.sax.xmlreader.XMLReader.setLocaler(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setLocaleX-trX!logging.Formatter.formatExceptionr(jjXOhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatExceptionX-trX importlib.abc.Loader.load_moduler(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.load_moduleX-trXcurses.textpad.Textbox.gatherr(jjXJhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.gatherX-trX concurrent.futures.Future.resultr(jjXYhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.resultX-trXmemoryview.tolistr(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.tolistX-trXftplib.FTP.abortr(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.abortX-trX-distutils.ccompiler.CCompiler.set_executablesr(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_executablesX-trXchunk.Chunk.readr(jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.readX-trXobject.__int__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__int__X-trXcurses.window.immedokr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.immedokX-trX-distutils.ccompiler.CCompiler.add_link_objectr(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_link_objectX-trXmailbox.MHMessage.get_sequencesr(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.get_sequencesX-trXmailbox.Mailbox.iterkeysr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iterkeysX-trXsqlite3.Cursor.fetchallr(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchallX-trXmailbox.Mailbox.flushr(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.flushX-trXmailbox.Mailbox.getr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.getX-trX.distutils.ccompiler.CCompiler.set_link_objectsr(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_link_objectsX-trXprofile.Profile.runcallr(jjXEhttp://docs.python.org/3/library/profile.html#profile.Profile.runcallX-trXimaplib.IMAP4.expunger(jjXChttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.expungeX-trXselectors.BaseSelector.closer(jjXLhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.closeX-trX(wsgiref.simple_server.WSGIServer.set_appr(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServer.set_appX-trXmsilib.Record.GetFieldCountr(jjXHhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetFieldCountX-trXselectors.KqueueSelector.filenor(jjXOhttp://docs.python.org/3/library/selectors.html#selectors.KqueueSelector.filenoX-trXdecimal.Decimal.logical_orr(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_orX-trXtrace.CoverageResults.updater(jjXHhttp://docs.python.org/3/library/trace.html#trace.CoverageResults.updateX-trXemail.message.Message.as_stringr(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.as_stringX-trXarray.array.fromunicoder(jjXChttp://docs.python.org/3/library/array.html#array.array.fromunicodeX-trX$xml.sax.handler.ErrorHandler.warningr(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.warningX-tr Xsocket.socket.bindr (jjX?http://docs.python.org/3/library/socket.html#socket.socket.bindX-tr X$xml.dom.Element.getElementsByTagNamer (jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getElementsByTagNameX-tr Xcurses.window.touchliner(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.touchlineX-trX'unittest.TestLoader.loadTestsFromModuler(jjXVhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromModuleX-trXmsilib.Directory.add_filer(jjXFhttp://docs.python.org/3/library/msilib.html#msilib.Directory.add_fileX-trXformatter.writer.new_spacingr(jjXLhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_spacingX-trX3xml.parsers.expat.xmlparser.EndNamespaceDeclHandlerr(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndNamespaceDeclHandlerX-trXobject.__abs__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__abs__X-trXreprlib.Repr.reprr(jjX?http://docs.python.org/3/library/reprlib.html#reprlib.Repr.reprX-trX!http.cookies.BaseCookie.js_outputr(jjXThttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.js_outputX-trXpipes.Template.appendr(jjXAhttp://docs.python.org/3/library/pipes.html#pipes.Template.appendX-trXdecimal.Context.to_sci_stringr (jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_sci_stringX-tr!Xcurses.panel.Panel.hiddenr"(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.hiddenX-tr#X&xml.sax.xmlreader.XMLReader.getFeaturer$(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getFeatureX-tr%X#asyncio.BaseProtocol.resume_writingr&(jjXZhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.resume_writingX-tr'Xmsilib.Feature.set_currentr((jjXGhttp://docs.python.org/3/library/msilib.html#msilib.Feature.set_currentX-tr)Xaifc.aifc.getmarkersr*(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.getmarkersX-tr+Xasyncio.WriteTransport.abortr,(jjXShttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.abortX-tr-X#xml.etree.ElementTree.Element.clearr.(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.clearX-tr/X"http.client.HTTPConnection.requestr0(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.requestX-tr1Xpathlib.PurePath.is_absoluter2(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.is_absoluteX-tr3Ximaplib.IMAP4.listr4(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.listX-tr5Xdecimal.Context.quantizer6(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.quantizeX-tr7Xsocket.socket.getsockoptr8(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.getsockoptX-tr9X bytes.findr:(jjX9http://docs.python.org/3/library/stdtypes.html#bytes.findX-tr;Xobject.__complex__r<(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__complex__X-tr=Xdecimal.Decimal.conjugater>(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.conjugateX-tr?Xpprint.PrettyPrinter.isreadabler@(jjXLhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isreadableX-trAX-distutils.ccompiler.CCompiler.link_shared_librB(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_shared_libX-trCXmailbox.Mailbox.keysrD(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.keysX-trEXobject.__mod__rF(jjX@http://docs.python.org/3/reference/datamodel.html#object.__mod__X-trGX-xml.parsers.expat.xmlparser.EntityDeclHandlerrH(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EntityDeclHandlerX-trIX)multiprocessing.managers.SyncManager.listrJ(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.listX-trKXdatetime.datetime.daterL(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dateX-trMXcodecs.StreamReader.resetrN(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.resetX-trOXemail.charset.Charset.__ne__rP(jjXPhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__ne__X-trQXemail.parser.BytesParser.parserR(jjXQhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesParser.parseX-trSXlogging.Logger.getChildrT(jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.getChildX-trUXtarfile.TarFile.getnamesrV(jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getnamesX-trWXdecimal.Context.logical_andrX(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_andX-trYX!urllib.request.Request.add_headerrZ(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.add_headerX-tr[Xgenerator.sendr\(jjXBhttp://docs.python.org/3/reference/expressions.html#generator.sendX-tr]Xsymtable.SymbolTable.has_execr^(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_execX-tr_Xtrace.Trace.runfuncr`(jjX?http://docs.python.org/3/library/trace.html#trace.Trace.runfuncX-traX*xml.etree.ElementTree.ElementTree.findtextrb(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findtextX-trcXtarfile.TarInfo.ischrrd(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.ischrX-treXio.RawIOBase.readintorf(jjX>http://docs.python.org/3/library/io.html#io.RawIOBase.readintoX-trgX$logging.handlers.SysLogHandler.closerh(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.closeX-triX*http.cookiejar.CookiePolicy.path_return_okrj(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.path_return_okX-trkX.distutils.ccompiler.CCompiler.set_include_dirsrl(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_include_dirsX-trmXsmtplib.SMTP.helorn(jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.heloX-troX'urllib.request.BaseHandler.default_openrp(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.default_openX-trqX$calendar.HTMLCalendar.formatyearpagerr(jjXShttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearpageX-trsXstring.Formatter.convert_fieldrt(jjXKhttp://docs.python.org/3/library/string.html#string.Formatter.convert_fieldX-truXdecimal.Context.min_magrv(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.min_magX-trwXmultiprocessing.Process.startrx(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.startX-tryXxdrlib.Unpacker.unpack_opaquerz(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_opaqueX-tr{X xml.dom.Element.getAttributeNoder|(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNodeX-tr}X!curses.textpad.Textbox.do_commandr~(jjXNhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.do_commandX-trXimaplib.IMAP4.setquotar(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setquotaX-trXio.BufferedIOBase.read1r(jjX@http://docs.python.org/3/library/io.html#io.BufferedIOBase.read1X-trXsmtplib.SMTP.verifyr(jjXAhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.verifyX-trXmmap.mmap.mover(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.moveX-trXdbm.gnu.gdbm.reorganizer(jjXAhttp://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.reorganizeX-trXmailbox.Maildir.addr(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.addX-trXio.BytesIO.getbufferr(jjX=http://docs.python.org/3/library/io.html#io.BytesIO.getbufferX-trXthreading.Timer.cancelr(jjXFhttp://docs.python.org/3/library/threading.html#threading.Timer.cancelX-trXmultiprocessing.Queue.qsizer(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.qsizeX-trX"email.headerregistry.Group.__str__r(jjX]http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.__str__X-trX)logging.handlers.RotatingFileHandler.emitr(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler.emitX-trXimaplib.IMAP4.namespacer(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.namespaceX-trX/logging.handlers.NTEventLogHandler.getMessageIDr(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getMessageIDX-trX set.updater(jjX9http://docs.python.org/3/library/stdtypes.html#set.updateX-trXcurses.window.derwinr(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.derwinX-trXdecimal.Context.is_nanr(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_nanX-trXpathlib.Path.ownerr(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.ownerX-trXftplib.FTP_TLS.cccr(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.cccX-trXxmlrpc.client.Binary.decoder(jjXOhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.decodeX-trXcurses.window.bkgdsetr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.bkgdsetX-trXdecimal.Context.compare_totalr(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_totalX-trXpprint.PrettyPrinter.pprintr(jjXHhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pprintX-trXobject.__getattribute__r(jjXIhttp://docs.python.org/3/reference/datamodel.html#object.__getattribute__X-trXmailbox.MMDFMessage.get_flagsr(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_flagsX-trX"unittest.mock.Mock._get_child_mockr(jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock._get_child_mockX-trXasyncio.Task.print_stackr(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.print_stackX-trX2asyncio.BaseSubprocessTransport.get_pipe_transportr(jjXihttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_pipe_transportX-trX#smtplib.SMTP.ehlo_or_helo_if_neededr(jjXQhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlo_or_helo_if_neededX-trXthreading.Semaphore.releaser(jjXKhttp://docs.python.org/3/library/threading.html#threading.Semaphore.releaseX-trX bytes.isalphar(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.isalphaX-trX!unittest.mock.Mock.configure_mockr(jjXUhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.configure_mockX-trXformatter.formatter.push_marginr(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_marginX-trXobject.__delete__r(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__delete__X-trX+email.message.EmailMessage.iter_attachmentsr(jjXfhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.iter_attachmentsX-trXpickle.Unpickler.find_classr(jjXHhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.find_classX-trX"formatter.formatter.add_line_breakr(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_line_breakX-trXmailbox.mboxMessage.add_flagr(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.add_flagX-trXcontextmanager.__enter__r(jjXGhttp://docs.python.org/3/library/stdtypes.html#contextmanager.__enter__X-trX-multiprocessing.managers.BaseManager.shutdownr(jjXchttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.shutdownX-trXobject.__invert__r(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__invert__X-trXmailbox.Babyl.get_labelsr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_labelsX-trX"argparse.ArgumentParser.print_helpr(jjXQhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_helpX-trXqueue.Queue.emptyr(jjX=http://docs.python.org/3/library/queue.html#queue.Queue.emptyX-trXemail.header.Header.__eq__r(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.__eq__X-trX pdb.Pdb.runr(jjX5http://docs.python.org/3/library/pdb.html#pdb.Pdb.runX-trX"distutils.ccompiler.CCompiler.linkr(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.linkX-trXobject.__bool__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__bool__X-trXdbm.gnu.gdbm.syncr(jjX;http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.syncX-trXlogging.NullHandler.createLockr(jjXUhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.createLockX-trX'importlib.abc.InspectLoader.exec_moduler(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.exec_moduleX-trXmimetypes.MimeTypes.readfpr(jjXJhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readfpX-trX8xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_namer(jjXlhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_nameX-trXdatetime.datetime.timestampr(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timestampX-trX!configparser.ConfigParser.optionsr(jjXThttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionsX-trXssl.SSLContext.set_ecdh_curver(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ecdh_curveX-trXzipfile.ZipFile.getinfor(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.getinfoX-trX tkinter.ttk.Style.element_creater(jjXRhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_createX-trXstruct.Struct.unpack_fromr(jjXFhttp://docs.python.org/3/library/struct.html#struct.Struct.unpack_fromX-trX unittest.TestResult.startTestRunr(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.startTestRunX-trX$xml.dom.pulldom.DOMEventStream.resetr(jjXZhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.resetX-trXtarfile.TarFile.nextr(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.nextX-trX re.match.spanr(jjX6http://docs.python.org/3/library/re.html#re.match.spanX-trXlogging.Logger.makeRecordr(jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.makeRecordX-trXimaplib.IMAP4.partialr(jjXChttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.partialX-trXbytearray.zfillr(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.zfillX-trXBxmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functionsr(jjXvhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functionsX-trXpstats.Stats.print_calleesr(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_calleesX-trX>urllib.request.AbstractDigestAuthHandler.http_error_auth_reqedr(jjXshttp://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandler.http_error_auth_reqedX-trXselect.epoll.closer(jjX?http://docs.python.org/3/library/select.html#select.epoll.closeX-tr Xbdb.Bdb.canonicr (jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.canonicX-tr X*multiprocessing.managers.SyncManager.Eventr (jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.EventX-tr X.asyncio.WriteTransport.get_write_buffer_limitsr(jjXehttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_limitsX-trXobject.__rxor__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rxor__X-trX6http.cookiejar.DefaultCookiePolicy.set_blocked_domainsr(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.set_blocked_domainsX-trXpathlib.Path.resolver(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.resolveX-trXtkinter.tix.tixCommand.tix_cgetr(jjXQhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_cgetX-trX modulefinder.ModuleFinder.reportr(jjXShttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.reportX-trX%logging.handlers.QueueHandler.preparer(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.prepareX-trX.multiprocessing.managers.SyncManager.Conditionr(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ConditionX-trXtarfile.TarFile.listr(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.listX-trX.xml.sax.xmlreader.AttributesNS.getValueByQNamer (jjXchttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getValueByQNameX-tr!Xio.IOBase.closer"(jjX8http://docs.python.org/3/library/io.html#io.IOBase.closeX-tr#X bytes.decoder$(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.decodeX-tr%Xlogging.Handler.flushr&(jjXChttp://docs.python.org/3/library/logging.html#logging.Handler.flushX-tr'Xftplib.FTP.quitr((jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.quitX-tr)X)xml.sax.xmlreader.XMLReader.setDTDHandlerr*(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setDTDHandlerX-tr+Xdifflib.SequenceMatcher.ratior,(jjXKhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.ratioX-tr-Xasyncio.Condition.notify_allr.(jjXOhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.notify_allX-tr/X(importlib.abc.MetaPathFinder.find_moduler0(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.find_moduleX-tr1Xpathlib.Path.chmodr2(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.chmodX-tr3Xformatter.formatter.pop_styler4(jjXMhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_styleX-tr5X bytes.lstripr6(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.lstripX-tr7Xdecimal.Context.normalizer8(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.normalizeX-tr9Xlogging.NullHandler.handler:(jjXQhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.handleX-tr;X$logging.handlers.QueueListener.startr<(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.startX-tr=Xmsilib.Control.eventr>(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.Control.eventX-tr?X$http.cookies.BaseCookie.value_decoder@(jjXWhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.value_decodeX-trAX#mimetypes.MimeTypes.guess_extensionrB(jjXShttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_extensionX-trCXdecimal.Context.divmodrD(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.divmodX-trEXbdb.Bdb.set_tracerF(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_traceX-trGX'xml.sax.handler.DTDHandler.notationDeclrH(jjX]http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.notationDeclX-trIX)urllib.request.BaseHandler.http_error_nnnrJ(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_nnnX-trKX$email.headerregistry.Address.__str__rL(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.__str__X-trMXbytes.translaterN(jjX>http://docs.python.org/3/library/stdtypes.html#bytes.translateX-trOXaifc.aifc.rewindrP(jjX;http://docs.python.org/3/library/aifc.html#aifc.aifc.rewindX-trQXzipfile.PyZipFile.writepyrR(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.PyZipFile.writepyX-trSX$doctest.DocTestRunner.report_failurerT(jjXRhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_failureX-trUXimaplib.IMAP4.statusrV(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.statusX-trWXpprint.PrettyPrinter.formatrX(jjXHhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.formatX-trYXtkinter.ttk.Treeview.existsrZ(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.existsX-tr[Xobject.__pow__r\(jjX@http://docs.python.org/3/reference/datamodel.html#object.__pow__X-tr]Ximaplib.IMAP4.xatomr^(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.xatomX-tr_Xlogging.Handler.closer`(jjXChttp://docs.python.org/3/library/logging.html#logging.Handler.closeX-traXtarfile.TarFile.gettarinforb(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.gettarinfoX-trcX(distutils.ccompiler.CCompiler.preprocessrd(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.preprocessX-treX4xmlrpc.server.CGIXMLRPCRequestHandler.handle_requestrf(jjXhhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.handle_requestX-trgX(logging.handlers.MemoryHandler.setTargetrh(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.setTargetX-triXcodecs.StreamReader.readlinerj(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readlineX-trkX0http.server.BaseHTTPRequestHandler.send_responserl(jjXbhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_responseX-trmXbdb.Bdb.clear_breakrn(jjX=http://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_breakX-troX!calendar.TextCalendar.formatmonthrp(jjXPhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatmonthX-trqX ssl.SSLContext.set_npn_protocolsrr(jjXJhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_npn_protocolsX-trsXemail.parser.Parser.parsert(jjXLhttp://docs.python.org/3/library/email.parser.html#email.parser.Parser.parseX-truX#code.InteractiveInterpreter.runcoderv(jjXNhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.runcodeX-trwX!urllib.request.Request.has_headerrx(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.has_headerX-tryXdatetime.date.toordinalrz(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.toordinalX-tr{X re.match.endr|(jjX5http://docs.python.org/3/library/re.html#re.match.endX-tr}X"xml.etree.ElementTree.Element.iterr~(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iterX-trXnntplib.NNTP.listr(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.listX-trXcurses.panel.Panel.bottomr(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.bottomX-trXmailbox.BabylMessage.set_labelsr(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_labelsX-trXsocket.socket.connect_exr(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.connect_exX-trXssl.SSLContext.load_dh_paramsr(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_dh_paramsX-trXbdb.Bdb.set_nextr(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_nextX-trXpoplib.POP3.uidlr(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.uidlX-trX0importlib.machinery.SourceFileLoader.load_moduler(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.load_moduleX-trX#concurrent.futures.Future.exceptionr(jjX\http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.exceptionX-trXobject.__pos__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__pos__X-trX!multiprocessing.Process.terminater(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.terminateX-trX0xml.sax.xmlreader.InputSource.getCharacterStreamr(jjXehttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getCharacterStreamX-trX$urllib.request.Request.remove_headerr(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.remove_headerX-trX http.client.HTTPConnection.closer(jjXRhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.closeX-trXmsilib.Dialog.bitmapr(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.bitmapX-trXftplib.FTP.retrlinesr(jjXAhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.retrlinesX-trXctypes._CData.from_buffer_copyr(jjXKhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_buffer_copyX-trXasyncio.Queue.getr(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.getX-trXunittest.TestCase.addCleanupr(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.addCleanupX-trX difflib.SequenceMatcher.set_seq1r(jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seq1X-trXselect.epoll.unregisterr(jjXDhttp://docs.python.org/3/library/select.html#select.epoll.unregisterX-trXthreading.Barrier.waitr(jjXFhttp://docs.python.org/3/library/threading.html#threading.Barrier.waitX-trXdistutils.cmd.Command.runr(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.runX-trXtkinter.ttk.Notebook.tabsr(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabsX-trX dict.clearr(jjX9http://docs.python.org/3/library/stdtypes.html#dict.clearX-trX urllib.request.BaseHandler.closer(jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.closeX-trXunittest.TestCase.subTestr(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.subTestX-trX,urllib.robotparser.RobotFileParser.can_fetchr(jjXehttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.can_fetchX-trXlzma.LZMAFile.peekr(jjX=http://docs.python.org/3/library/lzma.html#lzma.LZMAFile.peekX-trXbytearray.isupperr(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.isupperX-trXmailbox.MMDFMessage.add_flagr(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.add_flagX-trX!tkinter.ttk.Treeview.set_childrenr(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.set_childrenX-trXxdrlib.Packer.pack_listr(jjXDhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_listX-trXwave.Wave_write.setparamsr(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setparamsX-trXmailbox.mbox.get_filer(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_fileX-trX"unittest.TestCase.assertCountEqualr(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertCountEqualX-trXzipfile.ZipFile.setpasswordr(jjXIhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.setpasswordX-trX gettext.GNUTranslations.lgettextr(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.lgettextX-trX!tkinter.ttk.Treeview.get_childrenr(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.get_childrenX-trXdatetime.date.timetupler(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.timetupleX-trXarray.array.tobytesr(jjX?http://docs.python.org/3/library/array.html#array.array.tobytesX-trXtelnetlib.Telnet.filenor(jjXGhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.filenoX-trXformatter.writer.send_paragraphr(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_paragraphX-trX difflib.SequenceMatcher.set_seqsr(jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seqsX-trXobject.__exit__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__exit__X-trXdecimal.Context.clear_flagsr(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.clear_flagsX-trXtkinter.ttk.Treeview.setr(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.setX-trXmsilib.Record.SetStringr(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetStringX-trXcurses.window.insertlnr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.insertlnX-trX,http.server.BaseHTTPRequestHandler.log_errorr(jjX^http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_errorX-trXssl.SSLContext.wrap_socketr(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socketX-trX#ossaudiodev.oss_mixer_device.filenor(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.filenoX-trXtkinter.ttk.Treeview.seer(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.seeX-trXnetrc.netrc.__repr__r(jjX@http://docs.python.org/3/library/netrc.html#netrc.netrc.__repr__X-trXmailbox.MH.remove_folderr(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.remove_folderX-trX bytes.rstripr(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.rstripX-trXprofile.Profile.runctxr(jjXDhttp://docs.python.org/3/library/profile.html#profile.Profile.runctxX-trXdecimal.Decimal.compare_signalr(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_signalX-trXlogging.NullHandler.emitr(jjXOhttp://docs.python.org/3/library/logging.handlers.html#logging.NullHandler.emitX-trXwave.Wave_write.setnchannelsr(jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setnchannelsX-trX,xml.sax.handler.ContentHandler.skippedEntityr(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.skippedEntityX-trXemail.message.Message.__str__r(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.__str__X-trX'ossaudiodev.oss_mixer_device.set_recsrcr(jjXYhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.set_recsrcX-trXabc.ABCMeta.__subclasshook__r(jjXFhttp://docs.python.org/3/library/abc.html#abc.ABCMeta.__subclasshook__X-trX)xml.sax.xmlreader.InputSource.setEncodingr(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setEncodingX-trX&distutils.cmd.Command.finalize_optionsr(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.finalize_optionsX-trX#xml.parsers.expat.xmlparser.SetBaser(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetBaseX-trXasyncio.Protocol.data_receivedr(jjXUhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.Protocol.data_receivedX-trX optparse.OptionParser.has_optionr(jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.has_optionX-tr X-urllib.request.BaseHandler.http_error_defaultr (jjXbhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_defaultX-tr Xstr.joinr (jjX7http://docs.python.org/3/library/stdtypes.html#str.joinX-tr Xre.regex.finditerr(jjX:http://docs.python.org/3/library/re.html#re.regex.finditerX-trX$asyncio.ReadTransport.resume_readingr(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransport.resume_readingX-trX!urllib.request.Request.get_headerr(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_headerX-trX.optparse.OptionParser.enable_interspersed_argsr(jjX]http://docs.python.org/3/library/optparse.html#optparse.OptionParser.enable_interspersed_argsX-trX0xml.parsers.expat.xmlparser.DefaultHandlerExpandr(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.DefaultHandlerExpandX-trXcodecs.StreamReader.readlinesr(jjXJhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readlinesX-trXnntplib.NNTP.overr(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.overX-trX$formatter.formatter.assert_line_datar(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.assert_line_dataX-trXemail.header.Header.__ne__r(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.__ne__X-trXmailbox.MH.add_folderr (jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MH.add_folderX-tr!Xgenerator.__next__r"(jjXFhttp://docs.python.org/3/reference/expressions.html#generator.__next__X-tr#Xpathlib.Path.openr$(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.openX-tr%X(asyncio.BaseEventLoop.run_until_completer&(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_until_completeX-tr'Xtelnetlib.Telnet.set_debuglevelr((jjXOhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.set_debuglevelX-tr)X3wsgiref.simple_server.WSGIRequestHandler.get_stderrr*(jjXahttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.get_stderrX-tr+Xmsilib.Database.OpenViewr,(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Database.OpenViewX-tr-Xunittest.TestCase.assertTruer.(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertTrueX-tr/X)xml.etree.ElementTree.XMLPullParser.closer0(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.closeX-tr1Xbytearray.countr2(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.countX-tr3X"string.Formatter.check_unused_argsr4(jjXOhttp://docs.python.org/3/library/string.html#string.Formatter.check_unused_argsX-tr5Xdatetime.tzinfo.dstr6(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.dstX-tr7X%html.parser.HTMLParser.handle_charrefr8(jjXWhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_charrefX-tr9Xpathlib.Path.existsr:(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.existsX-tr;Xarray.array.tofiler<(jjX>http://docs.python.org/3/library/array.html#array.array.tofileX-tr=X*urllib.robotparser.RobotFileParser.set_urlr>(jjXchttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.set_urlX-tr?X!xml.sax.xmlreader.XMLReader.parser@(jjXVhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.parseX-trAX'email.policy.Policy.header_source_parserB(jjXZhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_source_parseX-trCXwave.Wave_read.getsampwidthrD(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getsampwidthX-trEXstr.capitalizerF(jjX=http://docs.python.org/3/library/stdtypes.html#str.capitalizeX-trGXlogging.Logger.exceptionrH(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.exceptionX-trIXio.RawIOBase.writerJ(jjX;http://docs.python.org/3/library/io.html#io.RawIOBase.writeX-trKX!distutils.text_file.TextFile.openrL(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.openX-trMX!code.InteractiveConsole.raw_inputrN(jjXLhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.raw_inputX-trOXnntplib.NNTP.grouprP(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.groupX-trQXaifc.aifc.closerR(jjX:http://docs.python.org/3/library/aifc.html#aifc.aifc.closeX-trSXmailbox.BabylMessage.get_labelsrT(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_labelsX-trUXwave.Wave_read.tellrV(jjX>http://docs.python.org/3/library/wave.html#wave.Wave_read.tellX-trWX!unittest.TestCase.assertDictEqualrX(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertDictEqualX-trYXconcurrent.futures.Future.donerZ(jjXWhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.doneX-tr[X/email.contentmanager.ContentManager.set_contentr\(jjXjhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.set_contentX-tr]X!unittest.TestCase.assertListEqualr^(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertListEqualX-tr_Xhtml.parser.HTMLParser.getposr`(jjXOhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.getposX-traXasyncio.StreamReader.exceptionrb(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.exceptionX-trcXzlib.Decompress.flushrd(jjX@http://docs.python.org/3/library/zlib.html#zlib.Decompress.flushX-treXclass.__subclasscheck__rf(jjXIhttp://docs.python.org/3/reference/datamodel.html#class.__subclasscheck__X-trgXasyncio.Queue.fullrh(jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.fullX-triXftplib.FTP.closerj(jjX=http://docs.python.org/3/library/ftplib.html#ftplib.FTP.closeX-trkXtkinter.ttk.Progressbar.stoprl(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stopX-trmXlogging.StreamHandler.emitrn(jjXQhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.emitX-troX'sqlite3.Connection.set_progress_handlerrp(jjXUhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_progress_handlerX-trqX"urllib.request.FTPHandler.ftp_openrr(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandler.ftp_openX-trsXcurses.panel.Panel.windowrt(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.windowX-truXdatetime.datetime.isocalendarrv(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isocalendarX-trwX mailbox.BabylMessage.set_visiblerx(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_visibleX-tryX(mimetypes.MimeTypes.guess_all_extensionsrz(jjXXhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_all_extensionsX-tr{Xdecimal.Decimal.to_integralr|(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integralX-tr}X+xmlrpc.client.ServerProxy.system.methodHelpr~(jjX_http://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodHelpX-trXcurses.window.mvwinr(jjX@http://docs.python.org/3/library/curses.html#curses.window.mvwinX-trXio.RawIOBase.readr(jjX:http://docs.python.org/3/library/io.html#io.RawIOBase.readX-trXsmtplib.SMTP.set_debuglevelr(jjXIhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debuglevelX-trX)mimetypes.MimeTypes.read_windows_registryr(jjXYhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.read_windows_registryX-trX#ossaudiodev.oss_audio_device.filenor(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.filenoX-trXmsilib.Record.GetStringr(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetStringX-trXcollections.deque.extendr(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.extendX-trXbz2.BZ2Compressor.compressr(jjXDhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.compressX-trXselect.poll.unregisterr(jjXChttp://docs.python.org/3/library/select.html#select.poll.unregisterX-trXobject.__call__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__call__X-trX"calendar.Calendar.yeardayscalendarr(jjXQhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardayscalendarX-trXstring.Template.substituter(jjXGhttp://docs.python.org/3/library/string.html#string.Template.substituteX-trXdatetime.datetime.isoweekdayr(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isoweekdayX-trX0distutils.ccompiler.CCompiler.link_shared_objectr(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.link_shared_objectX-trXemail.message.Message.keysr(jjXNhttp://docs.python.org/3/library/email.message.html#email.message.Message.keysX-trX email.message.Message.add_headerr(jjXThttp://docs.python.org/3/library/email.message.html#email.message.Message.add_headerX-trXimaplib.IMAP4.proxyauthr(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.proxyauthX-trXformatter.writer.new_fontr(jjXIhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_fontX-trXipaddress.IPv4Network.subnetsr(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.subnetsX-trX1urllib.request.HTTPRedirectHandler.http_error_303r(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_303X-trXxdrlib.Packer.pack_floatr(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_floatX-trXselect.kqueue.filenor(jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.filenoX-trXhmac.HMAC.hexdigestr(jjX>http://docs.python.org/3/library/hmac.html#hmac.HMAC.hexdigestX-trXaifc.aifc.setparamsr(jjX>http://docs.python.org/3/library/aifc.html#aifc.aifc.setparamsX-trX1urllib.request.HTTPRedirectHandler.http_error_301r(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.http_error_301X-trXsqlite3.Cursor.fetchoner(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchoneX-trXtkinter.ttk.Notebook.selectr(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.selectX-trX4xml.sax.handler.ContentHandler.processingInstructionr(jjXjhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.processingInstructionX-trXdecimal.Decimal.next_plusr(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_plusX-trXtarfile.TarFile.extractfiler(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractfileX-trXstring.Template.safe_substituter(jjXLhttp://docs.python.org/3/library/string.html#string.Template.safe_substituteX-trX+ossaudiodev.oss_mixer_device.stereocontrolsr(jjX]http://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.stereocontrolsX-trXobject.__imul__r(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__imul__X-trXimaplib.IMAP4.sortr(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.sortX-trXdecimal.Context.is_normalr(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_normalX-trX"asyncio.BaseProtocol.pause_writingr(jjXYhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.pause_writingX-trXcurses.window.clearokr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.clearokX-trX!msilib.SummaryInformation.Persistr(jjXNhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.PersistX-trX*ossaudiodev.oss_audio_device.setparametersr(jjX\http://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.setparametersX-trXpathlib.Path.groupr(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.groupX-trX$tkinter.tix.tixCommand.tix_getbitmapr(jjXVhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmapX-trXcurses.window.noutrefreshr(jjXFhttp://docs.python.org/3/library/curses.html#curses.window.noutrefreshX-trXxml.dom.Element.getAttributer(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeX-trXdatetime.timezone.dstr(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.timezone.dstX-trXasynchat.fifo.firstr(jjXBhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.firstX-trXcontextmanager.__exit__r(jjXFhttp://docs.python.org/3/library/stdtypes.html#contextmanager.__exit__X-trXshlex.shlex.read_tokenr(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.read_tokenX-trXqueue.Queue.task_doner(jjXAhttp://docs.python.org/3/library/queue.html#queue.Queue.task_doneX-trXmsilib.Control.mappingr(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Control.mappingX-trXnumbers.Complex.conjugater(jjXGhttp://docs.python.org/3/library/numbers.html#numbers.Complex.conjugateX-trX bytes.indexr(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.indexX-trX$asynchat.async_chat.found_terminatorr(jjXShttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.found_terminatorX-trXcurses.window.redrawlnr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.redrawlnX-trX"ossaudiodev.oss_audio_device.speedr(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.speedX-trXstruct.Struct.pack_intor(jjXDhttp://docs.python.org/3/library/struct.html#struct.Struct.pack_intoX-trX#html.parser.HTMLParser.unknown_declr(jjXUhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.unknown_declX-trXsymtable.Symbol.is_parameterr(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_parameterX-trX$calendar.Calendar.monthdays2calendarr(jjXShttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdays2calendarX-trXpathlib.PurePath.as_posixr(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.as_posixX-trX unittest.TestCase.assertNotRegexr(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotRegexX-trX&multiprocessing.pool.AsyncResult.readyr(jjX\http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.readyX-trXcmd.Cmd.cmdloopr(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdloopX-trXsunau.AU_read.getmarkr(jjXAhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getmarkX-trXwave.Wave_read.getmarkr(jjXAhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getmarkX-trXcurses.window.delchr(jjX@http://docs.python.org/3/library/curses.html#curses.window.delchX-trX,xml.sax.handler.ContentHandler.startDocumentr(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startDocumentX-trX float.hexr(jjX8http://docs.python.org/3/library/stdtypes.html#float.hexX-trX#logging.handlers.QueueListener.stopr(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.stopX-trXmailbox.Maildir.updater(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.updateX-tr X'wsgiref.handlers.BaseHandler.get_schemer (jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_schemeX-tr X*multiprocessing.managers.BaseManager.startr (jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.startX-tr X&ipaddress.IPv4Network.compare_networksr(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compare_networksX-trXmailbox.Maildir.add_folderr(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add_folderX-trX%urllib.request.URLopener.open_unknownr(jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.open_unknownX-trXxdrlib.Unpacker.set_positionr(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.set_positionX-trX*distutils.ccompiler.CCompiler.has_functionr(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.has_functionX-trXstring.Formatter.get_valuer(jjXGhttp://docs.python.org/3/library/string.html#string.Formatter.get_valueX-trX#configparser.ConfigParser.read_filer(jjXVhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_fileX-trXimaplib.IMAP4.deleter(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.deleteX-trXcurses.window.idlokr(jjX@http://docs.python.org/3/library/curses.html#curses.window.idlokX-trXdatetime.datetime.strftimer (jjXIhttp://docs.python.org/3/library/datetime.html#datetime.datetime.strftimeX-tr!Xasyncio.Task.get_stackr"(jjXIhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.get_stackX-tr#X"configparser.ConfigParser.getfloatr$(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getfloatX-tr%X!ossaudiodev.oss_audio_device.readr&(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.readX-tr'Xbdb.Bdb.break_herer((jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.break_hereX-tr)Xdecimal.Decimal.next_minusr*(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_minusX-tr+Xtkinter.ttk.Notebook.identifyr,(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.identifyX-tr-Xlogging.Logger.errorr.(jjXBhttp://docs.python.org/3/library/logging.html#logging.Logger.errorX-tr/Xssl.SSLSocket.do_handshaker0(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.do_handshakeX-tr1Ximaplib.IMAP4.storer2(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.storeX-tr3Xformatter.writer.new_alignmentr4(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_alignmentX-tr5X"doctest.OutputChecker.check_outputr6(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.OutputChecker.check_outputX-tr7Xsymtable.Symbol.is_globalr8(jjXHhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_globalX-tr9X!email.message.Message.get_payloadr:(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_payloadX-tr;Xsmtplib.SMTP.loginr<(jjX@http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.loginX-tr=Xunittest.TestSuite.__iter__r>(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.__iter__X-tr?Ximaplib.IMAP4.renamer@(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.renameX-trAX)email.message.Message.get_content_charsetrB(jjX]http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_charsetX-trCX#urllib.request.OpenerDirector.errorrD(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.errorX-trEX*asyncio.BaseEventLoop.set_default_executorrF(jjXbhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_default_executorX-trGXsocket.socket.sharerH(jjX@http://docs.python.org/3/library/socket.html#socket.socket.shareX-trIXarray.array.fromfilerJ(jjX@http://docs.python.org/3/library/array.html#array.array.fromfileX-trKXdecimal.Decimal.is_finiterL(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_finiteX-trMXxdrlib.Unpacker.unpack_listrN(jjXHhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_listX-trOX+multiprocessing.pool.AsyncResult.successfulrP(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.successfulX-trQXasyncore.dispatcher.recvrR(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.recvX-trSX$logging.handlers.SocketHandler.closerT(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.closeX-trUXasyncio.BaseEventLoop.get_debugrV(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.get_debugX-trWX"formatter.formatter.push_alignmentrX(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_alignmentX-trYXpathlib.Path.mkdirrZ(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.mkdirX-tr[X unittest.TestCase.countTestCasesr\(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.countTestCasesX-tr]Xhttp.client.HTTPResponse.readr^(jjXOhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.readX-tr_Xtrace.Trace.runr`(jjX;http://docs.python.org/3/library/trace.html#trace.Trace.runX-traXmultiprocessing.SimpleQueue.putrb(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.putX-trcXmultiprocessing.Process.joinrd(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.joinX-treX bdb.Bdb.runrf(jjX5http://docs.python.org/3/library/bdb.html#bdb.Bdb.runX-trgXtkinter.ttk.Style.theme_namesrh(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_namesX-triXcurses.window.refreshrj(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.refreshX-trkXdecimal.Context.shiftrl(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.shiftX-trmX$distutils.ccompiler.CCompiler.mkpathrn(jjXShttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.mkpathX-troX"email.message.Message.get_unixfromrp(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_unixfromX-trqXxml.dom.Document.createCommentrr(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createCommentX-trsXsymtable.Symbol.is_freert(jjXFhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_freeX-truXctypes._CData.in_dllrv(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.in_dllX-trwXio.TextIOBase.seekrx(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.seekX-tryXxml.dom.Element.getAttributeNSrz(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNSX-tr{Xaifc.aifc.setframerater|(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setframerateX-tr}Xmsilib.Record.SetStreamr~(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetStreamX-trX!http.client.HTTPResponse.readintor(jjXShttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.readintoX-trXctypes._CData.from_bufferr(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_bufferX-trXcodecs.StreamWriter.resetr(jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.resetX-trX'urllib.robotparser.RobotFileParser.readr(jjX`http://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.readX-trXlogging.Handler.handler(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.handleX-trXasyncio.Condition.releaser(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.releaseX-trXftplib.FTP.set_pasvr(jjX@http://docs.python.org/3/library/ftplib.html#ftplib.FTP.set_pasvX-trXmemoryview.tobytesr(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.tobytesX-trXbdb.Bdb.get_breaksr(jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_breaksX-trX!xml.sax.SAXException.getExceptionr(jjXOhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getExceptionX-trX gettext.NullTranslations.installr(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.installX-trX str.stripr(jjX8http://docs.python.org/3/library/stdtypes.html#str.stripX-trXcurses.window.clrtoeolr(jjXChttp://docs.python.org/3/library/curses.html#curses.window.clrtoeolX-trXcalendar.Calendar.iterweekdaysr(jjXMhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.iterweekdaysX-trXdatetime.date.weekdayr(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.weekdayX-trX bytes.isalnumr(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.isalnumX-trX$email.generator.BytesGenerator.cloner(jjXZhttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.cloneX-trXasyncio.Condition.wait_forr(jjXMhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.wait_forX-trXtarfile.TarInfo.issymr(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.issymX-trXobject.__neg__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__neg__X-trXselect.epoll.filenor(jjX@http://docs.python.org/3/library/select.html#select.epoll.filenoX-trXobject.__ror__r(jjX@http://docs.python.org/3/reference/datamodel.html#object.__ror__X-trXwave.Wave_read.getparamsr(jjXChttp://docs.python.org/3/library/wave.html#wave.Wave_read.getparamsX-trXdecimal.Decimal.max_magr(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.max_magX-trX!importlib.abc.FileLoader.get_datar(jjXQhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.get_dataX-trXunittest.TestCase.setUpr(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.setUpX-trXcurses.window.timeoutr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.timeoutX-trX)http.client.HTTPConnection.set_debuglevelr(jjX[http://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.set_debuglevelX-trX+xml.sax.handler.ContentHandler.startElementr(jjXahttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElementX-trXsunau.AU_read.getsampwidthr(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getsampwidthX-trXsqlite3.Connection.commitr(jjXGhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.commitX-trX"xml.dom.Element.setAttributeNodeNSr(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNodeNSX-trX asyncio.BaseEventLoop.call_laterr(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_laterX-trXasyncio.Future.resultr(jjXHhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.resultX-trX"wsgiref.headers.Headers.add_headerr(jjXPhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headers.add_headerX-trXpoplib.POP3.apopr(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.apopX-trX bytes.isspacer(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.isspaceX-trX2importlib.machinery.ExtensionFileLoader.is_packager(jjXbhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.is_packageX-trXtimeit.Timer.repeatr(jjX@http://docs.python.org/3/library/timeit.html#timeit.Timer.repeatX-trXaifc.aifc.setsampwidthr(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setsampwidthX-trXmailbox.BabylMessage.add_labelr(jjXLhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.add_labelX-trXobject.__bytes__r(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__bytes__X-trXset.difference_updater(jjXDhttp://docs.python.org/3/library/stdtypes.html#set.difference_updateX-trXasyncio.BaseTransport.closer(jjXRhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransport.closeX-trXmailbox.Mailbox.remover(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.removeX-trX"codecs.IncrementalDecoder.setstater(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.setstateX-trX$test.support.EnvironmentVarGuard.setr(jjXOhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuard.setX-trX0distutils.ccompiler.CCompiler.library_dir_optionr(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_dir_optionX-trX4importlib.machinery.ExtensionFileLoader.get_filenamer(jjXdhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_filenameX-trXbdb.Bdb.user_liner(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_lineX-trX)importlib.abc.PathEntryFinder.find_moduler(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_moduleX-trX asyncio.StreamReader.readexactlyr(jjXUhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readexactlyX-trXsocket.socket.recvr(jjX?http://docs.python.org/3/library/socket.html#socket.socket.recvX-trX$asyncio.BaseSubprocessTransport.killr(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.killX-trXcurses.window.leaveokr(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.leaveokX-trXpathlib.Path.is_symlinkr(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_symlinkX-trXio.TextIOBase.detachr(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.detachX-trXmsilib.Dialog.textr(jjX?http://docs.python.org/3/library/msilib.html#msilib.Dialog.textX-trXnetrc.netrc.authenticatorsr(jjXFhttp://docs.python.org/3/library/netrc.html#netrc.netrc.authenticatorsX-trXpathlib.PurePath.joinpathr(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.joinpathX-trXcurses.window.boxr(jjX>http://docs.python.org/3/library/curses.html#curses.window.boxX-trX&xml.etree.ElementTree.Element.itertextr(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.itertextX-trXcmd.Cmd.postloopr(jjX:http://docs.python.org/3/library/cmd.html#cmd.Cmd.postloopX-trXasyncio.Queue.get_nowaitr(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.get_nowaitX-trXcodecs.Codec.encoder (jjX@http://docs.python.org/3/library/codecs.html#codecs.Codec.encodeX-tr Xstr.isprintabler (jjX>http://docs.python.org/3/library/stdtypes.html#str.isprintableX-tr Xdecimal.Decimal.maxr (jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.maxX-tr Xselect.poll.modifyr (jjX?http://docs.python.org/3/library/select.html#select.poll.modifyX-tr X!email.message.Message.set_payloadr (jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_payloadX-tr Xdatetime.datetime.toordinalr (jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.toordinalX-tr X*importlib.abc.InspectLoader.source_to_coder (jjXZhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.source_to_codeX-tr X4logging.handlers.TimedRotatingFileHandler.doRolloverr (jjXkhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler.doRolloverX-tr X zipimport.zipimporter.is_packager (jjXPhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.is_packageX-tr X$unittest.TestLoader.getTestCaseNamesr (jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.getTestCaseNamesX-tr Xstr.splitlinesr (jjX=http://docs.python.org/3/library/stdtypes.html#str.splitlinesX-tr Xprofile.Profile.create_statsr (jjXJhttp://docs.python.org/3/library/profile.html#profile.Profile.create_statsX-tr X)importlib.abc.PathEntryFinder.find_loaderr (jjXYhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_loaderX-tr X)xml.sax.xmlreader.XMLReader.getDTDHandlerr (jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getDTDHandlerX-tr Xlogging.Handler.__init__r (jjXFhttp://docs.python.org/3/library/logging.html#logging.Handler.__init__X-tr Xcodecs.IncrementalEncoder.resetr (jjXLhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.resetX-tr Xftplib.FTP.getwelcomer (jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.getwelcomeX-tr! Xasyncore.dispatcher.writabler" (jjXKhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.writableX-tr# Xobject.__getstate__r$ (jjX@http://docs.python.org/3/library/pickle.html#object.__getstate__X-tr% X)logging.handlers.HTTPHandler.mapLogRecordr& (jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandler.mapLogRecordX-tr' Xobject.__reduce_ex__r( (jjXAhttp://docs.python.org/3/library/pickle.html#object.__reduce_ex__X-tr) Xemail.policy.EmailPolicy.foldr* (jjXPhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.foldX-tr+ X!http.cookies.Morsel.isReservedKeyr, (jjXThttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.isReservedKeyX-tr- X5http.server.BaseHTTPRequestHandler.handle_one_requestr. (jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handle_one_requestX-tr/ Xmailbox.Mailbox.popr0 (jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popX-tr1 Xtkinter.ttk.Treeview.insertr2 (jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.insertX-tr3 Xqueue.Queue.putr4 (jjX;http://docs.python.org/3/library/queue.html#queue.Queue.putX-tr5 Xbytes.swapcaser6 (jjX=http://docs.python.org/3/library/stdtypes.html#bytes.swapcaseX-tr7 Xre.regex.fullmatchr8 (jjX;http://docs.python.org/3/library/re.html#re.regex.fullmatchX-tr9 X"xml.dom.Element.getAttributeNodeNSr: (jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getAttributeNodeNSX-tr; Xarray.array.insertr< (jjX>http://docs.python.org/3/library/array.html#array.array.insertX-tr= X&distutils.ccompiler.CCompiler.announcer> (jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.announceX-tr? X1http.cookiejar.DefaultCookiePolicy.is_not_allowedr@ (jjXfhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.is_not_allowedX-trA Xwave.Wave_write.setsampwidthrB (jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setsampwidthX-trC X"tkinter.ttk.Treeview.tag_configurerD (jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_configureX-trE Xdecimal.Context.same_quantumrF (jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.same_quantumX-trG X%importlib.abc.FileLoader.get_filenamerH (jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.get_filenameX-trI Xxdrlib.Unpacker.unpack_fopaquerJ (jjXKhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_fopaqueX-trK Xpstats.Stats.addrL (jjX>http://docs.python.org/3/library/profile.html#pstats.Stats.addX-trM Xcurses.panel.Panel.aboverN (jjXKhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.aboveX-trO X)decimal.Context.create_decimal_from_floatrP (jjXWhttp://docs.python.org/3/library/decimal.html#decimal.Context.create_decimal_from_floatX-trQ Xstruct.Struct.unpackrR (jjXAhttp://docs.python.org/3/library/struct.html#struct.Struct.unpackX-trS Xdecimal.Context.copy_signrT (jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_signX-trU X!http.cookiejar.FileCookieJar.saverV (jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.saveX-trW Xnntplib.NNTP.newgroupsrX (jjXDhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.newgroupsX-trY Xnntplib.NNTP.xoverrZ (jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xoverX-tr[ X.asyncio.AbstractEventLoopPolicy.new_event_loopr\ (jjXghttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.AbstractEventLoopPolicy.new_event_loopX-tr] Xftplib.FTP.mlsdr^ (jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.mlsdX-tr_ Xtkinter.ttk.Combobox.getr` (jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.getX-tra X%configparser.ConfigParser.has_sectionrb (jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.has_sectionX-trc Xobject.__mul__rd (jjX@http://docs.python.org/3/reference/datamodel.html#object.__mul__X-tre Xobject.__del__rf (jjX@http://docs.python.org/3/reference/datamodel.html#object.__del__X-trg X2http.cookiejar.DefaultCookiePolicy.blocked_domainsrh (jjXghttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.blocked_domainsX-tri Xmsilib.Record.GetIntegerrj (jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Record.GetIntegerX-trk Xsubprocess.Popen.killrl (jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.killX-trm X/importlib.abc.PathEntryFinder.invalidate_cachesrn (jjX_http://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.invalidate_cachesX-tro Xaifc.aifc.writeframesrp (jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.writeframesX-trq X"formatter.writer.send_flowing_datarr (jjXRhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_flowing_dataX-trs X4xml.parsers.expat.xmlparser.StartCdataSectionHandlerrt (jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartCdataSectionHandlerX-tru Xchunk.Chunk.seekrv (jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.seekX-trw Xmailbox.Maildir.get_folderrx (jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_folderX-try Xpathlib.PurePath.matchrz (jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.matchX-tr{ Xmultiprocessing.Queue.putr| (jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.putX-tr} Xreprlib.Repr.repr1r~ (jjX@http://docs.python.org/3/library/reprlib.html#reprlib.Repr.repr1X-tr Xpipes.Template.debugr (jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.debugX-tr Xfractions.Fraction.__ceil__r (jjXKhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__ceil__X-tr X+logging.handlers.DatagramHandler.makeSocketr (jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.makeSocketX-tr X'logging.handlers.NTEventLogHandler.emitr (jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.emitX-tr Xhttp.cookies.Morsel.setr (jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.setX-tr Xdecimal.Context.powerr (jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.powerX-tr Xtkinter.ttk.Treeview.selectionr (jjXPhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selectionX-tr Xsqlite3.Row.keysr (jjX>http://docs.python.org/3/library/sqlite3.html#sqlite3.Row.keysX-tr Xobject.__rshift__r (jjXChttp://docs.python.org/3/reference/datamodel.html#object.__rshift__X-tr Xnntplib.NNTP.quitr (jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.quitX-tr Xcontextlib.ExitStack.callbackr (jjXNhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.callbackX-tr X0telnetlib.Telnet.set_option_negotiation_callbackr (jjX`http://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.set_option_negotiation_callbackX-tr Xasyncore.dispatcher.readabler (jjXKhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.readableX-tr X%xml.sax.xmlreader.Locator.getPublicIdr (jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getPublicIdX-tr Xftplib.FTP.nlstr (jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.nlstX-tr X"socketserver.RequestHandler.handler (jjXUhttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.handleX-tr Xnntplib.NNTP.xhdrr (jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xhdrX-tr Xmultiprocessing.Queue.emptyr (jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.emptyX-tr Ximaplib.IMAP4.readr (jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readX-tr Xcodecs.StreamWriter.writer (jjXFhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.writeX-tr Xre.match.groupsr (jjX8http://docs.python.org/3/library/re.html#re.match.groupsX-tr Xsmtplib.SMTP.quitr (jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.quitX-tr Xobject.__contains__r (jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__contains__X-tr Xlogging.Logger.warningr (jjXDhttp://docs.python.org/3/library/logging.html#logging.Logger.warningX-tr Xbdb.Bdb.set_quitr (jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_quitX-tr Xbytes.splitlinesr (jjX?http://docs.python.org/3/library/stdtypes.html#bytes.splitlinesX-tr Xmailbox.Mailbox.updater (jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.updateX-tr Xzlib.Compress.copyr (jjX=http://docs.python.org/3/library/zlib.html#zlib.Compress.copyX-tr Xdecimal.Context.is_qnanr (jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_qnanX-tr X)xml.etree.ElementTree.Element.makeelementr (jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.makeelementX-tr X#email.message.EmailMessage.get_bodyr (jjX^http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.get_bodyX-tr X urllib.request.Request.set_proxyr (jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.set_proxyX-tr X$html.parser.HTMLParser.handle_endtagr (jjXVhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_endtagX-tr X optparse.OptionParser.get_optionr (jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_optionX-tr X$doctest.DocTestRunner.report_successr (jjXRhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_successX-tr Xbytearray.splitlinesr (jjXChttp://docs.python.org/3/library/stdtypes.html#bytearray.splitlinesX-tr Xcurses.window.getchr (jjX@http://docs.python.org/3/library/curses.html#curses.window.getchX-tr Xsocket.socket.recv_intor (jjXDhttp://docs.python.org/3/library/socket.html#socket.socket.recv_intoX-tr Xthreading.Thread.runr (jjXDhttp://docs.python.org/3/library/threading.html#threading.Thread.runX-tr Xsunau.AU_read.getcomptyper (jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getcomptypeX-tr Xasyncio.BaseEventLoop.sock_recvr (jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_recvX-tr X$email.headerregistry.BaseHeader.foldr (jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.foldX-tr X%logging.handlers.QueueHandler.enqueuer (jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.enqueueX-tr Xmailbox.MMDFMessage.get_fromr (jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_fromX-tr Xbdb.Bdb.clear_all_file_breaksr (jjXGhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_all_file_breaksX-tr Xselect.kqueue.fromfdr (jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.fromfdX-tr Xbdb.Breakpoint.deleteMer (jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Breakpoint.deleteMeX-tr Xselect.devpoll.registerr (jjXDhttp://docs.python.org/3/library/select.html#select.devpoll.registerX-tr Xmultiprocessing.Connection.pollr (jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.pollX-tr X(xml.dom.DOMImplementation.createDocumentr (jjXVhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.createDocumentX-tr Xsymtable.SymbolTable.lookupr (jjXJhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.lookupX-tr X*difflib.SequenceMatcher.find_longest_matchr (jjXXhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.find_longest_matchX-tr Xselect.epoll.pollr (jjX>http://docs.python.org/3/library/select.html#select.epoll.pollX-tr Xqueue.Queue.joinr (jjX<http://docs.python.org/3/library/queue.html#queue.Queue.joinX-tr X object.__eq__r (jjX?http://docs.python.org/3/reference/datamodel.html#object.__eq__X-tr Xdecimal.Decimal.canonicalr (jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.canonicalX-tr X&email.message.EmailMessage.add_relatedr (jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_relatedX-tr Xtelnetlib.Telnet.read_lazyr (jjXJhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_lazyX-tr Xtkinter.ttk.Notebook.hider (jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.hideX-tr Xxml.dom.Node.isSameNoder (jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.isSameNodeX-tr Xoptparse.OptionParser.set_usager (jjXNhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_usageX-tr Xdecimal.Context.sqrtr (jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.sqrtX-tr Xsunau.AU_write.setnframesr (jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setnframesX-tr X"email.message.Message.set_boundaryr (jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_boundaryX-tr Xunittest.TestResult.addSkipr!(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSkipX-tr!X+xml.sax.xmlreader.InputSource.getByteStreamr!(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getByteStreamX-tr!X2xmlrpc.server.SimpleXMLRPCServer.register_functionr!(jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_functionX-tr!Xaifc.aifc.getcompnamer!(jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.getcompnameX-tr!X!email.message.Message.__setitem__r!(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__setitem__X-tr !X'asyncio.BaseEventLoop.create_connectionr !(jjX_http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_connectionX-tr !X"multiprocessing.JoinableQueue.joinr !(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.joinX-tr !Xasyncio.Future.cancelr!(jjXHhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.cancelX-tr!Xvenv.EnvBuilder.setup_scriptsr!(jjXHhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.setup_scriptsX-tr!X set.unionr!(jjX8http://docs.python.org/3/library/stdtypes.html#set.unionX-tr!X codecs.IncrementalDecoder.decoder!(jjXMhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.decodeX-tr!Xfractions.Fraction.__round__r!(jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__round__X-tr!X!unittest.TestCase.assertIsNotNoner!(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNotNoneX-tr!Ximaplib.IMAP4.sendr!(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.sendX-tr!Xemail.header.Header.appendr!(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.appendX-tr!Xasyncio.StreamReader.at_eofr!(jjXPhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.at_eofX-tr!Xzlib.Decompress.decompressr !(jjXEhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.decompressX-tr!!Xdecimal.Context.canonicalr"!(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.canonicalX-tr#!Xbytearray.partitionr$!(jjXBhttp://docs.python.org/3/library/stdtypes.html#bytearray.partitionX-tr%!Xlogging.LoggerAdapter.processr&!(jjXKhttp://docs.python.org/3/library/logging.html#logging.LoggerAdapter.processX-tr'!X7xmlrpc.server.CGIXMLRPCRequestHandler.register_instancer(!(jjXkhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_instanceX-tr)!Xbdb.Bdb.get_stackr*!(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_stackX-tr+!X+difflib.SequenceMatcher.get_matching_blocksr,!(jjXYhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_matching_blocksX-tr-!X&importlib.abc.InspectLoader.get_sourcer.!(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.get_sourceX-tr/!Xweakref.finalize.__call__r0!(jjXGhttp://docs.python.org/3/library/weakref.html#weakref.finalize.__call__X-tr1!Xaifc.aifc.writeframesrawr2!(jjXChttp://docs.python.org/3/library/aifc.html#aifc.aifc.writeframesrawX-tr3!Xmsilib.View.Fetchr4!(jjX>http://docs.python.org/3/library/msilib.html#msilib.View.FetchX-tr5!X'socketserver.BaseServer.process_requestr6!(jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.process_requestX-tr7!Xunittest.mock.Mock.__dir__r8!(jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.__dir__X-tr9!Xbz2.BZ2File.peekr:!(jjX:http://docs.python.org/3/library/bz2.html#bz2.BZ2File.peekX-tr;!X0xml.parsers.expat.xmlparser.NotStandaloneHandlerr!(jjXMhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.ensure_directoriesX-tr?!Xbytearray.isalphar@!(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.isalphaX-trA!X#unittest.TestCase.assertRaisesRegexrB!(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaisesRegexX-trC!Xmailbox.mboxMessage.set_flagsrD!(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_flagsX-trE!X str.lowerrF!(jjX8http://docs.python.org/3/library/stdtypes.html#str.lowerX-trG!X dict.keysrH!(jjX8http://docs.python.org/3/library/stdtypes.html#dict.keysX-trI!X&xml.etree.ElementTree.ElementTree.findrJ!(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findX-trK!Xobject.__new__rL!(jjX@http://docs.python.org/3/reference/datamodel.html#object.__new__X-trM!Xbytearray.splitrN!(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.splitX-trO!X"unittest.TestCase.assertIsInstancerP!(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsInstanceX-trQ!X%http.client.HTTPConnection.putrequestrR!(jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.putrequestX-trS!X$xml.etree.ElementTree.Element.insertrT!(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.insertX-trU!X$modulefinder.ModuleFinder.run_scriptrV!(jjXWhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.run_scriptX-trW!Xsymtable.SymbolTable.get_idrX!(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_idX-trY!Xmsilib.RadioButtonGroup.addrZ!(jjXHhttp://docs.python.org/3/library/msilib.html#msilib.RadioButtonGroup.addX-tr[!Xdecimal.Decimal.log10r\!(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.log10X-tr]!X%importlib.abc.ResourceLoader.get_datar^!(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.ResourceLoader.get_dataX-tr_!X"email.message.Message.set_unixfromr`!(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_unixfromX-tra!Ximaplib.IMAP4.unsubscriberb!(jjXGhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.unsubscribeX-trc!Xdecimal.Decimal.copy_signrd!(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_signX-tre!Xchunk.Chunk.skiprf!(jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.skipX-trg!Xtarfile.TarInfo.islnkrh!(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.islnkX-tri!Xaifc.aifc.setposrj!(jjX;http://docs.python.org/3/library/aifc.html#aifc.aifc.setposX-trk!Xlogging.LogRecord.getMessagerl!(jjXJhttp://docs.python.org/3/library/logging.html#logging.LogRecord.getMessageX-trm!Xaifc.aifc.getnframesrn!(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.getnframesX-tro!X"codecs.IncrementalDecoder.getstaterp!(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder.getstateX-trq!Xtkinter.ttk.Style.theme_userr!(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_useX-trs!Xxdrlib.Unpacker.get_bufferrt!(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.get_bufferX-tru!X str.islowerrv!(jjX:http://docs.python.org/3/library/stdtypes.html#str.islowerX-trw!Xpoplib.POP3.userrx!(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.userX-try!Xftplib.FTP.transfercmdrz!(jjXChttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.transfercmdX-tr{!X)email.message.Message.get_content_subtyper|!(jjX]http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_subtypeX-tr}!Xobject.__ior__r~!(jjX@http://docs.python.org/3/reference/datamodel.html#object.__ior__X-tr!Xthreading.Thread.isDaemonr!(jjXIhttp://docs.python.org/3/library/threading.html#threading.Thread.isDaemonX-tr!X#difflib.SequenceMatcher.get_opcodesr!(jjXQhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_opcodesX-tr!Xdecimal.Decimal.logbr!(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logbX-tr!X$importlib.abc.InspectLoader.get_coder!(jjXThttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.get_codeX-tr!Xlogging.StreamHandler.flushr!(jjXRhttp://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.flushX-tr!X.http.server.BaseHTTPRequestHandler.log_requestr!(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_requestX-tr!Xasyncore.dispatcher.connectr!(jjXJhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.connectX-tr!Xdatetime.timezone.tznamer!(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.timezone.tznameX-tr!Xftplib.FTP_TLS.prot_pr!(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.prot_pX-tr!X#calendar.Calendar.yeardays2calendarr!(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardays2calendarX-tr!X str.splitr!(jjX8http://docs.python.org/3/library/stdtypes.html#str.splitX-tr!Xpathlib.Path.statr!(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.statX-tr!Xxml.dom.Node.normalizer!(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.normalizeX-tr!Xdbm.gnu.gdbm.nextkeyr!(jjX>http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.nextkeyX-tr!Xbdb.Bdb.user_returnr!(jjX=http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_returnX-tr!X!asyncio.WriteTransport.writelinesr!(jjXXhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.writelinesX-tr!Xarray.array.popr!(jjX;http://docs.python.org/3/library/array.html#array.array.popX-tr!Xobject.__iter__r!(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iter__X-tr!X!distutils.text_file.TextFile.warnr!(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.warnX-tr!X$argparse.ArgumentParser.add_argumentr!(jjXShttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argumentX-tr!X-distutils.ccompiler.CCompiler.add_library_dirr!(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_library_dirX-tr!Xobject.__rfloordiv__r!(jjXFhttp://docs.python.org/3/reference/datamodel.html#object.__rfloordiv__X-tr!Xdatetime.time.isoformatr!(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.time.isoformatX-tr!Xcurses.window.getstrr!(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.getstrX-tr!Xdoctest.DocTestRunner.summarizer!(jjXMhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.summarizeX-tr!X,xml.dom.Document.createProcessingInstructionr!(jjXZhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createProcessingInstructionX-tr!X0xml.parsers.expat.xmlparser.CharacterDataHandlerr!(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CharacterDataHandlerX-tr!Xpathlib.Path.is_fifor!(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_fifoX-tr!X&html.parser.HTMLParser.handle_starttagr!(jjXXhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_starttagX-tr!X$socketserver.BaseServer.handle_errorr!(jjXWhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_errorX-tr!Xobject.__format__r!(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__format__X-tr!X#asyncio.BaseEventLoop.create_serverr!(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_serverX-tr!Xmailbox.mbox.unlockr!(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.mbox.unlockX-tr!Ximaplib.IMAP4.recentr!(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.recentX-tr!X+asyncio.BaseEventLoop.set_exception_handlerr!(jjXchttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_exception_handlerX-tr!Xsmtplib.SMTP.sendmailr!(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmailX-tr!Xhttp.cookies.BaseCookie.outputr!(jjXQhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.outputX-tr!Xmailbox.Babyl.lockr!(jjX@http://docs.python.org/3/library/mailbox.html#mailbox.Babyl.lockX-tr!Xunittest.TestCase.assertLogsr!(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLogsX-tr!X)xml.sax.handler.ContentHandler.charactersr!(jjX_http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.charactersX-tr!X%ipaddress.IPv4Network.address_excluder!(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.address_excludeX-tr!Xtkinter.ttk.Treeview.detachr!(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.detachX-tr!Xthreading.Condition.notifyr!(jjXJhttp://docs.python.org/3/library/threading.html#threading.Condition.notifyX-tr!Xtypes.MappingProxyType.valuesr!(jjXIhttp://docs.python.org/3/library/types.html#types.MappingProxyType.valuesX-tr!X str.isdigitr!(jjX:http://docs.python.org/3/library/stdtypes.html#str.isdigitX-tr!X%logging.handlers.DatagramHandler.sendr!(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.sendX-tr!X&ssl.SSLContext.set_servername_callbackr!(jjXPhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_servername_callbackX-tr!X-logging.handlers.BufferingHandler.shouldFlushr!(jjXdhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.shouldFlushX-tr!X/logging.handlers.NTEventLogHandler.getEventTyper!(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getEventTypeX-tr!Xxdrlib.Packer.pack_bytesr!(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_bytesX-tr!Xasyncio.Semaphore.releaser!(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.releaseX-tr!X3importlib.machinery.ExtensionFileLoader.load_moduler!(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.load_moduleX-tr!Xasyncio.Lock.acquirer!(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.acquireX-tr!Xmsilib.Database.Commitr!(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Database.CommitX-tr!X'urllib.request.BaseHandler.unknown_openr!(jjX\http://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.unknown_openX-tr!X*email.message.EmailMessage.add_alternativer!(jjXehttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_alternativeX-tr!Xsubprocess.Popen.waitr!(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.waitX-tr!Xsubprocess.Popen.terminater!(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.terminateX-tr!Xzipfile.ZipFile.readr!(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.readX-tr!Xasynchat.fifo.is_emptyr!(jjXEhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.is_emptyX-tr!X!code.InteractiveInterpreter.writer!(jjXLhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.writeX-tr!Xcalendar.TextCalendar.prmonthr!(jjXLhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.prmonthX-tr!X str.translater!(jjX<http://docs.python.org/3/library/stdtypes.html#str.translateX-tr!X#tkinter.tix.tixCommand.tix_getimager!(jjXUhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimageX-tr!Xprofile.Profile.runr"(jjXAhttp://docs.python.org/3/library/profile.html#profile.Profile.runX-tr"X'socketserver.BaseServer.service_actionsr"(jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.service_actionsX-tr"Xmailbox.Mailbox.iteritemsr"(jjXGhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iteritemsX-tr"X%unittest.TestLoader.loadTestsFromNamer"(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromNameX-tr"Xlogging.Logger.removeFilterr"(jjXIhttp://docs.python.org/3/library/logging.html#logging.Logger.removeFilterX-tr "X"mailbox.MaildirMessage.remove_flagr "(jjXPhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.remove_flagX-tr "Xunittest.TestResult.startTestr "(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.startTestX-tr "X%tkinter.ttk.Treeview.identify_elementr"(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_elementX-tr"Xthreading.Thread.setDaemonr"(jjXJhttp://docs.python.org/3/library/threading.html#threading.Thread.setDaemonX-tr"Xxmlrpc.client.DateTime.decoder"(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.decodeX-tr"X!urllib.request.Request.get_methodr"(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_methodX-tr"X-xml.sax.handler.DTDHandler.unparsedEntityDeclr"(jjXchttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.unparsedEntityDeclX-tr"Xnntplib.NNTP.headr"(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.headX-tr"Xio.BufferedWriter.flushr"(jjX@http://docs.python.org/3/library/io.html#io.BufferedWriter.flushX-tr"Xcsv.csvwriter.writerowr"(jjX@http://docs.python.org/3/library/csv.html#csv.csvwriter.writerowX-tr"Xdifflib.HtmlDiff.make_filer"(jjXHhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.make_fileX-tr"Xipaddress.IPv6Network.hostsr "(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostsX-tr!"Xformatter.formatter.pop_fontr""(jjXLhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_fontX-tr#"X!urllib.request.URLopener.retriever$"(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.retrieveX-tr%"Xtracemalloc.Traceback.formatr&"(jjXNhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Traceback.formatX-tr'"Xmailbox.MH.unlockr("(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MH.unlockX-tr)"Xftplib.FTP.retrbinaryr*"(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.retrbinaryX-tr+"Xtarfile.TarFile.getmembersr,"(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.getmembersX-tr-"Xthreading.Thread.getNamer."(jjXHhttp://docs.python.org/3/library/threading.html#threading.Thread.getNameX-tr/"Xmailbox.mboxMessage.set_fromr0"(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_fromX-tr1"Xaifc.aifc.aiffr2"(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.aiffX-tr3"Xmmap.mmap.sizer4"(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.sizeX-tr5"X!sqlite3.Connection.load_extensionr6"(jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.load_extensionX-tr7"Xaifc.aifc.aifcr8"(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.aifcX-tr9"X4wsgiref.simple_server.WSGIRequestHandler.get_environr:"(jjXbhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.get_environX-tr;"Xdatetime.time.__format__r<"(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.time.__format__X-tr="X7http.server.BaseHTTPRequestHandler.log_date_time_stringr>"(jjXihttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_date_time_stringX-tr?"X%socketserver.BaseServer.serve_foreverr@"(jjXXhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.serve_foreverX-trA"Xmsilib.Dialog.checkboxrB"(jjXChttp://docs.python.org/3/library/msilib.html#msilib.Dialog.checkboxX-trC"Xnntplib.NNTP.getcapabilitiesrD"(jjXJhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.getcapabilitiesX-trE"X)xml.sax.xmlreader.InputSource.getEncodingrF"(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getEncodingX-trG"X3urllib.request.HTTPRedirectHandler.redirect_requestrH"(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler.redirect_requestX-trI"X*logging.handlers.SocketHandler.handleErrorrJ"(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.handleErrorX-trK"Xssl.SSLSocket.writerL"(jjX=http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.writeX-trM"X!gettext.GNUTranslations.lngettextrN"(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.lngettextX-trO"X)xml.etree.ElementTree.TreeBuilder.doctyperP"(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.doctypeX-trQ"X importlib.abc.Loader.exec_modulerR"(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.exec_moduleX-trS"Xsched.scheduler.runrT"(jjX?http://docs.python.org/3/library/sched.html#sched.scheduler.runX-trU"Xselect.epoll.fromfdrV"(jjX@http://docs.python.org/3/library/select.html#select.epoll.fromfdX-trW"Xmsilib.View.ExecuterX"(jjX@http://docs.python.org/3/library/msilib.html#msilib.View.ExecuteX-trY"Xmailbox.mbox.lockrZ"(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.mbox.lockX-tr["Xcurses.panel.Panel.showr\"(jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.showX-tr]"Xselect.poll.pollr^"(jjX=http://docs.python.org/3/library/select.html#select.poll.pollX-tr_"X,asyncio.WriteTransport.get_write_buffer_sizer`"(jjXchttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_sizeX-tra"X asyncio.BaseEventLoop.add_readerrb"(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_readerX-trc"Xsmtplib.SMTP.docmdrd"(jjX@http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.docmdX-tre"Xtkinter.ttk.Style.configurerf"(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.configureX-trg"Xcurses.window.chgatrh"(jjX@http://docs.python.org/3/library/curses.html#curses.window.chgatX-tri"Xbytearray.swapcaserj"(jjXAhttp://docs.python.org/3/library/stdtypes.html#bytearray.swapcaseX-trk"X(unittest.TestResult.addUnexpectedSuccessrl"(jjXWhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addUnexpectedSuccessX-trm"X datetime.timedelta.total_secondsrn"(jjXOhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.total_secondsX-tro"Xsunau.AU_write.setframeraterp"(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setframerateX-trq"Xformatter.formatter.pop_marginrr"(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_marginX-trs"X#argparse.ArgumentParser.print_usagert"(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_usageX-tru"X(sqlite3.Connection.enable_load_extensionrv"(jjXVhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extensionX-trw"X$tkinter.tix.tixCommand.tix_configurerx"(jjXVhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_configureX-try"Xtelnetlib.Telnet.read_allrz"(jjXIhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_allX-tr{"X!email.policy.Policy.handle_defectr|"(jjXThttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.handle_defectX-tr}"Ximaplib.IMAP4.appendr~"(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.appendX-tr"Xemail.message.Message.set_typer"(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_typeX-tr"Xbdb.Breakpoint.bpprintr"(jjX@http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpprintX-tr"X_thread.lock.releaser"(jjXBhttp://docs.python.org/3/library/_thread.html#_thread.lock.releaseX-tr"Xvenv.EnvBuilder.post_setupr"(jjXEhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.post_setupX-tr"Xunittest.TestCase.assertRaisesr"(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaisesX-tr"X$tkinter.ttk.Treeview.identify_columnr"(jjXVhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_columnX-tr"Xasyncore.dispatcher.sendr"(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.sendX-tr"Xaifc.aifc.tellr"(jjX9http://docs.python.org/3/library/aifc.html#aifc.aifc.tellX-tr"X"asyncore.dispatcher.handle_connectr"(jjXQhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_connectX-tr"Xnntplib.NNTP.nextr"(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nextX-tr"Xtkinter.ttk.Treeview.xviewr"(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.xviewX-tr"X)wsgiref.handlers.BaseHandler.add_cgi_varsr"(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.add_cgi_varsX-tr"X&importlib.abc.SourceLoader.load_moduler"(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.load_moduleX-tr"X)xml.etree.ElementTree.ElementTree.getrootr"(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.getrootX-tr"X!optparse.OptionParser.print_usager"(jjXPhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_usageX-tr"Xdecimal.Context.remainder_nearr"(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.remainder_nearX-tr"X%xml.etree.ElementTree.TreeBuilder.endr"(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.endX-tr"Xtelnetlib.Telnet.msgr"(jjXDhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.msgX-tr"Xbytearray.islowerr"(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.islowerX-tr"Xtkinter.ttk.Combobox.setr"(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.setX-tr"Xre.regex.matchr"(jjX7http://docs.python.org/3/library/re.html#re.regex.matchX-tr"X1http.server.BaseHTTPRequestHandler.version_stringr"(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.version_stringX-tr"X*multiprocessing.managers.SyncManager.Queuer"(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.QueueX-tr"Xobject.__rmul__r"(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rmul__X-tr"X)xml.sax.xmlreader.Locator.getColumnNumberr"(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getColumnNumberX-tr"X"formatter.writer.send_literal_datar"(jjXRhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_literal_dataX-tr"Xtkinter.ttk.Treeview.yviewr"(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.yviewX-tr"Xcsv.Sniffer.sniffr"(jjX;http://docs.python.org/3/library/csv.html#csv.Sniffer.sniffX-tr"X5multiprocessing.managers.SyncManager.BoundedSemaphorer"(jjXkhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.BoundedSemaphoreX-tr"Xmailbox.MH.closer"(jjX>http://docs.python.org/3/library/mailbox.html#mailbox.MH.closeX-tr"Xwave.Wave_read.closer"(jjX?http://docs.python.org/3/library/wave.html#wave.Wave_read.closeX-tr"Xset.isdisjointr"(jjX=http://docs.python.org/3/library/stdtypes.html#set.isdisjointX-tr"X5xml.parsers.expat.xmlparser.UnparsedEntityDeclHandlerr"(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UnparsedEntityDeclHandlerX-tr"Xxdrlib.Unpacker.get_positionr"(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.get_positionX-tr"Xxml.dom.Node.replaceChildr"(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.replaceChildX-tr"X%html.parser.HTMLParser.handle_commentr"(jjXWhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_commentX-tr"Xobject.__iadd__r"(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iadd__X-tr"Xcurses.window.notimeoutr"(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.notimeoutX-tr"Xunittest.TestSuite.addTestsr"(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.addTestsX-tr"Xdatetime.datetime.__format__r"(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.__format__X-tr"Xchunk.Chunk.getsizer"(jjX?http://docs.python.org/3/library/chunk.html#chunk.Chunk.getsizeX-tr"X%filecmp.dircmp.report_partial_closurer"(jjXShttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.report_partial_closureX-tr"Xdecimal.Decimal.copy_absr"(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_absX-tr"X!tkinter.ttk.Treeview.identify_rowr"(jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_rowX-tr"Xturtle.Shape.addcomponentr"(jjXFhttp://docs.python.org/3/library/turtle.html#turtle.Shape.addcomponentX-tr"X'asyncio.asyncio.subprocess.Process.killr"(jjX`http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.killX-tr"u(X"asyncio.StreamWriter.can_write_eofr"(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.can_write_eofX-tr"Xasyncio.Semaphore.lockedr"(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.lockedX-tr"Xemail.parser.FeedParser.closer"(jjXPhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParser.closeX-tr"Xcodecs.StreamWriter.writelinesr"(jjXKhttp://docs.python.org/3/library/codecs.html#codecs.StreamWriter.writelinesX-tr"X(email.policy.Compat32.header_fetch_parser"(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_fetch_parseX-tr"Xlogging.Logger.setLevelr"(jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.setLevelX-tr"Xbdb.Breakpoint.enabler"(jjX?http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enableX-tr"X-importlib.machinery.SourceFileLoader.set_datar"(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.set_dataX-tr"Xxml.dom.Node.cloneNoder"(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.cloneNodeX-tr"Xselectors.BaseSelector.registerr"(jjXOhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.registerX-tr"Xaifc.aifc.setmarkr"(jjX<http://docs.python.org/3/library/aifc.html#aifc.aifc.setmarkX-tr"X formatter.writer.send_label_datar"(jjXPhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_label_dataX-tr"Xbytearray.isdigitr"(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.isdigitX-tr"Xselectors.BaseSelector.get_keyr"(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_keyX-tr"Xobject.__rlshift__r"(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rlshift__X-tr"X-xml.parsers.expat.xmlparser.EndElementHandlerr"(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndElementHandlerX-tr"X ctypes.LibraryLoader.LoadLibraryr"(jjXMhttp://docs.python.org/3/library/ctypes.html#ctypes.LibraryLoader.LoadLibraryX-tr"X)xml.sax.xmlreader.InputSource.getPublicIdr"(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getPublicIdX-tr"Xpathlib.Path.is_socketr#(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_socketX-tr#Ximaplib.IMAP4.searchr#(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.searchX-tr#Xtkinter.ttk.Widget.instater#(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.instateX-tr#Xipaddress.IPv4Network.supernetr#(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.supernetX-tr#Xlogging.Handler.setLevelr#(jjXFhttp://docs.python.org/3/library/logging.html#logging.Handler.setLevelX-tr #X%distutils.ccompiler.CCompiler.executer #(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.executeX-tr #X&email.message.EmailMessage.get_contentr #(jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.get_contentX-tr #Xzipfile.ZipFile.extractr#(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extractX-tr#Xasyncio.JoinableQueue.joinr#(jjXMhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueue.joinX-tr#X)xml.etree.ElementTree.ElementTree.findallr#(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.findallX-tr#Xzipimport.zipimporter.get_coder#(jjXNhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_codeX-tr#Xxdrlib.Packer.pack_doubler#(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_doubleX-tr#Xparser.ST.compiler#(jjX>http://docs.python.org/3/library/parser.html#parser.ST.compileX-tr#X3xml.parsers.expat.xmlparser.StartDoctypeDeclHandlerr#(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartDoctypeDeclHandlerX-tr#Xipaddress.IPv6Network.overlapsr#(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.overlapsX-tr#Xdatetime.datetime.utctimetupler#(jjXMhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utctimetupleX-tr#X/asyncio.SubprocessProtocol.pipe_connection_lostr #(jjXfhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lostX-tr!#X)xml.parsers.expat.xmlparser.UseForeignDTDr"#(jjXWhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UseForeignDTDX-tr##Xaifc.aifc.getframerater$#(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getframerateX-tr%#X*multiprocessing.connection.Listener.acceptr&#(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.acceptX-tr'#Xmailbox.MaildirMessage.set_infor(#(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_infoX-tr)#Xemail.policy.Policy.foldr*#(jjXKhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.foldX-tr+#X"email.message.Message.is_multipartr,#(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.is_multipartX-tr-#Ximaplib.IMAP4.readliner.#(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.readlineX-tr/#Xpipes.Template.resetr0#(jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.resetX-tr1#X logging.Logger.getEffectiveLevelr2#(jjXNhttp://docs.python.org/3/library/logging.html#logging.Logger.getEffectiveLevelX-tr3#Xdecimal.Context.radixr4#(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.radixX-tr5#X'tkinter.tix.tixCommand.tix_addbitmapdirr6#(jjXYhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdirX-tr7#Xunittest.TestCase.tearDownr8#(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.tearDownX-tr9#Xxdrlib.Packer.pack_arrayr:#(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_arrayX-tr;#X(difflib.SequenceMatcher.real_quick_ratior<#(jjXVhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.real_quick_ratioX-tr=#Xdecimal.Context.number_classr>#(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.number_classX-tr?#Xdatetime.datetime.timetupler@#(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timetupleX-trA#Xwave.Wave_write.closerB#(jjX@http://docs.python.org/3/library/wave.html#wave.Wave_write.closeX-trC#X!multiprocessing.Queue.join_threadrD#(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.join_threadX-trE#Xmmap.mmap.resizerF#(jjX;http://docs.python.org/3/library/mmap.html#mmap.mmap.resizeX-trG#Xssl.SSLSocket.readrH#(jjX<http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.readX-trI#Xmailbox.Maildir.closerJ#(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.closeX-trK#X!decimal.Context.to_integral_exactrL#(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_integral_exactX-trM#X%http.client.HTTPConnection.endheadersrN#(jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.endheadersX-trO#Xaifc.aifc.getnchannelsrP#(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getnchannelsX-trQ#Xzipfile.ZipFile.testziprR#(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.testzipX-trS#Xssl.SSLSocket.cipherrT#(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.cipherX-trU#Xpipes.Template.copyrV#(jjX?http://docs.python.org/3/library/pipes.html#pipes.Template.copyX-trW#X"configparser.ConfigParser.defaultsrX#(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.defaultsX-trY#Xxdrlib.Unpacker.unpack_farrayrZ#(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_farrayX-tr[#Xasyncore.dispatcher.handle_readr\#(jjXNhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_readX-tr]#Xdecimal.Decimal.min_magr^#(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.min_magX-tr_#Xset.symmetric_difference_updater`#(jjXNhttp://docs.python.org/3/library/stdtypes.html#set.symmetric_difference_updateX-tra#Xdecimal.Decimal.is_subnormalrb#(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_subnormalX-trc#Xftplib.FTP_TLS.authrd#(jjX@http://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.authX-tre#Xxml.sax.SAXException.getMessagerf#(jjXMhttp://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getMessageX-trg#Xre.regex.findallrh#(jjX9http://docs.python.org/3/library/re.html#re.regex.findallX-tri#Xwave.Wave_read.getframeraterj#(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getframerateX-trk#X"unittest.TestCase.assertWarnsRegexrl#(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertWarnsRegexX-trm#Xdatetime.date.strftimern#(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.date.strftimeX-tro#X$xml.dom.DOMImplementation.hasFeaturerp#(jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.hasFeatureX-trq#Ximaplib.IMAP4.selectrr#(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.selectX-trs#X"unittest.TestCase.assertTupleEqualrt#(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertTupleEqualX-tru#X(email.charset.Charset.get_output_charsetrv#(jjX\http://docs.python.org/3/library/email.charset.html#email.charset.Charset.get_output_charsetX-trw#X)xml.sax.xmlreader.InputSource.setSystemIdrx#(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setSystemIdX-try#X)distutils.ccompiler.CCompiler.add_libraryrz#(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_libraryX-tr{#X0http.server.BaseHTTPRequestHandler.flush_headersr|#(jjXbhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.flush_headersX-tr}#X'xml.etree.ElementTree.TreeBuilder.startr~#(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.startX-tr#Xcurses.window.overlayr#(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.overlayX-tr#Xsqlite3.Connection.executemanyr#(jjXLhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executemanyX-tr#Xobject.__init__r#(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__init__X-tr#Xcollections.deque.appendr#(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.appendX-tr#Xasyncio.Condition.notifyr#(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.notifyX-tr#Xunittest.TestCase.assertIsNotr#(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNotX-tr#Xcalendar.TextCalendar.pryearr#(jjXKhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.pryearX-tr#Xsunau.AU_read.getparamsr#(jjXChttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getparamsX-tr#X pickle.Unpickler.persistent_loadr#(jjXMhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.persistent_loadX-tr#X!ssl.SSLSocket.get_channel_bindingr#(jjXKhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_channel_bindingX-tr#Xasyncio.BaseEventLoop.call_soonr#(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_soonX-tr#X%multiprocessing.pool.AsyncResult.waitr#(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.waitX-tr#X$urllib.request.HTTPHandler.http_openr#(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandler.http_openX-tr#Xasyncio.StreamWriter.writelinesr#(jjXThttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.writelinesX-tr#Xobject.__repr__r#(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__repr__X-tr#X bytes.centerr#(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.centerX-tr#Xnntplib.NNTP.helpr#(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.helpX-tr#X-logging.handlers.SysLogHandler.encodePriorityr#(jjXdhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.encodePriorityX-tr#Xasyncore.dispatcher.listenr#(jjXIhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.listenX-tr#Xthreading.Event.waitr#(jjXDhttp://docs.python.org/3/library/threading.html#threading.Event.waitX-tr#Xssl.SSLContext.load_cert_chainr#(jjXHhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chainX-tr#Xselect.devpoll.filenor#(jjXBhttp://docs.python.org/3/library/select.html#select.devpoll.filenoX-tr#Xio.IOBase.readlinesr#(jjX<http://docs.python.org/3/library/io.html#io.IOBase.readlinesX-tr#Xbdb.Bdb.dispatch_exceptionr#(jjXDhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_exceptionX-tr#Xdatetime.datetime.dstr#(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dstX-tr#X$xml.etree.ElementTree.XMLParser.feedr#(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.feedX-tr#Xnntplib.NNTP.loginr#(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.loginX-tr#X+xml.sax.xmlreader.XMLReader.setErrorHandlerr#(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setErrorHandlerX-tr#X-xml.sax.xmlreader.XMLReader.getContentHandlerr#(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getContentHandlerX-tr#X&email.message.Message.get_default_typer#(jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_default_typeX-tr#Xthreading.Thread.startr#(jjXFhttp://docs.python.org/3/library/threading.html#threading.Thread.startX-tr#X asyncio.Future.add_done_callbackr#(jjXShttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.add_done_callbackX-tr#Xdecimal.Decimal.compare_totalr#(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_totalX-tr#Xmailbox.Mailbox.__iter__r#(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__iter__X-tr#X bytes.splitr#(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.splitX-tr#X lzma.LZMADecompressor.decompressr#(jjXKhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.decompressX-tr#X%unittest.TestCase.assertSequenceEqualr#(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertSequenceEqualX-tr#Xselect.devpoll.closer#(jjXAhttp://docs.python.org/3/library/select.html#select.devpoll.closeX-tr#X3http.server.BaseHTTPRequestHandler.date_time_stringr#(jjXehttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.date_time_stringX-tr#Xformatter.writer.new_stylesr#(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_stylesX-tr#Xpstats.Stats.strip_dirsr#(jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.strip_dirsX-tr#Ximaplib.IMAP4.getannotationr#(jjXIhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getannotationX-tr#Ximaplib.IMAP4.getquotarootr#(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getquotarootX-tr#Ximaplib.IMAP4.login_cram_md5r#(jjXJhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.login_cram_md5X-tr#Xxml.dom.Element.setAttributer#(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeX-tr#Xmailbox.MHMessage.add_sequencer#(jjXLhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.add_sequenceX-tr#X"importlib.abc.Loader.create_moduler#(jjXRhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.create_moduleX-tr#Xthreading.Semaphore.acquirer#(jjXKhttp://docs.python.org/3/library/threading.html#threading.Semaphore.acquireX-tr#Xsunau.AU_read.readframesr#(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.readframesX-tr#X$configparser.ConfigParser.getbooleanr#(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getbooleanX-tr#Xcontextlib.ExitStack.pushr#(jjXJhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.pushX-tr#Xdecimal.Context.copy_absr#(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_absX-tr#X'multiprocessing.pool.Pool.starmap_asyncr#(jjX]http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmap_asyncX-tr#X.urllib.request.Request.add_unredirected_headerr#(jjXchttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.add_unredirected_headerX-tr#Xobject.__setstate__r#(jjX@http://docs.python.org/3/library/pickle.html#object.__setstate__X-tr#X1xml.parsers.expat.xmlparser.SetParamEntityParsingr#(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetParamEntityParsingX-tr#Xdict.popr#(jjX7http://docs.python.org/3/library/stdtypes.html#dict.popX-tr#Xaifc.aifc.setnframesr#(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.setnframesX-tr#Xbdb.Bdb.set_stepr#(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_stepX-tr#X str.endswithr#(jjX;http://docs.python.org/3/library/stdtypes.html#str.endswithX-tr#Xio.IOBase.truncater#(jjX;http://docs.python.org/3/library/io.html#io.IOBase.truncateX-tr#Xsqlite3.Connection.interruptr#(jjXJhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.interruptX-tr#X str.istitler#(jjX:http://docs.python.org/3/library/stdtypes.html#str.istitleX-tr#Xdecimal.Context.minusr#(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.minusX-tr#Xftplib.FTP.pwdr$(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.pwdX-tr$Xmailbox.MH.lockr$(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MH.lockX-tr$Xtypes.MappingProxyType.itemsr$(jjXHhttp://docs.python.org/3/library/types.html#types.MappingProxyType.itemsX-tr$Xxdrlib.Packer.get_bufferr$(jjXEhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.get_bufferX-tr$Xcurses.window.subwinr$(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.subwinX-tr $Xsocket.socket.setblockingr $(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.setblockingX-tr $Xcurses.window.eraser $(jjX@http://docs.python.org/3/library/curses.html#curses.window.eraseX-tr $X%gettext.NullTranslations.add_fallbackr$(jjXShttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.add_fallbackX-tr$X(multiprocessing.Queue.cancel_join_threadr$(jjX^http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.cancel_join_threadX-tr$Xdatetime.time.strftimer$(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.time.strftimeX-tr$X&xml.etree.ElementTree.TreeBuilder.datar$(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.dataX-tr$X configparser.ConfigParser.readfpr$(jjXShttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.readfpX-tr$X%msilib.SummaryInformation.GetPropertyr$(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.GetPropertyX-tr$X#multiprocessing.pool.Pool.terminater$(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.terminateX-tr$X str.countr$(jjX8http://docs.python.org/3/library/stdtypes.html#str.countX-tr$Xcurses.window.get_wchr$(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.get_wchX-tr$X str.zfillr $(jjX8http://docs.python.org/3/library/stdtypes.html#str.zfillX-tr!$Xunittest.TestSuite.addTestr"$(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.addTestX-tr#$Xdatetime.time.__str__r$$(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.time.__str__X-tr%$Xdecimal.Context.is_subnormalr&$(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_subnormalX-tr'$X.asyncio.WriteTransport.set_write_buffer_limitsr($(jjXehttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.set_write_buffer_limitsX-tr)$X'socketserver.BaseServer.server_activater*$(jjXZhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_activateX-tr+$Xunittest.TestCase.debugr,$(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.debugX-tr-$Xdecimal.Context.logical_invertr.$(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_invertX-tr/$Xsocket.socket.gettimeoutr0$(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.gettimeoutX-tr1$Xbytearray.joinr2$(jjX=http://docs.python.org/3/library/stdtypes.html#bytearray.joinX-tr3$Xasyncore.dispatcher.bindr4$(jjXGhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.bindX-tr5$X$urllib.request.FileHandler.file_openr6$(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandler.file_openX-tr7$Xchunk.Chunk.getnamer8$(jjX?http://docs.python.org/3/library/chunk.html#chunk.Chunk.getnameX-tr9$X&logging.handlers.QueueListener.dequeuer:$(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.dequeueX-tr;$X)urllib.request.CacheFTPHandler.setTimeoutr<$(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setTimeoutX-tr=$Xtkinter.ttk.Treeview.indexr>$(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.indexX-tr?$Xunittest.TestResult.stopTestr@$(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopTestX-trA$Xcurses.window.inschrB$(jjX@http://docs.python.org/3/library/curses.html#curses.window.inschX-trC$Xdecimal.Context.logbrD$(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.logbX-trE$Xsunau.AU_read.getnchannelsrF$(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getnchannelsX-trG$Xasyncio.Event.is_setrH$(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.is_setX-trI$Xlogging.Handler.emitrJ$(jjXBhttp://docs.python.org/3/library/logging.html#logging.Handler.emitX-trK$X$concurrent.futures.Future.set_resultrL$(jjX]http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_resultX-trM$Xpipes.Template.clonerN$(jjX@http://docs.python.org/3/library/pipes.html#pipes.Template.cloneX-trO$Xstring.Formatter.formatrP$(jjXDhttp://docs.python.org/3/library/string.html#string.Formatter.formatX-trQ$Xwave.Wave_read.getcompnamerR$(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getcompnameX-trS$X%xml.etree.ElementTree.Element.findallrT$(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findallX-trU$X,xml.dom.DOMImplementation.createDocumentTyperV$(jjXZhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DOMImplementation.createDocumentTypeX-trW$Xemail.parser.Parser.parsestrrX$(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.Parser.parsestrX-trY$X"logging.logging.Formatter.__init__rZ$(jjXNhttp://docs.python.org/3/howto/logging.html#logging.logging.Formatter.__init__X-tr[$Xmsilib.Record.ClearDatar\$(jjXDhttp://docs.python.org/3/library/msilib.html#msilib.Record.ClearDataX-tr]$Xlzma.LZMACompressor.flushr^$(jjXDhttp://docs.python.org/3/library/lzma.html#lzma.LZMACompressor.flushX-tr_$Xthreading.Barrier.resetr`$(jjXGhttp://docs.python.org/3/library/threading.html#threading.Barrier.resetX-tra$Xpathlib.Path.lchmodrb$(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.lchmodX-trc$Xdecimal.Context.to_eng_stringrd$(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Context.to_eng_stringX-tre$Xftplib.FTP.sizerf$(jjX<http://docs.python.org/3/library/ftplib.html#ftplib.FTP.sizeX-trg$Xasyncio.Queue.emptyrh$(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.emptyX-tri$X'asyncio.DatagramProtocol.error_receivedrj$(jjX^http://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocol.error_receivedX-trk$X/logging.handlers.QueueListener.enqueue_sentinelrl$(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.enqueue_sentinelX-trm$Xpathlib.PurePath.as_urirn$(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.as_uriX-tro$Xbytearray.rsplitrp$(jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.rsplitX-trq$Xmailbox.Maildir.cleanrr$(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.cleanX-trs$Xasyncio.StreamWriter.writert$(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.writeX-tru$X%ossaudiodev.oss_audio_device.writeallrv$(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.writeallX-trw$X"zipimport.zipimporter.get_filenamerx$(jjXRhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_filenameX-try$X,email.policy.EmailPolicy.header_source_parserz$(jjX_http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_source_parseX-tr{$Xasyncio.Condition.waitr|$(jjXIhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.waitX-tr}$Xsocket.socket.sendallr~$(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.sendallX-tr$X,asyncio.asyncio.subprocess.Process.terminater$(jjXehttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.terminateX-tr$Xlogging.Logger.filterr$(jjXChttp://docs.python.org/3/library/logging.html#logging.Logger.filterX-tr$Xsunau.AU_read.getframerater$(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getframerateX-tr$X&email.message.EmailMessage.set_contentr$(jjXahttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.set_contentX-tr$Xstr.findr$(jjX7http://docs.python.org/3/library/stdtypes.html#str.findX-tr$Xshlex.shlex.error_leaderr$(jjXDhttp://docs.python.org/3/library/shlex.html#shlex.shlex.error_leaderX-tr$Xasyncio.Event.setr$(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.setX-tr$Xsmtplib.SMTP.send_messager$(jjXGhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.send_messageX-tr$Xbdb.Bdb.clear_all_breaksr$(jjXBhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_all_breaksX-tr$Xwebbrowser.controller.openr$(jjXKhttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.openX-tr$X%tkinter.tix.tixCommand.tix_option_getr$(jjXWhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_option_getX-tr$X'configparser.ConfigParser.remove_optionr$(jjXZhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.remove_optionX-tr$Xselectors.EpollSelector.filenor$(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.EpollSelector.filenoX-tr$Xio.IOBase.readabler$(jjX;http://docs.python.org/3/library/io.html#io.IOBase.readableX-tr$X2http.cookiejar.DefaultCookiePolicy.allowed_domainsr$(jjXghttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.allowed_domainsX-tr$X!decimal.Decimal.to_integral_exactr$(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_exactX-tr$Xset.intersection_updater$(jjXFhttp://docs.python.org/3/library/stdtypes.html#set.intersection_updateX-tr$Xbdb.Bdb.set_returnr$(jjX<http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_returnX-tr$X*http.cookiejar.Cookie.get_nonstandard_attrr$(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.get_nonstandard_attrX-tr$X$asyncio.WriteTransport.can_write_eofr$(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.can_write_eofX-tr$Xsunau.AU_write.closer$(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_write.closeX-tr$Xcsv.csvreader.__next__r$(jjX@http://docs.python.org/3/library/csv.html#csv.csvreader.__next__X-tr$Xset.differencer$(jjX=http://docs.python.org/3/library/stdtypes.html#set.differenceX-tr$X#trace.CoverageResults.write_resultsr$(jjXOhttp://docs.python.org/3/library/trace.html#trace.CoverageResults.write_resultsX-tr$X importlib.abc.Loader.module_reprr$(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Loader.module_reprX-tr$Xformatter.formatter.push_styler$(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_styleX-tr$Xxdrlib.Unpacker.unpack_arrayr$(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_arrayX-tr$X"xml.sax.handler.ErrorHandler.errorr$(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.errorX-tr$Xasyncio.BaseEventLoop.call_atr$(jjXUhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_atX-tr$Xssl.SSLContext.cert_store_statsr$(jjXIhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.cert_store_statsX-tr$X)logging.handlers.SocketHandler.makePickler$(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.makePickleX-tr$Xtkinter.ttk.Treeview.bboxr$(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.bboxX-tr$X$asyncio.BaseProtocol.connection_lostr$(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_lostX-tr$X.xml.parsers.expat.xmlparser.AttlistDeclHandlerr$(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.AttlistDeclHandlerX-tr$X*xml.etree.ElementTree.ElementTree.iterfindr$(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.iterfindX-tr$Xlogging.Logger.hasHandlersr$(jjXHhttp://docs.python.org/3/library/logging.html#logging.Logger.hasHandlersX-tr$Xbdb.Bdb.set_untilr$(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_untilX-tr$Xdecimal.Context.next_minusr$(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_minusX-tr$X bytes.replacer$(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.replaceX-tr$Xdecimal.Decimal.fmar$(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.fmaX-tr$Xprofile.Profile.disabler$(jjXEhttp://docs.python.org/3/library/profile.html#profile.Profile.disableX-tr$X&unittest.TestCase.assertMultiLineEqualr$(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertMultiLineEqualX-tr$X$unittest.TestCase.assertGreaterEqualr$(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertGreaterEqualX-tr$Xdecimal.Context.minr$(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.minX-tr$Xsqlite3.Connection.cursorr$(jjXGhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.cursorX-tr$X'email.message.EmailMessage.make_relatedr$(jjXbhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_relatedX-tr$Xsymtable.Symbol.get_namespacer$(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_namespaceX-tr$X)distutils.fancy_getopt.FancyGetopt.getoptr$(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.getoptX-tr$Xdecimal.Context.scalebr$(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.scalebX-tr$Xemail.policy.Compat32.foldr$(jjXMhttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32.foldX-tr$X'xml.etree.ElementTree.ElementTree.parser$(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.parseX-tr$X)xml.sax.xmlreader.IncrementalParser.resetr$(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.resetX-tr$Xdatetime.datetime.timer$(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timeX-tr$X!weakref.WeakKeyDictionary.keyrefsr$(jjXOhttp://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionary.keyrefsX-tr$Xunittest.TestResult.addErrorr$(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addErrorX-tr$Xmmap.mmap.read_byter$(jjX>http://docs.python.org/3/library/mmap.html#mmap.mmap.read_byteX-tr$Xemail.message.Message.get_paramr$(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.get_paramX-tr$Xdatetime.datetime.replacer$(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.replaceX-tr$X!mailbox.MaildirMessage.get_subdirr$(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_subdirX-tr$X(asyncio.BaseEventLoop.connect_write_piper$(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.connect_write_pipeX-tr$Xbdb.Bdb.do_clearr$(jjX:http://docs.python.org/3/library/bdb.html#bdb.Bdb.do_clearX-tr$X object.__ne__r$(jjX?http://docs.python.org/3/reference/datamodel.html#object.__ne__X-tr$Xbytearray.lowerr$(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.lowerX-tr$Xpathlib.Path.is_char_devicer$(jjXIhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_char_deviceX-tr$Xlogging.Logger.isEnabledForr%(jjXIhttp://docs.python.org/3/library/logging.html#logging.Logger.isEnabledForX-tr%X%unittest.mock.Mock.assert_called_withr%(jjXYhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_called_withX-tr%Xmailbox.Maildir.__setitem__r%(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.__setitem__X-tr%Xobject.__radd__r%(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__radd__X-tr%X1distutils.ccompiler.CCompiler.executable_filenamer%(jjX`http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.executable_filenameX-tr %X_thread.lock.lockedr %(jjXAhttp://docs.python.org/3/library/_thread.html#_thread.lock.lockedX-tr %Xssl.SSLSocket.compressionr %(jjXChttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.compressionX-tr %Xstr.rpartitionr%(jjX=http://docs.python.org/3/library/stdtypes.html#str.rpartitionX-tr%X%importlib.abc.SourceLoader.is_packager%(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.is_packageX-tr%X8distutils.ccompiler.CCompiler.runtime_library_dir_optionr%(jjXghttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.runtime_library_dir_optionX-tr%Xtkinter.ttk.Progressbar.stepr%(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stepX-tr%Xasyncio.Handle.cancelr%(jjXMhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Handle.cancelX-tr%Xcurses.window.echocharr%(jjXChttp://docs.python.org/3/library/curses.html#curses.window.echocharX-tr%Xio.BufferedReader.read1r%(jjX@http://docs.python.org/3/library/io.html#io.BufferedReader.read1X-tr%X#xml.parsers.expat.xmlparser.GetBaser%(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.GetBaseX-tr%Xformatter.formatter.push_fontr%(jjXMhttp://docs.python.org/3/library/formatter.html#formatter.formatter.push_fontX-tr%Xthreading.Condition.releaser %(jjXKhttp://docs.python.org/3/library/threading.html#threading.Condition.releaseX-tr!%X%configparser.ConfigParser.read_stringr"%(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_stringX-tr#%X,distutils.ccompiler.CCompiler.library_optionr$%(jjX[http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_optionX-tr%%Xcurses.window.encloser&%(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.encloseX-tr'%X&optparse.OptionParser.get_option_groupr(%(jjXUhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_option_groupX-tr)%Xtkinter.ttk.Treeview.itemr*%(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.itemX-tr+%Xmailbox.Mailbox.lockr,%(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.lockX-tr-%X%ossaudiodev.oss_audio_device.obuffreer.%(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.obuffreeX-tr/%Xcurses.window.inchr0%(jjX?http://docs.python.org/3/library/curses.html#curses.window.inchX-tr1%Xdecimal.Context.logical_orr2%(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_orX-tr3%X*msilib.SummaryInformation.GetPropertyCountr4%(jjXWhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.GetPropertyCountX-tr5%X&logging.handlers.BufferingHandler.emitr6%(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.emitX-tr7%X"collections.somenamedtuple._asdictr8%(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._asdictX-tr9%X%tkinter.tix.tixCommand.tix_filedialogr:%(jjXWhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_filedialogX-tr;%Xcurses.window.insdellnr<%(jjXChttp://docs.python.org/3/library/curses.html#curses.window.insdellnX-tr=%Xbdb.Bdb.stop_herer>%(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.stop_hereX-tr?%X&argparse.ArgumentParser.add_subparsersr@%(jjXUhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_subparsersX-trA%Xsocket.socket.ioctlrB%(jjX@http://docs.python.org/3/library/socket.html#socket.socket.ioctlX-trC%X/importlib.machinery.SourceFileLoader.is_packagerD%(jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.is_packageX-trE%Xmsilib.Dialog.pushbuttonrF%(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.pushbuttonX-trG%Xmsilib.View.GetColumnInforH%(jjXFhttp://docs.python.org/3/library/msilib.html#msilib.View.GetColumnInfoX-trI%Xcollections.deque.extendleftrJ%(jjXNhttp://docs.python.org/3/library/collections.html#collections.deque.extendleftX-trK%Xdecimal.Context.is_canonicalrL%(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_canonicalX-trM%Xformatter.formatter.set_spacingrN%(jjXOhttp://docs.python.org/3/library/formatter.html#formatter.formatter.set_spacingX-trO%X'xml.sax.xmlreader.XMLReader.setPropertyrP%(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setPropertyX-trQ%X,asyncio.BaseEventLoop.call_exception_handlerrR%(jjXdhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_exception_handlerX-trS%X/wsgiref.simple_server.WSGIRequestHandler.handlerT%(jjX]http://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler.handleX-trU%X*multiprocessing.managers.BaseProxy.__str__rV%(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__str__X-trW%Xbdb.Bdb.get_file_breaksrX%(jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.get_file_breaksX-trY%X(asyncio.BaseEventLoop.add_signal_handlerrZ%(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_signal_handlerX-tr[%X)distutils.ccompiler.CCompiler.debug_printr\%(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.debug_printX-tr]%Xprofile.Profile.print_statsr^%(jjXIhttp://docs.python.org/3/library/profile.html#profile.Profile.print_statsX-tr_%X object.__or__r`%(jjX?http://docs.python.org/3/reference/datamodel.html#object.__or__X-tra%X$http.client.HTTPConnection.putheaderrb%(jjXVhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.putheaderX-trc%X2importlib.machinery.ExtensionFileLoader.get_sourcerd%(jjXbhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_sourceX-tre%Xunittest.mock.Mock.reset_mockrf%(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.reset_mockX-trg%Xdatetime.datetime.weekdayrh%(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.weekdayX-tri%Xbdb.Bdb.get_breakrj%(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_breakX-trk%X&email.message.Message.get_content_typerl%(jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_content_typeX-trm%X-distutils.ccompiler.CCompiler.detect_languagern%(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.detect_languageX-tro%Xasyncio.DatagramTransport.abortrp%(jjXVhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramTransport.abortX-trq%Xtypes.MappingProxyType.copyrr%(jjXGhttp://docs.python.org/3/library/types.html#types.MappingProxyType.copyX-trs%Xasyncio.Future.cancelledrt%(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.cancelledX-tru%Xdatetime.time.utcoffsetrv%(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.time.utcoffsetX-trw%X*multiprocessing.managers.SyncManager.Valuerx%(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ValueX-try%X bytes.joinrz%(jjX9http://docs.python.org/3/library/stdtypes.html#bytes.joinX-tr{%X0urllib.request.HTTPErrorProcessor.https_responser|%(jjXehttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.https_responseX-tr}%X#logging.handlers.SocketHandler.sendr~%(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.sendX-tr%Xmailbox.Mailbox.valuesr%(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.valuesX-tr%Xdatetime.date.isocalendarr%(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.date.isocalendarX-tr%X"contextlib.ExitStack.enter_contextr%(jjXShttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.enter_contextX-tr%X#unittest.TestCase.assertAlmostEqualr%(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertAlmostEqualX-tr%Xxdrlib.Unpacker.doner%(jjXAhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.doneX-tr%Xzipfile.ZipFile.writestrr%(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writestrX-tr%X"asyncio.StreamReader.set_exceptionr%(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.set_exceptionX-tr%X6concurrent.futures.Future.set_running_or_notify_cancelr%(jjXohttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_running_or_notify_cancelX-tr%X ossaudiodev.oss_mixer_device.getr%(jjXRhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.getX-tr%Xasyncore.dispatcher.closer%(jjXHhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.closeX-tr%Xunittest.TestResult.stopTestRunr%(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopTestRunX-tr%Xdatetime.date.ctimer%(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.ctimeX-tr%X mailbox.MaildirMessage.set_flagsr%(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_flagsX-tr%Xxml.dom.Element.hasAttributeNSr%(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.hasAttributeNSX-tr%X*multiprocessing.Connection.recv_bytes_intor%(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recv_bytes_intoX-tr%X#http.cookiejar.CookieJar.set_cookier%(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_cookieX-tr%Xfloat.is_integerr%(jjX?http://docs.python.org/3/library/stdtypes.html#float.is_integerX-tr%Xio.BufferedIOBase.detachr%(jjXAhttp://docs.python.org/3/library/io.html#io.BufferedIOBase.detachX-tr%Xasyncio.Server.closer%(jjXLhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Server.closeX-tr%X&asyncio.BaseEventLoop.subprocess_shellr%(jjX_http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.BaseEventLoop.subprocess_shellX-tr%X%msilib.SummaryInformation.SetPropertyr%(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.SummaryInformation.SetPropertyX-tr%Xxdrlib.Packer.pack_opaquer%(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_opaqueX-tr%X str.indexr%(jjX8http://docs.python.org/3/library/stdtypes.html#str.indexX-tr%X#asyncio.BaseEventLoop.remove_readerr%(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_readerX-tr%X"concurrent.futures.Executor.submitr%(jjX[http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.submitX-tr%Xthreading.Lock.acquirer%(jjXFhttp://docs.python.org/3/library/threading.html#threading.Lock.acquireX-tr%Xconcurrent.futures.Executor.mapr%(jjXXhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.mapX-tr%Xasyncore.dispatcher.acceptr%(jjXIhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.acceptX-tr%Xcurses.window.idcokr%(jjX@http://docs.python.org/3/library/curses.html#curses.window.idcokX-tr%X*importlib.abc.ExecutionLoader.get_filenamer%(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.abc.ExecutionLoader.get_filenameX-tr%Xbytearray.rfindr%(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.rfindX-tr%Xre.match.groupr%(jjX7http://docs.python.org/3/library/re.html#re.match.groupX-tr%Xasyncio.BaseEventLoop.stopr%(jjXRhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.stopX-tr%X set.issubsetr%(jjX;http://docs.python.org/3/library/stdtypes.html#set.issubsetX-tr%Xsched.scheduler.cancelr%(jjXBhttp://docs.python.org/3/library/sched.html#sched.scheduler.cancelX-tr%X$xml.etree.ElementTree.Element.extendr%(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.extendX-tr%Xdecimal.Context.copy_negater%(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_negateX-tr%X#asynchat.async_chat.close_when_doner%(jjXRhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.close_when_doneX-tr%X dict.updater%(jjX:http://docs.python.org/3/library/stdtypes.html#dict.updateX-tr%X*http.cookiejar.CookieJar.add_cookie_headerr%(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.add_cookie_headerX-tr%Xsocket.socket.listenr%(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.listenX-tr%Xtracemalloc.Snapshot.statisticsr%(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.statisticsX-tr%X!optparse.OptionParser.get_versionr%(jjXPhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_versionX-tr%Xmailbox.Mailbox.get_messager%(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_messageX-tr%Xdatetime.datetime.tznamer%(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.tznameX-tr%X%tkinter.ttk.Treeview.selection_remover%(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_removeX-tr%Xtkinter.ttk.Treeview.tag_bindr%(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_bindX-tr%Xdecimal.Decimal.rotater%(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.rotateX-tr%Xxml.dom.minidom.Node.toxmlr%(jjXPhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.toxmlX-tr%X,http.cookiejar.CookiePolicy.domain_return_okr%(jjXahttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.domain_return_okX-tr%Xarray.array.extendr%(jjX>http://docs.python.org/3/library/array.html#array.array.extendX-tr%Xmailbox.MH.discardr%(jjX@http://docs.python.org/3/library/mailbox.html#mailbox.MH.discardX-tr%X#argparse.ArgumentParser.format_helpr%(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_helpX-tr%X)code.InteractiveInterpreter.showtracebackr%(jjXThttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.showtracebackX-tr%Xdecimal.Decimal.logical_xorr%(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_xorX-tr%Xipaddress.IPv6Network.supernetr%(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.supernetX-tr%Xmailbox.Babyl.get_filer%(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_fileX-tr%Xdatetime.date.isoformatr%(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.date.isoformatX-tr%X#calendar.Calendar.monthdayscalendarr%(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdayscalendarX-tr%X.asyncio.asyncio.subprocess.Process.communicater%(jjXghttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.communicateX-tr%X1http.server.BaseHTTPRequestHandler.address_stringr%(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.address_stringX-tr%X!asyncore.dispatcher.create_socketr%(jjXPhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.create_socketX-tr%Xdecimal.Context.copyr%(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.copyX-tr%X#collections.somenamedtuple._replacer%(jjXUhttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._replaceX-tr%Xobject.__divmod__r&(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__divmod__X-tr&X#formatter.formatter.flush_softspacer&(jjXShttp://docs.python.org/3/library/formatter.html#formatter.formatter.flush_softspaceX-tr&Xfractions.Fraction.__floor__r&(jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.__floor__X-tr&Xaifc.aifc.readframesr&(jjX?http://docs.python.org/3/library/aifc.html#aifc.aifc.readframesX-tr&X+email.message.EmailMessage.make_alternativer&(jjXfhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_alternativeX-tr &X+email.policy.EmailPolicy.header_fetch_parser &(jjX^http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_fetch_parseX-tr &Xsqlite3.Connection.rollbackr &(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.rollbackX-tr &X"asynchat.async_chat.get_terminatorr&(jjXQhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.get_terminatorX-tr&X1urllib.request.HTTPPasswordMgr.find_user_passwordr&(jjXfhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.find_user_passwordX-tr&Xcsv.Sniffer.has_headerr&(jjX@http://docs.python.org/3/library/csv.html#csv.Sniffer.has_headerX-tr&Xbytearray.indexr&(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.indexX-tr&X unittest.TestCase.assertNotEqualr&(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotEqualX-tr&Xemail.header.Header.encoder&(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.Header.encodeX-tr&Xcurses.window.addstrr&(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.addstrX-tr&Xlogging.Handler.handleErrorr&(jjXIhttp://docs.python.org/3/library/logging.html#logging.Handler.handleErrorX-tr&Xdecimal.Context.is_snanr&(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_snanX-tr&X-http.server.BaseHTTPRequestHandler.send_errorr &(jjX_http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_errorX-tr!&X&xml.etree.ElementTree.Element.iterfindr"&(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iterfindX-tr#&Xmultiprocessing.Connection.recvr$&(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recvX-tr%&Xtkinter.ttk.Style.mapr&&(jjXGhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.mapX-tr'&Xpdb.Pdb.set_tracer(&(jjX;http://docs.python.org/3/library/pdb.html#pdb.Pdb.set_traceX-tr)&Xconfigparser.ConfigParser.writer*&(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.writeX-tr+&Xcurses.window.attrsetr,&(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.attrsetX-tr-&Xssl.SSLSocket.pendingr.&(jjX?http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.pendingX-tr/&Xobject.__irshift__r0&(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__irshift__X-tr1&Xdecimal.Decimal.is_canonicalr2&(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_canonicalX-tr3&Xmmap.mmap.seekr4&(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.seekX-tr5&X!concurrent.futures.Future.runningr6&(jjXZhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.runningX-tr7&Xtimeit.Timer.print_excr8&(jjXChttp://docs.python.org/3/library/timeit.html#timeit.Timer.print_excX-tr9&X#asyncio.BaseEventLoop.remove_writerr:&(jjX[http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_writerX-tr;&Xobject.__delattr__r<&(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__delattr__X-tr=&X.asyncio.AbstractEventLoopPolicy.get_event_loopr>&(jjXghttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.AbstractEventLoopPolicy.get_event_loopX-tr?&Xiterator.__iter__r@&(jjX@http://docs.python.org/3/library/stdtypes.html#iterator.__iter__X-trA&X%tkinter.ttk.Notebook.enable_traversalrB&(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.enable_traversalX-trC&X"html.parser.HTMLParser.handle_datarD&(jjXThttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_dataX-trE&Xzipfile.ZipFile.namelistrF&(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.namelistX-trG&X asyncore.dispatcher.handle_closerH&(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_closeX-trI&X-distutils.ccompiler.CCompiler.add_include_dirrJ&(jjX\http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_include_dirX-trK&Xaifc.aifc.getmarkrL&(jjX<http://docs.python.org/3/library/aifc.html#aifc.aifc.getmarkX-trM&Xbytearray.rstriprN&(jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.rstripX-trO&X&asynchat.async_chat.push_with_producerrP&(jjXUhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.push_with_producerX-trQ&Xlogging.Logger.logrR&(jjX@http://docs.python.org/3/library/logging.html#logging.Logger.logX-trS&Xarray.array.removerT&(jjX>http://docs.python.org/3/library/array.html#array.array.removeX-trU&X)http.server.BaseHTTPRequestHandler.handlerV&(jjX[http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handleX-trW&Xemail.message.Message.get_allrX&(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_allX-trY&X#email.charset.Charset.header_encoderZ&(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encodeX-tr[&Xtarfile.TarInfo.isfiler\&(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isfileX-tr]&Xbdb.Bdb.format_stack_entryr^&(jjXDhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.format_stack_entryX-tr_&X#ssl.SSLSocket.selected_npn_protocolr`&(jjXMhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_npn_protocolX-tra&Xzlib.Compress.flushrb&(jjX>http://docs.python.org/3/library/zlib.html#zlib.Compress.flushX-trc&X#urllib.request.Request.header_itemsrd&(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.header_itemsX-tre&X*urllib.request.UnknownHandler.unknown_openrf&(jjX_http://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandler.unknown_openX-trg&Xdict.getrh&(jjX7http://docs.python.org/3/library/stdtypes.html#dict.getX-tri&X#asyncio.ReadTransport.pause_readingrj&(jjXZhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.ReadTransport.pause_readingX-trk&Xcurses.window.scrollrl&(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.scrollX-trm&Xtkinter.ttk.Notebook.forgetrn&(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.forgetX-tro&X email.contentmanager.get_contentrp&(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.get_contentX-trq&X"filecmp.dircmp.report_full_closurerr&(jjXPhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.report_full_closureX-trs&Xcurses.panel.Panel.replacert&(jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.replaceX-tru&X.http.server.BaseHTTPRequestHandler.log_messagerv&(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.log_messageX-trw&Xobject.__and__rx&(jjX@http://docs.python.org/3/reference/datamodel.html#object.__and__X-try&X html.parser.HTMLParser.handle_pirz&(jjXRhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_piX-tr{&X&unittest.TestCase.assertNotAlmostEqualr|&(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotAlmostEqualX-tr}&X6http.cookiejar.DefaultCookiePolicy.set_allowed_domainsr~&(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.set_allowed_domainsX-tr&Xpoplib.POP3.listr&(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.listX-tr&X*multiprocessing.managers.SyncManager.Arrayr&(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.ArrayX-tr&Xpstats.Stats.dump_statsr&(jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.dump_statsX-tr&Xipaddress.IPv4Network.hostsr&(jjXKhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostsX-tr&X0distutils.fancy_getopt.FancyGetopt.generate_helpr&(jjX_http://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.generate_helpX-tr&Xstr.isidentifierr&(jjX?http://docs.python.org/3/library/stdtypes.html#str.isidentifierX-tr&Xpipes.Template.openr&(jjX?http://docs.python.org/3/library/pipes.html#pipes.Template.openX-tr&Xcsv.DictWriter.writeheaderr&(jjXDhttp://docs.python.org/3/library/csv.html#csv.DictWriter.writeheaderX-tr&Xwave.Wave_read.getnframesr&(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getnframesX-tr&X object.__gt__r&(jjX?http://docs.python.org/3/reference/datamodel.html#object.__gt__X-tr&Xcurses.window.syncupr&(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.syncupX-tr&Xformatter.writer.new_marginr&(jjXKhttp://docs.python.org/3/library/formatter.html#formatter.writer.new_marginX-tr&Xasyncio.Queue.putr&(jjXDhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.putX-tr&Xunittest.TestResult.addFailurer&(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addFailureX-tr&X$email.generator.BytesGenerator.writer&(jjXZhttp://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.writeX-tr&Xdecimal.Context.fmar&(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.fmaX-tr&X,asyncio.BaseEventLoop.create_unix_connectionr&(jjXdhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_unix_connectionX-tr&X/xml.etree.ElementTree.XMLPullParser.read_eventsr&(jjXkhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.read_eventsX-tr&Xdbm.gnu.gdbm.closer&(jjX<http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.closeX-tr&Xdecimal.Context.log10r&(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.log10X-tr&Xio.StringIO.getvaluer&(jjX=http://docs.python.org/3/library/io.html#io.StringIO.getvalueX-tr&X+asyncio.BaseSubprocessTransport.send_signalr&(jjXbhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.send_signalX-tr&Xipaddress.IPv6Network.subnetsr&(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.subnetsX-tr&Xaifc.aifc.getsampwidthr&(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.getsampwidthX-tr&X1xml.sax.handler.ContentHandler.setDocumentLocatorr&(jjXghttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.setDocumentLocatorX-tr&X)asynchat.async_chat.collect_incoming_datar&(jjXXhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.collect_incoming_dataX-tr&Xaifc.aifc.getparamsr&(jjX>http://docs.python.org/3/library/aifc.html#aifc.aifc.getparamsX-tr&Xhttp.client.HTTPResponse.filenor&(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.filenoX-tr&X#importlib.abc.SourceLoader.set_datar&(jjXShttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.set_dataX-tr&Xmmap.mmap.flushr&(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.flushX-tr&Xtarfile.TarInfo.fromtarfiler&(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.fromtarfileX-tr&Xasyncio.Event.clearr&(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.clearX-tr&Xmailbox.Mailbox.__len__r&(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__len__X-tr&Xxml.dom.Element.setAttributeNSr&(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNSX-tr&Xio.BytesIO.read1r&(jjX9http://docs.python.org/3/library/io.html#io.BytesIO.read1X-tr&Xprofile.Profile.enabler&(jjXDhttp://docs.python.org/3/library/profile.html#profile.Profile.enableX-tr&X str.titler&(jjX8http://docs.python.org/3/library/stdtypes.html#str.titleX-tr&X!xml.parsers.expat.xmlparser.Parser&(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ParseX-tr&Xmimetypes.MimeTypes.guess_typer&(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_typeX-tr&X asyncore.dispatcher.handle_errorr&(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_errorX-tr&X str.isnumericr&(jjX<http://docs.python.org/3/library/stdtypes.html#str.isnumericX-tr&X.multiprocessing.managers.SyncManager.Semaphorer&(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.SemaphoreX-tr&Ximaplib.IMAP4.getquotar&(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.getquotaX-tr&X3importlib.machinery.SourcelessFileLoader.is_packager&(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.is_packageX-tr&Xarray.array.appendr&(jjX>http://docs.python.org/3/library/array.html#array.array.appendX-tr&Xsocket.socket.getsocknamer&(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.getsocknameX-tr&X&distutils.text_file.TextFile.readlinesr&(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.readlinesX-tr&X!gettext.NullTranslations.ngettextr&(jjXOhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.ngettextX-tr&Xconfigparser.ConfigParser.getr&(jjXPhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getX-tr&Xsocket.socket.getpeernamer&(jjXFhttp://docs.python.org/3/library/socket.html#socket.socket.getpeernameX-tr&Xxdrlib.Packer.resetr&(jjX@http://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.resetX-tr&Xnntplib.NNTP.bodyr&(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.bodyX-tr&Xtarfile.TarInfo.isdirr&(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isdirX-tr&Xpoplib.POP3.rsetr&(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.rsetX-tr&Xftplib.FTP.sendcmdr&(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.sendcmdX-tr&Xthreading.Thread.setNamer&(jjXHhttp://docs.python.org/3/library/threading.html#threading.Thread.setNameX-tr&X xml.dom.minidom.Node.toprettyxmlr&(jjXVhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.toprettyxmlX-tr&X"argparse.ArgumentParser.parse_argsr&(jjXQhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_argsX-tr&Xtkinter.ttk.Style.layoutr&(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.layoutX-tr&Xsmtplib.SMTP.connectr&(jjXBhttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connectX-tr&Xasyncio.Protocol.eof_receivedr&(jjXThttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.Protocol.eof_receivedX-tr&X mailbox.MaildirMessage.get_flagsr&(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_flagsX-tr&X%multiprocessing.pool.Pool.apply_asyncr&(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.apply_asyncX-tr&Xpathlib.Path.rglobr&(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.rglobX-tr&Xparser.ST.isexprr'(jjX=http://docs.python.org/3/library/parser.html#parser.ST.isexprX-tr'X$symtable.SymbolTable.has_import_starr'(jjXShttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_import_starX-tr'X#logging.handlers.SocketHandler.emitr'(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.emitX-tr'X%configparser.ConfigParser.add_sectionr'(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.add_sectionX-tr'Xobject.__len__r'(jjX@http://docs.python.org/3/reference/datamodel.html#object.__len__X-tr 'Xzipfile.ZipFile.extractallr '(jjXHhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extractallX-tr 'Xmsilib.Record.SetIntegerr '(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Record.SetIntegerX-tr 'Xzipfile.ZipFile.infolistr'(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.infolistX-tr'Xwinreg.PyHKEY.__enter__r'(jjXDhttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.__enter__X-tr'Xasyncio.StreamWriter.write_eofr'(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.write_eofX-tr'Xbdb.Breakpoint.disabler'(jjX@http://docs.python.org/3/library/bdb.html#bdb.Breakpoint.disableX-tr'Xcode.InteractiveConsole.pushr'(jjXGhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.pushX-tr'X#optparse.OptionParser.remove_optionr'(jjXRhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.remove_optionX-tr'X$email.message.Message.replace_headerr'(jjXXhttp://docs.python.org/3/library/email.message.html#email.message.Message.replace_headerX-tr'X.http.cookiejar.CookieJar.clear_session_cookiesr'(jjXchttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.clear_session_cookiesX-tr'Xxml.dom.Element.hasAttributer'(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.hasAttributeX-tr'Xmailbox.MH.flushr '(jjX>http://docs.python.org/3/library/mailbox.html#mailbox.MH.flushX-tr!'Xdatetime.time.dstr"'(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.dstX-tr#'X5http.server.BaseHTTPRequestHandler.send_response_onlyr$'(jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.send_response_onlyX-tr%'Xcsv.csvwriter.writerowsr&'(jjXAhttp://docs.python.org/3/library/csv.html#csv.csvwriter.writerowsX-tr''Xnntplib.NNTP.statr('(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.statX-tr)'Xdatetime.datetime.isoformatr*'(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.isoformatX-tr+'X tkinter.ttk.Style.theme_settingsr,'(jjXRhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_settingsX-tr-'Xselect.devpoll.unregisterr.'(jjXFhttp://docs.python.org/3/library/select.html#select.devpoll.unregisterX-tr/'Xasyncio.Server.wait_closedr0'(jjXRhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Server.wait_closedX-tr1'X configparser.RawConfigParser.setr2'(jjXShttp://docs.python.org/3/library/configparser.html#configparser.RawConfigParser.setX-tr3'X!doctest.DocTestParser.get_doctestr4'(jjXOhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.get_doctestX-tr5'X#http.cookiejar.CookieJar.set_policyr6'(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_policyX-tr7'X set.discardr8'(jjX:http://docs.python.org/3/library/stdtypes.html#set.discardX-tr9'X-http.cookiejar.DefaultCookiePolicy.is_blockedr:'(jjXbhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.is_blockedX-tr;'X%importlib.abc.SourceLoader.get_sourcer<'(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.get_sourceX-tr='Xmsilib.Dialog.liner>'(jjX?http://docs.python.org/3/library/msilib.html#msilib.Dialog.lineX-tr?'X calendar.Calendar.itermonthdatesr@'(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdatesX-trA'Xcollections.Counter.elementsrB'(jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.elementsX-trC'X#collections.defaultdict.__missing__rD'(jjXUhttp://docs.python.org/3/library/collections.html#collections.defaultdict.__missing__X-trE'X calendar.TextCalendar.formatyearrF'(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatyearX-trG'Xaifc.aifc.getcomptyperH'(jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.getcomptypeX-trI'Xmailbox.MH.get_sequencesrJ'(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_sequencesX-trK'Xtarfile.TarInfo.tobufrL'(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.tobufX-trM'Xsocket.socket.sendmsgrN'(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.sendmsgX-trO'Xjson.JSONEncoder.encoderP'(jjXBhttp://docs.python.org/3/library/json.html#json.JSONEncoder.encodeX-trQ'Xobject.__getnewargs__rR'(jjXBhttp://docs.python.org/3/library/pickle.html#object.__getnewargs__X-trS'Xmmap.mmap.findrT'(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.findX-trU'X%weakref.WeakValueDictionary.valuerefsrV'(jjXShttp://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionary.valuerefsX-trW'XAxmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentationrX'(jjXuhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentationX-trY'Xpoplib.POP3.toprZ'(jjX<http://docs.python.org/3/library/poplib.html#poplib.POP3.topX-tr['Xmailbox.Mailbox.__contains__r\'(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__contains__X-tr]'Xshlex.shlex.push_tokenr^'(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.push_tokenX-tr_'Xunittest.TestCase.assertFalser`'(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertFalseX-tra'Xasyncio.Condition.lockedrb'(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.lockedX-trc'Xtkinter.ttk.Widget.identifyrd'(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.identifyX-tre'X.distutils.ccompiler.CCompiler.library_filenamerf'(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.library_filenameX-trg'X asyncio.BaseEventLoop.add_writerrh'(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.add_writerX-tri'Xdatetime.date.__str__rj'(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.__str__X-trk'X telnetlib.Telnet.read_very_eagerrl'(jjXPhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_very_eagerX-trm'Xsocket.socket.filenorn'(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.filenoX-tro'Ximaplib.IMAP4.fetchrp'(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.fetchX-trq'Xssl.SSLContext.get_ca_certsrr'(jjXEhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ca_certsX-trs'Xdecimal.Context.logical_xorrt'(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.logical_xorX-tru'Xsocket.socket.closerv'(jjX@http://docs.python.org/3/library/socket.html#socket.socket.closeX-trw'X+logging.handlers.BaseRotatingHandler.rotaterx'(jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotateX-try'Xtarfile.TarFile.extractrz'(jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractX-tr{'X bytes.upperr|'(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.upperX-tr}'Xtkinter.ttk.Style.theme_creater~'(jjXPhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_createX-tr'Xmultiprocessing.pool.Pool.applyr'(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.applyX-tr'X1doctest.DocTestRunner.report_unexpected_exceptionr'(jjX_http://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_unexpected_exceptionX-tr'Xcurses.window.nodelayr'(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.nodelayX-tr'Xsymtable.Symbol.is_assignedr'(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_assignedX-tr'Xdecimal.Context.is_signedr'(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_signedX-tr'Xselect.epoll.registerr'(jjXBhttp://docs.python.org/3/library/select.html#select.epoll.registerX-tr'X#asyncio.Future.remove_done_callbackr'(jjXVhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.remove_done_callbackX-tr'Xlogging.Logger.debugr'(jjXBhttp://docs.python.org/3/library/logging.html#logging.Logger.debugX-tr'X frame.clearr'(jjX=http://docs.python.org/3/reference/datamodel.html#frame.clearX-tr'Xpprint.PrettyPrinter.pformatr'(jjXIhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pformatX-tr'X)email.message.EmailMessage.add_attachmentr'(jjXdhttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.add_attachmentX-tr'X)wsgiref.handlers.BaseHandler.error_outputr'(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_outputX-tr'Xdecimal.Context.copy_decimalr'(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Context.copy_decimalX-tr'Xunittest.TestResult.addSubTestr'(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSubTestX-tr'Xdecimal.Context.comparer'(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.compareX-tr'Xmailbox.Mailbox.itemsr'(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itemsX-tr'Xsubprocess.Popen.communicater'(jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicateX-tr'X$email.policy.EmailPolicy.fold_binaryr'(jjXWhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.fold_binaryX-tr'Xlogging.Logger.infor'(jjXAhttp://docs.python.org/3/library/logging.html#logging.Logger.infoX-tr'Xxdrlib.Unpacker.unpack_doubler'(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_doubleX-tr'X bytes.rindexr'(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.rindexX-tr'Xcurses.window.attronr'(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.attronX-tr'Xio.IOBase.flushr'(jjX8http://docs.python.org/3/library/io.html#io.IOBase.flushX-tr'Xmailbox.mboxMessage.remove_flagr'(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.remove_flagX-tr'Xmsilib.View.Closer'(jjX>http://docs.python.org/3/library/msilib.html#msilib.View.CloseX-tr'X(urllib.robotparser.RobotFileParser.mtimer'(jjXahttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.mtimeX-tr'X sqlite3.Connection.executescriptr'(jjXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executescriptX-tr'Xweakref.finalize.detachr'(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.finalize.detachX-tr'X str.rsplitr'(jjX9http://docs.python.org/3/library/stdtypes.html#str.rsplitX-tr'X!asyncio.BaseEventLoop.getaddrinfor'(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.getaddrinfoX-tr'X(email.message.EmailMessage.clear_contentr'(jjXchttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.clear_contentX-tr'Xxml.dom.Document.createElementr'(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createElementX-tr'Xdatetime.timezone.utcoffsetr'(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.timezone.utcoffsetX-tr'X re.regex.subnr'(jjX6http://docs.python.org/3/library/re.html#re.regex.subnX-tr'Xdecimal.Decimal.number_classr'(jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.number_classX-tr'Xmailbox.Mailbox.popitemr'(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popitemX-tr'X)xml.etree.ElementTree.Element.getiteratorr'(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getiteratorX-tr'Xmultiprocessing.SimpleQueue.getr'(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.getX-tr'X!calendar.HTMLCalendar.formatmonthr'(jjXPhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatmonthX-tr'Xtkinter.ttk.Treeview.parentr'(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.parentX-tr'X%ossaudiodev.oss_audio_device.nonblockr'(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.nonblockX-tr'Xmmap.mmap.write_byter'(jjX?http://docs.python.org/3/library/mmap.html#mmap.mmap.write_byteX-tr'X$formatter.formatter.add_flowing_datar'(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_flowing_dataX-tr'Xasyncio.Condition.acquirer'(jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Condition.acquireX-tr'Xsymtable.Class.get_methodsr'(jjXIhttp://docs.python.org/3/library/symtable.html#symtable.Class.get_methodsX-tr'Xobject.__getitem__r'(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__getitem__X-tr'X"email.message.Message.get_boundaryr'(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_boundaryX-tr'Xvenv.EnvBuilder.creater'(jjXAhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.createX-tr'X0urllib.request.FancyURLopener.prompt_user_passwdr'(jjXehttp://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopener.prompt_user_passwdX-tr'X!email.charset.Charset.body_encoder'(jjXUhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.body_encodeX-tr'X bytes.rfindr'(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.rfindX-tr'Xcurses.window.is_linetouchedr'(jjXIhttp://docs.python.org/3/library/curses.html#curses.window.is_linetouchedX-tr'Xmailbox.MH.get_filer'(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_fileX-tr'Xthreading.Event.is_setr'(jjXFhttp://docs.python.org/3/library/threading.html#threading.Event.is_setX-tr'Xtkinter.ttk.Notebook.addr'(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.addX-tr'Xxml.dom.Element.removeAttributer'(jjXMhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeX-tr'Xbdb.Bdb.break_anywherer'(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.break_anywhereX-tr'X.multiprocessing.managers.BaseProxy._callmethodr'(jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._callmethodX-tr'Xdatetime.date.replacer'(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.date.replaceX-tr'X"gettext.NullTranslations.lngettextr'(jjXPhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.lngettextX-tr'X!symtable.SymbolTable.has_childrenr'(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.has_childrenX-tr'X,xml.sax.handler.EntityResolver.resolveEntityr'(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolver.resolveEntityX-tr'X"urllib.request.OpenerDirector.openr'(jjXWhttp://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.openX-tr'Xunittest.TestSuite.debugr'(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.debugX-tr'X(xml.sax.xmlreader.IncrementalParser.feedr((jjX]http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.feedX-tr(Xasyncio.Event.waitr((jjXEhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Event.waitX-tr(X!tkinter.ttk.Style.element_optionsr((jjXShttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_optionsX-tr(Xnntplib.NNTP.dater((jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.dateX-tr(Xmultiprocessing.Queue.getr((jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.getX-tr (Xbytearray.expandtabsr ((jjXChttp://docs.python.org/3/library/stdtypes.html#bytearray.expandtabsX-tr (Xpoplib.POP3.stlsr ((jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.stlsX-tr (X!asyncio.BaseEventLoop.sock_acceptr((jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_acceptX-tr(Xcurses.window.mvderwinr((jjXChttp://docs.python.org/3/library/curses.html#curses.window.mvderwinX-tr(Xbytearray.rindexr((jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.rindexX-tr(Xobject.__imod__r((jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__imod__X-tr(Xdecimal.Decimal.is_nanr((jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_nanX-tr(Xcurses.window.putwinr((jjXAhttp://docs.python.org/3/library/curses.html#curses.window.putwinX-tr(X)multiprocessing.managers.SyncManager.dictr((jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.dictX-tr(X'logging.handlers.BufferingHandler.flushr((jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler.flushX-tr(Xobject.__getattr__r((jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__getattr__X-tr(X!email.message.Message.__getitem__r ((jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__getitem__X-tr!(X object.__ge__r"((jjX?http://docs.python.org/3/reference/datamodel.html#object.__ge__X-tr#(X0xmlrpc.client.ServerProxy.system.methodSignaturer$((jjXdhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodSignatureX-tr%(X"codecs.IncrementalEncoder.getstater&((jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.getstateX-tr'(Xtarfile.TarFile.closer(((jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.closeX-tr)(X#mailbox.BabylMessage.update_visibler*((jjXQhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.update_visibleX-tr+(Xdbm.dumb.dumbdbm.syncr,((jjX?http://docs.python.org/3/library/dbm.html#dbm.dumb.dumbdbm.syncX-tr-(Xlogging.Formatter.formatr.((jjXFhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatX-tr/(Xdecimal.Context.addr0((jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.addX-tr1(Xnntplib.NNTP.ihaver2((jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.ihaveX-tr3(X3logging.handlers.NTEventLogHandler.getEventCategoryr4((jjXjhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.getEventCategoryX-tr5(Xasyncio.StreamReader.feed_eofr6((jjXRhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.feed_eofX-tr7(X!formatter.formatter.pop_alignmentr8((jjXQhttp://docs.python.org/3/library/formatter.html#formatter.formatter.pop_alignmentX-tr9(Xtkinter.ttk.Treeview.headingr:((jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.headingX-tr;(X(configparser.ConfigParser.remove_sectionr<((jjX[http://docs.python.org/3/library/configparser.html#configparser.ConfigParser.remove_sectionX-tr=(X/email.headerregistry.HeaderRegistry.__getitem__r>((jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.__getitem__X-tr?(X$multiprocessing.pool.AsyncResult.getr@((jjXZhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.getX-trA(Xmsilib.CAB.commitrB((jjX>http://docs.python.org/3/library/msilib.html#msilib.CAB.commitX-trC(X)email.policy.EmailPolicy.header_max_countrD((jjX\http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_max_countX-trE(Xdecimal.Decimal.same_quantumrF((jjXJhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.same_quantumX-trG(X*wsgiref.handlers.BaseHandler.log_exceptionrH((jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.log_exceptionX-trI(Xwave.Wave_write.setcomptyperJ((jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setcomptypeX-trK(X'distutils.ccompiler.CCompiler.move_filerL((jjXVhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.move_fileX-trM(X+concurrent.futures.Future.add_done_callbackrN((jjXdhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.add_done_callbackX-trO(Xsymtable.Symbol.get_namerP((jjXGhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_nameX-trQ(Xmailbox.MH.list_foldersrR((jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.list_foldersX-trS(X2xml.parsers.expat.xmlparser.EndCdataSectionHandlerrT((jjX`http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.EndCdataSectionHandlerX-trU(Xcollections.deque.reverserV((jjXKhttp://docs.python.org/3/library/collections.html#collections.deque.reverseX-trW(Xpipes.Template.prependrX((jjXBhttp://docs.python.org/3/library/pipes.html#pipes.Template.prependX-trY(Xtkinter.ttk.Treeview.deleterZ((jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.deleteX-tr[(Xtrace.Trace.resultsr\((jjX?http://docs.python.org/3/library/trace.html#trace.Trace.resultsX-tr](Xtelnetlib.Telnet.read_very_lazyr^((jjXOhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_very_lazyX-tr_(Xcurses.window.insstrr`((jjXAhttp://docs.python.org/3/library/curses.html#curses.window.insstrX-tra(Xlogging.Logger.removeHandlerrb((jjXJhttp://docs.python.org/3/library/logging.html#logging.Logger.removeHandlerX-trc(X$venv.EnvBuilder.create_configurationrd((jjXOhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.create_configurationX-tre(X%xml.parsers.expat.xmlparser.ParseFilerf((jjXShttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ParseFileX-trg(Xio.TextIOBase.readlinerh((jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.readlineX-tri(X#socketserver.BaseServer.get_requestrj((jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.get_requestX-trk(Xunittest.TestResult.addSuccessrl((jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.addSuccessX-trm(Xhttp.cookiejar.CookieJar.clearrn((jjXShttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.clearX-tro(Xxdrlib.Unpacker.unpack_fstringrp((jjXKhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_fstringX-trq(Xdbm.gnu.gdbm.firstkeyrr((jjX?http://docs.python.org/3/library/dbm.html#dbm.gnu.gdbm.firstkeyX-trs(Xbytearray.decodert((jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.decodeX-tru(X"tracemalloc.Snapshot.filter_tracesrv((jjXThttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.filter_tracesX-trw(X/multiprocessing.managers.BaseManager.get_serverrx((jjXehttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.get_serverX-try(X&email.message.Message.set_default_typerz((jjXZhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_default_typeX-tr{(Xbdb.Bdb.user_exceptionr|((jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_exceptionX-tr}(Xtkinter.ttk.Treeview.columnr~((jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.columnX-tr(X$argparse.ArgumentParser.set_defaultsr((jjXShttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.set_defaultsX-tr(X(urllib.robotparser.RobotFileParser.parser((jjXahttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.parseX-tr(X ossaudiodev.oss_mixer_device.setr((jjXRhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.setX-tr(Xthreading.Lock.releaser((jjXFhttp://docs.python.org/3/library/threading.html#threading.Lock.releaseX-tr(X.importlib.abc.MetaPathFinder.invalidate_cachesr((jjX^http://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.invalidate_cachesX-tr(X str.partitionr((jjX<http://docs.python.org/3/library/stdtypes.html#str.partitionX-tr(X$importlib.abc.FileLoader.load_moduler((jjXThttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.load_moduleX-tr(Xmimetypes.MimeTypes.readr((jjXHhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readX-tr(X.multiprocessing.managers.SyncManager.Namespacer((jjXdhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.NamespaceX-tr(Xsocket.socket.recvfromr((jjXChttp://docs.python.org/3/library/socket.html#socket.socket.recvfromX-tr(Xiterator.__next__r((jjX@http://docs.python.org/3/library/stdtypes.html#iterator.__next__X-tr(Xasyncio.StreamReader.feed_datar((jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.feed_dataX-tr(Ximaplib.IMAP4.openr((jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.openX-tr(Xlogging.Handler.createLockr((jjXHhttp://docs.python.org/3/library/logging.html#logging.Handler.createLockX-tr(Xmsilib.View.Modifyr((jjX?http://docs.python.org/3/library/msilib.html#msilib.View.ModifyX-tr(Xdecimal.Context.remainderr((jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.remainderX-tr(X4argparse.ArgumentParser.add_mutually_exclusive_groupr((jjXchttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_mutually_exclusive_groupX-tr(X.distutils.ccompiler.CCompiler.set_library_dirsr((jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_library_dirsX-tr(X!sqlite3.Connection.set_authorizerr((jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_authorizerX-tr(Xobject.__reduce__r((jjX>http://docs.python.org/3/library/pickle.html#object.__reduce__X-tr(Xcurses.window.is_wintouchedr((jjXHhttp://docs.python.org/3/library/curses.html#curses.window.is_wintouchedX-tr(X#asynchat.async_chat.discard_buffersr((jjXRhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.discard_buffersX-tr(Xobject.__reversed__r((jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__reversed__X-tr(Xvenv.EnvBuilder.install_scriptsr((jjXJhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.install_scriptsX-tr(X'xml.etree.ElementTree.ElementTree.writer((jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.writeX-tr(Xtkinter.ttk.Notebook.tabr((jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabX-tr(Xcontextlib.ExitStack.pop_allr((jjXMhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.pop_allX-tr(X!mailbox.MaildirMessage.set_subdirr((jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_subdirX-tr(Xmailbox.Maildir.lockr((jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.lockX-tr(Xsunau.AU_write.tellr((jjX?http://docs.python.org/3/library/sunau.html#sunau.AU_write.tellX-tr(X&importlib.abc.MetaPathFinder.find_specr((jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder.find_specX-tr(Xio.IOBase.writabler((jjX;http://docs.python.org/3/library/io.html#io.IOBase.writableX-tr(Xsocket.socket.recvfrom_intor((jjXHhttp://docs.python.org/3/library/socket.html#socket.socket.recvfrom_intoX-tr(X4importlib.machinery.SourcelessFileLoader.load_moduler((jjXdhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.load_moduleX-tr(Xssl.SSLSocket.getpeercertr((jjXChttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.getpeercertX-tr(X5xml.parsers.expat.xmlparser.StartNamespaceDeclHandlerr((jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartNamespaceDeclHandlerX-tr(Xtkinter.ttk.Treeview.focusr((jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.focusX-tr(Xbytearray.stripr((jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.stripX-tr(Xarray.array.tostringr((jjX@http://docs.python.org/3/library/array.html#array.array.tostringX-tr(Xxmlrpc.client.Binary.encoder((jjXOhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.encodeX-tr(X/urllib.request.HTTPErrorProcessor.http_responser((jjXdhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.http_responseX-tr(Xdecimal.Context.multiplyr((jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.multiplyX-tr(Xemail.message.Message.as_bytesr((jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.as_bytesX-tr(X+code.InteractiveInterpreter.showsyntaxerrorr((jjXVhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.showsyntaxerrorX-tr(Xsymtable.Symbol.is_localr((jjXGhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_localX-tr(Xxml.dom.Node.hasChildNodesr((jjXHhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.hasChildNodesX-tr(Xparser.ST.tolistr((jjX=http://docs.python.org/3/library/parser.html#parser.ST.tolistX-tr(X/optparse.OptionParser.disable_interspersed_argsr((jjX^http://docs.python.org/3/library/optparse.html#optparse.OptionParser.disable_interspersed_argsX-tr(X"formatter.formatter.add_label_datar((jjXRhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_label_dataX-tr(Xchunk.Chunk.tellr((jjX<http://docs.python.org/3/library/chunk.html#chunk.Chunk.tellX-tr(Xsubprocess.Popen.send_signalr((jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.send_signalX-tr(X set.remover((jjX9http://docs.python.org/3/library/stdtypes.html#set.removeX-tr(X"tkinter.ttk.Treeview.selection_addr((jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_addX-tr(Xcgi.FieldStorage.getlistr((jjXBhttp://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getlistX-tr(Xmailbox.MMDFMessage.set_flagsr((jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_flagsX-tr(Ximaplib.IMAP4.subscriber((jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.subscribeX-tr(Xset.symmetric_differencer((jjXGhttp://docs.python.org/3/library/stdtypes.html#set.symmetric_differenceX-tr(X/asyncio.BaseEventLoop.default_exception_handlerr((jjXghttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.default_exception_handlerX-tr(Xcurses.panel.Panel.set_userptrr((jjXQhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.set_userptrX-tr(X asyncio.WriteTransport.write_eofr((jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.write_eofX-tr(X.xmlrpc.server.DocXMLRPCServer.set_server_titler((jjXbhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_titleX-tr(Xmailbox.MaildirMessage.get_dater((jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_dateX-tr(Xasyncio.Semaphore.acquirer((jjXLhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore.acquireX-tr(X6logging.handlers.BaseRotatingHandler.rotation_filenamer((jjXmhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotation_filenameX-tr(X0xml.sax.xmlreader.InputSource.setCharacterStreamr)(jjXehttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setCharacterStreamX-tr)Ximaplib.IMAP4.uidr)(jjX?http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.uidX-tr)Xpathlib.PurePath.relative_tor)(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.relative_toX-tr)Xdecimal.Context.expr)(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.expX-tr)Xcurses.window.syncokr)(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.syncokX-tr )X8xml.parsers.expat.xmlparser.ProcessingInstructionHandlerr )(jjXfhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ProcessingInstructionHandlerX-tr )X&socketserver.BaseServer.finish_requestr )(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.finish_requestX-tr )X bytes.rsplitr)(jjX;http://docs.python.org/3/library/stdtypes.html#bytes.rsplitX-tr)Xsocket.socket.recvmsgr)(jjXBhttp://docs.python.org/3/library/socket.html#socket.socket.recvmsgX-tr)Xxml.dom.Node.insertBeforer)(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.insertBeforeX-tr)Xdecimal.Decimal.to_eng_stringr)(jjXKhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_eng_stringX-tr)Xasyncio.Queue.qsizer)(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.qsizeX-tr)Xssl.SSLSocket.unwrapr)(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.unwrapX-tr)X&email.generator.BytesGenerator.flattenr)(jjX\http://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator.flattenX-tr)X%sqlite3.Connection.set_trace_callbackr)(jjXShttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_trace_callbackX-tr)Xwinreg.PyHKEY.__exit__r)(jjXChttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.__exit__X-tr)Xio.IOBase.seekabler )(jjX;http://docs.python.org/3/library/io.html#io.IOBase.seekableX-tr!)Xbdb.Bdb.trace_dispatchr")(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.trace_dispatchX-tr#)X"symtable.Symbol.is_declared_globalr$)(jjXQhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_declared_globalX-tr%)X&email.policy.Policy.header_store_parser&)(jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_store_parseX-tr')X)xml.sax.xmlreader.IncrementalParser.closer()(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.closeX-tr))Xcurses.panel.Panel.hider*)(jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.hideX-tr+)Xcollections.Counter.subtractr,)(jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.subtractX-tr-)Xstr.format_mapr.)(jjX=http://docs.python.org/3/library/stdtypes.html#str.format_mapX-tr/)X email.message.Message.get_paramsr0)(jjXThttp://docs.python.org/3/library/email.message.html#email.message.Message.get_paramsX-tr1)Xunittest.TestResult.stopr2)(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.stopX-tr3)Xclass.__instancecheck__r4)(jjXIhttp://docs.python.org/3/reference/datamodel.html#class.__instancecheck__X-tr5)Xobject.__floordiv__r6)(jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__floordiv__X-tr7)Xxdrlib.Unpacker.unpack_bytesr8)(jjXIhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_bytesX-tr9)Xlogging.Formatter.formatTimer:)(jjXJhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatTimeX-tr;)Xobject.__rrshift__r<)(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rrshift__X-tr=)X%unittest.TestCase.assertNotIsInstancer>)(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotIsInstanceX-tr?)XFxmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functionsr@)(jjXzhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functionsX-trA)Xpathlib.Path.is_dirrB)(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_dirX-trC)Xasyncio.Future.donerD)(jjXFhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.doneX-trE)X.http.server.BaseHTTPRequestHandler.end_headersrF)(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.end_headersX-trG)Xpathlib.Path.replacerH)(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.replaceX-trI)Xwave.Wave_read.setposrJ)(jjX@http://docs.python.org/3/library/wave.html#wave.Wave_read.setposX-trK)X/importlib.machinery.SourceFileLoader.path_statsrL)(jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.path_statsX-trM)Xlogging.Logger.criticalrN)(jjXEhttp://docs.python.org/3/library/logging.html#logging.Logger.criticalX-trO)Xunittest.TestCase.runrP)(jjXDhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.runX-trQ)Xcurses.window.addnstrrR)(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.addnstrX-trS)Xstring.Formatter.format_fieldrT)(jjXJhttp://docs.python.org/3/library/string.html#string.Formatter.format_fieldX-trU)Xset.copyrV)(jjX7http://docs.python.org/3/library/stdtypes.html#set.copyX-trW)XAxmlrpc.server.SimpleXMLRPCServer.register_introspection_functionsrX)(jjXuhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_introspection_functionsX-trY)X bytes.lowerrZ)(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.lowerX-tr[)X#unittest.mock.Mock.assert_has_callsr\)(jjXWhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_has_callsX-tr])X formatter.writer.send_line_breakr^)(jjXPhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_line_breakX-tr_)Xparser.ST.totupler`)(jjX>http://docs.python.org/3/library/parser.html#parser.ST.totupleX-tra)Xpstats.Stats.sort_statsrb)(jjXEhttp://docs.python.org/3/library/profile.html#pstats.Stats.sort_statsX-trc)X%asyncio.BaseSubprocessTransport.closerd)(jjX\http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.closeX-tre)Xre.match.groupdictrf)(jjX;http://docs.python.org/3/library/re.html#re.match.groupdictX-trg)Xcurses.panel.Panel.belowrh)(jjXKhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.belowX-tri)Xbdb.Bdb.user_callrj)(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.user_callX-trk)Xtkinter.ttk.Treeview.reattachrl)(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.reattachX-trm)X%ipaddress.IPv6Network.address_excludern)(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.address_excludeX-tro)X str.encoderp)(jjX9http://docs.python.org/3/library/stdtypes.html#str.encodeX-trq)Xtextwrap.TextWrapper.fillrr)(jjXHhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fillX-trs)Xwave.Wave_write.writeframesrawrt)(jjXIhttp://docs.python.org/3/library/wave.html#wave.Wave_write.writeframesrawX-tru)Xcmd.Cmd.postcmdrv)(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.postcmdX-trw)X#multiprocessing.pool.Pool.map_asyncrx)(jjXYhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.map_asyncX-try)X"distutils.ccompiler.CCompiler.warnrz)(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.warnX-tr{)Xlogging.Formatter.formatStackr|)(jjXKhttp://docs.python.org/3/library/logging.html#logging.Formatter.formatStackX-tr})Xtkinter.ttk.Combobox.currentr~)(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.currentX-tr)Xthreading.Condition.wait_forr)(jjXLhttp://docs.python.org/3/library/threading.html#threading.Condition.wait_forX-tr)Xtelnetlib.Telnet.read_somer)(jjXJhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_someX-tr)Xwsgiref.headers.Headers.get_allr)(jjXMhttp://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headers.get_allX-tr)X codecs.IncrementalEncoder.encoder)(jjXMhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.encodeX-tr)X#urllib.request.Request.get_full_urlr)(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.get_full_urlX-tr)X&ossaudiodev.oss_audio_device.obufcountr)(jjXXhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.obufcountX-tr)Ximaplib.IMAP4.setaclr)(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setaclX-tr)Xio.TextIOBase.readr)(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.readX-tr)X)multiprocessing.connection.Listener.closer)(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.closeX-tr)Xemail.message.Message.__len__r)(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.__len__X-tr)Xlogging.Logger.addHandlerr)(jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.addHandlerX-tr)Xsqlite3.Connection.executer)(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executeX-tr)Xdecimal.Context.divide_intr)(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Context.divide_intX-tr)X+logging.handlers.SocketHandler.createSocketr)(jjXbhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.createSocketX-tr)X)http.server.CGIHTTPRequestHandler.do_POSTr)(jjX[http://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.do_POSTX-tr)X bytes.isupperr)(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.isupperX-tr)Xpstats.Stats.print_callersr)(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_callersX-tr)X"unittest.mock.Mock.assert_any_callr)(jjXVhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_any_callX-tr)X'gettext.NullTranslations.output_charsetr)(jjXUhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.output_charsetX-tr)X&xml.sax.xmlreader.Attributes.getLengthr)(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getLengthX-tr)Xobject.__round__r)(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__round__X-tr)X!multiprocessing.Connection.filenor)(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.filenoX-tr)X*asyncio.BaseEventLoop.call_soon_threadsafer)(jjXbhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.call_soon_threadsafeX-tr)X4http.server.BaseHTTPRequestHandler.handle_expect_100r)(jjXfhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.handle_expect_100X-tr)Xzipimport.zipimporter.get_datar)(jjXNhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_dataX-tr)Xmailbox.MaildirMessage.add_flagr)(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.add_flagX-tr)Xmmap.mmap.writer)(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.writeX-tr)X&urllib.request.HTTPSHandler.https_openr)(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandler.https_openX-tr)X$formatter.formatter.add_literal_datar)(jjXThttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_literal_dataX-tr)Xselectors.BaseSelector.get_mapr)(jjXNhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_mapX-tr)X str.rjustr)(jjX8http://docs.python.org/3/library/stdtypes.html#str.rjustX-tr)Xxml.dom.Document.createTextNoder)(jjXMhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createTextNodeX-tr)Xcontainer.__iter__r)(jjXAhttp://docs.python.org/3/library/stdtypes.html#container.__iter__X-tr)Xnntplib.NNTP.newnewsr)(jjXBhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.newnewsX-tr)Xcurses.window.addchr)(jjX@http://docs.python.org/3/library/curses.html#curses.window.addchX-tr)Xmailbox.Mailbox.addr)(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.addX-tr)X'importlib.abc.PathEntryFinder.find_specr)(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.PathEntryFinder.find_specX-tr)Xpoplib.POP3.statr)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.statX-tr)Xobject.__float__r)(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__float__X-tr)X%asyncio.BaseEventLoop.subprocess_execr)(jjX^http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.BaseEventLoop.subprocess_execX-tr)Xdecimal.Decimal.is_snanr)(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_snanX-tr)X$logging.handlers.MemoryHandler.closer)(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.closeX-tr)Xthreading.Condition.acquirer)(jjXKhttp://docs.python.org/3/library/threading.html#threading.Condition.acquireX-tr)Xwave.Wave_write.setnframesr)(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setnframesX-tr)X!zipimport.zipimporter.find_moduler)(jjXQhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.find_moduleX-tr)Xconfigparser.ConfigParser.setr)(jjXPhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.setX-tr)X"xml.etree.ElementTree.Element.findr)(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findX-tr)Xdecimal.Context.compare_signalr)(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.compare_signalX-tr)Xpoplib.POP3.rpopr)(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.rpopX-tr)Xsunau.AU_read.getnframesr)(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getnframesX-tr)Xhttp.cookies.Morsel.outputr)(jjXMhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.outputX-tr)Xdecimal.Context.next_plusr)(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_plusX-tr)X!email.message.Message.__delitem__r)(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.__delitem__X-tr)Xdecimal.Context.is_zeror)(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_zeroX-tr)Xjson.JSONDecoder.raw_decoder)(jjXFhttp://docs.python.org/3/library/json.html#json.JSONDecoder.raw_decodeX-tr)Xftplib.FTP.deleter)(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.FTP.deleteX-tr)Xmailbox.Maildir.list_foldersr)(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.list_foldersX-tr)Xcurses.window.standoutr)(jjXChttp://docs.python.org/3/library/curses.html#curses.window.standoutX-tr)Xio.IOBase.__del__r)(jjX:http://docs.python.org/3/library/io.html#io.IOBase.__del__X-tr)X"email.message.Message.get_charsetsr)(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_charsetsX-tr)Xdecimal.Decimal.as_tupler)(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.as_tupleX-tr)Xmailbox.MaildirMessage.get_infor)(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_infoX-tr)X)email.charset.Charset.header_encode_linesr)(jjX]http://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encode_linesX-tr)Xcollections.deque.rotater)(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.rotateX-tr)Xlogging.Handler.addFilterr*(jjXGhttp://docs.python.org/3/library/logging.html#logging.Handler.addFilterX-tr*Xmsilib.Directory.globr*(jjXBhttp://docs.python.org/3/library/msilib.html#msilib.Directory.globX-tr*Xobject.__iand__r*(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__iand__X-tr*X str.rstripr*(jjX9http://docs.python.org/3/library/stdtypes.html#str.rstripX-tr*X*argparse.ArgumentParser.add_argument_groupr*(jjXYhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument_groupX-tr *Xselectors.BaseSelector.selectr *(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.selectX-tr *Xtkinter.ttk.Treeview.prevr *(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.prevX-tr *Xobject.__dir__r*(jjX@http://docs.python.org/3/reference/datamodel.html#object.__dir__X-tr*Xpstats.Stats.reverse_orderr*(jjXHhttp://docs.python.org/3/library/profile.html#pstats.Stats.reverse_orderX-tr*X(ossaudiodev.oss_mixer_device.reccontrolsr*(jjXZhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.reccontrolsX-tr*Xbdb.Bdb.set_breakr*(jjX;http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_breakX-tr*Xobject.__isub__r*(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__isub__X-tr*Xsunau.AU_read.setposr*(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_read.setposX-tr*Xhttp.cookies.BaseCookie.loadr*(jjXOhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.loadX-tr*Xcollections.deque.appendleftr*(jjXNhttp://docs.python.org/3/library/collections.html#collections.deque.appendleftX-tr*Xinspect.Signature.bind_partialr*(jjXLhttp://docs.python.org/3/library/inspect.html#inspect.Signature.bind_partialX-tr*X#concurrent.futures.Future.cancelledr *(jjX\http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.cancelledX-tr!*Xtelnetlib.Telnet.get_socketr"*(jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.get_socketX-tr#*Xcollections.OrderedDict.popitemr$*(jjXQhttp://docs.python.org/3/library/collections.html#collections.OrderedDict.popitemX-tr%*Xmailbox.Maildir.remove_folderr&*(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.remove_folderX-tr'*Xio.IOBase.filenor(*(jjX9http://docs.python.org/3/library/io.html#io.IOBase.filenoX-tr)*Xbytearray.isalnumr**(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.isalnumX-tr+*X&importlib.abc.SourceLoader.exec_moduler,*(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.exec_moduleX-tr-*Xunittest.TestCase.doCleanupsr.*(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.doCleanupsX-tr/*Xdecimal.Context.rotater0*(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.rotateX-tr1*Ximaplib.IMAP4.noopr2*(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.noopX-tr3*Xpoplib.POP3.noopr4*(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.noopX-tr5*X+xml.sax.xmlreader.InputSource.setByteStreamr6*(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setByteStreamX-tr7*Xcurses.window.deletelnr8*(jjXChttp://docs.python.org/3/library/curses.html#curses.window.deletelnX-tr9*Xmsilib.Directory.remove_pycr:*(jjXHhttp://docs.python.org/3/library/msilib.html#msilib.Directory.remove_pycX-tr;*X str.isspacer<*(jjX:http://docs.python.org/3/library/stdtypes.html#str.isspaceX-tr=*Xdatetime.time.tznamer>*(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.tznameX-tr?*Xsymtable.Function.get_globalsr@*(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_globalsX-trA*Xurllib.request.URLopener.openrB*(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.openX-trC*Xdecimal.Decimal.shiftrD*(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.shiftX-trE*Xdatetime.timezone.fromutcrF*(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.timezone.fromutcX-trG*Xpoplib.POP3.caparH*(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.capaX-trI*Xemail.message.Message.attachrJ*(jjXPhttp://docs.python.org/3/library/email.message.html#email.message.Message.attachX-trK*X/email.contentmanager.ContentManager.get_contentrL*(jjXjhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.get_contentX-trM*Xhashlib.hash.digestrN*(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.digestX-trO*Xconfigparser.ConfigParser.readrP*(jjXQhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.readX-trQ*Xtkinter.ttk.Progressbar.startrR*(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.startX-trS*X'multiprocessing.JoinableQueue.task_donerT*(jjX]http://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.task_doneX-trU*X(logging.handlers.WatchedFileHandler.emitrV*(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandler.emitX-trW*Xnntplib.NNTP.slaverX*(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.slaveX-trY*Xunittest.TextTestRunner.runrZ*(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunner.runX-tr[*X zipimport.zipimporter.get_sourcer\*(jjXPhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_sourceX-tr]*Xthreading.Event.setr^*(jjXChttp://docs.python.org/3/library/threading.html#threading.Event.setX-tr_*X str.swapcaser`*(jjX;http://docs.python.org/3/library/stdtypes.html#str.swapcaseX-tra*Xdecimal.Decimal.adjustedrb*(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.adjustedX-trc*X"ossaudiodev.oss_mixer_device.closerd*(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.closeX-tre*Xxml.dom.Node.appendChildrf*(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.appendChildX-trg*Xshlex.shlex.sourcehookrh*(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.sourcehookX-tri*Xhmac.HMAC.digestrj*(jjX;http://docs.python.org/3/library/hmac.html#hmac.HMAC.digestX-trk*Xdoctest.DocTestRunner.runrl*(jjXGhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.runX-trm*X'xml.dom.Document.getElementsByTagNameNSrn*(jjXUhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.getElementsByTagNameNSX-tro*Xxmlrpc.client.DateTime.encoderp*(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.encodeX-trq*Xobject.__get__rr*(jjX@http://docs.python.org/3/reference/datamodel.html#object.__get__X-trs*Xemail.message.Message.itemsrt*(jjXOhttp://docs.python.org/3/library/email.message.html#email.message.Message.itemsX-tru*Xio.IOBase.seekrv*(jjX7http://docs.python.org/3/library/io.html#io.IOBase.seekX-trw*X3email.contentmanager.ContentManager.add_set_handlerrx*(jjXnhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.add_set_handlerX-try*Xmailbox.Mailbox.closerz*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.closeX-tr{*Xsocket.socket.set_inheritabler|*(jjXJhttp://docs.python.org/3/library/socket.html#socket.socket.set_inheritableX-tr}*Xbytearray.centerr~*(jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.centerX-tr*X importlib.abc.Finder.find_moduler*(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.abc.Finder.find_moduleX-tr*Xsunau.AU_write.writeframesr*(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.writeframesX-tr*X!decimal.Decimal.compare_total_magr*(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_total_magX-tr*Xhashlib.hash.copyr*(jjX?http://docs.python.org/3/library/hashlib.html#hashlib.hash.copyX-tr*Xdecimal.Context.lnr*(jjX@http://docs.python.org/3/library/decimal.html#decimal.Context.lnX-tr*Xsocket.socket.setsockoptr*(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.setsockoptX-tr*Xpickle.Pickler.persistent_idr*(jjXIhttp://docs.python.org/3/library/pickle.html#pickle.Pickler.persistent_idX-tr*Xsocket.socket.settimeoutr*(jjXEhttp://docs.python.org/3/library/socket.html#socket.socket.settimeoutX-tr*Xobject.__enter__r*(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__enter__X-tr*Xcurses.window.clearr*(jjX@http://docs.python.org/3/library/curses.html#curses.window.clearX-tr*Xobject.__str__r*(jjX@http://docs.python.org/3/reference/datamodel.html#object.__str__X-tr*X,multiprocessing.managers.SyncManager.Barrierr*(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.BarrierX-tr*X3urllib.request.HTTPDigestAuthHandler.http_error_401r*(jjXhhttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandler.http_error_401X-tr*Xmultiprocessing.Connection.sendr*(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.sendX-tr*Xtarfile.TarInfo.isdevr*(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isdevX-tr*Xstring.Formatter.vformatr*(jjXEhttp://docs.python.org/3/library/string.html#string.Formatter.vformatX-tr*X,xmlrpc.client.ServerProxy.system.listMethodsr*(jjX`http://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.listMethodsX-tr*Xmailbox.Mailbox.clearr*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.clearX-tr*Xpathlib.Path.renamer*(jjXAhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.renameX-tr*Xmultiprocessing.pool.Pool.closer*(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.closeX-tr*X*xml.parsers.expat.xmlparser.DefaultHandlerr*(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.DefaultHandlerX-tr*Xdecimal.Decimal.is_normalr*(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_normalX-tr*u(Xdecimal.Decimal.copy_negater*(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_negateX-tr*X xml.dom.Document.createAttributer*(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createAttributeX-tr*Xftplib.FTP.storlinesr*(jjXAhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.storlinesX-tr*Xcurses.window.cursyncupr*(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.cursyncupX-tr*Xcurses.window.insnstrr*(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.insnstrX-tr*X!ossaudiodev.oss_audio_device.syncr*(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.syncX-tr*X$xml.sax.xmlreader.Attributes.getTyper*(jjXYhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getTypeX-tr*Ximaplib.IMAP4.starttlsr*(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.starttlsX-tr*X str.isdecimalr*(jjX<http://docs.python.org/3/library/stdtypes.html#str.isdecimalX-tr*Xpoplib.POP3.quitr*(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.quitX-tr*X0importlib.machinery.ExtensionFileLoader.get_coder*(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.get_codeX-tr*Xcontextlib.ExitStack.closer*(jjXKhttp://docs.python.org/3/library/contextlib.html#contextlib.ExitStack.closeX-tr*X#socketserver.BaseServer.server_bindr*(jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_bindX-tr*Xobject.__add__r*(jjX@http://docs.python.org/3/reference/datamodel.html#object.__add__X-tr*X$ossaudiodev.oss_audio_device.getfmtsr*(jjXVhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.getfmtsX-tr*X*http.cookiejar.Cookie.set_nonstandard_attrr*(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.set_nonstandard_attrX-tr*X%email.message.EmailMessage.make_mixedr*(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.make_mixedX-tr*X$concurrent.futures.Executor.shutdownr*(jjX]http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor.shutdownX-tr*X multiprocessing.Queue.get_nowaitr*(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.get_nowaitX-tr*X,multiprocessing.managers.BaseManager.connectr*(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.connectX-tr*Xsqlite3.Cursor.fetchmanyr*(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmanyX-tr*XBaseException.with_tracebackr*(jjXMhttp://docs.python.org/3/library/exceptions.html#BaseException.with_tracebackX-tr*Xbdb.Bdb.get_all_breaksr*(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_all_breaksX-tr*X&socketserver.BaseServer.handle_requestr*(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_requestX-tr*Xmailbox.MH.get_folderr*(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MH.get_folderX-tr*X!email.message.Message.get_charsetr*(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_charsetX-tr*Xpathlib.PurePath.with_suffixr*(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.with_suffixX-tr*Xwave.Wave_write.writeframesr*(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_write.writeframesX-tr*Xhashlib.hash.updater*(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.updateX-tr*X"xml.dom.Document.createAttributeNSr*(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.createAttributeNSX-tr*X str.ljustr*(jjX8http://docs.python.org/3/library/stdtypes.html#str.ljustX-tr*Xpathlib.Path.is_filer*(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_fileX-tr*X%multiprocessing.Connection.recv_bytesr*(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.recv_bytesX-tr*Xsocket.socket.makefiler*(jjXChttp://docs.python.org/3/library/socket.html#socket.socket.makefileX-tr*Xparser.ST.issuiter*(jjX>http://docs.python.org/3/library/parser.html#parser.ST.issuiteX-tr*X"unittest.TestCase.shortDescriptionr*(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.shortDescriptionX-tr*Xdict.setdefaultr*(jjX>http://docs.python.org/3/library/stdtypes.html#dict.setdefaultX-tr*X"logging.handlers.QueueHandler.emitr*(jjXYhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.emitX-tr*Xmailbox.MMDFMessage.remove_flagr*(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.remove_flagX-tr*Xasyncio.Lock.lockedr*(jjXFhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.lockedX-tr*Xobject.__rpow__r*(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rpow__X-tr*Xprofile.Profile.dump_statsr*(jjXHhttp://docs.python.org/3/library/profile.html#profile.Profile.dump_statsX-tr*X$tkinter.ttk.Treeview.identify_regionr+(jjXVhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_regionX-tr+Xarray.array.buffer_infor+(jjXChttp://docs.python.org/3/library/array.html#array.array.buffer_infoX-tr+X!xml.dom.Element.removeAttributeNSr+(jjXOhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeNSX-tr+X dict.valuesr+(jjX:http://docs.python.org/3/library/stdtypes.html#dict.valuesX-tr+Xpathlib.PurePath.is_reservedr+(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.is_reservedX-tr +X%unittest.TestCase.addTypeEqualityFuncr +(jjXThttp://docs.python.org/3/library/unittest.html#unittest.TestCase.addTypeEqualityFuncX-tr +X.distutils.ccompiler.CCompiler.object_filenamesr +(jjX]http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.object_filenamesX-tr +X"http.client.HTTPResponse.getheaderr+(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.getheaderX-tr+X+gettext.NullTranslations.set_output_charsetr+(jjXYhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.set_output_charsetX-tr+Xasyncio.Queue.put_nowaitr+(jjXKhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.put_nowaitX-tr+Xio.TextIOBase.writer+(jjX<http://docs.python.org/3/library/io.html#io.TextIOBase.writeX-tr+X$fractions.Fraction.limit_denominatorr+(jjXThttp://docs.python.org/3/library/fractions.html#fractions.Fraction.limit_denominatorX-tr+X%distutils.ccompiler.CCompiler.compiler+(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.compileX-tr+Xmailbox.Maildir.flushr+(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.Maildir.flushX-tr+Xpathlib.Path.iterdirr+(jjXBhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.iterdirX-tr+X gettext.NullTranslations.gettextr+(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.gettextX-tr+X)asyncio.SubprocessProtocol.process_exitedr +(jjX`http://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.process_exitedX-tr!+X*http.cookiejar.Cookie.has_nonstandard_attrr"+(jjX_http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.has_nonstandard_attrX-tr#+Xdis.Bytecode.infor$+(jjX;http://docs.python.org/3/library/dis.html#dis.Bytecode.infoX-tr%+X gettext.NullTranslations.charsetr&+(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.charsetX-tr'+X$urllib.request.DataHandler.data_openr(+(jjXYhttp://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandler.data_openX-tr)+X+email.policy.EmailPolicy.header_store_parser*+(jjX^http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_store_parseX-tr++Xarray.array.tounicoder,+(jjXAhttp://docs.python.org/3/library/array.html#array.array.tounicodeX-tr-+X*unittest.mock.Mock.assert_called_once_withr.+(jjX^http://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_called_once_withX-tr/+X.asyncio.BaseSubprocessTransport.get_returncoder0+(jjXehttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_returncodeX-tr1+Xmailbox.mboxMessage.get_fromr2+(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_fromX-tr3+Xbytes.endswithr4+(jjX=http://docs.python.org/3/library/stdtypes.html#bytes.endswithX-tr5+X bytes.titler6+(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.titleX-tr7+Xmultiprocessing.Queue.fullr8+(jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.fullX-tr9+X-asyncio.SubprocessProtocol.pipe_data_receivedr:+(jjXdhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_receivedX-tr;+Xdatetime.datetime.__str__r<+(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.__str__X-tr=+Xdecimal.Context.Etinyr>+(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Context.EtinyX-tr?+Xbytearray.capitalizer@+(jjXChttp://docs.python.org/3/library/stdtypes.html#bytearray.capitalizeX-trA+Xmsilib.Dialog.radiogrouprB+(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Dialog.radiogroupX-trC+Xemail.parser.FeedParser.feedrD+(jjXOhttp://docs.python.org/3/library/email.parser.html#email.parser.FeedParser.feedX-trE+X xml.dom.Element.setAttributeNoderF+(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.setAttributeNodeX-trG+X!unittest.TestSuite.countTestCasesrH+(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.countTestCasesX-trI+Xsunau.AU_read.getcompnamerJ+(jjXEhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getcompnameX-trK+Xemail.message.Message.getrL+(jjXMhttp://docs.python.org/3/library/email.message.html#email.message.Message.getX-trM+Xsymtable.Symbol.is_referencedrN+(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_referencedX-trO+Xqueue.Queue.get_nowaitrP+(jjXBhttp://docs.python.org/3/library/queue.html#queue.Queue.get_nowaitX-trQ+X%email.message.EmailMessage.iter_partsrR+(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.iter_partsX-trS+X(wsgiref.simple_server.WSGIServer.get_apprT+(jjXVhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServer.get_appX-trU+Xcollections.deque.clearrV+(jjXIhttp://docs.python.org/3/library/collections.html#collections.deque.clearX-trW+X difflib.SequenceMatcher.set_seq2rX+(jjXNhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.set_seq2X-trY+X*email.message.Message.get_content_maintyperZ+(jjX^http://docs.python.org/3/library/email.message.html#email.message.Message.get_content_maintypeX-tr[+Xarray.array.byteswapr\+(jjX@http://docs.python.org/3/library/array.html#array.array.byteswapX-tr]+X"asyncio.BaseEventLoop.sock_sendallr^+(jjXZhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.sock_sendallX-tr_+X-xml.sax.xmlreader.XMLReader.getEntityResolverr`+(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getEntityResolverX-tra+Xmailbox.Mailbox.unlockrb+(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.unlockX-trc+Xtimeit.Timer.timeitrd+(jjX@http://docs.python.org/3/library/timeit.html#timeit.Timer.timeitX-tre+X6xmlrpc.server.DocXMLRPCServer.set_server_documentationrf+(jjXjhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_documentationX-trg+X'importlib.abc.InspectLoader.load_modulerh+(jjXWhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.load_moduleX-tri+Xgenerator.closerj+(jjXChttp://docs.python.org/3/reference/expressions.html#generator.closeX-trk+Xcurses.window.redrawwinrl+(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.redrawwinX-trm+Xshlex.shlex.pop_sourcern+(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.pop_sourceX-tro+X1xml.sax.handler.ContentHandler.startPrefixMappingrp+(jjXghttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startPrefixMappingX-trq+Xdecimal.Context.is_infiniterr+(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_infiniteX-trs+Xhmac.HMAC.updatert+(jjX;http://docs.python.org/3/library/hmac.html#hmac.HMAC.updateX-tru+X&test.support.EnvironmentVarGuard.unsetrv+(jjXQhttp://docs.python.org/3/library/test.html#test.support.EnvironmentVarGuard.unsetX-trw+X&logging.handlers.QueueListener.preparerx+(jjX]http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.prepareX-try+Xaifc.aifc.setcomptyperz+(jjX@http://docs.python.org/3/library/aifc.html#aifc.aifc.setcomptypeX-tr{+X bdb.Bdb.resetr|+(jjX7http://docs.python.org/3/library/bdb.html#bdb.Bdb.resetX-tr}+Xmailbox.Mailbox.get_stringr~+(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_stringX-tr+X!asyncio.BaseEventLoop.getnameinfor+(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.getnameinfoX-tr+X$http.cookies.BaseCookie.value_encoder+(jjXWhttp://docs.python.org/3/library/http.cookies.html#http.cookies.BaseCookie.value_encodeX-tr+X)email.policy.Compat32.header_source_parser+(jjX\http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_source_parseX-tr+X!symtable.SymbolTable.get_childrenr+(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_childrenX-tr+X3importlib.machinery.SourcelessFileLoader.get_sourcer+(jjXchttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.get_sourceX-tr+X bytes.stripr+(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.stripX-tr+X"ossaudiodev.oss_audio_device.writer+(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.writeX-tr+X4distutils.ccompiler.CCompiler.shared_object_filenamer+(jjXchttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.shared_object_filenameX-tr+Xgettext.GNUTranslations.gettextr+(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.gettextX-tr+X%xml.dom.Document.getElementsByTagNamer+(jjXShttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.getElementsByTagNameX-tr+X#unittest.TestCase.defaultTestResultr+(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.defaultTestResultX-tr+X*urllib.request.CacheFTPHandler.setMaxConnsr+(jjX_http://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setMaxConnsX-tr+Xunittest.TestCase.setUpClassr+(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.setUpClassX-tr+Xsunau.AU_write.setparamsr+(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setparamsX-tr+X+urllib.robotparser.RobotFileParser.modifiedr+(jjXdhttp://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.modifiedX-tr+Xdatetime.tzinfo.tznamer+(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.tznameX-tr+Xstr.expandtabsr+(jjX=http://docs.python.org/3/library/stdtypes.html#str.expandtabsX-tr+Xjson.JSONEncoder.iterencoder+(jjXFhttp://docs.python.org/3/library/json.html#json.JSONEncoder.iterencodeX-tr+Xcurses.window.attroffr+(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.attroffX-tr+X#collections.OrderedDict.move_to_endr+(jjXUhttp://docs.python.org/3/library/collections.html#collections.OrderedDict.move_to_endX-tr+Xmultiprocessing.pool.Pool.imapr+(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imapX-tr+Xpstats.Stats.print_statsr+(jjXFhttp://docs.python.org/3/library/profile.html#pstats.Stats.print_statsX-tr+Xdecimal.Decimal.from_floatr+(jjXHhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.from_floatX-tr+X"html.parser.HTMLParser.handle_declr+(jjXThttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_declX-tr+X formatter.formatter.add_hor_ruler+(jjXPhttp://docs.python.org/3/library/formatter.html#formatter.formatter.add_hor_ruleX-tr+Xbytes.rpartitionr+(jjX?http://docs.python.org/3/library/stdtypes.html#bytes.rpartitionX-tr+Xobject.__ipow__r+(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__ipow__X-tr+X"doctest.DocTestParser.get_examplesr+(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.get_examplesX-tr+X#http.cookiejar.FileCookieJar.revertr+(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.revertX-tr+Xcurses.panel.Panel.mover+(jjXJhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.moveX-tr+X/xml.sax.handler.ContentHandler.endPrefixMappingr+(jjXehttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endPrefixMappingX-tr+Xtelnetlib.Telnet.interactr+(jjXIhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.interactX-tr+Xsocket.socket.sendtor+(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.sendtoX-tr+X asyncio.BaseEventLoop.is_runningr+(jjXXhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.is_runningX-tr+Xobject.__truediv__r+(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__truediv__X-tr+X re.regex.subr+(jjX5http://docs.python.org/3/library/re.html#re.regex.subX-tr+X7xmlrpc.server.CGIXMLRPCRequestHandler.register_functionr+(jjXkhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_functionX-tr+X symtable.SymbolTable.get_symbolsr+(jjXOhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_symbolsX-tr+X!zipimport.zipimporter.load_moduler+(jjXQhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.load_moduleX-tr+Xhttp.cookies.Morsel.js_outputr+(jjXPhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.js_outputX-tr+X+xml.parsers.expat.xmlparser.GetInputContextr+(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.GetInputContextX-tr+X%xml.sax.xmlreader.Attributes.getValuer+(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getValueX-tr+Xnntplib.NNTP.getwelcomer+(jjXEhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.getwelcomeX-tr+Xcurses.window.standendr+(jjXChttp://docs.python.org/3/library/curses.html#curses.window.standendX-tr+Xcurses.window.instrr+(jjX@http://docs.python.org/3/library/curses.html#curses.window.instrX-tr+X"codecs.IncrementalEncoder.setstater+(jjXOhttp://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder.setstateX-tr+Xthreading.Condition.notify_allr+(jjXNhttp://docs.python.org/3/library/threading.html#threading.Condition.notify_allX-tr+Xasyncio.Lock.releaser+(jjXGhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock.releaseX-tr+Xunittest.TestCase.failr+(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.failX-tr+Xgzip.GzipFile.peekr+(jjX=http://docs.python.org/3/library/gzip.html#gzip.GzipFile.peekX-tr+X dict.popitemr+(jjX;http://docs.python.org/3/library/stdtypes.html#dict.popitemX-tr+Xcurses.window.overwriter+(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.overwriteX-tr+Xcurses.window.untouchwinr+(jjXEhttp://docs.python.org/3/library/curses.html#curses.window.untouchwinX-tr+X socketserver.BaseServer.shutdownr+(jjXShttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.shutdownX-tr+X#optparse.OptionParser.print_versionr+(jjXRhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_versionX-tr+Xbdb.Bdb.set_continuer+(jjX>http://docs.python.org/3/library/bdb.html#bdb.Bdb.set_continueX-tr+Xxdrlib.Unpacker.resetr+(jjXBhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.resetX-tr+Xwinreg.PyHKEY.Detachr+(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.PyHKEY.DetachX-tr+X(html.parser.HTMLParser.get_starttag_textr+(jjXZhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.get_starttag_textX-tr+Xbytearray.endswithr+(jjXAhttp://docs.python.org/3/library/stdtypes.html#bytearray.endswithX-tr+Xdatetime.datetime.astimezoner+(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.astimezoneX-tr+X"ossaudiodev.oss_audio_device.closer+(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.closeX-tr+X)xml.dom.pulldom.DOMEventStream.expandNoder+(jjX_http://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.expandNodeX-tr+Ximaplib.IMAP4.lsubr+(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.lsubX-tr+Xio.BufferedIOBase.readr,(jjX?http://docs.python.org/3/library/io.html#io.BufferedIOBase.readX-tr,Xthreading.Barrier.abortr,(jjXGhttp://docs.python.org/3/library/threading.html#threading.Barrier.abortX-tr,Xasyncio.StreamWriter.closer,(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.closeX-tr,X unittest.mock.Mock.mock_add_specr,(jjXThttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.mock_add_specX-tr,X!unittest.TestCase.assertLessEqualr,(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLessEqualX-tr ,Xlogging.Filter.filterr ,(jjXChttp://docs.python.org/3/library/logging.html#logging.Filter.filterX-tr ,Xmailbox.MaildirMessage.set_dater ,(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_dateX-tr ,Xqueue.Queue.qsizer,(jjX=http://docs.python.org/3/library/queue.html#queue.Queue.qsizeX-tr,X str.isalphar,(jjX:http://docs.python.org/3/library/stdtypes.html#str.isalphaX-tr,Xtarfile.TarInfo.isregr,(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isregX-tr,Xbdb.Bdb.runcallr,(jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.runcallX-tr,X'asyncio.BaseEventLoop.connect_read_piper,(jjX_http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.connect_read_pipeX-tr,X'wsgiref.handlers.BaseHandler.get_stderrr,(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_stderrX-tr,X"xml.etree.ElementTree.Element.keysr,(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.keysX-tr,X!mailbox.BabylMessage.remove_labelr,(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.remove_labelX-tr,Xlogging.Logger.addFilterr,(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.addFilterX-tr,X object.__lt__r ,(jjX?http://docs.python.org/3/reference/datamodel.html#object.__lt__X-tr!,Xobject.__delitem__r",(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__delitem__X-tr#,Xtelnetlib.Telnet.closer$,(jjXFhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.closeX-tr%,X#calendar.Calendar.yeardatescalendarr&,(jjXRhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardatescalendarX-tr',X bytes.rjustr(,(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.rjustX-tr),Xemail.charset.Charset.__eq__r*,(jjXPhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.__eq__X-tr+,Xpoplib.POP3.getwelcomer,,(jjXChttp://docs.python.org/3/library/poplib.html#poplib.POP3.getwelcomeX-tr-,Xarray.array.reverser.,(jjX?http://docs.python.org/3/library/array.html#array.array.reverseX-tr/,X!symtable.SymbolTable.is_optimizedr0,(jjXPhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.is_optimizedX-tr1,X=xmlrpc.server.SimpleXMLRPCServer.register_multicall_functionsr2,(jjXqhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_multicall_functionsX-tr3,Xlogging.Handler.filterr4,(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.filterX-tr5,Xstring.Formatter.parser6,(jjXChttp://docs.python.org/3/library/string.html#string.Formatter.parseX-tr7,X+xml.sax.xmlreader.XMLReader.getErrorHandlerr8,(jjX`http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getErrorHandlerX-tr9,X)html.parser.HTMLParser.handle_startendtagr:,(jjX[http://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_startendtagX-tr;,Ximaplib.IMAP4.deleteaclr<,(jjXEhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.deleteaclX-tr=,Xmailbox.Mailbox.discardr>,(jjXEhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.discardX-tr?,Xasyncio.Future.set_exceptionr@,(jjXOhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.set_exceptionX-trA,X6distutils.ccompiler.CCompiler.set_runtime_library_dirsrB,(jjXehttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_runtime_library_dirsX-trC,X configparser.ConfigParser.getintrD,(jjXShttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getintX-trE,Xsunau.AU_read.rewindrF,(jjX@http://docs.python.org/3/library/sunau.html#sunau.AU_read.rewindX-trG,X(http.cookiejar.CookieJar.extract_cookiesrH,(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.extract_cookiesX-trI,X unittest.TestCase.assertSetEqualrJ,(jjXOhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertSetEqualX-trK,X int.to_bytesrL,(jjX;http://docs.python.org/3/library/stdtypes.html#int.to_bytesX-trM,Xmultiprocessing.Queue.closerN,(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.closeX-trO,Xpoplib.POP3.set_debuglevelrP,(jjXGhttp://docs.python.org/3/library/poplib.html#poplib.POP3.set_debuglevelX-trQ,X/distutils.ccompiler.CCompiler.create_static_librR,(jjX^http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.create_static_libX-trS,X slice.indicesrT,(jjX?http://docs.python.org/3/reference/datamodel.html#slice.indicesX-trU,X bytes.zfillrV,(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.zfillX-trW,X"email.message.Message.__contains__rX,(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.__contains__X-trY,Xbytearray.istitlerZ,(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.istitleX-tr[,X*asyncio.DatagramProtocol.datagram_receivedr\,(jjXahttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramProtocol.datagram_receivedX-tr],Xftplib.FTP.storbinaryr^,(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.storbinaryX-tr_,X#unittest.TextTestRunner._makeResultr`,(jjXRhttp://docs.python.org/3/library/unittest.html#unittest.TextTestRunner._makeResultX-tra,Xlogging.Handler.formatrb,(jjXDhttp://docs.python.org/3/library/logging.html#logging.Handler.formatX-trc,Xdifflib.Differ.comparerd,(jjXDhttp://docs.python.org/3/library/difflib.html#difflib.Differ.compareX-tre,Ximaplib.IMAP4.responserf,(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.responseX-trg,Xgettext.NullTranslations._parserh,(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations._parseX-tri,Xcollections.deque.poprj,(jjXGhttp://docs.python.org/3/library/collections.html#collections.deque.popX-trk,Xobject.__setattr__rl,(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__setattr__X-trm,X#http.client.HTTPResponse.getheadersrn,(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.getheadersX-tro,Xemail.policy.Policy.fold_binaryrp,(jjXRhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.fold_binaryX-trq,Xdatetime.time.replacerr,(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.time.replaceX-trs,Xdecimal.Decimal.exprt,(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.expX-tru,Xio.BufferedIOBase.readintorv,(jjXChttp://docs.python.org/3/library/io.html#io.BufferedIOBase.readintoX-trw,Xftplib.FTP.ntransfercmdrx,(jjXDhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP.ntransfercmdX-try,Xbdb.Bdb.dispatch_callrz,(jjX?http://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_callX-tr{,X-xml.sax.handler.ContentHandler.startElementNSr|,(jjXchttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElementNSX-tr},X$ssl.SSLContext.load_verify_locationsr~,(jjXNhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locationsX-tr,Xarray.array.tolistr,(jjX>http://docs.python.org/3/library/array.html#array.array.tolistX-tr,X#configparser.ConfigParser.read_dictr,(jjXVhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_dictX-tr,X'xml.sax.xmlreader.Locator.getLineNumberr,(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getLineNumberX-tr,Xstr.startswithr,(jjX=http://docs.python.org/3/library/stdtypes.html#str.startswithX-tr,Xbdb.Bdb.dispatch_liner,(jjX?http://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_lineX-tr,Xstruct.Struct.iter_unpackr,(jjXFhttp://docs.python.org/3/library/struct.html#struct.Struct.iter_unpackX-tr,Xftplib.FTP.cwdr,(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.cwdX-tr,Xmailbox.MMDF.unlockr,(jjXAhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDF.unlockX-tr,Xdecimal.Decimal.remainder_nearr,(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.remainder_nearX-tr,Xasyncio.Future.set_resultr,(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.set_resultX-tr,X)logging.handlers.SocketHandler.makeSocketr,(jjX`http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler.makeSocketX-tr,Xemail.message.Message.del_paramr,(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.del_paramX-tr,Xtkinter.ttk.Widget.stater,(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.stateX-tr,Xthreading.Thread.joinr,(jjXEhttp://docs.python.org/3/library/threading.html#threading.Thread.joinX-tr,Xxdrlib.Unpacker.unpack_stringr,(jjXJhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Unpacker.unpack_stringX-tr,X%logging.handlers.QueueListener.handler,(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener.handleX-tr,Xnntplib.NNTP.descriptionr,(jjXFhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.descriptionX-tr,X'doctest.OutputChecker.output_differencer,(jjXUhttp://docs.python.org/3/library/doctest.html#doctest.OutputChecker.output_differenceX-tr,Xcurses.window.vliner,(jjX@http://docs.python.org/3/library/curses.html#curses.window.vlineX-tr,Xwave.Wave_read.getnchannelsr,(jjXFhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getnchannelsX-tr,X!multiprocessing.SimpleQueue.emptyr,(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.emptyX-tr,X,email.headerregistry.HeaderRegistry.__call__r,(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.__call__X-tr,Xwave.Wave_read.getmarkersr,(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getmarkersX-tr,Xobject.__rmod__r,(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rmod__X-tr,X object.__le__r,(jjX?http://docs.python.org/3/reference/datamodel.html#object.__le__X-tr,Xcollections.Counter.updater,(jjXLhttp://docs.python.org/3/library/collections.html#collections.Counter.updateX-tr,Xasyncio.BaseEventLoop.timer,(jjXRhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.timeX-tr,Xtypes.MappingProxyType.getr,(jjXFhttp://docs.python.org/3/library/types.html#types.MappingProxyType.getX-tr,Xdecimal.Decimal.sqrtr,(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrtX-tr,Xasyncio.BaseEventLoop.is_closedr,(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.is_closedX-tr,Xpoplib.POP3.retrr,(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.retrX-tr,Xpathlib.Path.rmdirr,(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.rmdirX-tr,X1importlib.machinery.SourcelessFileLoader.get_coder,(jjXahttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.get_codeX-tr,Xasyncio.StreamWriter.drainr,(jjXOhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.drainX-tr,X set.clearr,(jjX8http://docs.python.org/3/library/stdtypes.html#set.clearX-tr,Xcurses.window.mover,(jjX?http://docs.python.org/3/library/curses.html#curses.window.moveX-tr,X)xml.sax.xmlreader.InputSource.setPublicIdr,(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setPublicIdX-tr,X-xml.sax.xmlreader.XMLReader.setEntityResolverr,(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setEntityResolverX-tr,Xarray.array.frombytesr,(jjXAhttp://docs.python.org/3/library/array.html#array.array.frombytesX-tr,Xpoplib.POP3.pass_r,(jjX>http://docs.python.org/3/library/poplib.html#poplib.POP3.pass_X-tr,X(email.policy.Compat32.header_store_parser,(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.Compat32.header_store_parseX-tr,Xcurses.panel.Panel.topr,(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.Panel.topX-tr,X#logging.handlers.SysLogHandler.emitr,(jjXZhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.emitX-tr,Xlogging.Logger.findCallerr,(jjXGhttp://docs.python.org/3/library/logging.html#logging.Logger.findCallerX-tr,Xftplib.FTP_TLS.prot_cr,(jjXBhttp://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.prot_cX-tr,Xdecimal.Decimal.is_signedr,(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_signedX-tr,Xsocketserver.BaseServer.filenor,(jjXQhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.filenoX-tr,Xarray.array.fromlistr,(jjX@http://docs.python.org/3/library/array.html#array.array.fromlistX-tr,X bytes.countr,(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.countX-tr,X*importlib.machinery.FileFinder.find_loaderr,(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.find_loaderX-tr,X/distutils.ccompiler.CCompiler.find_library_filer,(jjX^http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.find_library_fileX-tr,Xdis.Bytecode.disr,(jjX:http://docs.python.org/3/library/dis.html#dis.Bytecode.disX-tr,Xfractions.Fraction.from_floatr,(jjXMhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.from_floatX-tr,X&ipaddress.IPv6Network.compare_networksr,(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compare_networksX-tr,Xcurses.window.scrollokr,(jjXChttp://docs.python.org/3/library/curses.html#curses.window.scrollokX-tr,Xmailbox.MH.__delitem__r,(jjXDhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.__delitem__X-tr,Xlogging.FileHandler.closer,(jjXPhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandler.closeX-tr,Xftplib.FTP.dirr,(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.dirX-tr,Xobject.__getnewargs_ex__r,(jjXEhttp://docs.python.org/3/library/pickle.html#object.__getnewargs_ex__X-tr,Xbytes.expandtabsr,(jjX?http://docs.python.org/3/library/stdtypes.html#bytes.expandtabsX-tr,Xwebbrowser.controller.open_newr,(jjXOhttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.open_newX-tr,X dict.itemsr,(jjX9http://docs.python.org/3/library/stdtypes.html#dict.itemsX-tr,Xtkinter.ttk.Style.lookupr,(jjXJhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.lookupX-tr,Xlogging.FileHandler.emitr,(jjXOhttp://docs.python.org/3/library/logging.handlers.html#logging.FileHandler.emitX-tr,Xdifflib.HtmlDiff.__init__r-(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.__init__X-tr-X*logging.handlers.MemoryHandler.shouldFlushr-(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.shouldFlushX-tr-Xsmtplib.SMTP.has_extnr-(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.has_extnX-tr-X str.lstripr-(jjX9http://docs.python.org/3/library/stdtypes.html#str.lstripX-tr-Xtelnetlib.Telnet.expectr-(jjXGhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.expectX-tr -Xhmac.HMAC.copyr -(jjX9http://docs.python.org/3/library/hmac.html#hmac.HMAC.copyX-tr -X.asyncio.asyncio.subprocess.Process.send_signalr -(jjXghttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.send_signalX-tr -Xhashlib.hash.hexdigestr-(jjXDhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.hexdigestX-tr-X http.cookies.Morsel.OutputStringr-(jjXShttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.OutputStringX-tr-Xbz2.BZ2Compressor.flushr-(jjXAhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.flushX-tr-X5distutils.ccompiler.CCompiler.add_runtime_library_dirr-(jjXdhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.add_runtime_library_dirX-tr-Xweakref.finalize.peekr-(jjXChttp://docs.python.org/3/library/weakref.html#weakref.finalize.peekX-tr-Xsqlite3.Cursor.executescriptr-(jjXJhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executescriptX-tr-X$xml.etree.ElementTree.Element.appendr-(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.appendX-tr-Xbdb.Bdb.get_bpbynumberr-(jjX@http://docs.python.org/3/library/bdb.html#bdb.Bdb.get_bpbynumberX-tr-Xbytearray.titler-(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.titleX-tr-Xmsilib.Control.conditionr -(jjXEhttp://docs.python.org/3/library/msilib.html#msilib.Control.conditionX-tr!-Xemail.message.Message.__bytes__r"-(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.__bytes__X-tr#-X"tkinter.ttk.Treeview.selection_setr$-(jjXThttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_setX-tr%-Xdecimal.Decimal.logical_invertr&-(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_invertX-tr'-Xconfigparser.optionxformr(-(jjXKhttp://docs.python.org/3/library/configparser.html#configparser.optionxformX-tr)-Xunittest.TestSuite.runr*-(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.TestSuite.runX-tr+-Xdecimal.Context.subtractr,-(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Context.subtractX-tr--Xdecimal.Context.create_decimalr.-(jjXLhttp://docs.python.org/3/library/decimal.html#decimal.Context.create_decimalX-tr/-X)urllib.request.OpenerDirector.add_handlerr0-(jjX^http://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector.add_handlerX-tr1-Xsocket.socket.recvmsg_intor2-(jjXGhttp://docs.python.org/3/library/socket.html#socket.socket.recvmsg_intoX-tr3-Xsunau.AU_write.writeframesrawr4-(jjXIhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.writeframesrawX-tr5-X"sqlite3.Connection.create_functionr6-(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_functionX-tr7-Xsymtable.Symbol.get_namespacesr8-(jjXMhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.get_namespacesX-tr9-Xdoctest.DocTestFinder.findr:-(jjXHhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFinder.findX-tr;-Xformatter.writer.flushr<-(jjXFhttp://docs.python.org/3/library/formatter.html#formatter.writer.flushX-tr=-Xset.issupersetr>-(jjX=http://docs.python.org/3/library/stdtypes.html#set.issupersetX-tr?-X(argparse.ArgumentParser.parse_known_argsr@-(jjXWhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_known_argsX-trA-Xlogging.Handler.acquirerB-(jjXEhttp://docs.python.org/3/library/logging.html#logging.Handler.acquireX-trC-X pprint.PrettyPrinter.isrecursiverD-(jjXMhttp://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isrecursiveX-trE-Xdecimal.Context.is_finiterF-(jjXGhttp://docs.python.org/3/library/decimal.html#decimal.Context.is_finiteX-trG-X list.sortrH-(jjX8http://docs.python.org/3/library/stdtypes.html#list.sortX-trI-Xfractions.Fraction.from_decimalrJ-(jjXOhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.from_decimalX-trK-Ximaplib.IMAP4.closerL-(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.closeX-trM-Xcurses.window.keypadrN-(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.keypadX-trO-Xdatetime.datetime.utcoffsetrP-(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcoffsetX-trQ-X&http.client.HTTPConnection.getresponserR-(jjXXhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.getresponseX-trS-X$xml.etree.ElementTree.Element.removerT-(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.removeX-trU-Xxml.dom.minidom.Node.writexmlrV-(jjXShttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.writexmlX-trW-Xcgi.FieldStorage.getfirstrX-(jjXChttp://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getfirstX-trY-Xftplib.FTP.rmdrZ-(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.rmdX-tr[-Xsymtable.SymbolTable.is_nestedr\-(jjXMhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.is_nestedX-tr]-X%http.cookiejar.CookieJar.make_cookiesr^-(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.make_cookiesX-tr_-Xmsilib.CAB.appendr`-(jjX>http://docs.python.org/3/library/msilib.html#msilib.CAB.appendX-tra-X bytes.istitlerb-(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.istitleX-trc-Xnntplib.NNTP.descriptionsrd-(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.descriptionsX-tre-Xcurses.window.getparyxrf-(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getparyxX-trg-Xlogging.Logger.handlerh-(jjXChttp://docs.python.org/3/library/logging.html#logging.Logger.handleX-tri-Xcollections.ChainMap.new_childrj-(jjXPhttp://docs.python.org/3/library/collections.html#collections.ChainMap.new_childX-trk-Xbytes.capitalizerl-(jjX?http://docs.python.org/3/library/stdtypes.html#bytes.capitalizeX-trm-X%urllib.request.BaseHandler.add_parentrn-(jjXZhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.add_parentX-tro-Xcurses.window.getyxrp-(jjX@http://docs.python.org/3/library/curses.html#curses.window.getyxX-trq-X)multiprocessing.managers.SyncManager.Lockrr-(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.LockX-trs-Xsymtable.SymbolTable.get_namert-(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_nameX-tru-Xunittest.TestCase.assertLessrv-(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLessX-trw-Xbdb.Bdb.dispatch_returnrx-(jjXAhttp://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_returnX-try-Xcmd.Cmd.precmdrz-(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.precmdX-tr{-Xftplib.FTP.voidcmdr|-(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.voidcmdX-tr}-Ximaplib.IMAP4.shutdownr~-(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.shutdownX-tr-X'ossaudiodev.oss_mixer_device.get_recsrcr-(jjXYhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.get_recsrcX-tr-X2urllib.request.HTTPBasicAuthHandler.http_error_401r-(jjXghttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandler.http_error_401X-tr-Xcurses.window.setscrregr-(jjXDhttp://docs.python.org/3/library/curses.html#curses.window.setscrregX-tr-Ximp.NullImporter.find_moduler-(jjXFhttp://docs.python.org/3/library/imp.html#imp.NullImporter.find_moduleX-tr-X4xml.parsers.expat.xmlparser.ExternalEntityRefHandlerr-(jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ExternalEntityRefHandlerX-tr-X-multiprocessing.managers.BaseManager.registerr-(jjXchttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.registerX-tr-X'xml.dom.pulldom.DOMEventStream.getEventr-(jjX]http://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream.getEventX-tr-X asyncio.DatagramTransport.sendtor-(jjXWhttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.DatagramTransport.sendtoX-tr-Xtkinter.ttk.Notebook.indexr-(jjXLhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.indexX-tr-Xobject.__rdivmod__r-(jjXDhttp://docs.python.org/3/reference/datamodel.html#object.__rdivmod__X-tr-Xsocket.socket.acceptr-(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.acceptX-tr-Xio.BufferedIOBase.writer-(jjX@http://docs.python.org/3/library/io.html#io.BufferedIOBase.writeX-tr-Xdifflib.HtmlDiff.make_tabler-(jjXIhttp://docs.python.org/3/library/difflib.html#difflib.HtmlDiff.make_tableX-tr-X symtable.Function.get_parametersr-(jjXOhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_parametersX-tr-Xsocket.socket.sendr-(jjX?http://docs.python.org/3/library/socket.html#socket.socket.sendX-tr-X&xml.etree.ElementTree.ElementTree.iterr-(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.iterX-tr-Xtkinter.ttk.Notebook.insertr-(jjXMhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.insertX-tr-X"ossaudiodev.oss_audio_device.resetr-(jjXThttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.resetX-tr-Xpathlib.Path.lstatr-(jjX@http://docs.python.org/3/library/pathlib.html#pathlib.Path.lstatX-tr-X)xml.etree.ElementTree.Element.getchildrenr-(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getchildrenX-tr-X(configparser.RawConfigParser.add_sectionr-(jjX[http://docs.python.org/3/library/configparser.html#configparser.RawConfigParser.add_sectionX-tr-Xasyncore.dispatcher.handle_exptr-(jjXNhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_exptX-tr-X msilib.Directory.start_componentr-(jjXMhttp://docs.python.org/3/library/msilib.html#msilib.Directory.start_componentX-tr-Xio.IOBase.readliner-(jjX;http://docs.python.org/3/library/io.html#io.IOBase.readlineX-tr-Xpdb.Pdb.runevalr-(jjX9http://docs.python.org/3/library/pdb.html#pdb.Pdb.runevalX-tr-Xcurses.window.getbkgdr-(jjXBhttp://docs.python.org/3/library/curses.html#curses.window.getbkgdX-tr-X calendar.HTMLCalendar.formatyearr-(jjXOhttp://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearX-tr-Xsocket.socket.dupr-(jjX>http://docs.python.org/3/library/socket.html#socket.socket.dupX-tr-X'tkinter.tix.tixCommand.tix_resetoptionsr-(jjXYhttp://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_resetoptionsX-tr-Xmmap.mmap.rfindr-(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.rfindX-tr-X/xml.parsers.expat.xmlparser.StartElementHandlerr-(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartElementHandlerX-tr-Ximaplib.IMAP4.logoutr-(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.logoutX-tr-Xthreading.RLock.acquirer-(jjXGhttp://docs.python.org/3/library/threading.html#threading.RLock.acquireX-tr-Xxml.dom.NodeList.itemr-(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.NodeList.itemX-tr-X)unittest.TestLoader.loadTestsFromTestCaser-(jjXXhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromTestCaseX-tr-Xemail.generator.Generator.cloner-(jjXUhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.cloneX-tr-Xobject.__index__r-(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__index__X-tr-Xdecimal.Decimal.comparer-(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.compareX-tr-X email.contentmanager.set_contentr-(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.set_contentX-tr-Xbytearray.isspacer-(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.isspaceX-tr-X!http.cookiejar.FileCookieJar.loadr-(jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.loadX-tr-Xbytes.partitionr-(jjX>http://docs.python.org/3/library/stdtypes.html#bytes.partitionX-tr-Xselect.devpoll.modifyr-(jjXBhttp://docs.python.org/3/library/select.html#select.devpoll.modifyX-tr-Xsymtable.SymbolTable.get_typer-(jjXLhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_typeX-tr-X%xml.sax.xmlreader.Locator.getSystemIdr-(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getSystemIdX-tr-X2xml.sax.handler.ContentHandler.ignorableWhitespacer-(jjXhhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.ignorableWhitespaceX-tr-Xio.IOBase.writelinesr-(jjX=http://docs.python.org/3/library/io.html#io.IOBase.writelinesX-tr-X&xml.sax.xmlreader.XMLReader.setFeaturer-(jjX[http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setFeatureX-tr-Xnntplib.NNTP.starttlsr-(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.starttlsX-tr-Xtelnetlib.Telnet.mt_interactr-(jjXLhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.mt_interactX-tr-Xasynchat.async_chat.pushr-(jjXGhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.pushX-tr-Xpickle.Unpickler.loadr-(jjXBhttp://docs.python.org/3/library/pickle.html#pickle.Unpickler.loadX-tr-X!decimal.Decimal.to_integral_valuer-(jjXOhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_valueX-tr-X bytes.islowerr-(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.islowerX-tr-Xemail.message.Message.valuesr-(jjXPhttp://docs.python.org/3/library/email.message.html#email.message.Message.valuesX-tr-Xre.match.startr-(jjX7http://docs.python.org/3/library/re.html#re.match.startX-tr-Xformatter.writer.send_hor_ruler-(jjXNhttp://docs.python.org/3/library/formatter.html#formatter.writer.send_hor_ruleX-tr-X str.rindexr-(jjX9http://docs.python.org/3/library/stdtypes.html#str.rindexX-tr-X$configparser.ConfigParser.has_optionr-(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.has_optionX-tr-Xcmd.Cmd.completedefaultr-(jjXAhttp://docs.python.org/3/library/cmd.html#cmd.Cmd.completedefaultX-tr-Xsunau.AU_read.tellr-(jjX>http://docs.python.org/3/library/sunau.html#sunau.AU_read.tellX-tr-X"distutils.text_file.TextFile.closer-(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.closeX-tr-Ximaplib.IMAP4.myrightsr-(jjXDhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.myrightsX-tr-Xbytearray.rpartitionr-(jjXChttp://docs.python.org/3/library/stdtypes.html#bytearray.rpartitionX-tr-Xpoplib.POP3.deler.(jjX=http://docs.python.org/3/library/poplib.html#poplib.POP3.deleX-tr.X%tkinter.ttk.Treeview.selection_toggler.(jjXWhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_toggleX-tr.Xmailbox.MMDFMessage.set_fromr.(jjXJhttp://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_fromX-tr.X,distutils.ccompiler.CCompiler.undefine_macror.(jjX[http://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.undefine_macroX-tr.X%configparser.ConfigParser.optionxformr.(jjXXhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionxformX-tr .X&wsgiref.handlers.BaseHandler.get_stdinr .(jjXThttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.get_stdinX-tr .Xbytearray.ljustr .(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.ljustX-tr .Xselect.devpoll.pollr.(jjX@http://docs.python.org/3/library/select.html#select.devpoll.pollX-tr.Xselect.poll.registerr.(jjXAhttp://docs.python.org/3/library/select.html#select.poll.registerX-tr.X%http.cookiejar.CookiePolicy.return_okr.(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.return_okX-tr.Xio.RawIOBase.readallr.(jjX=http://docs.python.org/3/library/io.html#io.RawIOBase.readallX-tr.X*logging.handlers.SysLogHandler.mapPriorityr.(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler.mapPriorityX-tr.Xwave.Wave_read.rewindr.(jjX@http://docs.python.org/3/library/wave.html#wave.Wave_read.rewindX-tr.Xdecimal.Context.plusr.(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.plusX-tr.Xcodecs.Codec.decoder.(jjX@http://docs.python.org/3/library/codecs.html#codecs.Codec.decodeX-tr.X%xml.etree.ElementTree.XMLParser.closer.(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.closeX-tr.X'html.parser.HTMLParser.handle_entityrefr .(jjXYhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.handle_entityrefX-tr!.X*xml.sax.handler.ContentHandler.endDocumentr".(jjX`http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endDocumentX-tr#.X#importlib.abc.SourceLoader.get_coder$.(jjXShttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.get_codeX-tr%.Xshelve.Shelf.syncr&.(jjX>http://docs.python.org/3/library/shelve.html#shelve.Shelf.syncX-tr'.Ximaplib.IMAP4.threadr(.(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.threadX-tr).Xsqlite3.Cursor.executemanyr*.(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemanyX-tr+.Xdbm.dumb.dumbdbm.closer,.(jjX@http://docs.python.org/3/library/dbm.html#dbm.dumb.dumbdbm.closeX-tr-.Xdecimal.Decimal.minr..(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.minX-tr/.X"asyncio.StreamReader.set_transportr0.(jjXWhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.set_transportX-tr1.X&socketserver.BaseServer.verify_requestr2.(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.verify_requestX-tr3.X$asyncio.BaseTransport.get_extra_infor4.(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseTransport.get_extra_infoX-tr5.Xinspect.Signature.replacer6.(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Signature.replaceX-tr7.X)asyncio.BaseSubprocessTransport.terminater8.(jjX`http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.terminateX-tr9.Xselect.epoll.modifyr:.(jjX@http://docs.python.org/3/library/select.html#select.epoll.modifyX-tr;.Xunittest.mock.Mock.attach_mockr<.(jjXRhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.attach_mockX-tr=.Xdecimal.Context.clear_trapsr>.(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.clear_trapsX-tr?.X&importlib.abc.InspectLoader.is_packager@.(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.abc.InspectLoader.is_packageX-trA.X)xml.sax.xmlreader.InputSource.getSystemIdrB.(jjX^http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getSystemIdX-trC.Xzlib.Compress.compressrD.(jjXAhttp://docs.python.org/3/library/zlib.html#zlib.Compress.compressX-trE.X!formatter.formatter.end_paragraphrF.(jjXQhttp://docs.python.org/3/library/formatter.html#formatter.formatter.end_paragraphX-trG.Xdecimal.Decimal.radixrH.(jjXChttp://docs.python.org/3/library/decimal.html#decimal.Decimal.radixX-trI.Xpathlib.Path.is_block_devicerJ.(jjXJhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.is_block_deviceX-trK.X%multiprocessing.Connection.send_bytesrL.(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.send_bytesX-trM.X"asynchat.async_chat.set_terminatorrN.(jjXQhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.set_terminatorX-trO.Xpathlib.PurePath.with_namerP.(jjXHhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.with_nameX-trQ.Xshelve.Shelf.closerR.(jjX?http://docs.python.org/3/library/shelve.html#shelve.Shelf.closeX-trS.Xdatetime.tzinfo.fromutcrT.(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.tzinfo.fromutcX-trU.X bytes.isdigitrV.(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.isdigitX-trW.Xwave.Wave_write.tellrX.(jjX?http://docs.python.org/3/library/wave.html#wave.Wave_write.tellX-trY.Xcurses.window.touchwinrZ.(jjXChttp://docs.python.org/3/library/curses.html#curses.window.touchwinX-tr[.Xwave.Wave_read.getcomptyper\.(jjXEhttp://docs.python.org/3/library/wave.html#wave.Wave_read.getcomptypeX-tr].X-xmlrpc.server.DocXMLRPCServer.set_server_namer^.(jjXahttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_nameX-tr_.X#asyncio.StreamWriter.get_extra_infor`.(jjXXhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.get_extra_infoX-tra.Xdecimal.Decimal.scalebrb.(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.scalebX-trc.X.logging.handlers.TimedRotatingFileHandler.emitrd.(jjXehttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler.emitX-tre.Xmailbox.Babyl.unlockrf.(jjXBhttp://docs.python.org/3/library/mailbox.html#mailbox.Babyl.unlockX-trg.X*distutils.ccompiler.CCompiler.define_macrorh.(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.define_macroX-tri.Xcollections.deque.removerj.(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.removeX-trk.X"http.client.HTTPConnection.connectrl.(jjXThttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.connectX-trm.X=urllib.request.AbstractBasicAuthHandler.http_error_auth_reqedrn.(jjXrhttp://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandler.http_error_auth_reqedX-tro.X+http.server.SimpleHTTPRequestHandler.do_GETrp.(jjX]http://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.do_GETX-trq.Xobject.__set__rr.(jjX@http://docs.python.org/3/reference/datamodel.html#object.__set__X-trs.X str.centerrt.(jjX9http://docs.python.org/3/library/stdtypes.html#str.centerX-tru.Xsunau.AU_write.setsampwidthrv.(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setsampwidthX-trw.Xcurses.textpad.Textbox.editrx.(jjXHhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.editX-try.X'xml.etree.ElementTree.XMLParser.doctyperz.(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.doctypeX-tr{.Xunittest.TestCase.skipTestr|.(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.skipTestX-tr}.X-xml.sax.xmlreader.AttributesNS.getNameByQNamer~.(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getNameByQNameX-tr.Xbytearray.lstripr.(jjX?http://docs.python.org/3/library/stdtypes.html#bytearray.lstripX-tr.X#sqlite3.Connection.create_collationr.(jjXQhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_collationX-tr.Xlogging.Handler.removeFilterr.(jjXJhttp://docs.python.org/3/library/logging.html#logging.Handler.removeFilterX-tr.Xvenv.EnvBuilder.setup_pythonr.(jjXGhttp://docs.python.org/3/library/venv.html#venv.EnvBuilder.setup_pythonX-tr.X#wsgiref.handlers.BaseHandler._writer.(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler._writeX-tr.Xcollections.Counter.most_commonr.(jjXQhttp://docs.python.org/3/library/collections.html#collections.Counter.most_commonX-tr.Xzipfile.ZipFile.closer.(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.closeX-tr.X(email.message.EmailMessage.is_attachmentr.(jjXchttp://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.is_attachmentX-tr.X!multiprocessing.pool.Pool.starmapr.(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmapX-tr.X gettext.GNUTranslations.ngettextr.(jjXNhttp://docs.python.org/3/library/gettext.html#gettext.GNUTranslations.ngettextX-tr.Xasyncio.BaseEventLoop.set_debugr.(jjXWhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.set_debugX-tr.X#argparse.ArgumentParser.get_defaultr.(jjXRhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.get_defaultX-tr.X"optparse.OptionParser.set_defaultsr.(jjXQhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_defaultsX-tr.X$calendar.Calendar.monthdatescalendarr.(jjXShttp://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdatescalendarX-tr.Xqueue.Queue.getr.(jjX;http://docs.python.org/3/library/queue.html#queue.Queue.getX-tr.X2xmlrpc.server.SimpleXMLRPCServer.register_instancer.(jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_instanceX-tr.X concurrent.futures.Future.cancelr.(jjXYhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.cancelX-tr.Xaifc.aifc.setnchannelsr.(jjXAhttp://docs.python.org/3/library/aifc.html#aifc.aifc.setnchannelsX-tr.X!email.policy.Compat32.fold_binaryr.(jjXThttp://docs.python.org/3/library/email.policy.html#email.policy.Compat32.fold_binaryX-tr.Xtkinter.ttk.Treeview.nextr.(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.nextX-tr.Xre.match.expandr.(jjX8http://docs.python.org/3/library/re.html#re.match.expandX-tr.Xunittest.TestCase.assertEqualr.(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertEqualX-tr.Xtarfile.TarFile.extractallr.(jjXHhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractallX-tr.X'xml.sax.xmlreader.XMLReader.getPropertyr.(jjX\http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getPropertyX-tr.X!selectors.BaseSelector.unregisterr.(jjXQhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.unregisterX-tr.X(distutils.cmd.Command.initialize_optionsr.(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.initialize_optionsX-tr.Xtracemalloc.Snapshot.dumpr.(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.dumpX-tr.X!unittest.TestResult.wasSuccessfulr.(jjXPhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.wasSuccessfulX-tr.Xzipfile.ZipFile.printdirr.(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.printdirX-tr.Xbdb.Bdb.runevalr.(jjX9http://docs.python.org/3/library/bdb.html#bdb.Bdb.runevalX-tr.Xsymtable.Function.get_freesr.(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Function.get_freesX-tr.Xsunau.AU_read.getmarkersr.(jjXDhttp://docs.python.org/3/library/sunau.html#sunau.AU_read.getmarkersX-tr.Xpathlib.Path.globr.(jjX?http://docs.python.org/3/library/pathlib.html#pathlib.Path.globX-tr.X"doctest.DocTestRunner.report_startr.(jjXPhttp://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.report_startX-tr.Xre.regex.splitr.(jjX7http://docs.python.org/3/library/re.html#re.regex.splitX-tr.X!email.generator.Generator.flattenr.(jjXWhttp://docs.python.org/3/library/email.generator.html#email.generator.Generator.flattenX-tr.Xselect.kqueue.controlr.(jjXBhttp://docs.python.org/3/library/select.html#select.kqueue.controlX-tr.X http.cookiejar.Cookie.is_expiredr.(jjXUhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.is_expiredX-tr.X!logging.handlers.SMTPHandler.emitr.(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandler.emitX-tr.X#xml.etree.ElementTree.Element.itemsr.(jjX_http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.itemsX-tr.X+distutils.ccompiler.CCompiler.set_librariesr.(jjXZhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.set_librariesX-tr.Xinspect.Signature.bindr.(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Signature.bindX-tr.Xdatetime.date.__format__r.(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.__format__X-tr.Xmultiprocessing.pool.Pool.joinr.(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.joinX-tr.Xtarfile.TarInfo.frombufr.(jjXEhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.frombufX-tr.Xmailbox.MH.packr.(jjX=http://docs.python.org/3/library/mailbox.html#mailbox.MH.packX-tr.X%code.InteractiveInterpreter.runsourcer.(jjXPhttp://docs.python.org/3/library/code.html#code.InteractiveInterpreter.runsourceX-tr.X&xml.etree.ElementTree.Element.findtextr.(jjXbhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findtextX-tr.Xio.TextIOBase.tellr.(jjX;http://docs.python.org/3/library/io.html#io.TextIOBase.tellX-tr.Xxdrlib.Packer.pack_farrayr.(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_farrayX-tr.X wsgiref.handlers.BaseHandler.runr.(jjXNhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.runX-tr.X#sqlite3.Connection.create_aggregater.(jjXQhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_aggregateX-tr.X asyncore.dispatcher.handle_writer.(jjXOhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_writeX-tr.Xobject.__itruediv__r.(jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__itruediv__X-tr.X'asyncio.BaseSubprocessTransport.get_pidr.(jjX^http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseSubprocessTransport.get_pidX-tr.Xbytearray.translater.(jjXBhttp://docs.python.org/3/library/stdtypes.html#bytearray.translateX-tr.Xsmtplib.SMTP.ehlor.(jjX?http://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehloX-tr.X(asyncio.BaseEventLoop.create_unix_serverr.(jjX`http://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_unix_serverX-tr.Xsocket.socket.detachr.(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.detachX-tr.Xasyncio.StreamReader.readr.(jjXNhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readX-tr.Xcollections.deque.popleftr.(jjXKhttp://docs.python.org/3/library/collections.html#collections.deque.popleftX-tr.X+multiprocessing.managers.BaseProxy.__repr__r.(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__repr__X-tr.Xtkinter.ttk.Treeview.identifyr.(jjXOhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identifyX-tr.Xmultiprocessing.Process.runr.(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.runX-tr.X%ossaudiodev.oss_mixer_device.controlsr/(jjXWhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_mixer_device.controlsX-tr/Xsunau.AU_read.closer/(jjX?http://docs.python.org/3/library/sunau.html#sunau.AU_read.closeX-tr/X$ossaudiodev.oss_audio_device.bufsizer/(jjXVhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.bufsizeX-tr/Xmailbox.MMDF.get_filer/(jjXChttp://docs.python.org/3/library/mailbox.html#mailbox.MMDF.get_fileX-tr/X(xml.sax.xmlreader.AttributesNS.getQNamesr/(jjX]http://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNamesX-tr /X'concurrent.futures.Future.set_exceptionr /(jjX`http://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future.set_exceptionX-tr /Xbytearray.startswithr /(jjXChttp://docs.python.org/3/library/stdtypes.html#bytearray.startswithX-tr /Xdecimal.Decimal.is_infiniter/(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_infiniteX-tr/X-xml.sax.xmlreader.AttributesNS.getQNameByNamer/(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNameByNameX-tr/Xsymtable.SymbolTable.get_linenor/(jjXNhttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_linenoX-tr/X"configparser.ConfigParser.sectionsr/(jjXUhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.sectionsX-tr/Xdatetime.datetime.ctimer/(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.ctimeX-tr/Xtarfile.TarInfo.isblkr/(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isblkX-tr/X optparse.OptionParser.add_optionr/(jjXOhttp://docs.python.org/3/library/optparse.html#optparse.OptionParser.add_optionX-tr/Xunittest.TestCase.tearDownClassr/(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.tearDownClassX-tr/Xdatetime.datetime.timetzr/(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.timetzX-tr/X$symtable.SymbolTable.get_identifiersr /(jjXShttp://docs.python.org/3/library/symtable.html#symtable.SymbolTable.get_identifiersX-tr!/Xtrace.Trace.runctxr"/(jjX>http://docs.python.org/3/library/trace.html#trace.Trace.runctxX-tr#/X%importlib.abc.SourceLoader.path_mtimer$/(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.path_mtimeX-tr%/X%http.client.HTTPConnection.set_tunnelr&/(jjXWhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.set_tunnelX-tr'/Xpathlib.Path.symlink_tor(/(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.Path.symlink_toX-tr)/Xbdb.Bdb.runctxr*/(jjX8http://docs.python.org/3/library/bdb.html#bdb.Bdb.runctxX-tr+/X*xml.parsers.expat.xmlparser.CommentHandlerr,/(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CommentHandlerX-tr-/X#xml.dom.Element.removeAttributeNoder./(jjXQhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.removeAttributeNodeX-tr//Xobject.__rtruediv__r0/(jjXEhttp://docs.python.org/3/reference/datamodel.html#object.__rtruediv__X-tr1/Xmailbox.Mailbox.get_bytesr2/(jjXGhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_bytesX-tr3/X.asyncio.AbstractEventLoopPolicy.set_event_loopr4/(jjXghttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.AbstractEventLoopPolicy.set_event_loopX-tr5/X'xml.etree.ElementTree.TreeBuilder.closer6/(jjXchttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.closeX-tr7/Xemail.header.Header.__str__r8/(jjXNhttp://docs.python.org/3/library/email.header.html#email.header.Header.__str__X-tr9/Xmailbox.Mailbox.__delitem__r:/(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__delitem__X-tr;/Xmailbox.Maildir.unlockr/(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__getitem__X-tr?/Xmultiprocessing.pool.Pool.mapr@/(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.mapX-trA/X!asyncore.dispatcher.handle_acceptrB/(jjXPhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_acceptX-trC/Xasyncio.JoinableQueue.task_donerD/(jjXRhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.JoinableQueue.task_doneX-trE/Xsunau.AU_write.setnchannelsrF/(jjXGhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setnchannelsX-trG/Xzipfile.ZipFile.openrH/(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.openX-trI/X_thread.lock.acquirerJ/(jjXBhttp://docs.python.org/3/library/_thread.html#_thread.lock.acquireX-trK/Xtkinter.ttk.Treeview.moverL/(jjXKhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.moveX-trM/Xabc.ABCMeta.registerrN/(jjX>http://docs.python.org/3/library/abc.html#abc.ABCMeta.registerX-trO/Xsocket.socket.shutdownrP/(jjXChttp://docs.python.org/3/library/socket.html#socket.socket.shutdownX-trQ/X'email.charset.Charset.get_body_encodingrR/(jjX[http://docs.python.org/3/library/email.charset.html#email.charset.Charset.get_body_encodingX-trS/Xunittest.TestCase.assertNotInrT/(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertNotInX-trU/X'asyncio.asyncio.subprocess.Process.waitrV/(jjX`http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.waitX-trW/Xio.BufferedReader.peekrX/(jjX?http://docs.python.org/3/library/io.html#io.BufferedReader.peekX-trY/Xre.regex.searchrZ/(jjX8http://docs.python.org/3/library/re.html#re.regex.searchX-tr[/Xstruct.Struct.packr\/(jjX?http://docs.python.org/3/library/struct.html#struct.Struct.packX-tr]/Xobject.__hash__r^/(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__hash__X-tr_/X str.casefoldr`/(jjX;http://docs.python.org/3/library/stdtypes.html#str.casefoldX-tra/Xctypes._CData.from_paramrb/(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._CData.from_paramX-trc/Xio.IOBase.tellrd/(jjX7http://docs.python.org/3/library/io.html#io.IOBase.tellX-tre/Xmemoryview.__eq__rf/(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.__eq__X-trg/X*xml.etree.ElementTree.ElementTree._setrootrh/(jjXfhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree._setrootX-tri/Xcurses.window.getkeyrj/(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.getkeyX-trk/Xmailbox.MMDF.lockrl/(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MMDF.lockX-trm/X&xml.dom.Element.getElementsByTagNameNSrn/(jjXThttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.getElementsByTagNameNSX-tro/Xdecimal.Decimal.next_towardrp/(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.next_towardX-trq/X+difflib.SequenceMatcher.get_grouped_opcodesrr/(jjXYhttp://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher.get_grouped_opcodesX-trs/Xobject.__sub__rt/(jjX@http://docs.python.org/3/reference/datamodel.html#object.__sub__X-tru/Xobject.__ixor__rv/(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__ixor__X-trw/Xnntplib.NNTP.postrx/(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.postX-try/Xzlib.Decompress.copyrz/(jjX?http://docs.python.org/3/library/zlib.html#zlib.Decompress.copyX-tr{/X$argparse.ArgumentParser.format_usager|/(jjXShttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_usageX-tr}/Xcurses.window.getbegyxr~/(jjXChttp://docs.python.org/3/library/curses.html#curses.window.getbegyxX-tr/X.asyncio.BaseEventLoop.create_datagram_endpointr/(jjXfhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_datagram_endpointX-tr/X!email.message.Message.set_charsetr/(jjXUhttp://docs.python.org/3/library/email.message.html#email.message.Message.set_charsetX-tr/X$asyncio.BaseProtocol.connection_mader/(jjX[http://docs.python.org/3/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_madeX-tr/X"email.message.Message.get_filenamer/(jjXVhttp://docs.python.org/3/library/email.message.html#email.message.Message.get_filenameX-tr/Xdecimal.Decimal.quantizer/(jjXFhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.quantizeX-tr/Xmmap.mmap.readliner/(jjX=http://docs.python.org/3/library/mmap.html#mmap.mmap.readlineX-tr/X multiprocessing.Process.is_aliver/(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.is_aliveX-tr/X multiprocessing.Connection.closer/(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Connection.closeX-tr/Xtelnetlib.Telnet.read_sb_datar/(jjXMhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_sb_dataX-tr/Xdbm.ndbm.ndbm.closer/(jjX=http://docs.python.org/3/library/dbm.html#dbm.ndbm.ndbm.closeX-tr/Xmailbox.mboxMessage.get_flagsr/(jjXKhttp://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_flagsX-tr/Xmailbox.Mailbox.get_filer/(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_fileX-tr/Xasyncio.WriteTransport.writer/(jjXShttp://docs.python.org/3/library/asyncio-protocol.html#asyncio.WriteTransport.writeX-tr/X&socketserver.BaseServer.handle_timeoutr/(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_timeoutX-tr/Xpdb.Pdb.runcallr/(jjX9http://docs.python.org/3/library/pdb.html#pdb.Pdb.runcallX-tr/Xobject.__xor__r/(jjX@http://docs.python.org/3/reference/datamodel.html#object.__xor__X-tr/X/email.headerregistry.HeaderRegistry.map_to_typer/(jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry.map_to_typeX-tr/Xast.NodeVisitor.visitr/(jjX?http://docs.python.org/3/library/ast.html#ast.NodeVisitor.visitX-tr/Xcurses.window.subpadr/(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.subpadX-tr/X!asyncio.BaseEventLoop.run_foreverr/(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.run_foreverX-tr/Xsymtable.Symbol.is_importedr/(jjXJhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_importedX-tr/X!asyncio.BaseEventLoop.create_taskr/(jjXYhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_taskX-tr/Xthreading.Event.clearr/(jjXEhttp://docs.python.org/3/library/threading.html#threading.Event.clearX-tr/Xmailbox.MHMessage.set_sequencesr/(jjXMhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.set_sequencesX-tr/Ximaplib.IMAP4.setannotationr/(jjXIhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.setannotationX-tr/X#distutils.ccompiler.CCompiler.spawnr/(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompiler.spawnX-tr/Xdecimal.Decimal.is_qnanr/(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_qnanX-tr/Xftplib.FTP.renamer/(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.FTP.renameX-tr/X%importlib.abc.SourceLoader.path_statsr/(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.abc.SourceLoader.path_statsX-tr/Xio.BufferedReader.readr/(jjX?http://docs.python.org/3/library/io.html#io.BufferedReader.readX-tr/Xdecimal.Decimal.is_zeror/(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Decimal.is_zeroX-tr/Xcmd.Cmd.defaultr/(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.defaultX-tr/Xtelnetlib.Telnet.openr/(jjXEhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.openX-tr/Xsunau.AU_write.setcomptyper/(jjXFhttp://docs.python.org/3/library/sunau.html#sunau.AU_write.setcomptypeX-tr/Ximaplib.IMAP4.creater/(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.createX-tr/Xmailbox.Mailbox.__setitem__r/(jjXIhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__setitem__X-tr/Xarray.array.countr/(jjX=http://docs.python.org/3/library/array.html#array.array.countX-tr/X,http.server.SimpleHTTPRequestHandler.do_HEADr/(jjX^http://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.do_HEADX-tr/Xhtml.parser.HTMLParser.resetr/(jjXNhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.resetX-tr/Xasyncio.StreamReader.readliner/(jjXRhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.readlineX-tr/Xobject.__length_hint__r/(jjXHhttp://docs.python.org/3/reference/datamodel.html#object.__length_hint__X-tr/Xunittest.TestCase.assertIsr/(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsX-tr/Xwinreg.PyHKEY.Closer/(jjX@http://docs.python.org/3/library/winreg.html#winreg.PyHKEY.CloseX-tr/X0argparse.ArgumentParser.convert_arg_line_to_argsr/(jjX_http://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.convert_arg_line_to_argsX-tr/Xftplib.FTP.connectr/(jjX?http://docs.python.org/3/library/ftplib.html#ftplib.FTP.connectX-tr/X&unittest.TestLoader.loadTestsFromNamesr/(jjXUhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.loadTestsFromNamesX-tr/Xcurses.window.borderr/(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.borderX-tr/X!mailbox.MHMessage.remove_sequencer/(jjXOhttp://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.remove_sequenceX-tr/Xtarfile.TarInfo.isfifor/(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.isfifoX-tr/X3distutils.fancy_getopt.FancyGetopt.get_option_orderr/(jjXbhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetopt.get_option_orderX-tr/Xdecimal.Context.next_towardr/(jjXIhttp://docs.python.org/3/library/decimal.html#decimal.Context.next_towardX-tr/Xfloat.as_integer_ratior/(jjXEhttp://docs.python.org/3/library/stdtypes.html#float.as_integer_ratioX-tr/Xunittest.TestCase.assertInr/(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertInX-tr/X-xml.etree.ElementTree.ElementTree.getiteratorr/(jjXihttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.getiteratorX-tr/X mailbox.BabylMessage.get_visibler/(jjXNhttp://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_visibleX-tr/X"webbrowser.controller.open_new_tabr/(jjXShttp://docs.python.org/3/library/webbrowser.html#webbrowser.controller.open_new_tabX-tr/Xmailbox.MH.set_sequencesr/(jjXFhttp://docs.python.org/3/library/mailbox.html#mailbox.MH.set_sequencesX-tr/Xunittest.TestCase.assertIsNoner/(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIsNoneX-tr/Xunittest.mock.call.call_listr/(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.call.call_listX-tr/Xhtml.parser.HTMLParser.feedr/(jjXMhttp://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser.feedX-tr/X str.replacer/(jjX:http://docs.python.org/3/library/stdtypes.html#str.replaceX-tr/X email.message.EmailMessage.clearr/(jjX[http://docs.python.org/3/library/email.contentmanager.html#email.message.EmailMessage.clearX-tr/X str.rfindr/(jjX8http://docs.python.org/3/library/stdtypes.html#str.rfindX-tr/Xchunk.Chunk.closer/(jjX=http://docs.python.org/3/library/chunk.html#chunk.Chunk.closeX-tr/Ximaplib.IMAP4.authenticater0(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.authenticateX-tr0Xio.IOBase.isattyr0(jjX9http://docs.python.org/3/library/io.html#io.IOBase.isattyX-tr0X6xml.parsers.expat.xmlparser.ExternalEntityParserCreater0(jjXdhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ExternalEntityParserCreateX-tr0X!xml.etree.ElementTree.Element.getr0(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.getX-tr0Xcmd.Cmd.onecmdr0(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.onecmdX-tr 0Xemail.message.Message.set_paramr 0(jjXShttp://docs.python.org/3/library/email.message.html#email.message.Message.set_paramX-tr 0X+asyncio.BaseEventLoop.remove_signal_handlerr 0(jjXchttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.remove_signal_handlerX-tr 0Xasyncio.BaseEventLoop.closer0(jjXShttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.closeX-tr0Xset.addr0(jjX6http://docs.python.org/3/library/stdtypes.html#set.addX-tr0Xasynchat.fifo.pushr0(jjXAhttp://docs.python.org/3/library/asynchat.html#asynchat.fifo.pushX-tr0X#email.parser.BytesParser.parsebytesr0(jjXVhttp://docs.python.org/3/library/email.parser.html#email.parser.BytesParser.parsebytesX-tr0X3email.contentmanager.ContentManager.add_get_handlerr0(jjXnhttp://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager.add_get_handlerX-tr0Xssl.SSLContext.set_ciphersr0(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ciphersX-tr0Xdecimal.Decimal.lnr0(jjX@http://docs.python.org/3/library/decimal.html#decimal.Decimal.lnX-tr0Xcurses.window.bkgdr0(jjX?http://docs.python.org/3/library/curses.html#curses.window.bkgdX-tr0Xmailbox.Mailbox.itervaluesr0(jjXHhttp://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itervaluesX-tr0Xbytes.startswithr 0(jjX?http://docs.python.org/3/library/stdtypes.html#bytes.startswithX-tr!0Xxml.dom.Node.hasAttributesr"0(jjXHhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.hasAttributesX-tr#0Xtypes.MappingProxyType.keysr$0(jjXGhttp://docs.python.org/3/library/types.html#types.MappingProxyType.keysX-tr%0Xobject.__lshift__r&0(jjXChttp://docs.python.org/3/reference/datamodel.html#object.__lshift__X-tr'0Xasyncio.Future.exceptionr(0(jjXKhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Future.exceptionX-tr)0Xftplib.FTP.mkdr*0(jjX;http://docs.python.org/3/library/ftplib.html#ftplib.FTP.mkdX-tr+0Xmailbox.MH.remover,0(jjX?http://docs.python.org/3/library/mailbox.html#mailbox.MH.removeX-tr-0Xwave.Wave_read.readframesr.0(jjXDhttp://docs.python.org/3/library/wave.html#wave.Wave_read.readframesX-tr/0Xmmap.mmap.tellr00(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.tellX-tr10Xargparse.ArgumentParser.errorr20(jjXLhttp://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.errorX-tr30Xsocket.socket.get_inheritabler40(jjXJhttp://docs.python.org/3/library/socket.html#socket.socket.get_inheritableX-tr50Xbytearray.rjustr60(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.rjustX-tr70Xset.intersectionr80(jjX?http://docs.python.org/3/library/stdtypes.html#set.intersectionX-tr90Xipaddress.IPv4Network.overlapsr:0(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.overlapsX-tr;0X!ossaudiodev.oss_audio_device.postr<0(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.postX-tr=0X$logging.handlers.MemoryHandler.flushr>0(jjX[http://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler.flushX-tr?0Xunittest.TestCase.assertRegexr@0(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRegexX-trA0Xhttp.client.HTTPConnection.sendrB0(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.sendX-trC0Xxdrlib.Packer.pack_stringrD0(jjXFhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_stringX-trE0X)xml.sax.handler.ContentHandler.endElementrF0(jjX_http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElementX-trG0Xtextwrap.TextWrapper.wraprH0(jjXHhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.wrapX-trI0X'logging.handlers.SMTPHandler.getSubjectrJ0(jjX^http://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandler.getSubjectX-trK0Xxdrlib.Packer.pack_fstringrL0(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_fstringX-trM0Xtarfile.TarFile.addrN0(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.addX-trO0Xnntplib.NNTP.xpathrP0(jjX@http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.xpathX-trQ0X#ossaudiodev.oss_audio_device.setfmtrR0(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.setfmtX-trS0X$email.policy.Policy.header_max_countrT0(jjXWhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_max_countX-trU0X!logging.handlers.HTTPHandler.emitrV0(jjXXhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandler.emitX-trW0Xmmap.mmap.closerX0(jjX:http://docs.python.org/3/library/mmap.html#mmap.mmap.closeX-trY0Xinspect.Parameter.replacerZ0(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.replaceX-tr[0Xnntplib.NNTP.lastr\0(jjX?http://docs.python.org/3/library/nntplib.html#nntplib.NNTP.lastX-tr]0X!ssl.SSLContext.load_default_certsr^0(jjXKhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certsX-tr_0X%wsgiref.handlers.BaseHandler.sendfiler`0(jjXShttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.sendfileX-tra0Xemail.message.Message.walkrb0(jjXNhttp://docs.python.org/3/library/email.message.html#email.message.Message.walkX-trc0Xtkinter.ttk.Treeview.tag_hasrd0(jjXNhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_hasX-tre0Xdecimal.Context.max_magrf0(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.Context.max_magX-trg0X str.upperrh0(jjX8http://docs.python.org/3/library/stdtypes.html#str.upperX-tri0Xdoctest.DocTestParser.parserj0(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.DocTestParser.parseX-trk0Xstring.Formatter.get_fieldrl0(jjXGhttp://docs.python.org/3/library/string.html#string.Formatter.get_fieldX-trm0X-xml.sax.xmlreader.XMLReader.setContentHandlerrn0(jjXbhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setContentHandlerX-tro0Ximaplib.IMAP4.checkrp0(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.checkX-trq0X#asyncore.dispatcher.handle_acceptedrr0(jjXRhttp://docs.python.org/3/library/asyncore.html#asyncore.dispatcher.handle_acceptedX-trs0Xbz2.BZ2Decompressor.decompressrt0(jjXHhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.decompressX-tru0Xsched.scheduler.enterabsrv0(jjXDhttp://docs.python.org/3/library/sched.html#sched.scheduler.enterabsX-trw0Xunittest.TestCase.idrx0(jjXChttp://docs.python.org/3/library/unittest.html#unittest.TestCase.idX-try0Xjson.JSONEncoder.defaultrz0(jjXChttp://docs.python.org/3/library/json.html#json.JSONEncoder.defaultX-tr{0Xtelnetlib.Telnet.writer|0(jjXFhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.writeX-tr}0Xselect.kqueue.closer~0(jjX@http://docs.python.org/3/library/select.html#select.kqueue.closeX-tr0Xmmap.mmap.readr0(jjX9http://docs.python.org/3/library/mmap.html#mmap.mmap.readX-tr0Xgettext.NullTranslations.infor0(jjXKhttp://docs.python.org/3/library/gettext.html#gettext.NullTranslations.infoX-tr0X,urllib.parse.urllib.parse.SplitResult.geturlr0(jjX_http://docs.python.org/3/library/urllib.parse.html#urllib.parse.urllib.parse.SplitResult.geturlX-tr0Ximaplib.IMAP4.socketr0(jjXBhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.socketX-tr0Xxml.dom.NamedNodeMap.itemr0(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamedNodeMap.itemX-tr0X*xml.parsers.expat.xmlparser.XmlDeclHandlerr0(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.XmlDeclHandlerX-tr0Xcurses.window.syncdownr0(jjXChttp://docs.python.org/3/library/curses.html#curses.window.syncdownX-tr0Xnntplib.NNTP.articler0(jjXBhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.articleX-tr0Xsmtplib.SMTP.starttlsr0(jjXChttp://docs.python.org/3/library/smtplib.html#smtplib.SMTP.starttlsX-tr0Xconfigparser.ConfigParser.itemsr0(jjXRhttp://docs.python.org/3/library/configparser.html#configparser.ConfigParser.itemsX-tr0Xxdrlib.Packer.pack_fopaquer0(jjXGhttp://docs.python.org/3/library/xdrlib.html#xdrlib.Packer.pack_fopaqueX-tr0X(multiprocessing.pool.Pool.imap_unorderedr0(jjX^http://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imap_unorderedX-tr0X class.mror0(jjX8http://docs.python.org/3/library/stdtypes.html#class.mroX-tr0X#email.policy.Policy.register_defectr0(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.register_defectX-tr0Xunittest.TestCase.assertGreaterr0(jjXNhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.assertGreaterX-tr0Xarray.array.indexr0(jjX=http://docs.python.org/3/library/array.html#array.array.indexX-tr0Xtelnetlib.Telnet.read_untilr0(jjXKhttp://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.read_untilX-tr0X%distutils.text_file.TextFile.readliner0(jjXThttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.readlineX-tr0X/xml.parsers.expat.xmlparser.NotationDeclHandlerr0(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.NotationDeclHandlerX-tr0Xdecimal.Context.divider0(jjXDhttp://docs.python.org/3/library/decimal.html#decimal.Context.divideX-tr0Xdecimal.Context.absr0(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.Context.absX-tr0Xselectors.BaseSelector.modifyr0(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.BaseSelector.modifyX-tr0Xthreading.Condition.waitr0(jjXHhttp://docs.python.org/3/library/threading.html#threading.Condition.waitX-tr0Xcollections.Counter.fromkeysr0(jjXNhttp://docs.python.org/3/library/collections.html#collections.Counter.fromkeysX-tr0Xsymtable.Symbol.is_namespacer0(jjXKhttp://docs.python.org/3/library/symtable.html#symtable.Symbol.is_namespaceX-tr0Xcmd.Cmd.preloopr0(jjX9http://docs.python.org/3/library/cmd.html#cmd.Cmd.preloopX-tr0Xwave.Wave_write.setframerater0(jjXGhttp://docs.python.org/3/library/wave.html#wave.Wave_write.setframerateX-tr0Xxml.dom.Node.removeChildr0(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.removeChildX-tr0X+urllib.request.HTTPPasswordMgr.add_passwordr0(jjX`http://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.add_passwordX-tr0Xxml.dom.minidom.Node.unlinkr0(jjXQhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.Node.unlinkX-tr0Xcmd.Cmd.emptyliner0(jjX;http://docs.python.org/3/library/cmd.html#cmd.Cmd.emptylineX-tr0Xssl.SSLContext.session_statsr0(jjXFhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.session_statsX-tr0X'distutils.text_file.TextFile.unreadliner0(jjXVhttp://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFile.unreadlineX-tr0Xcalendar.Calendar.itermonthdaysr0(jjXNhttp://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdaysX-tr0Xtkinter.ttk.Style.element_namesr0(jjXQhttp://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_namesX-tr0X/logging.handlers.RotatingFileHandler.doRolloverr0(jjXfhttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler.doRolloverX-tr0X dict.copyr0(jjX8http://docs.python.org/3/library/stdtypes.html#dict.copyX-tr0X!socketserver.RequestHandler.setupr0(jjXThttp://docs.python.org/3/library/socketserver.html#socketserver.RequestHandler.setupX-tr0Xsqlite3.Cursor.executer0(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executeX-tr0X str.isupperr0(jjX:http://docs.python.org/3/library/stdtypes.html#str.isupperX-tr0Xobject.__rand__r0(jjXAhttp://docs.python.org/3/reference/datamodel.html#object.__rand__X-tr0Xobject.__ifloordiv__r0(jjXFhttp://docs.python.org/3/reference/datamodel.html#object.__ifloordiv__X-tr0Xio.BufferedWriter.writer0(jjX@http://docs.python.org/3/library/io.html#io.BufferedWriter.writeX-tr0X(logging.handlers.NTEventLogHandler.closer0(jjX_http://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler.closeX-tr0X*wsgiref.handlers.BaseHandler.setup_environr0(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.setup_environX-tr0X)http.cookiejar.CookieJar.set_cookie_if_okr0(jjX^http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookieJar.set_cookie_if_okX-tr0Xthreading.RLock.releaser0(jjXGhttp://docs.python.org/3/library/threading.html#threading.RLock.releaseX-tr0Xbytearray.upperr0(jjX>http://docs.python.org/3/library/stdtypes.html#bytearray.upperX-tr0Xsqlite3.Connection.closer0(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.closeX-tr0Xgenerator.throwr0(jjXChttp://docs.python.org/3/reference/expressions.html#generator.throwX-tr0X0importlib.machinery.FileFinder.invalidate_cachesr0(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.invalidate_cachesX-tr0Xdecimal.Context.Etopr0(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.Context.EtopX-tr0X"http.cookiejar.CookiePolicy.set_okr0(jjXWhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.set_okX-tr0Xzipfile.ZipFile.writer0(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writeX-tr0X#code.InteractiveConsole.resetbufferr0(jjXNhttp://docs.python.org/3/library/code.html#code.InteractiveConsole.resetbufferX-tr0Xunittest.TestLoader.discoverr0(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.discoverX-tr0X%logging.handlers.DatagramHandler.emitr0(jjX\http://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler.emitX-tr0X%msilib.Database.GetSummaryInformationr0(jjXRhttp://docs.python.org/3/library/msilib.html#msilib.Database.GetSummaryInformationX-tr0Xast.NodeVisitor.generic_visitr0(jjXGhttp://docs.python.org/3/library/ast.html#ast.NodeVisitor.generic_visitX-tr0Ximaplib.IMAP4.copyr0(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.copyX-tr0X%xml.sax.xmlreader.Attributes.getNamesr0(jjXZhttp://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getNamesX-tr0Xlogging.Handler.setFormatterr0(jjXJhttp://docs.python.org/3/library/logging.html#logging.Handler.setFormatterX-tr0Xcurses.window.resizer0(jjXAhttp://docs.python.org/3/library/curses.html#curses.window.resizeX-tr0Xcodecs.StreamReader.readr0(jjXEhttp://docs.python.org/3/library/codecs.html#codecs.StreamReader.readX-tr0Xjson.JSONDecoder.decoder1(jjXBhttp://docs.python.org/3/library/json.html#json.JSONDecoder.decodeX-tr1X*multiprocessing.managers.SyncManager.RLockr1(jjX`http://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.RLockX-tr1X bytes.ljustr1(jjX:http://docs.python.org/3/library/stdtypes.html#bytes.ljustX-tr1uX std:optionr1}r1(X-Er1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-EX-tr 1X-Cr 1(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-CX-tr 1X-Br 1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-BX-tr 1X-Or1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-OX-tr1X-Ir1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-IX-tr1X--filer1(jjXAhttp://docs.python.org/3/library/trace.html#cmdoption-trace--fileX-tr1X-Jr1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-JX-tr1X-Tr1(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-TX-tr1X-Wr1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-WX-tr1X-Vr1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-VX-tr1X-Sr1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-SX-tr1X-Rr1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-RX-tr1X --patternr 1(jjXShttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover--patternX-tr!1X--setupr"1(jjXDhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--setupX-tr#1X-er$1(jjX9http://docs.python.org/3/library/tarfile.html#cmdoption-eX-tr%1X-dr&1(jjXGhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-dX-tr'1X-gr(1(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-gX-tr)1X-fr*1(jjXGhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-fX-tr+1X-ar,1(jjXIhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools-aX-tr-1X-cr.1(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-cX-tr/1X-br01(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-bX-tr11X-mr21(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-mX-tr31X-lr41(jjXGhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-lX-tr51X-or61(jjXIhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools-oX-tr71X-nr81(jjX?http://docs.python.org/3/library/timeit.html#cmdoption-timeit-nX-tr91X-ir:1(jjXGhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-iX-tr;1X-hr<1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-hX-tr=1X-ur>1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-uX-tr?1X-tr@1(jjXLhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-tX-trA1X-vrB1(jjX?http://docs.python.org/3/library/timeit.html#cmdoption-timeit-vX-trC1X-qrD1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-qX-trE1X-prF1(jjXLhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-pX-trG1X--createrH1(jjX?http://docs.python.org/3/library/tarfile.html#cmdoption--createX-trI1X-rrJ1(jjX=http://docs.python.org/3/library/trace.html#cmdoption-trace-rX-trK1X--listrL1(jjX=http://docs.python.org/3/library/tarfile.html#cmdoption--listX-trM1X-xrN1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-xX-trO1X-srP1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-sX-trQ1X--tracerR1(jjXBhttp://docs.python.org/3/library/trace.html#cmdoption-trace--traceX-trS1X--catchrT1(jjXHhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest--catchX-trU1X --annotaterV1(jjXQhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools--annotateX-trW1X --failfastrX1(jjXKhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest--failfastX-trY1X --processrZ1(jjXFhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--processX-tr[1X --indentlevelr\1(jjXThttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools--indentlevelX-tr]1X--testr^1(jjX=http://docs.python.org/3/library/tarfile.html#cmdoption--testX-tr_1X--helpr`1(jjXChttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--helpX-tra1X --user-siterb1(jjXDhttp://docs.python.org/3/library/site.html#cmdoption-site--user-siteX-trc1X--numberrd1(jjXEhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--numberX-tre1X --detailsrf1(jjXHhttp://docs.python.org/3/library/inspect.html#cmdoption-inspect--detailsX-trg1X--clockrh1(jjXDhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--clockX-tri1X--reportrj1(jjXChttp://docs.python.org/3/library/trace.html#cmdoption-trace--reportX-trk1X --verboserl1(jjXFhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--verboseX-trm1X--top-level-directoryrn1(jjX_http://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover--top-level-directoryX-tro1Xfilerp1(jjXNhttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-fileX-trq1X --summaryrr1(jjXDhttp://docs.python.org/3/library/trace.html#cmdoption-trace--summaryX-trs1X--countrt1(jjXBhttp://docs.python.org/3/library/trace.html#cmdoption-trace--countX-tru1X --trackcallsrv1(jjXGhttp://docs.python.org/3/library/trace.html#cmdoption-trace--trackcallsX-trw1X-(jjX6http://docs.python.org/3/using/cmdline.html#cmdoption-X-trx1X --coverdirry1(jjXEhttp://docs.python.org/3/library/trace.html#cmdoption-trace--coverdirX-trz1X-Xr{1(jjX7http://docs.python.org/3/using/cmdline.html#cmdoption-XX-tr|1X --extractr}1(jjX@http://docs.python.org/3/library/tarfile.html#cmdoption--extractX-tr~1X --listfuncsr1(jjXFhttp://docs.python.org/3/library/trace.html#cmdoption-trace--listfuncsX-tr1X--start-directoryr1(jjX[http://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover--start-directoryX-tr1X--memor1(jjXMhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools--memoX-tr1X--repeatr1(jjXEhttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--repeatX-tr1X --no-reportr1(jjXFhttp://docs.python.org/3/library/trace.html#cmdoption-trace--no-reportX-tr1X --versionr1(jjXDhttp://docs.python.org/3/library/trace.html#cmdoption-trace--versionX-tr1X --user-baser1(jjXDhttp://docs.python.org/3/library/site.html#cmdoption-site--user-baseX-tr1X--timingr1(jjXChttp://docs.python.org/3/library/trace.html#cmdoption-trace--timingX-tr1X --preambler1(jjXQhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools--preambleX-tr1X --ignore-dirr1(jjXGhttp://docs.python.org/3/library/trace.html#cmdoption-trace--ignore-dirX-tr1X --missingr1(jjXDhttp://docs.python.org/3/library/trace.html#cmdoption-trace--missingX-tr1X--bufferr1(jjXIhttp://docs.python.org/3/library/unittest.html#cmdoption-unittest--bufferX-tr1X--outputr1(jjXOhttp://docs.python.org/3/library/pickletools.html#cmdoption-pickletools--outputX-tr1X--exactr1(jjXHhttp://docs.python.org/3/library/tokenize.html#cmdoption-tokenize--exactX-tr1X directoryr1(jjXShttp://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-directoryX-tr1X-OOr1(jjX8http://docs.python.org/3/using/cmdline.html#cmdoption-OOX-tr1X--timer1(jjXChttp://docs.python.org/3/library/timeit.html#cmdoption-timeit--timeX-tr1X--ignore-moduler1(jjXJhttp://docs.python.org/3/library/trace.html#cmdoption-trace--ignore-moduleX-tr1uX c:functionr1}r1(XPyUnicode_AsUTF16Stringr1(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF16StringX-tr1XPyList_GET_SIZEr1(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GET_SIZEX-tr1XPyDict_SetItemr1(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_SetItemX-tr1XPyComplex_Checkr1(jjX=http://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckX-tr1XPyRun_InteractiveLoopr1(jjXDhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveLoopX-tr1X PyDict_Itemsr1(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_ItemsX-tr1XPyUnicode_AsUnicodeCopyr1(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeCopyX-tr1XPyModule_Checkr1(jjX;http://docs.python.org/3/c-api/module.html#c.PyModule_CheckX-tr1XPyUnicode_READ_CHARr1(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHARX-tr1XPyFunction_NewWithQualNamer1(jjXIhttp://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNameX-tr1XPyLong_AsUnsignedLongr1(jjX@http://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongX-tr1XPyUnicode_DecodeUTF8Statefulr1(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8StatefulX-tr1XPySequence_Fast_GET_ITEMr1(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_GET_ITEMX-tr1X PyLong_Checkr1(jjX7http://docs.python.org/3/c-api/long.html#c.PyLong_CheckX-tr1XPyType_HasFeaturer1(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_HasFeatureX-tr1XPyDateTime_TIME_GET_HOURr1(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOURX-tr1XPyEval_SetTracer1(jjX:http://docs.python.org/3/c-api/init.html#c.PyEval_SetTraceX-tr1XPyUnicode_DecodeLocaler1(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleX-tr1XPyFloat_ClearFreeListr1(jjXAhttp://docs.python.org/3/c-api/float.html#c.PyFloat_ClearFreeListX-tr1XPySlice_GetIndicesr1(jjX>http://docs.python.org/3/c-api/slice.html#c.PySlice_GetIndicesX-tr1XPyTuple_GetItemr1(jjX;http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GetItemX-tr1X PyGen_Checkr1(jjX5http://docs.python.org/3/c-api/gen.html#c.PyGen_CheckX-tr1XPy_FdIsInteractiver1(jjX<http://docs.python.org/3/c-api/sys.html#c.Py_FdIsInteractiveX-tr1XPyUnicodeDecodeError_SetStartr1(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetStartX-tr1X$PyErr_SetFromErrnoWithFilenameObjectr1(jjXUhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectX-tr1XPyLong_FromSize_tr1(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromSize_tX-tr1XPyErr_ExceptionMatchesr1(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_ExceptionMatchesX-tr1XPySys_ResetWarnOptionsr1(jjX@http://docs.python.org/3/c-api/sys.html#c.PySys_ResetWarnOptionsX-tr1XPyDict_MergeFromSeq2r1(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2X-tr1XPyStructSequence_GET_ITEMr1(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GET_ITEMX-tr1XPyUnicodeEncodeError_SetReasonr1(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetReasonX-tr1XPyUnicode_AsCharmapStringr1(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsCharmapStringX-tr1XPyType_FromSpecWithBasesr1(jjXChttp://docs.python.org/3/c-api/type.html#c.PyType_FromSpecWithBasesX-tr1XPyUnicode_AsUTF8Stringr1(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8StringX-tr1XPyRun_InteractiveLoopFlagsr1(jjXIhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveLoopFlagsX-tr1X PyList_Newr1(jjX5http://docs.python.org/3/c-api/list.html#c.PyList_NewX-tr1XPyErr_Occurredr1(jjX?http://docs.python.org/3/c-api/exceptions.html#c.PyErr_OccurredX-tr1XPyType_IsSubtyper1(jjX;http://docs.python.org/3/c-api/type.html#c.PyType_IsSubtypeX-tr1XPyRun_AnyFileExFlagsr1(jjXChttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsX-tr1XPySys_WriteStderrr1(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_WriteStderrX-tr1XPyUnicode_EncodeUTF7r1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF7X-tr1X PyCell_Newr1(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_NewX-tr1XPyBytes_AsStringAndSizer1(jjXChttp://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizeX-tr1X PyNumber_Addr1(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_AddX-tr1X PyCode_Checkr1(jjX7http://docs.python.org/3/c-api/code.html#c.PyCode_CheckX-tr1XPyUnicode_DecodeMBCSr1(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSX-tr2X PyDict_Updater2(jjX8http://docs.python.org/3/c-api/dict.html#c.PyDict_UpdateX-tr2XPyList_CheckExactr2(jjX<http://docs.python.org/3/c-api/list.html#c.PyList_CheckExactX-tr2X PyCell_Getr2(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_GetX-tr2XPyByteArray_Resizer2(jjXBhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_ResizeX-tr2XPyErr_SetFromErrnoWithFilenamer 2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameX-tr 2X PyOS_snprintfr 2(jjX>http://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintfX-tr 2XPyUnicode_ClearFreeListr 2(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ClearFreeListX-tr2X PyUnicode_DecodeFSDefaultAndSizer2(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSizeX-tr2X PyErr_SetNoner2(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNoneX-tr2XPy_Exitr2(jjX1http://docs.python.org/3/c-api/sys.html#c.Py_ExitX-tr2XPyCodec_IncrementalEncoderr2(jjXFhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_IncrementalEncoderX-tr2XPySequence_DelItemr2(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_DelItemX-tr2XPyCodec_Encoder2(jjX:http://docs.python.org/3/c-api/codec.html#c.PyCodec_EncodeX-tr2XPyUnicode_FromObjectr2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObjectX-tr2XPyNumber_ToBaser2(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_ToBaseX-tr2XPyModule_AddIntMacror2(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddIntMacroX-tr 2XPyDateTime_FromDateAndTimer!2(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeX-tr"2XPyDict_CheckExactr#2(jjX<http://docs.python.org/3/c-api/dict.html#c.PyDict_CheckExactX-tr$2XPyParser_SimpleParseFileFlagsr%2(jjXLhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseFileFlagsX-tr&2XPyFloat_FromDoubler'2(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_FromDoubleX-tr(2XPyDict_DelItemr)2(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemX-tr*2XPyAnySet_Checkr+2(jjX8http://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckX-tr,2XPy_UNICODE_TOUPPERr-2(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOUPPERX-tr.2XPyUnicodeDecodeError_GetReasonr/2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetReasonX-tr02X PyMethod_Newr12(jjX9http://docs.python.org/3/c-api/method.html#c.PyMethod_NewX-tr22XPyCapsule_SetContextr32(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetContextX-tr42X _Py_c_sumr52(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_sumX-tr62XPyMapping_Itemsr72(jjX=http://docs.python.org/3/c-api/mapping.html#c.PyMapping_ItemsX-tr82X _Py_c_negr92(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_negX-tr:2XPyUnicode_AsUnicodeEscapeStringr;2(jjXMhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeEscapeStringX-tr<2XPyObject_NewVarr=2(jjX@http://docs.python.org/3/c-api/allocation.html#c.PyObject_NewVarX-tr>2XPyUnicode_FromStringr?2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringX-tr@2XPyInstanceMethod_FunctionrA2(jjXFhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_FunctionX-trB2XPyImport_GetMagicNumberrC2(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicNumberX-trD2XPyNumber_InPlaceAddrE2(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceAddX-trF2XPyCodec_IncrementalDecoderrG2(jjXFhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_IncrementalDecoderX-trH2XPyWeakref_GET_OBJECTrI2(jjXBhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECTX-trJ2XPyRun_InteractiveOnerK2(jjXChttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveOneX-trL2XPyCodec_RegisterErrorrM2(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_RegisterErrorX-trN2XPyMarshal_WriteLongToFilerO2(jjXGhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFileX-trP2XPyType_GetFlagsrQ2(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_GetFlagsX-trR2XPyFunction_NewrS2(jjX=http://docs.python.org/3/c-api/function.html#c.PyFunction_NewX-trT2XPyList_SET_ITEMrU2(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMX-trV2XPyModule_AddIntConstantrW2(jjXDhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantX-trX2XPyUnicode_AsUnicodeAndSizerY2(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeAndSizeX-trZ2XPyObject_RichCompareBoolr[2(jjXEhttp://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBoolX-tr\2XPyDescr_NewMethodr]2(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewMethodX-tr^2XPyDict_GetItemWithErrorr_2(jjXBhttp://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemWithErrorX-tr`2XPyInterpreterState_Headra2(jjXBhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_HeadX-trb2XPyParser_SimpleParseFilerc2(jjXGhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseFileX-trd2XPyUnicodeEncodeError_GetReasonre2(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetReasonX-trf2XPyLong_AsSize_trg2(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_AsSize_tX-trh2XPyComplex_FromDoublesri2(jjXChttp://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoublesX-trj2XPyFunction_GetDefaultsrk2(jjXEhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetDefaultsX-trl2XPyImport_Cleanuprm2(jjX=http://docs.python.org/3/c-api/import.html#c.PyImport_CleanupX-trn2XPyEval_GetFramero2(jjX@http://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrameX-trp2XPyMem_SetupDebugHooksrq2(jjXBhttp://docs.python.org/3/c-api/memory.html#c.PyMem_SetupDebugHooksX-trr2X PyTuple_Newrs2(jjX7http://docs.python.org/3/c-api/tuple.html#c.PyTuple_NewX-trt2XPyInterpreterState_Nextru2(jjXBhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_NextX-trv2XPyGen_CheckExactrw2(jjX:http://docs.python.org/3/c-api/gen.html#c.PyGen_CheckExactX-trx2XPyUnicode_RichComparery2(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompareX-trz2XPyParser_SimpleParseStringr{2(jjXIhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringX-tr|2XPyObject_GC_NewVarr}2(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_NewVarX-tr~2XPyModule_NewObjectr2(jjX?http://docs.python.org/3/c-api/module.html#c.PyModule_NewObjectX-tr2XPyBuffer_IsContiguousr2(jjXBhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_IsContiguousX-tr2XPyCapsule_GetContextr2(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetContextX-tr2XPyFunction_GetGlobalsr2(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetGlobalsX-tr2X PyIter_Checkr2(jjX7http://docs.python.org/3/c-api/iter.html#c.PyIter_CheckX-tr2XPyFunction_SetClosurer2(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosureX-tr2XPyObject_IsTruer2(jjX<http://docs.python.org/3/c-api/object.html#c.PyObject_IsTrueX-tr2XPyNumber_InPlaceSubtractr2(jjXEhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceSubtractX-tr2X Py_ReprEnterr2(jjX=http://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnterX-tr2X PyObject_Dirr2(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_DirX-tr2XPySequence_Fastr2(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_FastX-tr2XPyObject_HasAttrr2(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrX-tr2XPy_NewInterpreterr2(jjX<http://docs.python.org/3/c-api/init.html#c.Py_NewInterpreterX-tr2XPySequence_SetItemr2(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_SetItemX-tr2XPyUnicodeEncodeError_Creater2(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_CreateX-tr2XPySequence_Indexr2(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_IndexX-tr2XPyObject_GetItemr2(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetItemX-tr2XPyLong_AsVoidPtrr2(jjX;http://docs.python.org/3/c-api/long.html#c.PyLong_AsVoidPtrX-tr2XPyUnicode_GET_SIZEr2(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_SIZEX-tr2XPyEval_GetFuncDescr2(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDescX-tr2X PyNumber_Andr2(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_AndX-tr2X PyObject_Callr2(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_CallX-tr2XPyObject_GetIterr2(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetIterX-tr2XPyDateTime_DATE_GET_SECONDr2(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECONDX-tr2XPyGILState_GetThisThreadStater2(jjXHhttp://docs.python.org/3/c-api/init.html#c.PyGILState_GetThisThreadStateX-tr2XPyEval_EvalCoder2(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeX-tr2XPyEval_EvalCodeExr2(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExX-tr2XPyObject_RichComparer2(jjXAhttp://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareX-tr2XPyBytes_ConcatAndDelr2(jjX@http://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDelX-tr2XPyDict_GetItemr2(jjX9http://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemX-tr2XPyMemoryView_FromObjectr2(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObjectX-tr2XPyMapping_GetItemStringr2(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemStringX-tr2XPyInterpreterState_Clearr2(jjXChttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ClearX-tr2XPyObject_GetArenaAllocatorr2(jjXGhttp://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocatorX-tr2XPyUnicode_CheckExactr2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExactX-tr2XPyUnicode_2BYTE_DATAr2(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_DATAX-tr2XPyUnicode_FromUnicoder2(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromUnicodeX-tr2XPyUnicode_DecodeUTF32Statefulr2(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32StatefulX-tr2XPyMarshal_WriteObjectToStringr2(jjXKhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToStringX-tr2XPyUnicode_Checkr2(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckX-tr2XPyTime_FromTimer2(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyTime_FromTimeX-tr2X PyList_Sortr2(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_SortX-tr2XPySequence_InPlaceConcatr2(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_InPlaceConcatX-tr2XPyDescr_NewGetSetr2(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewGetSetX-tr2XPyArg_UnpackTupler2(jjX;http://docs.python.org/3/c-api/arg.html#c.PyArg_UnpackTupleX-tr2X PySet_Discardr2(jjX7http://docs.python.org/3/c-api/set.html#c.PySet_DiscardX-tr2X!PyUnicodeTranslateError_GetObjectr2(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetObjectX-tr2XPyTuple_SetItemr2(jjX;http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SetItemX-tr2XPyLong_FromVoidPtrr2(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtrX-tr2XPyObject_CheckBufferr2(jjXAhttp://docs.python.org/3/c-api/buffer.html#c.PyObject_CheckBufferX-tr2XPyEval_SetProfiler2(jjX<http://docs.python.org/3/c-api/init.html#c.PyEval_SetProfileX-tr2XPyNumber_InPlaceRemainderr2(jjXFhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceRemainderX-tr2XPyNumber_Subtractr2(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_SubtractX-tr2XPyImport_GetMagicTagr2(jjXAhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicTagX-tr2XPyErr_WarnExplicitr2(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitX-tr2XPyRun_InteractiveOneFlagsr2(jjXHhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_InteractiveOneFlagsX-tr2XPyLong_AsDoubler2(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_AsDoubleX-tr2XPyComplex_AsCComplexr2(jjXBhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_AsCComplexX-tr2X Py_XINCREFr2(jjX<http://docs.python.org/3/c-api/refcounting.html#c.Py_XINCREFX-tr2XPyModule_Creater2(jjX<http://docs.python.org/3/c-api/module.html#c.PyModule_CreateX-tr2X PyType_Readyr2(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_ReadyX-tr2XPySys_SetArgvExr2(jjX:http://docs.python.org/3/c-api/init.html#c.PySys_SetArgvExX-tr2XPyUnicodeDecodeError_GetStartr2(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetStartX-tr2X _PyObject_Newr2(jjX>http://docs.python.org/3/c-api/allocation.html#c._PyObject_NewX-tr2XPyMem_GetAllocatorr2(jjX?http://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocatorX-tr3X PyList_Sizer3(jjX6http://docs.python.org/3/c-api/list.html#c.PyList_SizeX-tr3X PyIter_Nextr3(jjX6http://docs.python.org/3/c-api/iter.html#c.PyIter_NextX-tr3XPy_GetExecPrefixr3(jjX;http://docs.python.org/3/c-api/init.html#c.Py_GetExecPrefixX-tr3XPyEval_ThreadsInitializedr3(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyEval_ThreadsInitializedX-tr3XPyImport_GetModuleDictr 3(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_GetModuleDictX-tr 3XPyLong_FromUnsignedLongr 3(jjXBhttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongX-tr 3XPyCodec_BackslashReplaceErrorsr 3(jjXJhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrorsX-tr3X_PyObject_NewVarr3(jjXAhttp://docs.python.org/3/c-api/allocation.html#c._PyObject_NewVarX-tr3XPy_UNICODE_ISNUMERICr3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISNUMERICX-tr3XPyObject_GetAttrStringr3(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrStringX-tr3XPyCodec_Encoderr3(jjX;http://docs.python.org/3/c-api/codec.html#c.PyCodec_EncoderX-tr3XPyMarshal_ReadLongFromFiler3(jjXHhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFileX-tr3XPyUnicode_KINDr3(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KINDX-tr3XPyTime_CheckExactr3(jjX@http://docs.python.org/3/c-api/datetime.html#c.PyTime_CheckExactX-tr3XPySequence_Concatr3(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_ConcatX-tr3XPyCodec_XMLCharRefReplaceErrorsr3(jjXKhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_XMLCharRefReplaceErrorsX-tr 3XPyType_FromSpecr!3(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_FromSpecX-tr"3XPyUnicode_AsWideCharr#3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsWideCharX-tr$3XPyImport_ImportModuleLevelr%3(jjXGhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelX-tr&3XPyStructSequence_GetItemr'3(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GetItemX-tr(3XPyFrozenSet_Checkr)3(jjX;http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_CheckX-tr*3XPyImport_ImportModuleNoBlockr+3(jjXIhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleNoBlockX-tr,3XPyUnicode_FSDecoderr-3(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoderX-tr.3XPyUnicodeTranslateError_SetEndr/3(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetEndX-tr03XPyObject_GenericGetDictr13(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDictX-tr23XPyWeakref_Checkr33(jjX=http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckX-tr43XPyDate_FromDater53(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyDate_FromDateX-tr63X PyDict_Newr73(jjX5http://docs.python.org/3/c-api/dict.html#c.PyDict_NewX-tr83XPyObject_GetAttrr93(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrX-tr:3XPyCodec_StreamReaderr;3(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StreamReaderX-tr<3XPyMemoryView_GET_BASEr=3(jjXFhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASEX-tr>3XPyList_SetSlicer?3(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_SetSliceX-tr@3XPyObject_IsSubclassrA3(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclassX-trB3XPyThreadState_GetrC3(jjX<http://docs.python.org/3/c-api/init.html#c.PyThreadState_GetX-trD3XPyUnicode_TranslateCharmaprE3(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TranslateCharmapX-trF3XPyObject_CallFunctionObjArgsrG3(jjXIhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallFunctionObjArgsX-trH3XPySys_GetXOptionsrI3(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_GetXOptionsX-trJ3XPyImport_AddModulerK3(jjX?http://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleX-trL3XPyUnicodeEncodeError_GetObjectrM3(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetObjectX-trN3XPyCodec_StreamWriterrO3(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StreamWriterX-trP3XPyException_SetCauserQ3(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCauseX-trR3XPy_CompileStringFlagsrS3(jjXDhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlagsX-trT3XPyUnicode_EncodeMBCSrU3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeMBCSX-trV3XPyModule_AddStringConstantrW3(jjXGhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantX-trX3X PyArg_ParserY3(jjX5http://docs.python.org/3/c-api/arg.html#c.PyArg_ParseX-trZ3XPyObject_GC_Newr[3(jjX?http://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_NewX-tr\3XPy_IsInitializedr]3(jjX;http://docs.python.org/3/c-api/init.html#c.Py_IsInitializedX-tr^3XPy_UNICODE_ISLINEBREAKr_3(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLINEBREAKX-tr`3XPyWeakref_CheckRefra3(jjX@http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefX-trb3XPyInterpreterState_ThreadHeadrc3(jjXHhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ThreadHeadX-trd3XPySys_FormatStderrre3(jjX<http://docs.python.org/3/c-api/sys.html#c.PySys_FormatStderrX-trf3X'PyParser_SimpleParseStringFlagsFilenamerg3(jjXVhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringFlagsFilenameX-trh3XPyCodec_LookupErrorri3(jjX?http://docs.python.org/3/c-api/codec.html#c.PyCodec_LookupErrorX-trj3X PyDate_Checkrk3(jjX;http://docs.python.org/3/c-api/datetime.html#c.PyDate_CheckX-trl3XPyMapping_DelItemStringrm3(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemStringX-trn3XPyRun_SimpleFileExFlagsro3(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileExFlagsX-trp3XPyFloat_FromStringrq3(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_FromStringX-trr3XPyType_ClearCachers3(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_ClearCacheX-trt3XPyBytes_FromStringAndSizeru3(jjXEhttp://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSizeX-trv3XPyUnicode_Splitrw3(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SplitX-trx3XPyCapsule_GetNamery3(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetNameX-trz3XPyCodec_KnownEncodingr{3(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_KnownEncodingX-tr|3XPyLong_FromUnicoder}3(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeX-tr~3XPy_UNICODE_TONUMERICr3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TONUMERICX-tr3XPySequence_Repeatr3(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_RepeatX-tr3XPyFrame_GetLineNumberr3(jjXFhttp://docs.python.org/3/c-api/reflection.html#c.PyFrame_GetLineNumberX-tr3XPySequence_Fast_GET_SIZEr3(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_GET_SIZEX-tr3XPyUnicode_DecodeUTF32r3(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32X-tr3XPy_GetProgramFullPathr3(jjX@http://docs.python.org/3/c-api/init.html#c.Py_GetProgramFullPathX-tr3X PyUnicodeTranslateError_SetStartr3(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetStartX-tr3XPyByteArray_CheckExactr3(jjXFhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExactX-tr3XPyException_GetContextr3(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContextX-tr3XPyImport_ReloadModuler3(jjXBhttp://docs.python.org/3/c-api/import.html#c.PyImport_ReloadModuleX-tr3XPyFunction_GetCoder3(jjXAhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetCodeX-tr3X PyDict_Copyr3(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_CopyX-tr3XPyDict_GetItemStringr3(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringX-tr3XPyLong_FromLongr3(jjX:http://docs.python.org/3/c-api/long.html#c.PyLong_FromLongX-tr3XPyMethod_Functionr3(jjX>http://docs.python.org/3/c-api/method.html#c.PyMethod_FunctionX-tr3X PySlice_Checkr3(jjX9http://docs.python.org/3/c-api/slice.html#c.PySlice_CheckX-tr3X PyErr_Restorer3(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_RestoreX-tr3XPyErr_SetExcFromWindowsErrr3(jjXKhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrX-tr3XPyUnicode_DecodeUTF7Statefulr3(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7StatefulX-tr3XPy_UNICODE_ISTITLEr3(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISTITLEX-tr3XPyType_GetSlotr3(jjX9http://docs.python.org/3/c-api/type.html#c.PyType_GetSlotX-tr3X PyGen_Newr3(jjX3http://docs.python.org/3/c-api/gen.html#c.PyGen_NewX-tr3X PyFile_FromFdr3(jjX8http://docs.python.org/3/c-api/file.html#c.PyFile_FromFdX-tr3X PyMem_Newr3(jjX6http://docs.python.org/3/c-api/memory.html#c.PyMem_NewX-tr3XPyUnicodeEncodeError_GetStartr3(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetStartX-tr3XPyUnicode_Replacer3(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReplaceX-tr3XPyNumber_Floatr3(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_FloatX-tr3XPyNumber_Invertr3(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_InvertX-tr3XPy_UNICODE_TODECIMALr3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODECIMALX-tr3X PySet_Addr3(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_AddX-tr3XPyObject_GC_Delr3(jjX?http://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_DelX-tr3XPyBytes_AS_STRINGr3(jjX=http://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRINGX-tr3XPySequence_GetItemr3(jjXAhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_GetItemX-tr3XPyInterpreterState_Deleter3(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_DeleteX-tr3XPyImport_ImportModuleExr3(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExX-tr3X PyMem_Delr3(jjX6http://docs.python.org/3/c-api/memory.html#c.PyMem_DelX-tr3XPySet_ClearFreeListr3(jjX=http://docs.python.org/3/c-api/set.html#c.PySet_ClearFreeListX-tr3XPySys_AddWarnOptionUnicoder3(jjXDhttp://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionUnicodeX-tr3X PyNumber_Xorr3(jjX9http://docs.python.org/3/c-api/number.html#c.PyNumber_XorX-tr3XPyUnicodeTranslateError_GetEndr3(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetEndX-tr3XPy_CompileStringObjectr3(jjXEhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObjectX-tr3XPyList_Reverser3(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_ReverseX-tr3XPyInstanceMethod_GET_FUNCTIONr3(jjXJhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_GET_FUNCTIONX-tr3XPyDateTime_DELTA_GET_DAYSr3(jjXHhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYSX-tr3XPyUnicode_Translater3(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TranslateX-tr3XPyNumber_InPlaceTrueDivider3(jjXGhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceTrueDivideX-tr3XPyUnicodeEncodeError_SetStartr3(jjXNhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetStartX-tr3XPyUnicode_GET_DATA_SIZEr3(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_DATA_SIZEX-tr3XPyUnicode_EncodeCharmapr3(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCharmapX-tr3XPyEval_RestoreThreadr3(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_RestoreThreadX-tr3XPyUnicode_DecodeUTF7r3(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7X-tr3XPyErr_BadArgumentr3(jjXBhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_BadArgumentX-tr3X PyRun_Filer3(jjX9http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileX-tr3X&PyErr_SetExcFromWindowsErrWithFilenamer3(jjXWhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameX-tr3X PyDict_Keysr3(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_KeysX-tr3XPy_Mainr3(jjX6http://docs.python.org/3/c-api/veryhigh.html#c.Py_MainX-tr3XPyUnicode_DecodeLocaleAndSizer3(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizeX-tr3XPyLong_FromUnicodeObjectr3(jjXChttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObjectX-tr3X PyDict_Valuesr3(jjX8http://docs.python.org/3/c-api/dict.html#c.PyDict_ValuesX-tr3XPyException_SetContextr3(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContextX-tr3X PySet_Checkr3(jjX5http://docs.python.org/3/c-api/set.html#c.PySet_CheckX-tr3X _Py_c_quotr3(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_quotX-tr3XPyObject_TypeCheckr3(jjX?http://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheckX-tr3X PySeqIter_Newr3(jjX<http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_NewX-tr3XPyBool_FromLongr3(jjX:http://docs.python.org/3/c-api/bool.html#c.PyBool_FromLongX-tr4XPyErr_SetInterruptr4(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptX-tr4XPyModule_GetFilenameObjectr4(jjXGhttp://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObjectX-tr4XPyEval_GetFuncNamer4(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncNameX-tr4XPyObject_GetBufferr4(jjX?http://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferX-tr4X Py_GetPrefixr 4(jjX7http://docs.python.org/3/c-api/init.html#c.Py_GetPrefixX-tr 4XPy_UNICODE_TOLOWERr 4(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOLOWERX-tr 4XPy_GetBuildInfor 4(jjX:http://docs.python.org/3/c-api/init.html#c.Py_GetBuildInfoX-tr4XPyDateTime_Checkr4(jjX?http://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckX-tr4XPyDict_Containsr4(jjX:http://docs.python.org/3/c-api/dict.html#c.PyDict_ContainsX-tr4XPyByteArray_Sizer4(jjX@http://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_SizeX-tr4X_PyObject_GC_UNTRACKr4(jjXDhttp://docs.python.org/3/c-api/gcsupport.html#c._PyObject_GC_UNTRACKX-tr4X PyTime_Checkr4(jjX;http://docs.python.org/3/c-api/datetime.html#c.PyTime_CheckX-tr4XPyFrozenSet_Newr4(jjX9http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_NewX-tr4XPyCapsule_GetPointerr4(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetPointerX-tr4XPyMethod_Checkr4(jjX;http://docs.python.org/3/c-api/method.html#c.PyMethod_CheckX-tr4XPyObject_GC_Trackr4(jjXAhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_TrackX-tr 4XPyDateTime_DELTA_GET_SECONDSr!4(jjXKhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDSX-tr"4XPyRun_StringFlagsr#4(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_StringFlagsX-tr$4XPyEval_AcquireLockr%4(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_AcquireLockX-tr&4X PySys_SetArgvr'4(jjX8http://docs.python.org/3/c-api/init.html#c.PySys_SetArgvX-tr(4XPyGILState_Checkr)4(jjX;http://docs.python.org/3/c-api/init.html#c.PyGILState_CheckX-tr*4XPyTZInfo_Checkr+4(jjX=http://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckX-tr,4XPyMarshal_ReadObjectFromStringr-4(jjXLhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromStringX-tr.4XPyWeakref_NewRefr/4(jjX>http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRefX-tr04XPyInstanceMethod_Newr14(jjXAhttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_NewX-tr24XPyUnicode_Formatr34(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FormatX-tr44XPyUnicode_Comparer54(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareX-tr64XPyUnicode_Fillr74(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FillX-tr84XPyCallable_Checkr94(jjX=http://docs.python.org/3/c-api/object.html#c.PyCallable_CheckX-tr:4X Py_GetVersionr;4(jjX8http://docs.python.org/3/c-api/init.html#c.Py_GetVersionX-tr<4XPyUnicode_Encoder=4(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeX-tr>4XPy_UCS4_strcatr?4(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcatX-tr@4XPyDateTime_GET_YEARrA4(jjXBhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEARX-trB4XPyList_GetItemrC4(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_GetItemX-trD4XPyBytes_AsStringrE4(jjX<http://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringX-trF4X PyObject_SizerG4(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_SizeX-trH4XPySequence_ListrI4(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_ListX-trJ4X PyCell_SETrK4(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_SETX-trL4XPyObject_PrintrM4(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_PrintX-trN4XPyCapsule_IsValidrO4(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_IsValidX-trP4XPy_SetPythonHomerQ4(jjX;http://docs.python.org/3/c-api/init.html#c.Py_SetPythonHomeX-trR4XPyUnicode_1BYTE_DATArS4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_DATAX-trT4XPy_UCS4_strchrrU4(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strchrX-trV4XPyUnicode_CountrW4(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CountX-trX4XPyRun_SimpleFileExrY4(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileExX-trZ4XPyOS_CheckStackr[4(jjX9http://docs.python.org/3/c-api/sys.html#c.PyOS_CheckStackX-tr\4XPyErr_SetExcInfor]4(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfoX-tr^4XPyRun_AnyFileExr_4(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExX-tr`4XPyEval_GetLocalsra4(jjXAhttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetLocalsX-trb4XPyLong_AsLongLongAndOverflowrc4(jjXGhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflowX-trd4XPyDict_SetItemStringre4(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_SetItemStringX-trf4XPyMapping_HasKeyStringrg4(jjXDhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringX-trh4XPyTuple_GET_SIZEri4(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_SIZEX-trj4XPyUnicode_AS_UNICODErk4(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AS_UNICODEX-trl4XPy_UNICODE_ISALPHArm4(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALPHAX-trn4XPyComplex_RealAsDoublero4(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDoubleX-trp4XPyEval_GetGlobalsrq4(jjXBhttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetGlobalsX-trr4XPyCodec_ReplaceErrorsrs4(jjXAhttp://docs.python.org/3/c-api/codec.html#c.PyCodec_ReplaceErrorsX-trt4XPyErr_SyntaxLocationExru4(jjXGhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExX-trv4XPyLong_AsLongAndOverflowrw4(jjXChttp://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflowX-trx4XPy_UNICODE_ISALNUMry4(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALNUMX-trz4X PyType_IS_GCr{4(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_IS_GCX-tr|4XPyThreadState_Deleter}4(jjX?http://docs.python.org/3/c-api/init.html#c.PyThreadState_DeleteX-tr~4XPyErr_WarnExplicitObjectr4(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectX-tr4X PyErr_Clearr4(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_ClearX-tr4XPyLong_FromStringr4(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromStringX-tr4XPyMapping_Keysr4(jjX<http://docs.python.org/3/c-api/mapping.html#c.PyMapping_KeysX-tr4XPyObject_SetArenaAllocatorr4(jjXGhttp://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocatorX-tr4XPySys_WriteStdoutr4(jjX;http://docs.python.org/3/c-api/sys.html#c.PySys_WriteStdoutX-tr4XPyImport_AddModuleObjectr4(jjXEhttp://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleObjectX-tr4X#PyErr_SetFromWindowsErrWithFilenamer4(jjXThttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilenameX-tr4XPyMapping_HasKeyr4(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyX-tr4XPy_InitializeExr4(jjX:http://docs.python.org/3/c-api/init.html#c.Py_InitializeExX-tr4XPyBuffer_FillInfor4(jjX>http://docs.python.org/3/c-api/buffer.html#c.PyBuffer_FillInfoX-tr4XPyCode_GetNumFreer4(jjX<http://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFreeX-tr4XPyMem_SetAllocatorr4(jjX?http://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocatorX-tr4X _Py_c_powr4(jjX7http://docs.python.org/3/c-api/complex.html#c._Py_c_powX-tr4XPyBytes_FromStringr4(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringX-tr4XPyState_RemoveModuler4(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyState_RemoveModuleX-tr4XPyUnicode_DecodeMBCSStatefulr4(jjXJhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefulX-tr4XPyObject_SetAttrStringr4(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringX-tr4XPyLong_AsUnsignedLongLongMaskr4(jjXHhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongLongMaskX-tr4XPyStructSequence_InitTyper4(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitTypeX-tr4XPyErr_NormalizeExceptionr4(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionX-tr4XPyDateTime_CheckExactr4(jjXDhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExactX-tr4XPyUnicode_AsEncodedStringr4(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsEncodedStringX-tr4XPyFunction_SetDefaultsr4(jjXEhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaultsX-tr4XPyMethod_GET_SELFr4(jjX>http://docs.python.org/3/c-api/method.html#c.PyMethod_GET_SELFX-tr4X PyNumber_Longr4(jjX:http://docs.python.org/3/c-api/number.html#c.PyNumber_LongX-tr4XPyNumber_InPlaceXorr4(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceXorX-tr4XPyErr_WriteUnraisabler4(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisableX-tr4XPyFunction_GetModuler4(jjXChttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetModuleX-tr4XPyStructSequence_SetItemr4(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SetItemX-tr4X PySet_Newr4(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_NewX-tr4XPyCallIter_Newr4(jjX=http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_NewX-tr4XPyComplex_CheckExactr4(jjXBhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExactX-tr4XPy_LeaveRecursiveCallr4(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.Py_LeaveRecursiveCallX-tr4XPyErr_SetFromErrnor4(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoX-tr4XPyArg_ParseTupleAndKeywordsr4(jjXEhttp://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsX-tr4X PyDict_Nextr4(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_NextX-tr4XPyNumber_TrueDivider4(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_TrueDivideX-tr4XPyCapsule_SetNamer4(jjX?http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetNameX-tr4XPyLong_FromUnsignedLongLongr4(jjXFhttp://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLongX-tr4XPyArg_VaParseTupleAndKeywordsr4(jjXGhttp://docs.python.org/3/c-api/arg.html#c.PyArg_VaParseTupleAndKeywordsX-tr4XPyCodec_Decoderr4(jjX;http://docs.python.org/3/c-api/codec.html#c.PyCodec_DecoderX-tr4X PyList_Insertr4(jjX8http://docs.python.org/3/c-api/list.html#c.PyList_InsertX-tr4X PySys_SetPathr4(jjX7http://docs.python.org/3/c-api/sys.html#c.PySys_SetPathX-tr4X PyUnicodeTranslateError_GetStartr4(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetStartX-tr4XPySignal_SetWakeupFdr4(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PySignal_SetWakeupFdX-tr4XPyDateTime_DATE_GET_MINUTEr4(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTEX-tr4XPyFile_WriteObjectr4(jjX=http://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectX-tr4XPyErr_NewExceptionWithDocr4(jjXJhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocX-tr4XPyRun_AnyFileFlagsr4(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsX-tr4XPyObject_SetAttrr4(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrX-tr4XPyException_SetTracebackr4(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTracebackX-tr4XPyDateTime_GET_DAYr4(jjXAhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAYX-tr4XPyDateTime_DATE_GET_HOURr4(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOURX-tr4XPy_UCS4_strrchrr4(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strrchrX-tr4XPyThreadState_Nextr4(jjX=http://docs.python.org/3/c-api/init.html#c.PyThreadState_NextX-tr4X_PyTuple_Resizer4(jjX;http://docs.python.org/3/c-api/tuple.html#c._PyTuple_ResizeX-tr4XPyEval_ReleaseThreadr4(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseThreadX-tr4XPyMarshal_ReadObjectFromFiler4(jjXJhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFileX-tr4XPyObject_CallMethodObjArgsr4(jjXGhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallMethodObjArgsX-tr4XPyUnicode_MAX_CHAR_VALUEr4(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUEX-tr4XPyNumber_Absoluter4(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_AbsoluteX-tr4XPyUnicode_EncodeUnicodeEscaper4(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUnicodeEscapeX-tr4XPyArg_ParseTupler4(jjX:http://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleX-tr4XPyObject_IsInstancer4(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_IsInstanceX-tr5XPyFloat_AS_DOUBLEr5(jjX=http://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLEX-tr5XPyAnySet_CheckExactr5(jjX=http://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExactX-tr5XPy_UCS4_strcmpr5(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcmpX-tr5XPyDescr_NewWrapperr5(jjXChttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewWrapperX-tr5X PyList_Checkr 5(jjX7http://docs.python.org/3/c-api/list.html#c.PyList_CheckX-tr 5XPyObject_GenericSetAttrr 5(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrX-tr 5XPyMapping_Lengthr 5(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_LengthX-tr5X PyUnicode_Newr5(jjX;http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_NewX-tr5XPySequence_Tupler5(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_TupleX-tr5XPyRun_FileExFlagsr5(jjX@http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileExFlagsX-tr5X Py_GetPathr5(jjX5http://docs.python.org/3/c-api/init.html#c.Py_GetPathX-tr5XPyMethod_ClearFreeListr5(jjXChttp://docs.python.org/3/c-api/method.html#c.PyMethod_ClearFreeListX-tr5XPyFloat_CheckExactr5(jjX>http://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExactX-tr5XPyUnicode_Substringr5(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SubstringX-tr5XPyMarshal_ReadShortFromFiler5(jjXIhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFileX-tr5XPyNumber_Indexr5(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_IndexX-tr 5XPySys_FormatStdoutr!5(jjX<http://docs.python.org/3/c-api/sys.html#c.PySys_FormatStdoutX-tr"5XPyUnicode_Decoder#5(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeX-tr$5XPyUnicode_EncodeASCIIr%5(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeASCIIX-tr&5XPyObject_ASCIIr'5(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_ASCIIX-tr(5XPyLong_AsSsize_tr)5(jjX;http://docs.python.org/3/c-api/long.html#c.PyLong_AsSsize_tX-tr*5XPyUnicode_AsLatin1Stringr+5(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsLatin1StringX-tr,5XPyUnicode_AsUTF8AndSizer-5(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8AndSizeX-tr.5X,PyErr_SetExcFromWindowsErrWithFilenameObjectr/5(jjX]http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectX-tr05XPyMapping_Checkr15(jjX=http://docs.python.org/3/c-api/mapping.html#c.PyMapping_CheckX-tr25X Py_AtExitr35(jjX3http://docs.python.org/3/c-api/sys.html#c.Py_AtExitX-tr45X PyDict_Sizer55(jjX6http://docs.python.org/3/c-api/dict.html#c.PyDict_SizeX-tr65XPyInstanceMethod_Checkr75(jjXChttp://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_CheckX-tr85XPyObject_CallFunctionr95(jjXBhttp://docs.python.org/3/c-api/object.html#c.PyObject_CallFunctionX-tr:5X Py_SetPathr;5(jjX5http://docs.python.org/3/c-api/init.html#c.Py_SetPathX-tr<5XPyType_GenericNewr=5(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_GenericNewX-tr>5X PyList_Appendr?5(jjX8http://docs.python.org/3/c-api/list.html#c.PyList_AppendX-tr@5X PyBytes_SizerA5(jjX8http://docs.python.org/3/c-api/bytes.html#c.PyBytes_SizeX-trB5XPyRun_SimpleFilerC5(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleFileX-trD5XPyNumber_InPlaceMultiplyrE5(jjXEhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceMultiplyX-trF5XPyNumber_LshiftrG5(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_LshiftX-trH5X PyObject_NewrI5(jjX=http://docs.python.org/3/c-api/allocation.html#c.PyObject_NewX-trJ5XPyType_CheckExactrK5(jjX<http://docs.python.org/3/c-api/type.html#c.PyType_CheckExactX-trL5XPyBytes_FromObjectrM5(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObjectX-trN5XPyUnicode_DATArO5(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATAX-trP5XPyEval_InitThreadsrQ5(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_InitThreadsX-trR5X_PyImport_FindExtensionrS5(jjXDhttp://docs.python.org/3/c-api/import.html#c._PyImport_FindExtensionX-trT5X PyUnicodeEncodeError_GetEncodingrU5(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetEncodingX-trV5XPySequence_SetSlicerW5(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_SetSliceX-trX5XPy_AddPendingCallrY5(jjX<http://docs.python.org/3/c-api/init.html#c.Py_AddPendingCallX-trZ5XPyUnicode_AsUTF8r[5(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF8X-tr\5XPyException_GetCauser]5(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCauseX-tr^5XPyImport_ExecCodeModuleExr_5(jjXFhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExX-tr`5XPyList_GET_ITEMra5(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEMX-trb5XPyGILState_Releaserc5(jjX=http://docs.python.org/3/c-api/init.html#c.PyGILState_ReleaseX-trd5X PyObject_Reprre5(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_ReprX-trf5XPyUnicode_AsUCS4rg5(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUCS4X-trh5XPyDateTime_DATE_GET_MICROSECONDri5(jjXNhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECONDX-trj5XPyModule_AddObjectrk5(jjX?http://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectX-trl5XPyComplex_ImagAsDoublerm5(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDoubleX-trn5XPyByteArray_FromObjectro5(jjXFhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObjectX-trp5XPyUnicode_DecodeFSDefaultrq5(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultX-trr5XPyErr_SetStringrs5(jjX@http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetStringX-trt5XPyMem_RawMallocru5(jjX<http://docs.python.org/3/c-api/memory.html#c.PyMem_RawMallocX-trv5XPyEval_EvalFrameExrw5(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameExX-trx5XPyUnicode_DecodeCharmapry5(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapX-trz5X _Py_c_diffr{5(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_diffX-tr|5XPyUnicode_GET_LENGTHr}5(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTHX-tr~5X PyOS_strnicmpr5(jjX>http://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpX-tr5XPyModule_GetDefr5(jjX<http://docs.python.org/3/c-api/module.html#c.PyModule_GetDefX-tr5XPyLong_AsLongLongr5(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongX-tr5XPyRun_SimpleStringr5(jjXAhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleStringX-tr5XPyUnicode_FromKindAndDatar5(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDataX-tr5XPyThreadState_SetAsyncExcr5(jjXDhttp://docs.python.org/3/c-api/init.html#c.PyThreadState_SetAsyncExcX-tr5XPyImport_Importr5(jjX<http://docs.python.org/3/c-api/import.html#c.PyImport_ImportX-tr5X PySet_Sizer5(jjX4http://docs.python.org/3/c-api/set.html#c.PySet_SizeX-tr5XPyRun_SimpleStringFlagsr5(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.PyRun_SimpleStringFlagsX-tr5XPyUnicode_DecodeLatin1r5(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1X-tr5XPyUnicodeDecodeError_SetEndr5(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetEndX-tr5XPyCodec_StrictErrorsr5(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_StrictErrorsX-tr5XPyFloat_GetInfor5(jjX;http://docs.python.org/3/c-api/float.html#c.PyFloat_GetInfoX-tr5XPySeqIter_Checkr5(jjX>http://docs.python.org/3/c-api/iterator.html#c.PySeqIter_CheckX-tr5XPyFloat_GetMaxr5(jjX:http://docs.python.org/3/c-api/float.html#c.PyFloat_GetMaxX-tr5XPyUnicode_FSConverterr5(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverterX-tr5XPyDict_SetDefaultr5(jjX<http://docs.python.org/3/c-api/dict.html#c.PyDict_SetDefaultX-tr5XPyUnicode_READr5(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READX-tr5XPyUnicode_Splitlinesr5(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_SplitlinesX-tr5X PyMethod_Selfr5(jjX:http://docs.python.org/3/c-api/method.html#c.PyMethod_SelfX-tr5XPyState_AddModuler5(jjX>http://docs.python.org/3/c-api/module.html#c.PyState_AddModuleX-tr5X PyMem_Reallocr5(jjX:http://docs.python.org/3/c-api/memory.html#c.PyMem_ReallocX-tr5XPySequence_Checkr5(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_CheckX-tr5XPyObject_InitVarr5(jjXAhttp://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarX-tr5XPyUnicode_FromStringAndSizer5(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSizeX-tr5XPyTuple_CheckExactr5(jjX>http://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckExactX-tr5X PyDict_Merger5(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_MergeX-tr5XPyUnicode_DecodeUTF16Statefulr5(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16StatefulX-tr5XPyBuffer_SizeFromFormatr5(jjXDhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormatX-tr5XPyUnicode_EncodeUTF16r5(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF16X-tr5XPySequence_Lengthr5(jjX@http://docs.python.org/3/c-api/sequence.html#c.PySequence_LengthX-tr5XPyObject_SetItemr5(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_SetItemX-tr5X PyFloat_Checkr5(jjX9http://docs.python.org/3/c-api/float.html#c.PyFloat_CheckX-tr5XPyObject_HasAttrStringr5(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringX-tr5X PyType_Checkr5(jjX7http://docs.python.org/3/c-api/type.html#c.PyType_CheckX-tr5XPyUnicode_GetLengthr5(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLengthX-tr5X PyObject_Delr5(jjX=http://docs.python.org/3/c-api/allocation.html#c.PyObject_DelX-tr5XPyUnicode_4BYTE_DATAr5(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_DATAX-tr5XPyUnicode_FromWideCharr5(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideCharX-tr5XPyEval_GetBuiltinsr5(jjXChttp://docs.python.org/3/c-api/reflection.html#c.PyEval_GetBuiltinsX-tr5XPy_UNICODE_TOTITLEr5(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOTITLEX-tr5X!PyImport_ImportFrozenModuleObjectr5(jjXNhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleObjectX-tr5XPyList_GetSlicer5(jjX:http://docs.python.org/3/c-api/list.html#c.PyList_GetSliceX-tr5XPyWeakref_NewProxyr5(jjX@http://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxyX-tr5XPyFile_WriteStringr5(jjX=http://docs.python.org/3/c-api/file.html#c.PyFile_WriteStringX-tr5XPyMapping_Sizer5(jjX<http://docs.python.org/3/c-api/mapping.html#c.PyMapping_SizeX-tr5XPy_UNICODE_ISDECIMALr5(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDECIMALX-tr5XPyObject_LengthHintr5(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_LengthHintX-tr5XPyGILState_Ensurer5(jjX<http://docs.python.org/3/c-api/init.html#c.PyGILState_EnsureX-tr5XPyObject_AsFileDescriptorr5(jjXDhttp://docs.python.org/3/c-api/file.html#c.PyObject_AsFileDescriptorX-tr5XPyEval_AcquireThreadr5(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_AcquireThreadX-tr5XPyObject_CallObjectr5(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_CallObjectX-tr5XPySys_AddWarnOptionr5(jjX=http://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionX-tr5XPyUnicode_DecodeUnicodeEscaper5(jjXKhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapeX-tr5XPyThreadState_Newr5(jjX<http://docs.python.org/3/c-api/init.html#c.PyThreadState_NewX-tr5XPyObject_Lengthr5(jjX<http://docs.python.org/3/c-api/object.html#c.PyObject_LengthX-tr5X PyObject_Strr5(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_StrX-tr5XPyUnicode_AsWideCharStringr5(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsWideCharStringX-tr5XPyBytes_GET_SIZEr5(jjX<http://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZEX-tr5X PyCell_Checkr5(jjX7http://docs.python.org/3/c-api/cell.html#c.PyCell_CheckX-tr5XPyErr_CheckSignalsr5(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_CheckSignalsX-tr5XPyNumber_Rshiftr5(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_RshiftX-tr5X PySet_Clearr5(jjX5http://docs.python.org/3/c-api/set.html#c.PySet_ClearX-tr5XPy_UCS4_strlenr5(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strlenX-tr5X PyCode_Newr5(jjX5http://docs.python.org/3/c-api/code.html#c.PyCode_NewX-tr6X PySet_Popr6(jjX3http://docs.python.org/3/c-api/set.html#c.PySet_PopX-tr6XPyMemoryView_GetContiguousr6(jjXKhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousX-tr6XPyUnicodeDecodeError_GetEndr6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetEndX-tr6XPyImport_ExecCodeModuler6(jjXDhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleX-tr6X PyDict_Clearr 6(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_ClearX-tr 6XPyObject_AsReadBufferr 6(jjXEhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsReadBufferX-tr 6XPyNumber_Positiver 6(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_PositiveX-tr6X PyMem_Freer6(jjX7http://docs.python.org/3/c-api/memory.html#c.PyMem_FreeX-tr6X!PyUnicodeTranslateError_GetReasonr6(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_GetReasonX-tr6XPyDateTime_TIME_GET_MINUTEr6(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTEX-tr6XPyUnicode_FromFormatVr6(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatVX-tr6XPyUnicode_EncodeFSDefaultr6(jjXGhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefaultX-tr6XPyUnicode_DecodeUTF16r6(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16X-tr6X_PyObject_GC_TRACKr6(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c._PyObject_GC_TRACKX-tr6XPyUnicode_AsUCS4Copyr6(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUCS4CopyX-tr6XPyObject_AsCharBufferr6(jjXEhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsCharBufferX-tr 6XPyStructSequence_SET_ITEMr!6(jjXEhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SET_ITEMX-tr"6X"PyUnicode_AsRawUnicodeEscapeStringr#6(jjXPhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsRawUnicodeEscapeStringX-tr$6XPyUnicode_Containsr%6(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ContainsX-tr&6XPyLong_AsUnsignedLongLongr'6(jjXDhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongLongX-tr(6XPyWeakref_GetObjectr)6(jjXAhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObjectX-tr*6XPyModule_GetNameObjectr+6(jjXChttp://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObjectX-tr,6X PyModule_Newr-6(jjX9http://docs.python.org/3/c-api/module.html#c.PyModule_NewX-tr.6X PyMem_Resizer/6(jjX9http://docs.python.org/3/c-api/memory.html#c.PyMem_ResizeX-tr06XPyNumber_Negativer16(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_NegativeX-tr26X _Py_c_prodr36(jjX8http://docs.python.org/3/c-api/complex.html#c._Py_c_prodX-tr46X PyObject_Typer56(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_TypeX-tr66XPyParser_SimpleParseStringFlagsr76(jjXNhttp://docs.python.org/3/c-api/veryhigh.html#c.PyParser_SimpleParseStringFlagsX-tr86XPySequence_Countr96(jjX?http://docs.python.org/3/c-api/sequence.html#c.PySequence_CountX-tr:6XPyStructSequence_InitType2r;6(jjXFhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitType2X-tr<6XPyDateTime_TIME_GET_MICROSECONDr=6(jjXNhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECONDX-tr>6X PyOS_stricmpr?6(jjX=http://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmpX-tr@6XPyObject_HashNotImplementedrA6(jjXHhttp://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplementedX-trB6XPyEval_EvalFramerC6(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameX-trD6XPyBytes_ConcatrE6(jjX:http://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatX-trF6XPy_GetCopyrightrG6(jjX:http://docs.python.org/3/c-api/init.html#c.Py_GetCopyrightX-trH6XPyFunction_CheckrI6(jjX?http://docs.python.org/3/c-api/function.html#c.PyFunction_CheckX-trJ6XPyType_GenericAllocrK6(jjX>http://docs.python.org/3/c-api/type.html#c.PyType_GenericAllocX-trL6XPyTuple_GetSlicerM6(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GetSliceX-trN6XPyImport_ImportFrozenModulerO6(jjXHhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleX-trP6XPyMapping_ValuesrQ6(jjX>http://docs.python.org/3/c-api/mapping.html#c.PyMapping_ValuesX-trR6X PyMem_RawFreerS6(jjX:http://docs.python.org/3/c-api/memory.html#c.PyMem_RawFreeX-trT6XPy_CompileStringrU6(jjX?http://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringX-trV6XPyBytes_FromFormatrW6(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatX-trX6XPyRun_FileFlagsrY6(jjX>http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileFlagsX-trZ6XPy_UNICODE_ISUPPERr[6(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISUPPERX-tr\6XPyBuffer_FillContiguousStridesr]6(jjXKhttp://docs.python.org/3/c-api/buffer.html#c.PyBuffer_FillContiguousStridesX-tr^6XPyOS_double_to_stringr_6(jjXFhttp://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_stringX-tr`6X PyDelta_Checkra6(jjX<http://docs.python.org/3/c-api/datetime.html#c.PyDelta_CheckX-trb6X PyTuple_Packrc6(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_PackX-trd6XPyCodec_Decodere6(jjX:http://docs.python.org/3/c-api/codec.html#c.PyCodec_DecodeX-trf6X Py_BuildValuerg6(jjX7http://docs.python.org/3/c-api/arg.html#c.Py_BuildValueX-trh6XPy_UNICODE_TODIGITri6(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODIGITX-trj6XPyTuple_SET_ITEMrk6(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SET_ITEMX-trl6XPy_EndInterpreterrm6(jjX<http://docs.python.org/3/c-api/init.html#c.Py_EndInterpreterX-trn6XPy_GetCompilerro6(jjX9http://docs.python.org/3/c-api/init.html#c.Py_GetCompilerX-trp6XPyObject_DelItemrq6(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_DelItemX-trr6XPyInterpreterState_Newrs6(jjXAhttp://docs.python.org/3/c-api/init.html#c.PyInterpreterState_NewX-trt6XPyUnicodeDecodeError_GetObjectru6(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetObjectX-trv6XPyLong_CheckExactrw6(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_CheckExactX-trx6XPyUnicode_WriteCharry6(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharX-trz6XPy_UNICODE_ISDIGITr{6(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDIGITX-tr|6X_PyImport_Initr}6(jjX;http://docs.python.org/3/c-api/import.html#c._PyImport_InitX-tr~6XPyModule_AddStringMacror6(jjXDhttp://docs.python.org/3/c-api/module.html#c.PyModule_AddStringMacroX-tr6X PyMem_Mallocr6(jjX9http://docs.python.org/3/c-api/memory.html#c.PyMem_MallocX-tr6XPyFunction_GetAnnotationsr6(jjXHhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetAnnotationsX-tr6XPyNumber_FloorDivider6(jjXAhttp://docs.python.org/3/c-api/number.html#c.PyNumber_FloorDivideX-tr6XPyErr_GetExcInfor6(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfoX-tr6X Py_XDECREFr6(jjX<http://docs.python.org/3/c-api/refcounting.html#c.Py_XDECREFX-tr6XPyTZInfo_CheckExactr6(jjXBhttp://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExactX-tr6XPyErr_NewExceptionr6(jjXChttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionX-tr6XPyThreadState_Swapr6(jjX=http://docs.python.org/3/c-api/init.html#c.PyThreadState_SwapX-tr6XPyNumber_InPlacePowerr6(jjXBhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlacePowerX-tr6XPyList_ClearFreeListr6(jjX?http://docs.python.org/3/c-api/list.html#c.PyList_ClearFreeListX-tr6XPy_UNICODE_ISSPACEr6(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISSPACEX-tr6XPyErr_GivenExceptionMatchesr6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatchesX-tr6XPySequence_GetSlicer6(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_GetSliceX-tr6XPy_UCS4_strncmpr6(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strncmpX-tr6XPy_GetProgramNamer6(jjX<http://docs.python.org/3/c-api/init.html#c.Py_GetProgramNameX-tr6X-PyErr_SetExcFromWindowsErrWithFilenameObjectsr6(jjX^http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsX-tr6XPyCapsule_SetDestructorr6(jjXEhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetDestructorX-tr6XPyCallIter_Checkr6(jjX?http://docs.python.org/3/c-api/iterator.html#c.PyCallIter_CheckX-tr6XPyMarshal_WriteObjectToFiler6(jjXIhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFileX-tr6XPyObject_GC_Resizer6(jjXBhttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_ResizeX-tr6XPyOS_string_to_doubler6(jjXFhttp://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doubleX-tr6X PyBytes_Checkr6(jjX9http://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckX-tr6XPyErr_BadInternalCallr6(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_BadInternalCallX-tr6XPyWeakref_CheckProxyr6(jjXBhttp://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxyX-tr6XPyDate_CheckExactr6(jjX@http://docs.python.org/3/c-api/datetime.html#c.PyDate_CheckExactX-tr6XPy_UNICODE_ISLOWERr6(jjX@http://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLOWERX-tr6XPy_UCS4_strcpyr6(jjX<http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strcpyX-tr6XPyStructSequence_NewTyper6(jjXDhttp://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewTypeX-tr6XPyNumber_InPlaceLshiftr6(jjXChttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceLshiftX-tr6XPySet_GET_SIZEr6(jjX8http://docs.python.org/3/c-api/set.html#c.PySet_GET_SIZEX-tr6X Py_Finalizer6(jjX6http://docs.python.org/3/c-api/init.html#c.Py_FinalizeX-tr6XPyFunction_SetAnnotationsr6(jjXHhttp://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotationsX-tr6XPyUnicode_GetSizer6(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetSizeX-tr6XPyObject_GenericSetDictr6(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDictX-tr6XPyNumber_InPlaceOrr6(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceOrX-tr6XPySet_Containsr6(jjX8http://docs.python.org/3/c-api/set.html#c.PySet_ContainsX-tr6XPyUnicode_FromEncodedObjectr6(jjXIhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectX-tr6X PyObject_Initr6(jjX>http://docs.python.org/3/c-api/allocation.html#c.PyObject_InitX-tr6XPySequence_DelSlicer6(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_DelSliceX-tr6XPyFile_GetLiner6(jjX9http://docs.python.org/3/c-api/file.html#c.PyFile_GetLineX-tr6XPyByteArray_FromStringAndSizer6(jjXMhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSizeX-tr6XPyCapsule_CheckExactr6(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_CheckExactX-tr6XPyDict_ClearFreeListr6(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_ClearFreeListX-tr6XPyMethod_GET_FUNCTIONr6(jjXBhttp://docs.python.org/3/c-api/method.html#c.PyMethod_GET_FUNCTIONX-tr6X$PyImport_ExecCodeModuleWithPathnamesr6(jjXQhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesX-tr6XPy_SetStandardStreamEncodingr6(jjXGhttp://docs.python.org/3/c-api/init.html#c.Py_SetStandardStreamEncodingX-tr6XPyModule_GetStater6(jjX>http://docs.python.org/3/c-api/module.html#c.PyModule_GetStateX-tr6XPyImport_ImportModuler6(jjXBhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleX-tr6XPy_UCS4_strncpyr6(jjX=http://docs.python.org/3/c-api/unicode.html#c.Py_UCS4_strncpyX-tr6XPySys_AddXOptionr6(jjX:http://docs.python.org/3/c-api/sys.html#c.PySys_AddXOptionX-tr6X PyUnicodeDecodeError_GetEncodingr6(jjXQhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_GetEncodingX-tr6XPy_UNICODE_ISPRINTABLEr6(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISPRINTABLEX-tr6XPyComplex_FromCComplexr6(jjXDhttp://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplexX-tr6XPyUnicodeEncodeError_SetEndr6(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_SetEndX-tr6XPyEval_GetCallStatsr6(jjX>http://docs.python.org/3/c-api/init.html#c.PyEval_GetCallStatsX-tr6X PyDateTime_DELTA_GET_MICROSECONDr6(jjXOhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDX-tr6X PySlice_Newr6(jjX7http://docs.python.org/3/c-api/slice.html#c.PySlice_NewX-tr6X Py_FatalErrorr6(jjX7http://docs.python.org/3/c-api/sys.html#c.Py_FatalErrorX-tr6XPyUnicodeDecodeError_SetReasonr6(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_SetReasonX-tr6XPyUnicode_AsUnicoder6(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUnicodeX-tr6XPySequence_ITEMr6(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_ITEMX-tr6X PyErr_Printr6(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintX-tr6XPyUnicode_Joinr6(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_JoinX-tr6X PyErr_PrintExr6(jjX>http://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintExX-tr7XPyNumber_InPlaceAndr7(jjX@http://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceAndX-tr7X PyLong_AsLongr7(jjX8http://docs.python.org/3/c-api/long.html#c.PyLong_AsLongX-tr7XPyErr_SetFromWindowsErrr7(jjXHhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrX-tr7XPyUnicode_WRITEr7(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEX-tr7X_PyImport_Finir 7(jjX;http://docs.python.org/3/c-api/import.html#c._PyImport_FiniX-tr 7XPyErr_WarnFormatr 7(jjXAhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatX-tr 7XPyLong_AsUnsignedLongMaskr 7(jjXDhttp://docs.python.org/3/c-api/long.html#c.PyLong_AsUnsignedLongMaskX-tr7XPyArg_ValidateKeywordArgumentsr7(jjXHhttp://docs.python.org/3/c-api/arg.html#c.PyArg_ValidateKeywordArgumentsX-tr7XPyUnicode_EncodeLocaler7(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocaleX-tr7XPyOS_vsnprintfr7(jjX?http://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfX-tr7X PyRun_AnyFiler7(jjX<http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileX-tr7X PyMarshal_ReadLastObjectFromFiler7(jjXNhttp://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFileX-tr7XPyUnicode_AsMBCSStringr7(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsMBCSStringX-tr7XPyLong_FromSsize_tr7(jjX=http://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_tX-tr7XPyObject_GC_UnTrackr7(jjXChttp://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrackX-tr7XPyErr_SyntaxLocationObjectr7(jjXKhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectX-tr 7XPyDescr_NewClassMethodr!7(jjXGhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewClassMethodX-tr"7XPyImport_AppendInittabr#7(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittabX-tr$7XPyErr_NoMemoryr%7(jjX?http://docs.python.org/3/c-api/exceptions.html#c.PyErr_NoMemoryX-tr&7XPyCodec_Registerr'7(jjX<http://docs.python.org/3/c-api/codec.html#c.PyCodec_RegisterX-tr(7XPyUnicode_Findr)7(jjX<http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindX-tr*7X PyUnicode_CompareWithASCIIStringr+7(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIStringX-tr,7XPyByteArray_Checkr-7(jjXAhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckX-tr.7XPyMapping_DelItemr/7(jjX?http://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemX-tr07XPyState_FindModuler17(jjX?http://docs.python.org/3/c-api/module.html#c.PyState_FindModuleX-tr27XPyUnicode_FromFormatr37(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatX-tr47XPyEval_MergeCompilerFlagsr57(jjXHhttp://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlagsX-tr67XPyMemoryView_FromBufferr77(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBufferX-tr87XPyFloat_GetMinr97(jjX:http://docs.python.org/3/c-api/float.html#c.PyFloat_GetMinX-tr:7XPyUnicode_FindCharr;7(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharX-tr<7XPyMem_RawReallocr=7(jjX=http://docs.python.org/3/c-api/memory.html#c.PyMem_RawReallocX-tr>7XPyErr_SetObjectr?7(jjX@http://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObjectX-tr@7XPyUnicode_EncodeUTF8rA7(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF8X-trB7XPyUnicode_AS_DATArC7(jjX?http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AS_DATAX-trD7XPyMapping_SetItemStringrE7(jjXEhttp://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringX-trF7XPy_CompileStringExFlagsrG7(jjXFhttp://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlagsX-trH7XPyFloat_AsDoublerI7(jjX<http://docs.python.org/3/c-api/float.html#c.PyFloat_AsDoubleX-trJ7XPyNumber_MultiplyrK7(jjX>http://docs.python.org/3/c-api/number.html#c.PyNumber_MultiplyX-trL7XPyUnicode_EncodeUTF32rM7(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeUTF32X-trN7XPy_SetProgramNamerO7(jjX<http://docs.python.org/3/c-api/init.html#c.Py_SetProgramNameX-trP7XPyObject_GenericGetAttrrQ7(jjXDhttp://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttrX-trR7XPyEval_SaveThreadrS7(jjX<http://docs.python.org/3/c-api/init.html#c.PyEval_SaveThreadX-trT7XPyMemoryView_FromMemoryrU7(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryX-trV7XPyModule_Create2rW7(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_Create2X-trX7XPyException_GetTracebackrY7(jjXIhttp://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTracebackX-trZ7X PyNumber_Orr[7(jjX8http://docs.python.org/3/c-api/number.html#c.PyNumber_OrX-tr\7XPyUnicodeEncodeError_GetEndr]7(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeEncodeError_GetEndX-tr^7XPyByteArray_AS_STRINGr_7(jjXEhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRINGX-tr`7X PyCell_GETra7(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_GETX-trb7XPyModule_GetFilenamerc7(jjXAhttp://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameX-trd7XPy_GetPlatformre7(jjX9http://docs.python.org/3/c-api/init.html#c.Py_GetPlatformX-trf7X!PyUnicode_TransformDecimalToASCIIrg7(jjXOhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TransformDecimalToASCIIX-trh7XPyUnicode_AsASCIIStringri7(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsASCIIStringX-trj7XPyUnicode_Tailmatchrk7(jjXAhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_TailmatchX-trl7XPyEval_ReleaseLockrm7(jjX=http://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseLockX-trn7XPyBuffer_Releasero7(jjX=http://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ReleaseX-trp7X PyObject_Notrq7(jjX9http://docs.python.org/3/c-api/object.html#c.PyObject_NotX-trr7X PyTuple_Sizers7(jjX8http://docs.python.org/3/c-api/tuple.html#c.PyTuple_SizeX-trt7X PyImport_ImportModuleLevelObjectru7(jjXMhttp://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectX-trv7XPyMemoryView_Checkrw7(jjXChttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_CheckX-trx7X PyIndex_Checkry7(jjX:http://docs.python.org/3/c-api/number.html#c.PyIndex_CheckX-trz7X PyBool_Checkr{7(jjX7http://docs.python.org/3/c-api/bool.html#c.PyBool_CheckX-tr|7XPyDict_DelItemStringr}7(jjX?http://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemStringX-tr~7XPyUnicode_InternInPlacer7(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlaceX-tr7XPySys_SetObjectr7(jjX9http://docs.python.org/3/c-api/sys.html#c.PySys_SetObjectX-tr7XPyUnicode_DecodeUTF8r7(jjXBhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8X-tr7XPyByteArray_GET_SIZEr7(jjXDhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZEX-tr7XPyDictProxy_Newr7(jjX:http://docs.python.org/3/c-api/dict.html#c.PyDictProxy_NewX-tr7XPyDate_FromTimestampr7(jjXChttp://docs.python.org/3/c-api/datetime.html#c.PyDate_FromTimestampX-tr7XPyStructSequence_Newr7(jjX@http://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewX-tr7XPyDescr_IsDatar7(jjX?http://docs.python.org/3/c-api/descriptor.html#c.PyDescr_IsDataX-tr7X PyObject_Hashr7(jjX:http://docs.python.org/3/c-api/object.html#c.PyObject_HashX-tr7XPyDateTime_TIME_GET_SECONDr7(jjXIhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECONDX-tr7XPyObject_DelAttrStringr7(jjXChttp://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrStringX-tr7X PyErr_Formatr7(jjX=http://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatX-tr7XPyDateTime_GET_MONTHr7(jjXChttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTHX-tr7XPyCapsule_GetDestructorr7(jjXEhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_GetDestructorX-tr7XPyDateTime_FromTimestampr7(jjXGhttp://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestampX-tr7X Py_Initializer7(jjX8http://docs.python.org/3/c-api/init.html#c.Py_InitializeX-tr7X Py_ReprLeaver7(jjX=http://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeaveX-tr7XPyImport_ExecCodeModuleObjectr7(jjXJhttp://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectX-tr7XPyCodec_IgnoreErrorsr7(jjX@http://docs.python.org/3/c-api/codec.html#c.PyCodec_IgnoreErrorsX-tr7XPyUnicode_Concatr7(jjX>http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ConcatX-tr7XPyUnicode_EncodeLatin1r7(jjXDhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLatin1X-tr7XPyObject_CheckReadBufferr7(jjXHhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_CheckReadBufferX-tr7XPy_GetPythonHomer7(jjX;http://docs.python.org/3/c-api/init.html#c.Py_GetPythonHomeX-tr7XPyDescr_NewMemberr7(jjXBhttp://docs.python.org/3/c-api/descriptor.html#c.PyDescr_NewMemberX-tr7XPyByteArray_AsStringr7(jjXDhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsStringX-tr7XPyTuple_ClearFreeListr7(jjXAhttp://docs.python.org/3/c-api/tuple.html#c.PyTuple_ClearFreeListX-tr7XPyModule_GetDictr7(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_GetDictX-tr7X PyOS_getsigr7(jjX5http://docs.python.org/3/c-api/sys.html#c.PyOS_getsigX-tr7XPyList_SetItemr7(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_SetItemX-tr7XPyImport_GetImporterr7(jjXAhttp://docs.python.org/3/c-api/import.html#c.PyImport_GetImporterX-tr7XPySlice_GetIndicesExr7(jjX@http://docs.python.org/3/c-api/slice.html#c.PySlice_GetIndicesExX-tr7XPyFunction_GetClosurer7(jjXDhttp://docs.python.org/3/c-api/function.html#c.PyFunction_GetClosureX-tr7XPyUnicode_AsUTF32Stringr7(jjXEhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_AsUTF32StringX-tr7XPyNumber_Remainderr7(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_RemainderX-tr7XPySequence_Fast_ITEMSr7(jjXDhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_Fast_ITEMSX-tr7XPyTuple_GET_ITEMr7(jjX<http://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_ITEMX-tr7XPyNumber_AsSsize_tr7(jjX?http://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_tX-tr7XPyUnicode_DecodeASCIIr7(jjXChttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIX-tr7X PyErr_WarnExr7(jjX=http://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExX-tr7XPyUnicodeDecodeError_Creater7(jjXLhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeDecodeError_CreateX-tr7XPyBytes_FromFormatVr7(jjX?http://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatVX-tr7XPyDelta_CheckExactr7(jjXAhttp://docs.python.org/3/c-api/datetime.html#c.PyDelta_CheckExactX-tr7X PyRun_Stringr7(jjX;http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_StringX-tr7X PyArg_VaParser7(jjX7http://docs.python.org/3/c-api/arg.html#c.PyArg_VaParseX-tr7XPyMemoryView_GET_BUFFERr7(jjXHhttp://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFERX-tr7X PyErr_Fetchr7(jjX<http://docs.python.org/3/c-api/exceptions.html#c.PyErr_FetchX-tr7XPyEval_ReInitThreadsr7(jjX?http://docs.python.org/3/c-api/init.html#c.PyEval_ReInitThreadsX-tr7X PyCapsule_Newr7(jjX;http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_NewX-tr7XPyType_Modifiedr7(jjX:http://docs.python.org/3/c-api/type.html#c.PyType_ModifiedX-tr7X%PyErr_SetFromErrnoWithFilenameObjectsr7(jjXVhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsX-tr7XPy_CLEARr7(jjX:http://docs.python.org/3/c-api/refcounting.html#c.Py_CLEARX-tr7X PyUnicode_DecodeRawUnicodeEscaper7(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapeX-tr7XPyOS_AfterForkr7(jjX8http://docs.python.org/3/c-api/sys.html#c.PyOS_AfterForkX-tr7XPy_VaBuildValuer7(jjX9http://docs.python.org/3/c-api/arg.html#c.Py_VaBuildValueX-tr7XPyModule_GetNamer7(jjX=http://docs.python.org/3/c-api/module.html#c.PyModule_GetNameX-tr7XPyErr_SyntaxLocationr7(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationX-tr7X!PyUnicodeTranslateError_SetReasonr7(jjXRhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_SetReasonX-tr7XPy_EnterRecursiveCallr7(jjXFhttp://docs.python.org/3/c-api/exceptions.html#c.Py_EnterRecursiveCallX-tr7XPyThreadState_GetDictr7(jjX@http://docs.python.org/3/c-api/init.html#c.PyThreadState_GetDictX-tr7X PyUnicode_EncodeRawUnicodeEscaper7(jjXNhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeRawUnicodeEscapeX-tr7XPyUnicode_InternFromStringr7(jjXHhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromStringX-tr7X_PyImport_FixupExtensionr7(jjXEhttp://docs.python.org/3/c-api/import.html#c._PyImport_FixupExtensionX-tr7XPyCapsule_SetPointerr7(jjXBhttp://docs.python.org/3/c-api/capsule.html#c.PyCapsule_SetPointerX-tr7X PyCell_Setr7(jjX5http://docs.python.org/3/c-api/cell.html#c.PyCell_SetX-tr7XPySys_GetObjectr7(jjX9http://docs.python.org/3/c-api/sys.html#c.PySys_GetObjectX-tr8X PyOS_setsigr8(jjX5http://docs.python.org/3/c-api/sys.html#c.PyOS_setsigX-tr8XPyUnicode_READYr8(jjX=http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READYX-tr8XPyList_AsTupler8(jjX9http://docs.python.org/3/c-api/list.html#c.PyList_AsTupleX-tr8XPyUnicode_EncodeCodePager8(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePageX-tr8XPyModule_CheckExactr 8(jjX@http://docs.python.org/3/c-api/module.html#c.PyModule_CheckExactX-tr 8XPyUnicode_ReadCharr 8(jjX@http://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadCharX-tr 8XPyErr_SetImportErrorr 8(jjXEhttp://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorX-tr8X PyDict_Checkr8(jjX7http://docs.python.org/3/c-api/dict.html#c.PyDict_CheckX-tr8XPyCapsule_Importr8(jjX>http://docs.python.org/3/c-api/capsule.html#c.PyCapsule_ImportX-tr8XPyNumber_InPlaceFloorDivider8(jjXHhttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceFloorDivideX-tr8X PyWrapper_Newr8(jjX>http://docs.python.org/3/c-api/descriptor.html#c.PyWrapper_NewX-tr8X PyRun_FileExr8(jjX;http://docs.python.org/3/c-api/veryhigh.html#c.PyRun_FileExX-tr8XPyUnicodeTranslateError_Creater8(jjXOhttp://docs.python.org/3/c-api/exceptions.html#c.PyUnicodeTranslateError_CreateX-tr8XPyNumber_Divmodr8(jjX<http://docs.python.org/3/c-api/number.html#c.PyNumber_DivmodX-tr8XPyObject_Bytesr8(jjX;http://docs.python.org/3/c-api/object.html#c.PyObject_BytesX-tr8XPyThreadState_Clearr8(jjX>http://docs.python.org/3/c-api/init.html#c.PyThreadState_ClearX-tr 8XPyObject_AsWriteBufferr!8(jjXFhttp://docs.python.org/3/c-api/objbuffer.html#c.PyObject_AsWriteBufferX-tr"8XPyNumber_InPlaceRshiftr#8(jjXChttp://docs.python.org/3/c-api/number.html#c.PyNumber_InPlaceRshiftX-tr$8XPyFrozenSet_CheckExactr%8(jjX@http://docs.python.org/3/c-api/set.html#c.PyFrozenSet_CheckExactX-tr&8XPy_VISITr'8(jjX8http://docs.python.org/3/c-api/gcsupport.html#c.Py_VISITX-tr(8XPySequence_InPlaceRepeatr)8(jjXGhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_InPlaceRepeatX-tr*8X PyTuple_Checkr+8(jjX9http://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckX-tr,8XPyCode_NewEmptyr-8(jjX:http://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyX-tr.8XPyNumber_Checkr/8(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_CheckX-tr08X Py_INCREFr18(jjX;http://docs.python.org/3/c-api/refcounting.html#c.Py_INCREFX-tr28XPyLong_FromDoubler38(jjX<http://docs.python.org/3/c-api/long.html#c.PyLong_FromDoubleX-tr48XPyNumber_Powerr58(jjX;http://docs.python.org/3/c-api/number.html#c.PyNumber_PowerX-tr68X Py_DECREFr78(jjX;http://docs.python.org/3/c-api/refcounting.html#c.Py_DECREFX-tr88XPyDelta_FromDSUr98(jjX>http://docs.python.org/3/c-api/datetime.html#c.PyDelta_FromDSUX-tr:8XPyLong_FromLongLongr;8(jjX>http://docs.python.org/3/c-api/long.html#c.PyLong_FromLongLongX-tr<8XPyUnicode_CopyCharactersr=8(jjXFhttp://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersX-tr>8XPyObject_DelAttrr?8(jjX=http://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrX-tr@8XPyImport_ExtendInittabrA8(jjXChttp://docs.python.org/3/c-api/import.html#c.PyImport_ExtendInittabX-trB8XPySequence_SizerC8(jjX>http://docs.python.org/3/c-api/sequence.html#c.PySequence_SizeX-trD8XPySequence_ContainsrE8(jjXBhttp://docs.python.org/3/c-api/sequence.html#c.PySequence_ContainsX-trF8XPyByteArray_ConcatrG8(jjXBhttp://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_ConcatX-trH8X_PyBytes_ResizerI8(jjX;http://docs.python.org/3/c-api/bytes.html#c._PyBytes_ResizeX-trJ8XPyBytes_CheckExactrK8(jjX>http://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExactX-trL8XPyObject_CallMethodrM8(jjX@http://docs.python.org/3/c-api/object.html#c.PyObject_CallMethodX-trN8uXpy:datarO8}rP8(Xdoctest.DONT_ACCEPT_BLANKLINErQ8(jjXKhttp://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_BLANKLINEX-trR8Xsignal.SIG_SETMASKrS8(jjX?http://docs.python.org/3/library/signal.html#signal.SIG_SETMASKX-trT8Xwinsound.SND_ASYNCrU8(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_ASYNCX-trV8Xcsv.QUOTE_NONErW8(jjX8http://docs.python.org/3/library/csv.html#csv.QUOTE_NONEX-trX8X re.VERBOSErY8(jjX3http://docs.python.org/3/library/re.html#re.VERBOSEX-trZ8XMETH_Or[8(jjX5http://docs.python.org/3/c-api/structures.html#METH_OX-tr\8Xerrno.ETIMEDOUTr]8(jjX;http://docs.python.org/3/library/errno.html#errno.ETIMEDOUTX-tr^8Xsys.version_infor_8(jjX:http://docs.python.org/3/library/sys.html#sys.version_infoX-tr`8X token.STARra8(jjX6http://docs.python.org/3/library/token.html#token.STARX-trb8Xos.X_OKrc8(jjX0http://docs.python.org/3/library/os.html#os.X_OKX-trd8Xdis.Bytecode.codeobjre8(jjX>http://docs.python.org/3/library/dis.html#dis.Bytecode.codeobjX-trf8Xtypes.MethodTyperg8(jjX<http://docs.python.org/3/library/types.html#types.MethodTypeX-trh8X os.EX_CONFIGri8(jjX5http://docs.python.org/3/library/os.html#os.EX_CONFIGX-trj8Xos.EX_TEMPFAILrk8(jjX7http://docs.python.org/3/library/os.html#os.EX_TEMPFAILX-trl8X9xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENTrm8(jjXghttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENTX-trn8Xtoken.tok_namero8(jjX:http://docs.python.org/3/library/token.html#token.tok_nameX-trp8X codecs.BOMrq8(jjX7http://docs.python.org/3/library/codecs.html#codecs.BOMX-trr8X#subprocess.CREATE_NEW_PROCESS_GROUPrs8(jjXThttp://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_PROCESS_GROUPX-trt8Xos.O_SEQUENTIALru8(jjX8http://docs.python.org/3/library/os.html#os.O_SEQUENTIALX-trv8XPy_TPFLAGS_HAVE_GCrw8(jjX>http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HAVE_GCX-trx8X os.WEXITEDry8(jjX3http://docs.python.org/3/library/os.html#os.WEXITEDX-trz8X errno.ELIBACCr{8(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBACCX-tr|8Xdecimal.MAX_EMAXr}8(jjX>http://docs.python.org/3/library/decimal.html#decimal.MAX_EMAXX-tr~8Xhashlib.algorithms_availabler8(jjXJhttp://docs.python.org/3/library/hashlib.html#hashlib.algorithms_availableX-tr8XPy_TPFLAGS_LONG_SUBCLASSr8(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_LONG_SUBCLASSX-tr8Xwinreg.KEY_WOW64_64KEYr8(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_64KEYX-tr8X errno.EBADMSGr8(jjX9http://docs.python.org/3/library/errno.html#errno.EBADMSGX-tr8Xhttp.client.HTTPS_PORTr8(jjXHhttp://docs.python.org/3/library/http.client.html#http.client.HTTPS_PORTX-tr8X token.SLASHr8(jjX7http://docs.python.org/3/library/token.html#token.SLASHX-tr8Xsunau.AUDIO_FILE_ENCODING_FLOATr8(jjXKhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_FLOATX-tr8X os.EX_DATAERRr8(jjX6http://docs.python.org/3/library/os.html#os.EX_DATAERRX-tr8Xlocale.CRNCYSTRr8(jjX<http://docs.python.org/3/library/locale.html#locale.CRNCYSTRX-tr8X sys.meta_pathr8(jjX7http://docs.python.org/3/library/sys.html#sys.meta_pathX-tr8Xsocket.AF_UNIXr8(jjX;http://docs.python.org/3/library/socket.html#socket.AF_UNIXX-tr8X METH_NOARGSr8(jjX:http://docs.python.org/3/c-api/structures.html#METH_NOARGSX-tr8X errno.EREMCHGr8(jjX9http://docs.python.org/3/library/errno.html#errno.EREMCHGX-tr8X socket.AF_RDSr8(jjX:http://docs.python.org/3/library/socket.html#socket.AF_RDSX-tr8Xwinreg.KEY_ENUMERATE_SUB_KEYSr8(jjXJhttp://docs.python.org/3/library/winreg.html#winreg.KEY_ENUMERATE_SUB_KEYSX-tr8Xtoken.NT_OFFSETr8(jjX;http://docs.python.org/3/library/token.html#token.NT_OFFSETX-tr8X locale.LC_ALLr8(jjX:http://docs.python.org/3/library/locale.html#locale.LC_ALLX-tr8X stat.S_IFREGr8(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFREGX-tr8X token.INDENTr8(jjX8http://docs.python.org/3/library/token.html#token.INDENTX-tr8Xwinreg.KEY_QUERY_VALUEr8(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_QUERY_VALUEX-tr8Xlocale.CODESETr8(jjX;http://docs.python.org/3/library/locale.html#locale.CODESETX-tr8Xerrno.ENETDOWNr8(jjX:http://docs.python.org/3/library/errno.html#errno.ENETDOWNX-tr8Xos.pathconf_namesr8(jjX:http://docs.python.org/3/library/os.html#os.pathconf_namesX-tr8XFalser8(jjX5http://docs.python.org/3/library/constants.html#FalseX-tr8X errno.ERANGEr8(jjX8http://docs.python.org/3/library/errno.html#errno.ERANGEX-tr8Xsubprocess.PIPEr8(jjX@http://docs.python.org/3/library/subprocess.html#subprocess.PIPEX-tr8Xwinreg.KEY_WRITEr8(jjX=http://docs.python.org/3/library/winreg.html#winreg.KEY_WRITEX-tr8Xpathlib.PurePath.rootr8(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.rootX-tr8X os.RTLD_LOCALr8(jjX6http://docs.python.org/3/library/os.html#os.RTLD_LOCALX-tr8X errno.EREMOTEr8(jjX9http://docs.python.org/3/library/errno.html#errno.EREMOTEX-tr8Xsignal.CTRL_C_EVENTr8(jjX@http://docs.python.org/3/library/signal.html#signal.CTRL_C_EVENTX-tr8Xlocale.YESEXPRr8(jjX;http://docs.python.org/3/library/locale.html#locale.YESEXPRX-tr8Xcodecs.BOM_UTF16_LEr8(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_LEX-tr8X os.EX_IOERRr8(jjX4http://docs.python.org/3/library/os.html#os.EX_IOERRX-tr8X@xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFr8(jjXnhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFX-tr8X errno.EBUSYr8(jjX7http://docs.python.org/3/library/errno.html#errno.EBUSYX-tr8Xsys.__stderr__r8(jjX8http://docs.python.org/3/library/sys.html#sys.__stderr__X-tr8Xerrno.EOVERFLOWr8(jjX;http://docs.python.org/3/library/errno.html#errno.EOVERFLOWX-tr8X msilib.schemar8(jjX:http://docs.python.org/3/library/msilib.html#msilib.schemaX-tr8Xdoctest.FAIL_FASTr8(jjX?http://docs.python.org/3/library/doctest.html#doctest.FAIL_FASTX-tr8Xlocale.THOUSEPr8(jjX;http://docs.python.org/3/library/locale.html#locale.THOUSEPX-tr8X&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5r8(jjXRhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5X-tr8X token.TILDEr8(jjX7http://docs.python.org/3/library/token.html#token.TILDEX-tr8X errno.ENOTBLKr8(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTBLKX-tr8X9xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTIONr8(jjXghttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTIONX-tr8Xxml.dom.XMLNS_NAMESPACEr8(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.XMLNS_NAMESPACEX-tr8X stat.ST_NLINKr8(jjX8http://docs.python.org/3/library/stat.html#stat.ST_NLINKX-tr8Xos.EX_OKr8(jjX1http://docs.python.org/3/library/os.html#os.EX_OKX-tr8X sys.versionr8(jjX5http://docs.python.org/3/library/sys.html#sys.versionX-tr8Xos.namer8(jjX0http://docs.python.org/3/library/os.html#os.nameX-tr8Xerrno.ENETUNREACHr8(jjX=http://docs.python.org/3/library/errno.html#errno.ENETUNREACHX-tr8Xcodecs.BOM_UTF16_BEr8(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_BEX-tr8Xxml.sax.handler.all_propertiesr8(jjXThttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_propertiesX-tr8Xzlib.ZLIB_RUNTIME_VERSIONr8(jjXDhttp://docs.python.org/3/library/zlib.html#zlib.ZLIB_RUNTIME_VERSIONX-tr8Xwinreg.HKEY_LOCAL_MACHINEr8(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_LOCAL_MACHINEX-tr8X dis.hasjrelr8(jjX5http://docs.python.org/3/library/dis.html#dis.hasjrelX-tr8X time.tznamer8(jjX6http://docs.python.org/3/library/time.html#time.tznameX-tr8X errno.ELOOPr8(jjX7http://docs.python.org/3/library/errno.html#errno.ELOOPX-tr8X os.SF_SYNCr8(jjX3http://docs.python.org/3/library/os.html#os.SF_SYNCX-tr8X errno.ETIMEr8(jjX7http://docs.python.org/3/library/errno.html#errno.ETIMEX-tr8X token.NAMEr8(jjX6http://docs.python.org/3/library/token.html#token.NAMEX-tr8Xwinreg.KEY_EXECUTEr8(jjX?http://docs.python.org/3/library/winreg.html#winreg.KEY_EXECUTEX-tr8X os.O_ASYNCr8(jjX3http://docs.python.org/3/library/os.html#os.O_ASYNCX-tr8XTruer8(jjX4http://docs.python.org/3/library/constants.html#TrueX-tr8Xre.DEBUGr8(jjX1http://docs.python.org/3/library/re.html#re.DEBUGX-tr9X errno.EADVr9(jjX6http://docs.python.org/3/library/errno.html#errno.EADVX-tr9Xssl.OP_NO_TLSv1r9(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1X-tr9Xresource.RLIMIT_STACKr9(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_STACKX-tr9Xerrno.EDESTADDRREQr9(jjX>http://docs.python.org/3/library/errno.html#errno.EDESTADDRREQX-tr9Xsignal.SIG_IGNr 9(jjX;http://docs.python.org/3/library/signal.html#signal.SIG_IGNX-tr 9Xwinreg.HKEY_CURRENT_USERr 9(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_USERX-tr 9Xtoken.N_TOKENSr 9(jjX:http://docs.python.org/3/library/token.html#token.N_TOKENSX-tr9X errno.ENODEVr9(jjX8http://docs.python.org/3/library/errno.html#errno.ENODEVX-tr9XPy_TPFLAGS_LIST_SUBCLASSr9(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_LIST_SUBCLASSX-tr9X sys.maxsizer9(jjX5http://docs.python.org/3/library/sys.html#sys.maxsizeX-tr9Xsubprocess.STARTF_USESTDHANDLESr9(jjXPhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESTDHANDLESX-tr9Xtypes.FrameTyper9(jjX;http://docs.python.org/3/library/types.html#types.FrameTypeX-tr9X ssl.OP_ALLr9(jjX4http://docs.python.org/3/library/ssl.html#ssl.OP_ALLX-tr9X locale.NOEXPRr9(jjX:http://docs.python.org/3/library/locale.html#locale.NOEXPRX-tr9X errno.ENOLCKr9(jjX8http://docs.python.org/3/library/errno.html#errno.ENOLCKX-tr9X$ssl.ALERT_DESCRIPTION_INTERNAL_ERRORr9(jjXNhttp://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_INTERNAL_ERRORX-tr 9X tokenize.NLr!9(jjX:http://docs.python.org/3/library/tokenize.html#tokenize.NLX-tr"9Xsubprocess.STARTF_USESHOWWINDOWr#9(jjXPhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESHOWWINDOWX-tr$9Xhttp.client.HTTP_PORTr%9(jjXGhttp://docs.python.org/3/library/http.client.html#http.client.HTTP_PORTX-tr&9Xdoctest.REPORT_UDIFFr'9(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_UDIFFX-tr(9Xsys.path_hooksr)9(jjX8http://docs.python.org/3/library/sys.html#sys.path_hooksX-tr*9X errno.E2BIGr+9(jjX7http://docs.python.org/3/library/errno.html#errno.E2BIGX-tr,9X os.WSTOPPEDr-9(jjX4http://docs.python.org/3/library/os.html#os.WSTOPPEDX-tr.9X os.O_CLOEXECr/9(jjX5http://docs.python.org/3/library/os.html#os.O_CLOEXECX-tr09Xsubprocess.STDOUTr19(jjXBhttp://docs.python.org/3/library/subprocess.html#subprocess.STDOUTX-tr29Xarray.typecodesr39(jjX;http://docs.python.org/3/library/array.html#array.typecodesX-tr49Xerrno.ERESTARTr59(jjX:http://docs.python.org/3/library/errno.html#errno.ERESTARTX-tr69Xtarfile.ENCODINGr79(jjX>http://docs.python.org/3/library/tarfile.html#tarfile.ENCODINGX-tr89Xcrypt.METHOD_CRYPTr99(jjX>http://docs.python.org/3/library/crypt.html#crypt.METHOD_CRYPTX-tr:9X stat.S_IFWHTr;9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFWHTX-tr<9Xos.EX_CANTCREATr=9(jjX8http://docs.python.org/3/library/os.html#os.EX_CANTCREATX-tr>9X errno.ESTALEr?9(jjX8http://docs.python.org/3/library/errno.html#errno.ESTALEX-tr@9Xwinreg.KEY_CREATE_SUB_KEYrA9(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_SUB_KEYX-trB9X os.defpathrC9(jjX3http://docs.python.org/3/library/os.html#os.defpathX-trD9XEllipsisrE9(jjX8http://docs.python.org/3/library/constants.html#EllipsisX-trF9X os.O_BINARYrG9(jjX4http://docs.python.org/3/library/os.html#os.O_BINARYX-trH9X os.lineseprI9(jjX3http://docs.python.org/3/library/os.html#os.linesepX-trJ9X os.environrK9(jjX3http://docs.python.org/3/library/os.html#os.environX-trL9Xos.POSIX_FADV_NOREUSErM9(jjX>http://docs.python.org/3/library/os.html#os.POSIX_FADV_NOREUSEX-trN9X stat.S_IFLNKrO9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFLNKX-trP9X errno.EISDIRrQ9(jjX8http://docs.python.org/3/library/errno.html#errno.EISDIRX-trR9Xcodecs.BOM_UTF8rS9(jjX<http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF8X-trT9Xsys.__excepthook__rU9(jjX<http://docs.python.org/3/library/sys.html#sys.__excepthook__X-trV9Xtempfile.tempdirrW9(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.tempdirX-trX9X stat.S_IFIFOrY9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFIFOX-trZ9Xthreading.TIMEOUT_MAXr[9(jjXEhttp://docs.python.org/3/library/threading.html#threading.TIMEOUT_MAXX-tr\9Xresource.RLIMIT_VMEMr]9(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_VMEMX-tr^9Xtokenize.COMMENTr_9(jjX?http://docs.python.org/3/library/tokenize.html#tokenize.COMMENTX-tr`9Xos.supports_bytes_environra9(jjXBhttp://docs.python.org/3/library/os.html#os.supports_bytes_environX-trb9Xerrno.ECONNRESETrc9(jjX<http://docs.python.org/3/library/errno.html#errno.ECONNRESETX-trd9X signal.NSIGre9(jjX8http://docs.python.org/3/library/signal.html#signal.NSIGX-trf9X0xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDEDrg9(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDEDX-trh9Xuuid.RESERVED_FUTUREri9(jjX?http://docs.python.org/3/library/uuid.html#uuid.RESERVED_FUTUREX-trj9Xstat.SF_ARCHIVEDrk9(jjX;http://docs.python.org/3/library/stat.html#stat.SF_ARCHIVEDX-trl9Xos.SCHED_BATCHrm9(jjX7http://docs.python.org/3/library/os.html#os.SCHED_BATCHX-trn9Xxml.parsers.expat.errors.codesro9(jjXLhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.codesX-trp9X re.DOTALLrq9(jjX2http://docs.python.org/3/library/re.html#re.DOTALLX-trr9Xsys.implementationrs9(jjX<http://docs.python.org/3/library/sys.html#sys.implementationX-trt9X stat.S_IRWXGru9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXGX-trv9Xtypes.MemberDescriptorTyperw9(jjXFhttp://docs.python.org/3/library/types.html#types.MemberDescriptorTypeX-trx9X_thread.LockTypery9(jjX>http://docs.python.org/3/library/_thread.html#_thread.LockTypeX-trz9Xtoken.LEFTSHIFTr{9(jjX;http://docs.python.org/3/library/token.html#token.LEFTSHIFTX-tr|9X stat.S_IRWXOr}9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXOX-tr~9X sys.hash_infor9(jjX7http://docs.python.org/3/library/sys.html#sys.hash_infoX-tr9X&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3r9(jjXRhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3X-tr9Xobject.__slots__r9(jjXBhttp://docs.python.org/3/reference/datamodel.html#object.__slots__X-tr9X stat.S_IRWXUr9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRWXUX-tr9Xdecimal.ROUND_05UPr9(jjX@http://docs.python.org/3/library/decimal.html#decimal.ROUND_05UPX-tr9Xunittest.mock.ANYr9(jjXEhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.ANYX-tr9X stat.S_IFCHRr9(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFCHRX-tr9X token.DOTr9(jjX5http://docs.python.org/3/library/token.html#token.DOTX-tr9Xresource.RLIMIT_NOFILEr9(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NOFILEX-tr9X errno.EL3RSTr9(jjX8http://docs.python.org/3/library/errno.html#errno.EL3RSTX-tr9X parser.STTyper9(jjX:http://docs.python.org/3/library/parser.html#parser.STTypeX-tr9X errno.ECHRNGr9(jjX8http://docs.python.org/3/library/errno.html#errno.ECHRNGX-tr9X stat.S_ISVTXr9(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISVTXX-tr9X os.P_WAITr9(jjX2http://docs.python.org/3/library/os.html#os.P_WAITX-tr9X errno.EDQUOTr9(jjX8http://docs.python.org/3/library/errno.html#errno.EDQUOTX-tr9X errno.ENOSTRr9(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSTRX-tr9X gc.garbager9(jjX3http://docs.python.org/3/library/gc.html#gc.garbageX-tr9X errno.EBADRQCr9(jjX9http://docs.python.org/3/library/errno.html#errno.EBADRQCX-tr9X os.O_RDONLYr9(jjX4http://docs.python.org/3/library/os.html#os.O_RDONLYX-tr9Xlocale.ERA_D_FMTr9(jjX=http://docs.python.org/3/library/locale.html#locale.ERA_D_FMTX-tr9Xos.supports_follow_symlinksr9(jjXDhttp://docs.python.org/3/library/os.html#os.supports_follow_symlinksX-tr9X errno.EACCESr9(jjX8http://docs.python.org/3/library/errno.html#errno.EACCESX-tr9Xsocket.has_ipv6r9(jjX<http://docs.python.org/3/library/socket.html#socket.has_ipv6X-tr9X sys.int_infor9(jjX6http://docs.python.org/3/library/sys.html#sys.int_infoX-tr9X os.CLD_DUMPEDr9(jjX6http://docs.python.org/3/library/os.html#os.CLD_DUMPEDX-tr9Ximp.PKG_DIRECTORYr9(jjX;http://docs.python.org/3/library/imp.html#imp.PKG_DIRECTORYX-tr9Xtoken.DOUBLESTARr9(jjX<http://docs.python.org/3/library/token.html#token.DOUBLESTARX-tr9Xsys.base_exec_prefixr9(jjX>http://docs.python.org/3/library/sys.html#sys.base_exec_prefixX-tr9Xssl.CERT_OPTIONALr9(jjX;http://docs.python.org/3/library/ssl.html#ssl.CERT_OPTIONALX-tr9Xos.POSIX_FADV_RANDOMr9(jjX=http://docs.python.org/3/library/os.html#os.POSIX_FADV_RANDOMX-tr9Xtypes.GeneratorTyper9(jjX?http://docs.python.org/3/library/types.html#types.GeneratorTypeX-tr9Xos.sysconf_namesr9(jjX9http://docs.python.org/3/library/os.html#os.sysconf_namesX-tr9Xsys.__displayhook__r9(jjX=http://docs.python.org/3/library/sys.html#sys.__displayhook__X-tr9Xzlib.ZLIB_VERSIONr9(jjX<http://docs.python.org/3/library/zlib.html#zlib.ZLIB_VERSIONX-tr9Xos.confstr_namesr9(jjX9http://docs.python.org/3/library/os.html#os.confstr_namesX-tr9Xsys.dont_write_bytecoder9(jjXAhttp://docs.python.org/3/library/sys.html#sys.dont_write_bytecodeX-tr9X,xml.sax.handler.property_declaration_handlerr9(jjXbhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_declaration_handlerX-tr9XNotImplementedr9(jjX>http://docs.python.org/3/library/constants.html#NotImplementedX-tr9X stat.ST_CTIMEr9(jjX8http://docs.python.org/3/library/stat.html#stat.ST_CTIMEX-tr9X os.P_PGIDr9(jjX2http://docs.python.org/3/library/os.html#os.P_PGIDX-tr9Xssl.OPENSSL_VERSIONr9(jjX=http://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSIONX-tr9Xcalendar.day_abbrr9(jjX@http://docs.python.org/3/library/calendar.html#calendar.day_abbrX-tr9Xsite.USER_SITEr9(jjX9http://docs.python.org/3/library/site.html#site.USER_SITEX-tr9Xsys.pathr9(jjX2http://docs.python.org/3/library/sys.html#sys.pathX-tr9X os.O_EXLOCKr9(jjX4http://docs.python.org/3/library/os.html#os.O_EXLOCKX-tr9Xsqlite3.sqlite_version_infor9(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_version_infoX-tr9X-xml.parsers.expat.errors.XML_ERROR_SUSPEND_PEr9(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPEND_PEX-tr9X stat.ST_ATIMEr9(jjX8http://docs.python.org/3/library/stat.html#stat.ST_ATIMEX-tr9Xsocket.SOL_RDSr9(jjX;http://docs.python.org/3/library/socket.html#socket.SOL_RDSX-tr9X os.O_TRUNCr9(jjX3http://docs.python.org/3/library/os.html#os.O_TRUNCX-tr9X __debug__r9(jjX9http://docs.python.org/3/library/constants.html#__debug__X-tr9Xlocale.LC_COLLATEr9(jjX>http://docs.python.org/3/library/locale.html#locale.LC_COLLATEX-tr9X os.O_TMPFILEr9(jjX5http://docs.python.org/3/library/os.html#os.O_TMPFILEX-tr9Xwinreg.REG_BINARYr9(jjX>http://docs.python.org/3/library/winreg.html#winreg.REG_BINARYX-tr9Xsys.__interactivehook__r9(jjXAhttp://docs.python.org/3/library/sys.html#sys.__interactivehook__X-tr9X errno.ENFILEr9(jjX8http://docs.python.org/3/library/errno.html#errno.ENFILEX-tr9X#sunau.AUDIO_FILE_ENCODING_LINEAR_24r9(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_24X-tr9Xtest.support.TESTFNr9(jjX>http://docs.python.org/3/library/test.html#test.support.TESTFNX-tr9X os.P_DETACHr9(jjX4http://docs.python.org/3/library/os.html#os.P_DETACHX-tr9Xsocket.SOCK_RDMr9(jjX<http://docs.python.org/3/library/socket.html#socket.SOCK_RDMX-tr9Xstring.ascii_lettersr9(jjXAhttp://docs.python.org/3/library/string.html#string.ascii_lettersX-tr9Xwinreg.KEY_READr9(jjX<http://docs.python.org/3/library/winreg.html#winreg.KEY_READX-tr9X sunau.AUDIO_FILE_ENCODING_DOUBLEr9(jjXLhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_DOUBLEX-tr9XPy_TPFLAGS_READYr9(jjX<http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_READYX-tr9Xos.CLD_TRAPPEDr9(jjX7http://docs.python.org/3/library/os.html#os.CLD_TRAPPEDX-tr:X$xml.sax.handler.feature_external_gesr:(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_gesX-tr:X os.WUNTRACEDr:(jjX5http://docs.python.org/3/library/os.html#os.WUNTRACEDX-tr:Xssl.PROTOCOL_SSLv23r:(jjX=http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv23X-tr:Xstat.UF_APPENDr:(jjX9http://docs.python.org/3/library/stat.html#stat.UF_APPENDX-tr:Xos.O_SHORT_LIVEDr :(jjX9http://docs.python.org/3/library/os.html#os.O_SHORT_LIVEDX-tr :Xsubprocess.STD_OUTPUT_HANDLEr :(jjXMhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_OUTPUT_HANDLEX-tr :Xresource.RLIMIT_RTPRIOr :(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RTPRIOX-tr:X uuid.RFC_4122r:(jjX8http://docs.python.org/3/library/uuid.html#uuid.RFC_4122X-tr:Xtypes.TracebackTyper:(jjX?http://docs.python.org/3/library/types.html#types.TracebackTypeX-tr:X os.F_TESTr:(jjX2http://docs.python.org/3/library/os.html#os.F_TESTX-tr:Xlocale.ERA_D_T_FMTr:(jjX?http://docs.python.org/3/library/locale.html#locale.ERA_D_T_FMTX-tr:X os.PRIO_USERr:(jjX5http://docs.python.org/3/library/os.html#os.PRIO_USERX-tr:X os.extsepr:(jjX2http://docs.python.org/3/library/os.html#os.extsepX-tr:X#sunau.AUDIO_FILE_ENCODING_LINEAR_16r:(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_16X-tr:Xlocale.ALT_DIGITSr:(jjX>http://docs.python.org/3/library/locale.html#locale.ALT_DIGITSX-tr:Xre.ASCIIr:(jjX1http://docs.python.org/3/library/re.html#re.ASCIIX-tr :Xwinreg.REG_EXPAND_SZr!:(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.REG_EXPAND_SZX-tr":X sys.__stdin__r#:(jjX7http://docs.python.org/3/library/sys.html#sys.__stdin__X-tr$:X token.SEMIr%:(jjX6http://docs.python.org/3/library/token.html#token.SEMIX-tr&:Xos.P_ALLr':(jjX1http://docs.python.org/3/library/os.html#os.P_ALLX-tr(:X time.altzoner):(jjX7http://docs.python.org/3/library/time.html#time.altzoneX-tr*:Xresource.RLIMIT_OFILEr+:(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_OFILEX-tr,:Xerrno.EOPNOTSUPPr-:(jjX<http://docs.python.org/3/library/errno.html#errno.EOPNOTSUPPX-tr.:Xerrno.ENOTCONNr/:(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTCONNX-tr0:Xhashlib.hash.digest_sizer1:(jjXFhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.digest_sizeX-tr2:Xerrno.ENOPROTOOPTr3:(jjX=http://docs.python.org/3/library/errno.html#errno.ENOPROTOOPTX-tr4:Xwinsound.SND_NOSTOPr5:(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_NOSTOPX-tr6:Xcmath.pir7:(jjX4http://docs.python.org/3/library/cmath.html#cmath.piX-tr8:Xerrno.ESTRPIPEr9:(jjX:http://docs.python.org/3/library/errno.html#errno.ESTRPIPEX-tr::X sys.byteorderr;:(jjX7http://docs.python.org/3/library/sys.html#sys.byteorderX-tr<:Xstat.UF_IMMUTABLEr=:(jjX<http://docs.python.org/3/library/stat.html#stat.UF_IMMUTABLEX-tr>:Xweakref.ProxyTypesr?:(jjX@http://docs.python.org/3/library/weakref.html#weakref.ProxyTypesX-tr@:Xsocket.SOMAXCONNrA:(jjX=http://docs.python.org/3/library/socket.html#socket.SOMAXCONNX-trB:X gc.DEBUG_LEAKrC:(jjX6http://docs.python.org/3/library/gc.html#gc.DEBUG_LEAKX-trD:X os.EX_NOHOSTrE:(jjX5http://docs.python.org/3/library/os.html#os.EX_NOHOSTX-trF:Xsocket.CAN_BCMrG:(jjX;http://docs.python.org/3/library/socket.html#socket.CAN_BCMX-trH:X,xml.parsers.expat.errors.XML_ERROR_SUSPENDEDrI:(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPENDEDX-trJ:Xsys.argvrK:(jjX2http://docs.python.org/3/library/sys.html#sys.argvX-trL:X token.RARROWrM:(jjX8http://docs.python.org/3/library/token.html#token.RARROWX-trN:Xtoken.ENDMARKERrO:(jjX;http://docs.python.org/3/library/token.html#token.ENDMARKERX-trP:Xxml.sax.handler.all_featuresrQ:(jjXRhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_featuresX-trR:Xxml.dom.XHTML_NAMESPACErS:(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.XHTML_NAMESPACEX-trT:Xwinreg.REG_DWORDrU:(jjX=http://docs.python.org/3/library/winreg.html#winreg.REG_DWORDX-trV:Xos.P_PIDrW:(jjX1http://docs.python.org/3/library/os.html#os.P_PIDX-trX:X locale.T_FMTrY:(jjX9http://docs.python.org/3/library/locale.html#locale.T_FMTX-trZ:Xerrno.EADDRNOTAVAILr[:(jjX?http://docs.python.org/3/library/errno.html#errno.EADDRNOTAVAILX-tr\:X stat.S_IXGRPr]:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXGRPX-tr^:Xpickle.DEFAULT_PROTOCOLr_:(jjXDhttp://docs.python.org/3/library/pickle.html#pickle.DEFAULT_PROTOCOLX-tr`:Xpathlib.PurePath.drivera:(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.driveX-trb:Xwinreg.REG_MULTI_SZrc:(jjX@http://docs.python.org/3/library/winreg.html#winreg.REG_MULTI_SZX-trd:X!xml.sax.handler.property_dom_nodere:(jjXWhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_dom_nodeX-trf:Xtarfile.DEFAULT_FORMATrg:(jjXDhttp://docs.python.org/3/library/tarfile.html#tarfile.DEFAULT_FORMATX-trh:X errno.EDEADLKri:(jjX9http://docs.python.org/3/library/errno.html#errno.EDEADLKX-trj:Xsignal.SIG_DFLrk:(jjX;http://docs.python.org/3/library/signal.html#signal.SIG_DFLX-trl:Xresource.RLIMIT_SIGPENDINGrm:(jjXIhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SIGPENDINGX-trn:X3xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REFro:(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REFX-trp:Xerrno.EADDRINUSErq:(jjX<http://docs.python.org/3/library/errno.html#errno.EADDRINUSEX-trr:Xssl.Purpose.SERVER_AUTHrs:(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.Purpose.SERVER_AUTHX-trt:Xwinreg.KEY_NOTIFYru:(jjX>http://docs.python.org/3/library/winreg.html#winreg.KEY_NOTIFYX-trv:X codecs.BOM_LErw:(jjX:http://docs.python.org/3/library/codecs.html#codecs.BOM_LEX-trx:X errno.ENAVAILry:(jjX9http://docs.python.org/3/library/errno.html#errno.ENAVAILX-trz:X token.STRINGr{:(jjX8http://docs.python.org/3/library/token.html#token.STRINGX-tr|:X token.COLONr}:(jjX7http://docs.python.org/3/library/token.html#token.COLONX-tr~:X stat.S_IWGRPr:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWGRPX-tr:Xtoken.DOUBLESTAREQUALr:(jjXAhttp://docs.python.org/3/library/token.html#token.DOUBLESTAREQUALX-tr:X stat.ST_SIZEr:(jjX7http://docs.python.org/3/library/stat.html#stat.ST_SIZEX-tr:X token.VBARr:(jjX6http://docs.python.org/3/library/token.html#token.VBARX-tr:Xresource.RLIMIT_NICEr:(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NICEX-tr:Xerrno.ECONNABORTEDr:(jjX>http://docs.python.org/3/library/errno.html#errno.ECONNABORTEDX-tr:Xsys.thread_infor:(jjX9http://docs.python.org/3/library/sys.html#sys.thread_infoX-tr:Xos.SF_NODISKIOr:(jjX7http://docs.python.org/3/library/os.html#os.SF_NODISKIOX-tr:X token.GREATERr:(jjX9http://docs.python.org/3/library/token.html#token.GREATERX-tr:X3xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATEr:(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATEX-tr:X socket.AF_CANr:(jjX:http://docs.python.org/3/library/socket.html#socket.AF_CANX-tr:X errno.ENOSPCr:(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSPCX-tr:Xdis.Instruction.starts_liner:(jjXEhttp://docs.python.org/3/library/dis.html#dis.Instruction.starts_lineX-tr:Xsys.last_valuer:(jjX8http://docs.python.org/3/library/sys.html#sys.last_valueX-tr:X os.curdirr:(jjX2http://docs.python.org/3/library/os.html#os.curdirX-tr:X stat.S_IRUSRr:(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRUSRX-tr:Xos.XATTR_REPLACEr:(jjX9http://docs.python.org/3/library/os.html#os.XATTR_REPLACEX-tr:X*xml.sax.handler.feature_namespace_prefixesr:(jjX`http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespace_prefixesX-tr:Xpathlib.PurePath.suffixesr:(jjXGhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixesX-tr:Xgc.DEBUG_UNCOLLECTABLEr:(jjX?http://docs.python.org/3/library/gc.html#gc.DEBUG_UNCOLLECTABLEX-tr:X errno.EUNATCHr:(jjX9http://docs.python.org/3/library/errno.html#errno.EUNATCHX-tr:Xssl.OP_CIPHER_SERVER_PREFERENCEr:(jjXIhttp://docs.python.org/3/library/ssl.html#ssl.OP_CIPHER_SERVER_PREFERENCEX-tr:Xtime.CLOCK_THREAD_CPUTIME_IDr:(jjXGhttp://docs.python.org/3/library/time.html#time.CLOCK_THREAD_CPUTIME_IDX-tr:Xunittest.defaultTestLoaderr:(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.defaultTestLoaderX-tr:Xerrno.EMULTIHOPr:(jjX;http://docs.python.org/3/library/errno.html#errno.EMULTIHOPX-tr:X errno.EILSEQr:(jjX8http://docs.python.org/3/library/errno.html#errno.EILSEQX-tr:X os.O_EXCLr:(jjX2http://docs.python.org/3/library/os.html#os.O_EXCLX-tr:X.xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTSr:(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTSX-tr:X os.F_ULOCKr:(jjX3http://docs.python.org/3/library/os.html#os.F_ULOCKX-tr:X errno.ENOPKGr:(jjX8http://docs.python.org/3/library/errno.html#errno.ENOPKGX-tr:XNoner:(jjX4http://docs.python.org/3/library/constants.html#NoneX-tr:Xssl.PROTOCOL_TLSv1r:(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1X-tr:Xwinreg.REG_RESOURCE_LISTr:(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_LISTX-tr:X errno.EISCONNr:(jjX9http://docs.python.org/3/library/errno.html#errno.EISCONNX-tr:X errno.EBADSLTr:(jjX9http://docs.python.org/3/library/errno.html#errno.EBADSLTX-tr:X os.O_SHLOCKr:(jjX4http://docs.python.org/3/library/os.html#os.O_SHLOCKX-tr:X os.SF_MNOWAITr:(jjX6http://docs.python.org/3/library/os.html#os.SF_MNOWAITX-tr:Xcsv.QUOTE_NONNUMERICr:(jjX>http://docs.python.org/3/library/csv.html#csv.QUOTE_NONNUMERICX-tr:X os.F_LOCKr:(jjX2http://docs.python.org/3/library/os.html#os.F_LOCKX-tr:Xdis.Instruction.opnamer:(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.opnameX-tr:Xsymbol.sym_namer:(jjX<http://docs.python.org/3/library/symbol.html#symbol.sym_nameX-tr:Xxml.dom.EMPTY_NAMESPACEr:(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.EMPTY_NAMESPACEX-tr:Xtoken.DOUBLESLASHr:(jjX=http://docs.python.org/3/library/token.html#token.DOUBLESLASHX-tr:Xgc.DEBUG_COLLECTABLEr:(jjX=http://docs.python.org/3/library/gc.html#gc.DEBUG_COLLECTABLEX-tr:X6xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTEr:(jjXdhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTEX-tr:X METH_STATICr:(jjX:http://docs.python.org/3/c-api/structures.html#METH_STATICX-tr:Xtypes.GetSetDescriptorTyper:(jjXFhttp://docs.python.org/3/library/types.html#types.GetSetDescriptorTypeX-tr:X errno.EBADFDr:(jjX8http://docs.python.org/3/library/errno.html#errno.EBADFDX-tr:X dis.hasfreer:(jjX5http://docs.python.org/3/library/dis.html#dis.hasfreeX-tr:Xformatter.AS_ISr:(jjX?http://docs.python.org/3/library/formatter.html#formatter.AS_ISX-tr:Xuuid.NAMESPACE_X500r:(jjX>http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_X500X-tr:Xsys.last_tracebackr:(jjX<http://docs.python.org/3/library/sys.html#sys.last_tracebackX-tr:X errno.EDOTDOTr:(jjX9http://docs.python.org/3/library/errno.html#errno.EDOTDOTX-tr:Xhtml.entities.codepoint2namer:(jjXPhttp://docs.python.org/3/library/html.entities.html#html.entities.codepoint2nameX-tr:Xdecimal.ROUND_FLOORr:(jjXAhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_FLOORX-tr:X os.SEEK_CURr:(jjX4http://docs.python.org/3/library/os.html#os.SEEK_CURX-tr:X os.O_NOCTTYr:(jjX4http://docs.python.org/3/library/os.html#os.O_NOCTTYX-tr:Xemail.policy.defaultr:(jjXGhttp://docs.python.org/3/library/email.policy.html#email.policy.defaultX-tr:Xtime.CLOCK_MONOTONICr:(jjX?http://docs.python.org/3/library/time.html#time.CLOCK_MONOTONICX-tr:X imp.PY_FROZENr:(jjX7http://docs.python.org/3/library/imp.html#imp.PY_FROZENX-tr:X dis.haslocalr:(jjX6http://docs.python.org/3/library/dis.html#dis.haslocalX-tr:Xmsvcrt.LK_RLCKr:(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_RLCKX-tr:Xdistutils.sysconfig.EXEC_PREFIXr:(jjXNhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.EXEC_PREFIXX-tr:X os.WCONTINUEDr:(jjX6http://docs.python.org/3/library/os.html#os.WCONTINUEDX-tr:Xtoken.RIGHTSHIFTr:(jjX<http://docs.python.org/3/library/token.html#token.RIGHTSHIFTX-tr;X os.SCHED_RRr;(jjX4http://docs.python.org/3/library/os.html#os.SCHED_RRX-tr;Xgc.DEBUG_SAVEALLr;(jjX9http://docs.python.org/3/library/gc.html#gc.DEBUG_SAVEALLX-tr;X re.LOCALEr;(jjX2http://docs.python.org/3/library/re.html#re.LOCALEX-tr;X METH_VARARGSr;(jjX;http://docs.python.org/3/c-api/structures.html#METH_VARARGSX-tr;X1xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONEr ;(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONEX-tr ;Xdecimal.MAX_PRECr ;(jjX>http://docs.python.org/3/library/decimal.html#decimal.MAX_PRECX-tr ;X0xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PEr ;(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PEX-tr;X stat.ST_DEVr;(jjX6http://docs.python.org/3/library/stat.html#stat.ST_DEVX-tr;Xcodecs.BOM_UTF32_BEr;(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_BEX-tr;Xwinreg.KEY_SET_VALUEr;(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.KEY_SET_VALUEX-tr;Xtarfile.GNU_FORMATr;(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.GNU_FORMATX-tr;Xcodecs.BOM_UTF32r;(jjX=http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32X-tr;Xssl.OP_SINGLE_ECDH_USEr;(jjX@http://docs.python.org/3/library/ssl.html#ssl.OP_SINGLE_ECDH_USEX-tr;X sys.platformr;(jjX6http://docs.python.org/3/library/sys.html#sys.platformX-tr;X stat.S_IREADr;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IREADX-tr;Xcalendar.day_namer;(jjX@http://docs.python.org/3/library/calendar.html#calendar.day_nameX-tr ;Xresource.RLIMIT_NPROCr!;(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NPROCX-tr";X%email.contentmanager.raw_data_managerr#;(jjX`http://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.raw_data_managerX-tr$;Xmimetypes.common_typesr%;(jjXFhttp://docs.python.org/3/library/mimetypes.html#mimetypes.common_typesX-tr&;X sys.modulesr';(jjX5http://docs.python.org/3/library/sys.html#sys.modulesX-tr(;Xmsilib.sequencer);(jjX<http://docs.python.org/3/library/msilib.html#msilib.sequenceX-tr*;X4xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REFr+;(jjXbhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REFX-tr,;Xerrno.EHOSTUNREACHr-;(jjX>http://docs.python.org/3/library/errno.html#errno.EHOSTUNREACHX-tr.;X1xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKENr/;(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKENX-tr0;Xdis.Instruction.argr1;(jjX=http://docs.python.org/3/library/dis.html#dis.Instruction.argX-tr2;Xtoken.LEFTSHIFTEQUALr3;(jjX@http://docs.python.org/3/library/token.html#token.LEFTSHIFTEQUALX-tr4;Xpathlib.PurePath.partsr5;(jjXDhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.partsX-tr6;X re.MULTILINEr7;(jjX5http://docs.python.org/3/library/re.html#re.MULTILINEX-tr8;X token.LBRACEr9;(jjX8http://docs.python.org/3/library/token.html#token.LBRACEX-tr:;X/xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHARr;;(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHARX-tr<;X'ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILUREr=;(jjXQhttp://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILUREX-tr>;X errno.EFBIGr?;(jjX7http://docs.python.org/3/library/errno.html#errno.EFBIGX-tr@;Xtabnanny.verboserA;(jjX?http://docs.python.org/3/library/tabnanny.html#tabnanny.verboseX-trB;X os.devnullrC;(jjX3http://docs.python.org/3/library/os.html#os.devnullX-trD;Xstat.SF_IMMUTABLErE;(jjX<http://docs.python.org/3/library/stat.html#stat.SF_IMMUTABLEX-trF;X(xml.sax.handler.feature_string_interningrG;(jjX^http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_string_interningX-trH;X os.pathseprI;(jjX3http://docs.python.org/3/library/os.html#os.pathsepX-trJ;Xos.O_DIRECTORYrK;(jjX7http://docs.python.org/3/library/os.html#os.O_DIRECTORYX-trL;X_thread.TIMEOUT_MAXrM;(jjXAhttp://docs.python.org/3/library/_thread.html#_thread.TIMEOUT_MAXX-trN;Xcsv.QUOTE_MINIMALrO;(jjX;http://docs.python.org/3/library/csv.html#csv.QUOTE_MINIMALX-trP;Xtoken.RIGHTSHIFTEQUALrQ;(jjXAhttp://docs.python.org/3/library/token.html#token.RIGHTSHIFTEQUALX-trR;XPy_TPFLAGS_DICT_SUBCLASSrS;(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_DICT_SUBCLASSX-trT;Xstring.punctuationrU;(jjX?http://docs.python.org/3/library/string.html#string.punctuationX-trV;X stat.S_IXOTHrW;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXOTHX-trX;Xerrno.EDEADLOCKrY;(jjX;http://docs.python.org/3/library/errno.html#errno.EDEADLOCKX-trZ;X errno.ETXTBSYr[;(jjX9http://docs.python.org/3/library/errno.html#errno.ETXTBSYX-tr\;Xsignal.CTRL_BREAK_EVENTr];(jjXDhttp://docs.python.org/3/library/signal.html#signal.CTRL_BREAK_EVENTX-tr^;Xdoctest.ELLIPSISr_;(jjX>http://docs.python.org/3/library/doctest.html#doctest.ELLIPSISX-tr`;X os.O_NDELAYra;(jjX4http://docs.python.org/3/library/os.html#os.O_NDELAYX-trb;Xmimetypes.encodings_maprc;(jjXGhttp://docs.python.org/3/library/mimetypes.html#mimetypes.encodings_mapX-trd;X!asyncio.asyncio.subprocess.STDOUTre;(jjXZhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.STDOUTX-trf;Xsocket.SOCK_SEQPACKETrg;(jjXBhttp://docs.python.org/3/library/socket.html#socket.SOCK_SEQPACKETX-trh;X errno.ENONETri;(jjX8http://docs.python.org/3/library/errno.html#errno.ENONETX-trj;X stat.S_IRGRPrk;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IRGRPX-trl;X os.WNOHANGrm;(jjX3http://docs.python.org/3/library/os.html#os.WNOHANGX-trn;Xerrno.EHOSTDOWNro;(jjX;http://docs.python.org/3/library/errno.html#errno.EHOSTDOWNX-trp;X)xml.parsers.expat.errors.XML_ERROR_SYNTAXrq;(jjXWhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SYNTAXX-trr;X os.O_CREATrs;(jjX3http://docs.python.org/3/library/os.html#os.O_CREATX-trt;X stat.S_IEXECru;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IEXECX-trv;X os.O_APPENDrw;(jjX4http://docs.python.org/3/library/os.html#os.O_APPENDX-trx;X"asyncio.asyncio.subprocess.DEVNULLry;(jjX[http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.DEVNULLX-trz;Xos.RTLD_DEEPBINDr{;(jjX9http://docs.python.org/3/library/os.html#os.RTLD_DEEPBINDX-tr|;X stat.S_IWUSRr};(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWUSRX-tr~;Xssl.OPENSSL_VERSION_INFOr;(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_INFOX-tr;Xhashlib.hash.block_sizer;(jjXEhttp://docs.python.org/3/library/hashlib.html#hashlib.hash.block_sizeX-tr;Xzipfile.ZIP_STOREDr;(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STOREDX-tr;Xcmath.er;(jjX3http://docs.python.org/3/library/cmath.html#cmath.eX-tr;Xsubprocess.STD_ERROR_HANDLEr;(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_ERROR_HANDLEX-tr;Xwinreg.REG_LINKr;(jjX<http://docs.python.org/3/library/winreg.html#winreg.REG_LINKX-tr;X token.RSQBr;(jjX6http://docs.python.org/3/library/token.html#token.RSQBX-tr;X/xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITYr;(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITYX-tr;X errno.ENODATAr;(jjX9http://docs.python.org/3/library/errno.html#errno.ENODATAX-tr;X stat.S_IFBLKr;(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFBLKX-tr;Xsys.__stdout__r;(jjX8http://docs.python.org/3/library/sys.html#sys.__stdout__X-tr;Xsignal.ITIMER_REALr;(jjX?http://docs.python.org/3/library/signal.html#signal.ITIMER_REALX-tr;Xweakref.ProxyTyper;(jjX?http://docs.python.org/3/library/weakref.html#weakref.ProxyTypeX-tr;X imp.PY_SOURCEr;(jjX7http://docs.python.org/3/library/imp.html#imp.PY_SOURCEX-tr;Xsys.ps2r;(jjX1http://docs.python.org/3/library/sys.html#sys.ps2X-tr;Xsocket.AF_INET6r;(jjX<http://docs.python.org/3/library/socket.html#socket.AF_INET6X-tr;X!doctest.REPORT_ONLY_FIRST_FAILUREr;(jjXOhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_ONLY_FIRST_FAILUREX-tr;Xos.sepr;(jjX/http://docs.python.org/3/library/os.html#os.sepX-tr;Xmimetypes.types_mapr;(jjXChttp://docs.python.org/3/library/mimetypes.html#mimetypes.types_mapX-tr;X errno.EXDEVr;(jjX7http://docs.python.org/3/library/errno.html#errno.EXDEVX-tr;X#sunau.AUDIO_FILE_ENCODING_LINEAR_32r;(jjXOhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_32X-tr;X dis.hasconstr;(jjX6http://docs.python.org/3/library/dis.html#dis.hasconstX-tr;X imghdr.testsr;(jjX9http://docs.python.org/3/library/imghdr.html#imghdr.testsX-tr;Xmath.pir;(jjX2http://docs.python.org/3/library/math.html#math.piX-tr;X5xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODINGr;(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODINGX-tr;Xos.EX_UNAVAILABLEr;(jjX:http://docs.python.org/3/library/os.html#os.EX_UNAVAILABLEX-tr;X errno.EINVALr;(jjX8http://docs.python.org/3/library/errno.html#errno.EINVALX-tr;Xos.F_OKr;(jjX0http://docs.python.org/3/library/os.html#os.F_OKX-tr;X"os.path.supports_unicode_filenamesr;(jjXPhttp://docs.python.org/3/library/os.path.html#os.path.supports_unicode_filenamesX-tr;X os.EX_OSFILEr;(jjX5http://docs.python.org/3/library/os.html#os.EX_OSFILEX-tr;X errno.ELIBSCNr;(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBSCNX-tr;Xsys.builtin_module_namesr;(jjXBhttp://docs.python.org/3/library/sys.html#sys.builtin_module_namesX-tr;X errno.ECHILDr;(jjX8http://docs.python.org/3/library/errno.html#errno.ECHILDX-tr;Xplistlib.FMT_XMLr;(jjX?http://docs.python.org/3/library/plistlib.html#plistlib.FMT_XMLX-tr;Xlocale.LC_TIMEr;(jjX;http://docs.python.org/3/library/locale.html#locale.LC_TIMEX-tr;Xstat.UF_NODUMPr;(jjX9http://docs.python.org/3/library/stat.html#stat.UF_NODUMPX-tr;X errno.ENOTTYr;(jjX8http://docs.python.org/3/library/errno.html#errno.ENOTTYX-tr;X curses.ERRr;(jjX7http://docs.python.org/3/library/curses.html#curses.ERRX-tr;X re.IGNORECASEr;(jjX6http://docs.python.org/3/library/re.html#re.IGNORECASEX-tr;X*xml.parsers.expat.errors.XML_ERROR_ABORTEDr;(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ABORTEDX-tr;X socket.PF_RDSr;(jjX:http://docs.python.org/3/library/socket.html#socket.PF_RDSX-tr;Xwinreg.KEY_ALL_ACCESSr;(jjXBhttp://docs.python.org/3/library/winreg.html#winreg.KEY_ALL_ACCESSX-tr;Xerrno.EINPROGRESSr;(jjX=http://docs.python.org/3/library/errno.html#errno.EINPROGRESSX-tr;Xuuid.RESERVED_MICROSOFTr;(jjXBhttp://docs.python.org/3/library/uuid.html#uuid.RESERVED_MICROSOFTX-tr;Xtoken.PERCENTEQUALr;(jjX>http://docs.python.org/3/library/token.html#token.PERCENTEQUALX-tr;Xuuid.NAMESPACE_DNSr;(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_DNSX-tr;Xos.POSIX_FADV_SEQUENTIALr;(jjXAhttp://docs.python.org/3/library/os.html#os.POSIX_FADV_SEQUENTIALX-tr;Xmimetypes.initedr;(jjX@http://docs.python.org/3/library/mimetypes.html#mimetypes.initedX-tr;Xmsvcrt.LK_NBLCKr;(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBLCKX-tr;X errno.ENOCSIr;(jjX8http://docs.python.org/3/library/errno.html#errno.ENOCSIX-tr;Xresource.RLIMIT_MSGQUEUEr;(jjXGhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_MSGQUEUEX-tr;Xwinsound.MB_OKr;(jjX=http://docs.python.org/3/library/winsound.html#winsound.MB_OKX-tr;Xwinreg.HKEY_CURRENT_CONFIGr;(jjXGhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_CONFIGX-tr;X os.O_TEXTr;(jjX2http://docs.python.org/3/library/os.html#os.O_TEXTX-tr;X errno.ENOTNAMr;(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTNAMX-tr;Xwinsound.SND_LOOPr;(jjX@http://docs.python.org/3/library/winsound.html#winsound.SND_LOOPX-tr;Xresource.RLIMIT_SBSIZEr;(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SBSIZEX-tr;Xerrno.errorcoder;(jjX;http://docs.python.org/3/library/errno.html#errno.errorcodeX-tr;X errno.EL2HLTr;(jjX8http://docs.python.org/3/library/errno.html#errno.EL2HLTX-tr;Xssl.VERIFY_CRL_CHECK_LEAFr;(jjXChttp://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_LEAFX-tr;Xhashlib.algorithms_guaranteedr;(jjXKhttp://docs.python.org/3/library/hashlib.html#hashlib.algorithms_guaranteedX-tr;Xmsvcrt.LK_UNLCKr;(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_UNLCKX-tr;Xtime.CLOCK_HIGHRESr;(jjX=http://docs.python.org/3/library/time.html#time.CLOCK_HIGHRESX-tr;X copyrightr;(jjX9http://docs.python.org/3/library/constants.html#copyrightX-tr;X winreg.REG_SZr;(jjX:http://docs.python.org/3/library/winreg.html#winreg.REG_SZX-tr<Xstring.octdigitsr<(jjX=http://docs.python.org/3/library/string.html#string.octdigitsX-tr<Xtoken.STAREQUALr<(jjX;http://docs.python.org/3/library/token.html#token.STAREQUALX-tr<X stat.S_ENFMTr<(jjX7http://docs.python.org/3/library/stat.html#stat.S_ENFMTX-tr<Xxml.parsers.expat.XMLParserTyper<(jjXMhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.XMLParserTypeX-tr<X dis.opmapr <(jjX3http://docs.python.org/3/library/dis.html#dis.opmapX-tr <X os.O_NOATIMEr <(jjX5http://docs.python.org/3/library/os.html#os.O_NOATIMEX-tr <Xwinsound.SND_FILENAMEr <(jjXDhttp://docs.python.org/3/library/winsound.html#winsound.SND_FILENAMEX-tr<Xdis.Instruction.offsetr<(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.offsetX-tr<X3xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITYr<(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITYX-tr<Xcalendar.month_abbrr<(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.month_abbrX-tr<Xmsvcrt.LK_LOCKr<(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_LOCKX-tr<Xerrno.EREMOTEIOr<(jjX;http://docs.python.org/3/library/errno.html#errno.EREMOTEIOX-tr<Xssl.CERT_REQUIREDr<(jjX;http://docs.python.org/3/library/ssl.html#ssl.CERT_REQUIREDX-tr<X os.O_SYNCr<(jjX2http://docs.python.org/3/library/os.html#os.O_SYNCX-tr<Xwinreg.REG_NONEr<(jjX<http://docs.python.org/3/library/winreg.html#winreg.REG_NONEX-tr<X os.O_RSYNCr<(jjX3http://docs.python.org/3/library/os.html#os.O_RSYNCX-tr <X locale.D_FMTr!<(jjX9http://docs.python.org/3/library/locale.html#locale.D_FMTX-tr"<Xsubprocess.DEVNULLr#<(jjXChttp://docs.python.org/3/library/subprocess.html#subprocess.DEVNULLX-tr$<X os.SCHED_FIFOr%<(jjX6http://docs.python.org/3/library/os.html#os.SCHED_FIFOX-tr&<Xsocket.SOCK_CLOEXECr'<(jjX@http://docs.python.org/3/library/socket.html#socket.SOCK_CLOEXECX-tr(<X locale.ERAr)<(jjX7http://docs.python.org/3/library/locale.html#locale.ERAX-tr*<Xssl.OP_NO_TLSv1_1r+<(jjX;http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1_1X-tr,<Xssl.OP_NO_TLSv1_2r-<(jjX;http://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1_2X-tr.<Xwinsound.MB_ICONHANDr/<(jjXChttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONHANDX-tr0<Xemail.policy.strictr1<(jjXFhttp://docs.python.org/3/library/email.policy.html#email.policy.strictX-tr2<Xdoctest.NORMALIZE_WHITESPACEr3<(jjXJhttp://docs.python.org/3/library/doctest.html#doctest.NORMALIZE_WHITESPACEX-tr4<X token.NEWLINEr5<(jjX9http://docs.python.org/3/library/token.html#token.NEWLINEX-tr6<X errno.ELNRNGr7<(jjX8http://docs.python.org/3/library/errno.html#errno.ELNRNGX-tr8<Xwinreg.HKEY_DYN_DATAr9<(jjXAhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_DYN_DATAX-tr:<Xstat.UF_NOUNLINKr;<(jjX;http://docs.python.org/3/library/stat.html#stat.UF_NOUNLINKX-tr<<Xasyncio.asyncio.subprocess.PIPEr=<(jjXXhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.PIPEX-tr><Xlocale.T_FMT_AMPMr?<(jjX>http://docs.python.org/3/library/locale.html#locale.T_FMT_AMPMX-tr@<X METH_KEYWORDSrA<(jjX<http://docs.python.org/3/c-api/structures.html#METH_KEYWORDSX-trB<Xdis.Instruction.argreprrC<(jjXAhttp://docs.python.org/3/library/dis.html#dis.Instruction.argreprX-trD<Xdecimal.ROUND_HALF_UPrE<(jjXChttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_UPX-trF<Xdoctest.REPORTING_FLAGSrG<(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.REPORTING_FLAGSX-trH<Xdis.Instruction.opcoderI<(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.opcodeX-trJ<X errno.EUCLEANrK<(jjX9http://docs.python.org/3/library/errno.html#errno.EUCLEANX-trL<X sys.flagsrM<(jjX3http://docs.python.org/3/library/sys.html#sys.flagsX-trN<Xtypes.FunctionTyperO<(jjX>http://docs.python.org/3/library/types.html#types.FunctionTypeX-trP<X errno.EPROTOrQ<(jjX8http://docs.python.org/3/library/errno.html#errno.EPROTOX-trR<X errno.EPIPErS<(jjX7http://docs.python.org/3/library/errno.html#errno.EPIPEX-trT<X token.RPARrU<(jjX6http://docs.python.org/3/library/token.html#token.RPARX-trV<X os.P_OVERLAYrW<(jjX5http://docs.python.org/3/library/os.html#os.P_OVERLAYX-trX<X/xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCHrY<(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCHX-trZ<Xerrno.EPROTONOSUPPORTr[<(jjXAhttp://docs.python.org/3/library/errno.html#errno.EPROTONOSUPPORTX-tr\<X!sunau.AUDIO_FILE_ENCODING_MULAW_8r]<(jjXMhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_MULAW_8X-tr^<X%winreg.REG_RESOURCE_REQUIREMENTS_LISTr_<(jjXRhttp://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_REQUIREMENTS_LISTX-tr`<Xtarfile.USTAR_FORMATra<(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.USTAR_FORMATX-trb<Xtoken.ERRORTOKENrc<(jjX<http://docs.python.org/3/library/token.html#token.ERRORTOKENX-trd<Xwinreg.REG_DWORD_BIG_ENDIANre<(jjXHhttp://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_BIG_ENDIANX-trf<Xio.DEFAULT_BUFFER_SIZErg<(jjX?http://docs.python.org/3/library/io.html#io.DEFAULT_BUFFER_SIZEX-trh<Xtoken.ELLIPSISri<(jjX:http://docs.python.org/3/library/token.html#token.ELLIPSISX-trj<Xweakref.ReferenceTyperk<(jjXChttp://docs.python.org/3/library/weakref.html#weakref.ReferenceTypeX-trl<Xdecimal.MIN_EMINrm<(jjX>http://docs.python.org/3/library/decimal.html#decimal.MIN_EMINX-trn<Xos.SCHED_RESET_ON_FORKro<(jjX?http://docs.python.org/3/library/os.html#os.SCHED_RESET_ON_FORKX-trp<Xsys.path_importer_cacherq<(jjXAhttp://docs.python.org/3/library/sys.html#sys.path_importer_cacheX-trr<Xdistutils.sysconfig.PREFIXrs<(jjXIhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.PREFIXX-trt<Xmimetypes.knownfilesru<(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.knownfilesX-trv<Xwinreg.REG_DWORD_LITTLE_ENDIANrw<(jjXKhttp://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_LITTLE_ENDIANX-trx<Xos.SCHED_OTHERry<(jjX7http://docs.python.org/3/library/os.html#os.SCHED_OTHERX-trz<X stat.ST_UIDr{<(jjX6http://docs.python.org/3/library/stat.html#stat.ST_UIDX-tr|<Xunittest.mock.DEFAULTr}<(jjXIhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.DEFAULTX-tr~<Xhtml.entities.html5r<(jjXGhttp://docs.python.org/3/library/html.entities.html#html.entities.html5X-tr<Xtoken.MINEQUALr<(jjX:http://docs.python.org/3/library/token.html#token.MINEQUALX-tr<X string.digitsr<(jjX:http://docs.python.org/3/library/string.html#string.digitsX-tr<Xsqlite3.PARSE_DECLTYPESr<(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_DECLTYPESX-tr<X stat.ST_MTIMEr<(jjX8http://docs.python.org/3/library/stat.html#stat.ST_MTIMEX-tr<Xtoken.ATr<(jjX4http://docs.python.org/3/library/token.html#token.ATX-tr<Xwinreg.HKEY_PERFORMANCE_DATAr<(jjXIhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_PERFORMANCE_DATAX-tr<X errno.EMLINKr<(jjX8http://docs.python.org/3/library/errno.html#errno.EMLINKX-tr<X dis.hasjabsr<(jjX5http://docs.python.org/3/library/dis.html#dis.hasjabsX-tr<X posix.environr<(jjX9http://docs.python.org/3/library/posix.html#posix.environX-tr<Xwinreg.KEY_WOW64_32KEYr<(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_32KEYX-tr<X imp.C_BUILTINr<(jjX7http://docs.python.org/3/library/imp.html#imp.C_BUILTINX-tr<XPy_TPFLAGS_HEAPTYPEr<(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HEAPTYPEX-tr<Xtoken.OPr<(jjX4http://docs.python.org/3/library/token.html#token.OPX-tr<X os.O_NOFOLLOWr<(jjX6http://docs.python.org/3/library/os.html#os.O_NOFOLLOWX-tr<X stat.S_IROTHr<(jjX7http://docs.python.org/3/library/stat.html#stat.S_IROTHX-tr<Xssl.VERIFY_CRL_CHECK_CHAINr<(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_CHAINX-tr<X csv.QUOTE_ALLr<(jjX7http://docs.python.org/3/library/csv.html#csv.QUOTE_ALLX-tr<Xre.Ar<(jjX-http://docs.python.org/3/library/re.html#re.AX-tr<Xxml.dom.XML_NAMESPACEr<(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.XML_NAMESPACEX-tr<Xpathlib.PurePath.parentsr<(jjXFhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentsX-tr<Xlicenser<(jjX7http://docs.python.org/3/library/constants.html#licenseX-tr<Xre.Ir<(jjX-http://docs.python.org/3/library/re.html#re.IX-tr<Xerrno.ENOTSOCKr<(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTSOCKX-tr<Xzipfile.ZIP_BZIP2r<(jjX?http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_BZIP2X-tr<Xre.Mr<(jjX-http://docs.python.org/3/library/re.html#re.MX-tr<Xsocket.SocketTyper<(jjX>http://docs.python.org/3/library/socket.html#socket.SocketTypeX-tr<Xtoken.NOTEQUALr<(jjX:http://docs.python.org/3/library/token.html#token.NOTEQUALX-tr<Xhtml.entities.entitydefsr<(jjXLhttp://docs.python.org/3/library/html.entities.html#html.entities.entitydefsX-tr<Xtime.CLOCK_PROCESS_CPUTIME_IDr<(jjXHhttp://docs.python.org/3/library/time.html#time.CLOCK_PROCESS_CPUTIME_IDX-tr<Xwinsound.SND_MEMORYr<(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_MEMORYX-tr<X3xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODINGr<(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODINGX-tr<X token.EQEQUALr<(jjX9http://docs.python.org/3/library/token.html#token.EQEQUALX-tr<Xlocale.LC_CTYPEr<(jjX<http://docs.python.org/3/library/locale.html#locale.LC_CTYPEX-tr<X token.COMMAr<(jjX7http://docs.python.org/3/library/token.html#token.COMMAX-tr<X os.O_RDWRr<(jjX2http://docs.python.org/3/library/os.html#os.O_RDWRX-tr<X os.pardirr<(jjX2http://docs.python.org/3/library/os.html#os.pardirX-tr<X5xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIXr<(jjXchttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIXX-tr<Xos.O_TEMPORARYr<(jjX7http://docs.python.org/3/library/os.html#os.O_TEMPORARYX-tr<Xos.supports_effective_idsr<(jjXBhttp://docs.python.org/3/library/os.html#os.supports_effective_idsX-tr<Xsqlite3.versionr<(jjX=http://docs.python.org/3/library/sqlite3.html#sqlite3.versionX-tr<X curses.OKr<(jjX6http://docs.python.org/3/library/curses.html#curses.OKX-tr<Xgc.DEBUG_STATSr<(jjX7http://docs.python.org/3/library/gc.html#gc.DEBUG_STATSX-tr<Xssl.OP_NO_SSLv3r<(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv3X-tr<Xssl.OP_NO_SSLv2r<(jjX9http://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv2X-tr<Xpathlib.PurePath.anchorr<(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.anchorX-tr<X time.daylightr<(jjX8http://docs.python.org/3/library/time.html#time.daylightX-tr<Xquitr<(jjX4http://docs.python.org/3/library/constants.html#quitX-tr<Xssl.OP_NO_COMPRESSIONr<(jjX?http://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSIONX-tr<Xlocale.ERA_T_FMTr<(jjX=http://docs.python.org/3/library/locale.html#locale.ERA_T_FMTX-tr<Xsubprocess.STD_INPUT_HANDLEr<(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.STD_INPUT_HANDLEX-tr<X errno.EUSERSr<(jjX8http://docs.python.org/3/library/errno.html#errno.EUSERSX-tr<X errno.ELIBBADr<(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBBADX-tr<Xwinsound.SND_NODEFAULTr<(jjXEhttp://docs.python.org/3/library/winsound.html#winsound.SND_NODEFAULTX-tr<X0xml.parsers.expat.errors.XML_ERROR_INVALID_TOKENr<(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_TOKENX-tr<Xunittest.mock.sentinelr<(jjXJhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.sentinelX-tr<X sys.winverr<(jjX4http://docs.python.org/3/library/sys.html#sys.winverX-tr<Xunittest.mock.FILTER_DIRr<(jjXLhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.FILTER_DIRX-tr<Xunicodedata.unidata_versionr<(jjXMhttp://docs.python.org/3/library/unicodedata.html#unicodedata.unidata_versionX-tr<X sunau.AUDIO_FILE_ENCODING_ALAW_8r<(jjXLhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ALAW_8X-tr<Xerrno.ELIBEXECr<(jjX:http://docs.python.org/3/library/errno.html#errno.ELIBEXECX-tr<X ssl.CERT_NONEr<(jjX7http://docs.python.org/3/library/ssl.html#ssl.CERT_NONEX-tr<X socket.PF_CANr<(jjX:http://docs.python.org/3/library/socket.html#socket.PF_CANX-tr<X os.O_WRONLYr<(jjX4http://docs.python.org/3/library/os.html#os.O_WRONLYX-tr<Xcrypt.METHOD_SHA256r<(jjX?http://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA256X-tr=Xos.PRIO_PROCESSr=(jjX8http://docs.python.org/3/library/os.html#os.PRIO_PROCESSX-tr=X errno.ENOMSGr=(jjX8http://docs.python.org/3/library/errno.html#errno.ENOMSGX-tr=Xresource.RUSAGE_BOTHr=(jjXChttp://docs.python.org/3/library/resource.html#resource.RUSAGE_BOTHX-tr=X token.MINUSr=(jjX7http://docs.python.org/3/library/token.html#token.MINUSX-tr=Xos.RTLD_GLOBALr =(jjX7http://docs.python.org/3/library/os.html#os.RTLD_GLOBALX-tr =Xstat.SF_APPENDr =(jjX9http://docs.python.org/3/library/stat.html#stat.SF_APPENDX-tr =Xerrno.ENOTUNIQr =(jjX:http://docs.python.org/3/library/errno.html#errno.ENOTUNIQX-tr=Xos.RTLD_NODELETEr=(jjX9http://docs.python.org/3/library/os.html#os.RTLD_NODELETEX-tr=X,xml.parsers.expat.errors.XML_ERROR_NO_MEMORYr=(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_MEMORYX-tr=Xresource.RLIMIT_MEMLOCKr=(jjXFhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_MEMLOCKX-tr=Xstring.ascii_uppercaser=(jjXChttp://docs.python.org/3/library/string.html#string.ascii_uppercaseX-tr=Xhtml.entities.name2codepointr=(jjXPhttp://docs.python.org/3/library/html.entities.html#html.entities.name2codepointX-tr=Xuuid.RESERVED_NCSr=(jjX<http://docs.python.org/3/library/uuid.html#uuid.RESERVED_NCSX-tr=X"sunau.AUDIO_FILE_ENCODING_LINEAR_8r=(jjXNhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_8X-tr=Xwinreg.HKEY_USERSr=(jjX>http://docs.python.org/3/library/winreg.html#winreg.HKEY_USERSX-tr=X errno.ENOTDIRr=(jjX9http://docs.python.org/3/library/errno.html#errno.ENOTDIRX-tr =Xsignal.ITIMER_VIRTUALr!=(jjXBhttp://docs.python.org/3/library/signal.html#signal.ITIMER_VIRTUALX-tr"=X msilib.textr#=(jjX8http://docs.python.org/3/library/msilib.html#msilib.textX-tr$=Xtoken.PLUSEQUALr%=(jjX;http://docs.python.org/3/library/token.html#token.PLUSEQUALX-tr&=Xresource.RLIMIT_COREr'=(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_COREX-tr(=Xstat.SF_NOUNLINKr)=(jjX;http://docs.python.org/3/library/stat.html#stat.SF_NOUNLINKX-tr*=Xdecimal.ROUND_HALF_DOWNr+=(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_DOWNX-tr,=Xdoctest.REPORT_NDIFFr-=(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_NDIFFX-tr.=X reprlib.aReprr/=(jjX;http://docs.python.org/3/library/reprlib.html#reprlib.aReprX-tr0=X errno.EXFULLr1=(jjX8http://docs.python.org/3/library/errno.html#errno.EXFULLX-tr2=X os.O_PATHr3=(jjX2http://docs.python.org/3/library/os.html#os.O_PATHX-tr4=Xresource.RLIMIT_FSIZEr5=(jjXDhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_FSIZEX-tr6=Xwinsound.SND_NOWAITr7=(jjXBhttp://docs.python.org/3/library/winsound.html#winsound.SND_NOWAITX-tr8=Xerrno.EL2NSYNCr9=(jjX:http://docs.python.org/3/library/errno.html#errno.EL2NSYNCX-tr:=Xre.Lr;=(jjX-http://docs.python.org/3/library/re.html#re.LX-tr<=Xsys.float_repr_styler==(jjX>http://docs.python.org/3/library/sys.html#sys.float_repr_styleX-tr>=Xos.EX_NOTFOUNDr?=(jjX7http://docs.python.org/3/library/os.html#os.EX_NOTFOUNDX-tr@=X os.EX_NOUSERrA=(jjX5http://docs.python.org/3/library/os.html#os.EX_NOUSERX-trB=X+xml.parsers.expat.errors.XML_ERROR_XML_DECLrC=(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_XML_DECLX-trD=X stat.S_IWOTHrE=(jjX7http://docs.python.org/3/library/stat.html#stat.S_IWOTHX-trF=Xcalendar.month_namerG=(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.month_nameX-trH=X os.O_DIRECTrI=(jjX4http://docs.python.org/3/library/os.html#os.O_DIRECTX-trJ=XPy_TPFLAGS_HAVE_FINALIZErK=(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_HAVE_FINALIZEX-trL=X errno.ENOBUFSrM=(jjX9http://docs.python.org/3/library/errno.html#errno.ENOBUFSX-trN=Xlocale.RADIXCHARrO=(jjX=http://docs.python.org/3/library/locale.html#locale.RADIXCHARX-trP=Xos.O_NOINHERITrQ=(jjX7http://docs.python.org/3/library/os.html#os.O_NOINHERITX-trR=Xerrno.EPROTOTYPErS=(jjX<http://docs.python.org/3/library/errno.html#errno.EPROTOTYPEX-trT=Xre.SrU=(jjX-http://docs.python.org/3/library/re.html#re.SX-trV=Xstat.UF_COMPRESSEDrW=(jjX=http://docs.python.org/3/library/stat.html#stat.UF_COMPRESSEDX-trX=Xresource.RLIMIT_RSSrY=(jjXBhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RSSX-trZ=X os.PRIO_PGRPr[=(jjX5http://docs.python.org/3/library/os.html#os.PRIO_PGRPX-tr\=X sys._xoptionsr]=(jjX7http://docs.python.org/3/library/sys.html#sys._xoptionsX-tr^=Xresource.RLIMIT_ASr_=(jjXAhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_ASX-tr`=Xtoken.LESSEQUALra=(jjX;http://docs.python.org/3/library/token.html#token.LESSEQUALX-trb=X METH_COEXISTrc=(jjX;http://docs.python.org/3/c-api/structures.html#METH_COEXISTX-trd=X stat.ST_GIDre=(jjX6http://docs.python.org/3/library/stat.html#stat.ST_GIDX-trf=Xssl.VERIFY_X509_STRICTrg=(jjX@http://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_STRICTX-trh=Xresource.RUSAGE_CHILDRENri=(jjXGhttp://docs.python.org/3/library/resource.html#resource.RUSAGE_CHILDRENX-trj=X os.SCHED_IDLErk=(jjX6http://docs.python.org/3/library/os.html#os.SCHED_IDLEX-trl=Xdoctest.DONT_ACCEPT_TRUE_FOR_1rm=(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_TRUE_FOR_1X-trn=Xdis.Bytecode.first_linero=(jjXAhttp://docs.python.org/3/library/dis.html#dis.Bytecode.first_lineX-trp=Xcurses.versionrq=(jjX;http://docs.python.org/3/library/curses.html#curses.versionX-trr=Xwinreg.KEY_CREATE_LINKrs=(jjXChttp://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_LINKX-trt=X/xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REFru=(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REFX-trv=X#xml.sax.handler.property_xml_stringrw=(jjXYhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_xml_stringX-trx=Xsignal.SIG_BLOCKry=(jjX=http://docs.python.org/3/library/signal.html#signal.SIG_BLOCKX-trz=Xtypes.LambdaTyper{=(jjX<http://docs.python.org/3/library/types.html#types.LambdaTypeX-tr|=Xre.Xr}=(jjX-http://docs.python.org/3/library/re.html#re.XX-tr~=Xsqlite3.PARSE_COLNAMESr=(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_COLNAMESX-tr=X;xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTDr=(jjXihttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTDX-tr=X sys.stderrr=(jjX4http://docs.python.org/3/library/sys.html#sys.stderrX-tr=Xpathlib.PurePath.suffixr=(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixX-tr=Xerrno.EWOULDBLOCKr=(jjX=http://docs.python.org/3/library/errno.html#errno.EWOULDBLOCKX-tr=Xerrno.ESHUTDOWNr=(jjX;http://docs.python.org/3/library/errno.html#errno.ESHUTDOWNX-tr=Xsys.tracebacklimitr=(jjX<http://docs.python.org/3/library/sys.html#sys.tracebacklimitX-tr=Xsite.USER_BASEr=(jjX9http://docs.python.org/3/library/site.html#site.USER_BASEX-tr=X errno.EIOr=(jjX5http://docs.python.org/3/library/errno.html#errno.EIOX-tr=X errno.EBFONTr=(jjX8http://docs.python.org/3/library/errno.html#errno.EBFONTX-tr=X stat.ST_MODEr=(jjX7http://docs.python.org/3/library/stat.html#stat.ST_MODEX-tr=Xsys.ps1r=(jjX1http://docs.python.org/3/library/sys.html#sys.ps1X-tr=Xlocale.LC_MONETARYr=(jjX?http://docs.python.org/3/library/locale.html#locale.LC_MONETARYX-tr=X os.SEEK_ENDr=(jjX4http://docs.python.org/3/library/os.html#os.SEEK_ENDX-tr=Xsubprocess.SW_HIDEr=(jjXChttp://docs.python.org/3/library/subprocess.html#subprocess.SW_HIDEX-tr=Xstring.hexdigitsr=(jjX=http://docs.python.org/3/library/string.html#string.hexdigitsX-tr=X errno.ESPIPEr=(jjX8http://docs.python.org/3/library/errno.html#errno.ESPIPEX-tr=Xmarshal.versionr=(jjX=http://docs.python.org/3/library/marshal.html#marshal.versionX-tr=X errno.ENOMEMr=(jjX8http://docs.python.org/3/library/errno.html#errno.ENOMEMX-tr=Xresource.RUSAGE_SELFr=(jjXChttp://docs.python.org/3/library/resource.html#resource.RUSAGE_SELFX-tr=XPy_TPFLAGS_BYTES_SUBCLASSr=(jjXEhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_BYTES_SUBCLASSX-tr=Xtest.support.is_jythonr=(jjXAhttp://docs.python.org/3/library/test.html#test.support.is_jythonX-tr=X os.EX_NOPERMr=(jjX5http://docs.python.org/3/library/os.html#os.EX_NOPERMX-tr=Xresource.RLIM_INFINITYr=(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIM_INFINITYX-tr=Xtoken.VBAREQUALr=(jjX;http://docs.python.org/3/library/token.html#token.VBAREQUALX-tr=Xtarfile.PAX_FORMATr=(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.PAX_FORMATX-tr=Xtoken.SLASHEQUALr=(jjX<http://docs.python.org/3/library/token.html#token.SLASHEQUALX-tr=X token.PERCENTr=(jjX9http://docs.python.org/3/library/token.html#token.PERCENTX-tr=Xssl.OP_SINGLE_DH_USEr=(jjX>http://docs.python.org/3/library/ssl.html#ssl.OP_SINGLE_DH_USEX-tr=Xerrno.ECONNREFUSEDr=(jjX>http://docs.python.org/3/library/errno.html#errno.ECONNREFUSEDX-tr=Xftplib.all_errorsr=(jjX>http://docs.python.org/3/library/ftplib.html#ftplib.all_errorsX-tr=Xerrno.ENOTEMPTYr=(jjX;http://docs.python.org/3/library/errno.html#errno.ENOTEMPTYX-tr=X os.O_DSYNCr=(jjX3http://docs.python.org/3/library/os.html#os.O_DSYNCX-tr=Xstat.SF_SNAPSHOTr=(jjX;http://docs.python.org/3/library/stat.html#stat.SF_SNAPSHOTX-tr=Xsqlite3.version_infor=(jjXBhttp://docs.python.org/3/library/sqlite3.html#sqlite3.version_infoX-tr=Xcrypt.METHOD_SHA512r=(jjX?http://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA512X-tr=X os.EX_NOINPUTr=(jjX6http://docs.python.org/3/library/os.html#os.EX_NOINPUTX-tr=X dis.opnamer=(jjX4http://docs.python.org/3/library/dis.html#dis.opnameX-tr=X$configparser.MAX_INTERPOLATION_DEPTHr=(jjXWhttp://docs.python.org/3/library/configparser.html#configparser.MAX_INTERPOLATION_DEPTHX-tr=Xdecimal.MIN_ETINYr=(jjX?http://docs.python.org/3/library/decimal.html#decimal.MIN_ETINYX-tr=X METH_CLASSr=(jjX9http://docs.python.org/3/c-api/structures.html#METH_CLASSX-tr=Xdatetime.MINYEARr=(jjX?http://docs.python.org/3/library/datetime.html#datetime.MINYEARX-tr=Xerrno.EPFNOSUPPORTr=(jjX>http://docs.python.org/3/library/errno.html#errno.EPFNOSUPPORTX-tr=Xtoken.AMPEREQUALr=(jjX<http://docs.python.org/3/library/token.html#token.AMPEREQUALX-tr=Xresource.RLIMIT_SWAPr=(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_SWAPX-tr=Xstring.whitespacer=(jjX>http://docs.python.org/3/library/string.html#string.whitespaceX-tr=Xsys.api_versionr=(jjX9http://docs.python.org/3/library/sys.html#sys.api_versionX-tr=Xtoken.CIRCUMFLEXr=(jjX<http://docs.python.org/3/library/token.html#token.CIRCUMFLEXX-tr=X os.WNOWAITr=(jjX3http://docs.python.org/3/library/os.html#os.WNOWAITX-tr=Xos.EX_PROTOCOLr=(jjX7http://docs.python.org/3/library/os.html#os.EX_PROTOCOLX-tr=Xsignal.ITIMER_PROFr=(jjX?http://docs.python.org/3/library/signal.html#signal.ITIMER_PROFX-tr=X time.timezoner=(jjX8http://docs.python.org/3/library/time.html#time.timezoneX-tr=X errno.ENOEXECr=(jjX9http://docs.python.org/3/library/errno.html#errno.ENOEXECX-tr=XCxml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGr=(jjXqhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGX-tr=Xos.RTLD_NOLOADr=(jjX7http://docs.python.org/3/library/os.html#os.RTLD_NOLOADX-tr=Xwinsound.SND_ALIASr=(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_ALIASX-tr=Xos.POSIX_FADV_WILLNEEDr=(jjX?http://docs.python.org/3/library/os.html#os.POSIX_FADV_WILLNEEDX-tr=X sys.last_typer=(jjX7http://docs.python.org/3/library/sys.html#sys.last_typeX-tr=X stat.S_ISUIDr=(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISUIDX-tr=X errno.EAGAINr=(jjX8http://docs.python.org/3/library/errno.html#errno.EAGAINX-tr=Xsite.ENABLE_USER_SITEr=(jjX@http://docs.python.org/3/library/site.html#site.ENABLE_USER_SITEX-tr=X stat.S_IFPORTr=(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFPORTX-tr=Xsqlite3.sqlite_versionr=(jjXDhttp://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_versionX-tr=Xwinsound.MB_ICONEXCLAMATIONr=(jjXJhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONEXCLAMATIONX-tr=Xtest.support.verboser=(jjX?http://docs.python.org/3/library/test.html#test.support.verboseX-tr>X os.EX_OSERRr>(jjX4http://docs.python.org/3/library/os.html#os.EX_OSERRX-tr>Xdecimal.ROUND_UPr>(jjX>http://docs.python.org/3/library/decimal.html#decimal.ROUND_UPX-tr>X os.O_NONBLOCKr>(jjX6http://docs.python.org/3/library/os.html#os.O_NONBLOCKX-tr>Xresource.RLIMIT_RTTIMEr>(jjXEhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_RTTIMEX-tr>Xerrno.ESOCKTNOSUPPORTr >(jjXAhttp://docs.python.org/3/library/errno.html#errno.ESOCKTNOSUPPORTX-tr >X errno.EPERMr >(jjX7http://docs.python.org/3/library/errno.html#errno.EPERMX-tr >X7xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REFr >(jjXehttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REFX-tr>Xresource.RLIMIT_NPTSr>(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_NPTSX-tr>Xzipfile.ZIP_LZMAr>(jjX>http://docs.python.org/3/library/zipfile.html#zipfile.ZIP_LZMAX-tr>X os.F_TLOCKr>(jjX3http://docs.python.org/3/library/os.html#os.F_TLOCKX-tr>Xtypes.CodeTyper>(jjX:http://docs.python.org/3/library/types.html#types.CodeTypeX-tr>X stat.ST_INOr>(jjX6http://docs.python.org/3/library/stat.html#stat.ST_INOX-tr>Xpathlib.PurePath.namer>(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.nameX-tr>Xdecimal.ROUND_DOWNr>(jjX@http://docs.python.org/3/library/decimal.html#decimal.ROUND_DOWNX-tr>X ssl.HAS_SNIr>(jjX5http://docs.python.org/3/library/ssl.html#ssl.HAS_SNIX-tr>Xdecimal.ROUND_CEILINGr>(jjXChttp://docs.python.org/3/library/decimal.html#decimal.ROUND_CEILINGX-tr >X errno.EMFILEr!>(jjX8http://docs.python.org/3/library/errno.html#errno.EMFILEX-tr">Xuuid.NAMESPACE_OIDr#>(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_OIDX-tr$>X gc.callbacksr%>(jjX5http://docs.python.org/3/library/gc.html#gc.callbacksX-tr&>Xsys.executabler'>(jjX8http://docs.python.org/3/library/sys.html#sys.executableX-tr(>X,xml.parsers.expat.errors.XML_ERROR_TEXT_DECLr)>(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TEXT_DECLX-tr*>Xwinreg.HKEY_CLASSES_ROOTr+>(jjXEhttp://docs.python.org/3/library/winreg.html#winreg.HKEY_CLASSES_ROOTX-tr,>Xzipfile.ZIP_DEFLATEDr->(jjXBhttp://docs.python.org/3/library/zipfile.html#zipfile.ZIP_DEFLATEDX-tr.>Xsocket.AF_LINKr/>(jjX;http://docs.python.org/3/library/socket.html#socket.AF_LINKX-tr0>X errno.ENOLINKr1>(jjX9http://docs.python.org/3/library/errno.html#errno.ENOLINKX-tr2>X errno.EL3HLTr3>(jjX8http://docs.python.org/3/library/errno.html#errno.EL3HLTX-tr4>Xos.R_OKr5>(jjX0http://docs.python.org/3/library/os.html#os.R_OKX-tr6>X$sunau.AUDIO_FILE_ENCODING_ADPCM_G721r7>(jjXPhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G721X-tr8>Xsys.hexversionr9>(jjX8http://docs.python.org/3/library/sys.html#sys.hexversionX-tr:>Xuuid.NAMESPACE_URLr;>(jjX=http://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_URLX-tr<>X errno.ESRCHr=>(jjX7http://docs.python.org/3/library/errno.html#errno.ESRCHX-tr>>X errno.ELIBMAXr?>(jjX9http://docs.python.org/3/library/errno.html#errno.ELIBMAXX-tr@>Xtime.CLOCK_MONOTONIC_RAWrA>(jjXChttp://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC_RAWX-trB>Xstat.UF_HIDDENrC>(jjX9http://docs.python.org/3/library/stat.html#stat.UF_HIDDENX-trD>Xssl.VERIFY_DEFAULTrE>(jjX<http://docs.python.org/3/library/ssl.html#ssl.VERIFY_DEFAULTX-trF>Xsys.float_inforG>(jjX8http://docs.python.org/3/library/sys.html#sys.float_infoX-trH>X stat.S_IFSOCKrI>(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFSOCKX-trJ>XPy_TPFLAGS_DEFAULTrK>(jjX>http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_DEFAULTX-trL>Xsys.base_prefixrM>(jjX9http://docs.python.org/3/library/sys.html#sys.base_prefixX-trN>Xos.supports_fdrO>(jjX7http://docs.python.org/3/library/os.html#os.supports_fdX-trP>Xssl.Purpose.CLIENT_AUTHrQ>(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.Purpose.CLIENT_AUTHX-trR>X$xml.sax.handler.feature_external_pesrS>(jjXZhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_pesX-trT>XexitrU>(jjX4http://docs.python.org/3/library/constants.html#exitX-trV>X token.DEDENTrW>(jjX8http://docs.python.org/3/library/token.html#token.DEDENTX-trX>Xtime.CLOCK_REALTIMErY>(jjX>http://docs.python.org/3/library/time.html#time.CLOCK_REALTIMEX-trZ>Xdis.hascomparer[>(jjX8http://docs.python.org/3/library/dis.html#dis.hascompareX-tr\>Xstring.printabler]>(jjX=http://docs.python.org/3/library/string.html#string.printableX-tr^>Xstat.UF_OPAQUEr_>(jjX9http://docs.python.org/3/library/stat.html#stat.UF_OPAQUEX-tr`>Xresource.RLIMIT_DATAra>(jjXChttp://docs.python.org/3/library/resource.html#resource.RLIMIT_DATAX-trb>X errno.ENXIOrc>(jjX7http://docs.python.org/3/library/errno.html#errno.ENXIOX-trd>Xcrypt.METHOD_MD5re>(jjX<http://docs.python.org/3/library/crypt.html#crypt.METHOD_MD5X-trf>X stat.S_IWRITErg>(jjX8http://docs.python.org/3/library/stat.html#stat.S_IWRITEX-trh>X#winreg.REG_FULL_RESOURCE_DESCRIPTORri>(jjXPhttp://docs.python.org/3/library/winreg.html#winreg.REG_FULL_RESOURCE_DESCRIPTORX-trj>XPy_TPFLAGS_UNICODE_SUBCLASSrk>(jjXGhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_UNICODE_SUBCLASSX-trl>X3xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PIrm>(jjXahttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PIX-trn>Xcreditsro>(jjX7http://docs.python.org/3/library/constants.html#creditsX-trp>Xsocket.SOCK_NONBLOCKrq>(jjXAhttp://docs.python.org/3/library/socket.html#socket.SOCK_NONBLOCKX-trr>X+xml.parsers.expat.errors.XML_ERROR_PUBLICIDrs>(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PUBLICIDX-trt>X token.RBRACEru>(jjX8http://docs.python.org/3/library/token.html#token.RBRACEX-trv>X os.altseprw>(jjX2http://docs.python.org/3/library/os.html#os.altsepX-trx>X sys.abiflagsry>(jjX6http://docs.python.org/3/library/sys.html#sys.abiflagsX-trz>X errno.ENOSYSr{>(jjX8http://docs.python.org/3/library/errno.html#errno.ENOSYSX-tr|>X errno.EINTRr}>(jjX7http://docs.python.org/3/library/errno.html#errno.EINTRX-tr~>Xunicodedata.ucd_3_2_0r>(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.ucd_3_2_0X-tr>Xemail.policy.HTTPr>(jjXDhttp://docs.python.org/3/library/email.policy.html#email.policy.HTTPX-tr>X%asynchat.async_chat.ac_in_buffer_sizer>(jjXThttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.ac_in_buffer_sizeX-tr>X os.SEEK_SETr>(jjX4http://docs.python.org/3/library/os.html#os.SEEK_SETX-tr>X&asynchat.async_chat.ac_out_buffer_sizer>(jjXUhttp://docs.python.org/3/library/asynchat.html#asynchat.async_chat.ac_out_buffer_sizeX-tr>X dis.cmp_opr>(jjX4http://docs.python.org/3/library/dis.html#dis.cmp_opX-tr>X"xml.sax.handler.feature_namespacesr>(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespacesX-tr>X os.P_NOWAITr>(jjX4http://docs.python.org/3/library/os.html#os.P_NOWAITX-tr>Xsys.maxunicoder>(jjX8http://docs.python.org/3/library/sys.html#sys.maxunicodeX-tr>X os.EX_USAGEr>(jjX4http://docs.python.org/3/library/os.html#os.EX_USAGEX-tr>Xresource.RLIMIT_CPUr>(jjXBhttp://docs.python.org/3/library/resource.html#resource.RLIMIT_CPUX-tr>X sys.stdinr>(jjX3http://docs.python.org/3/library/sys.html#sys.stdinX-tr>Xos.EX_SOFTWAREr>(jjX7http://docs.python.org/3/library/os.html#os.EX_SOFTWAREX-tr>X sys.dllhandler>(jjX7http://docs.python.org/3/library/sys.html#sys.dllhandleX-tr>Xtoken.GREATEREQUALr>(jjX>http://docs.python.org/3/library/token.html#token.GREATEREQUALX-tr>X os.RTLD_NOWr>(jjX4http://docs.python.org/3/library/os.html#os.RTLD_NOWX-tr>X errno.EIDRMr>(jjX7http://docs.python.org/3/library/errno.html#errno.EIDRMX-tr>Ximp.C_EXTENSIONr>(jjX9http://docs.python.org/3/library/imp.html#imp.C_EXTENSIONX-tr>Xsocket.SOCK_RAWr>(jjX<http://docs.python.org/3/library/socket.html#socket.SOCK_RAWX-tr>Xsocket.SOCK_STREAMr>(jjX?http://docs.python.org/3/library/socket.html#socket.SOCK_STREAMX-tr>Xdoctest.COMPARISON_FLAGSr>(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.COMPARISON_FLAGSX-tr>X errno.EEXISTr>(jjX8http://docs.python.org/3/library/errno.html#errno.EEXISTX-tr>X"xml.sax.handler.feature_validationr>(jjXXhttp://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_validationX-tr>Xos.CLD_CONTINUEDr>(jjX9http://docs.python.org/3/library/os.html#os.CLD_CONTINUEDX-tr>X dis.hasnamer>(jjX5http://docs.python.org/3/library/dis.html#dis.hasnameX-tr>Xplistlib.FMT_BINARYr>(jjXBhttp://docs.python.org/3/library/plistlib.html#plistlib.FMT_BINARYX-tr>Xmimetypes.suffix_mapr>(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.suffix_mapX-tr>Xlocale.CHAR_MAXr>(jjX<http://docs.python.org/3/library/locale.html#locale.CHAR_MAXX-tr>Xtokenize.ENCODINGr>(jjX@http://docs.python.org/3/library/tokenize.html#tokenize.ENCODINGX-tr>Xemail.policy.SMTPr>(jjXDhttp://docs.python.org/3/library/email.policy.html#email.policy.SMTPX-tr>Xos.XATTR_SIZE_MAXr>(jjX:http://docs.python.org/3/library/os.html#os.XATTR_SIZE_MAXX-tr>Xdatetime.MAXYEARr>(jjX?http://docs.python.org/3/library/datetime.html#datetime.MAXYEARX-tr>Xkeyword.kwlistr>(jjX<http://docs.python.org/3/library/keyword.html#keyword.kwlistX-tr>Xwinsound.SND_PURGEr>(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.SND_PURGEX-tr>Xos.supports_dir_fdr>(jjX;http://docs.python.org/3/library/os.html#os.supports_dir_fdX-tr>Xssl.CHANNEL_BINDING_TYPESr>(jjXChttp://docs.python.org/3/library/ssl.html#ssl.CHANNEL_BINDING_TYPESX-tr>X os.CLD_EXITEDr>(jjX6http://docs.python.org/3/library/os.html#os.CLD_EXITEDX-tr>Xos.W_OKr>(jjX0http://docs.python.org/3/library/os.html#os.W_OKX-tr>Xdecimal.HAVE_THREADSr>(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.HAVE_THREADSX-tr>X!xml.parsers.expat.errors.messagesr>(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.messagesX-tr>X token.NUMBERr>(jjX8http://docs.python.org/3/library/token.html#token.NUMBERX-tr>Xtypes.BuiltinMethodTyper>(jjXChttp://docs.python.org/3/library/types.html#types.BuiltinMethodTypeX-tr>Xos.POSIX_FADV_DONTNEEDr>(jjX?http://docs.python.org/3/library/os.html#os.POSIX_FADV_DONTNEEDX-tr>Xsys.exec_prefixr>(jjX9http://docs.python.org/3/library/sys.html#sys.exec_prefixX-tr>Xos.XATTR_CREATEr>(jjX8http://docs.python.org/3/library/os.html#os.XATTR_CREATEX-tr>X sys.copyrightr>(jjX7http://docs.python.org/3/library/sys.html#sys.copyrightX-tr>Xsocket.SOCK_DGRAMr>(jjX>http://docs.python.org/3/library/socket.html#socket.SOCK_DGRAMX-tr>Xerrno.EALREADYr>(jjX:http://docs.python.org/3/library/errno.html#errno.EALREADYX-tr>Xerrno.ETOOMANYREFSr>(jjX>http://docs.python.org/3/library/errno.html#errno.ETOOMANYREFSX-tr>Xerrno.EMSGSIZEr>(jjX:http://docs.python.org/3/library/errno.html#errno.EMSGSIZEX-tr>Xpathlib.PurePath.parentr>(jjXEhttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentX-tr>Xweakref.CallableProxyTyper>(jjXGhttp://docs.python.org/3/library/weakref.html#weakref.CallableProxyTypeX-tr>X os.RTLD_LAZYr>(jjX5http://docs.python.org/3/library/os.html#os.RTLD_LAZYX-tr>XPy_TPFLAGS_BASE_EXC_SUBCLASSr>(jjXHhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_BASE_EXC_SUBCLASSX-tr>Xwinsound.MB_ICONASTERISKr>(jjXGhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONASTERISKX-tr>Xdoctest.REPORT_CDIFFr>(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.REPORT_CDIFFX-tr>Xssl.PROTOCOL_SSLv3r>(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv3X-tr>Xssl.PROTOCOL_SSLv2r>(jjX<http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv2X-tr>X errno.EBADFr>(jjX7http://docs.python.org/3/library/errno.html#errno.EBADFX-tr>X errno.EBADEr>(jjX7http://docs.python.org/3/library/errno.html#errno.EBADEX-tr>X os.environbr>(jjX4http://docs.python.org/3/library/os.html#os.environbX-tr>X os.O_RANDOMr>(jjX4http://docs.python.org/3/library/os.html#os.O_RANDOMX-tr>Xdbm.ndbm.libraryr>(jjX:http://docs.python.org/3/library/dbm.html#dbm.ndbm.libraryX-tr>Xxml.dom.pulldom.default_bufsizer>(jjXUhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.default_bufsizeX-tr>X;xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLINGr>(jjXihttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLINGX-tr?Xresource.RUSAGE_THREADr?(jjXEhttp://docs.python.org/3/library/resource.html#resource.RUSAGE_THREADX-tr?X ssl.HAS_ECDHr?(jjX6http://docs.python.org/3/library/ssl.html#ssl.HAS_ECDHX-tr?X errno.ENOSRr?(jjX7http://docs.python.org/3/library/errno.html#errno.ENOSRX-tr?X errno.EBADRr?(jjX7http://docs.python.org/3/library/errno.html#errno.EBADRX-tr?Xerrno.EAFNOSUPPORTr ?(jjX>http://docs.python.org/3/library/errno.html#errno.EAFNOSUPPORTX-tr ?X token.PLUSr ?(jjX6http://docs.python.org/3/library/token.html#token.PLUSX-tr ?Xlocale.D_T_FMTr ?(jjX;http://docs.python.org/3/library/locale.html#locale.D_T_FMTX-tr?X errno.EROFSr?(jjX7http://docs.python.org/3/library/errno.html#errno.EROFSX-tr?X codecs.BOM_BEr?(jjX:http://docs.python.org/3/library/codecs.html#codecs.BOM_BEX-tr?Xdis.Instruction.is_jump_targetr?(jjXHhttp://docs.python.org/3/library/dis.html#dis.Instruction.is_jump_targetX-tr?X os.P_NOWAITOr?(jjX5http://docs.python.org/3/library/os.html#os.P_NOWAITOX-tr?Xsubprocess.CREATE_NEW_CONSOLEr?(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLEX-tr?X sys.stdoutr?(jjX4http://docs.python.org/3/library/sys.html#sys.stdoutX-tr?Xtoken.CIRCUMFLEXEQUALr?(jjXAhttp://docs.python.org/3/library/token.html#token.CIRCUMFLEXEQUALX-tr?X errno.EFAULTr?(jjX8http://docs.python.org/3/library/errno.html#errno.EFAULTX-tr?X$sunau.AUDIO_FILE_ENCODING_ADPCM_G722r?(jjXPhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G722X-tr ?X token.LPARr!?(jjX6http://docs.python.org/3/library/token.html#token.LPARX-tr"?Xsocket.AF_INETr#?(jjX;http://docs.python.org/3/library/socket.html#socket.AF_INETX-tr$?X+xml.parsers.expat.errors.XML_ERROR_FINISHEDr%?(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FINISHEDX-tr&?X token.AMPERr'?(jjX7http://docs.python.org/3/library/token.html#token.AMPERX-tr(?X stat.S_IFDOORr)?(jjX8http://docs.python.org/3/library/stat.html#stat.S_IFDOORX-tr*?Xtoken.DOUBLESLASHEQUALr+?(jjXBhttp://docs.python.org/3/library/token.html#token.DOUBLESLASHEQUALX-tr,?Xcurses.ascii.controlnamesr-?(jjXLhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.controlnamesX-tr.?Xlocale.LC_MESSAGESr/?(jjX?http://docs.python.org/3/library/locale.html#locale.LC_MESSAGESX-tr0?Xpathlib.PurePath.stemr1?(jjXChttp://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stemX-tr2?Xdoctest.IGNORE_EXCEPTION_DETAILr3?(jjXMhttp://docs.python.org/3/library/doctest.html#doctest.IGNORE_EXCEPTION_DETAILX-tr4?Xcodecs.BOM_UTF32_LEr5?(jjX@http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_LEX-tr6?Xerrno.ENETRESETr7?(jjX;http://docs.python.org/3/library/errno.html#errno.ENETRESETX-tr8?Xerrno.ENAMETOOLONGr9?(jjX>http://docs.python.org/3/library/errno.html#errno.ENAMETOOLONGX-tr:?Xtypes.BuiltinFunctionTyper;?(jjXEhttp://docs.python.org/3/library/types.html#types.BuiltinFunctionTypeX-tr?X errno.EISNAMr??(jjX8http://docs.python.org/3/library/errno.html#errno.EISNAMX-tr@?X(xml.sax.handler.property_lexical_handlerrA?(jjX^http://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_lexical_handlerX-trB?Xsunau.AUDIO_FILE_MAGICrC?(jjXBhttp://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_MAGICX-trD?X stat.S_IFDIRrE?(jjX7http://docs.python.org/3/library/stat.html#stat.S_IFDIRX-trF?Ximp.PY_COMPILEDrG?(jjX9http://docs.python.org/3/library/imp.html#imp.PY_COMPILEDX-trH?Xdecimal.ROUND_HALF_EVENrI?(jjXEhttp://docs.python.org/3/library/decimal.html#decimal.ROUND_HALF_EVENX-trJ?X site.PREFIXESrK?(jjX8http://docs.python.org/3/library/site.html#site.PREFIXESX-trL?Xlocale.LC_NUMERICrM?(jjX>http://docs.python.org/3/library/locale.html#locale.LC_NUMERICX-trN?X stat.S_IXUSRrO?(jjX7http://docs.python.org/3/library/stat.html#stat.S_IXUSRX-trP?Xpickle.HIGHEST_PROTOCOLrQ?(jjXDhttp://docs.python.org/3/library/pickle.html#pickle.HIGHEST_PROTOCOLX-trR?Xmsvcrt.LK_NBRLCKrS?(jjX=http://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBRLCKX-trT?X sys.prefixrU?(jjX4http://docs.python.org/3/library/sys.html#sys.prefixX-trV?Xhttp.client.responsesrW?(jjXGhttp://docs.python.org/3/library/http.client.html#http.client.responsesX-trX?X errno.EDOMrY?(jjX6http://docs.python.org/3/library/errno.html#errno.EDOMX-trZ?Xcodecs.BOM_UTF16r[?(jjX=http://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16X-tr\?Xsignal.SIG_UNBLOCKr]?(jjX?http://docs.python.org/3/library/signal.html#signal.SIG_UNBLOCKX-tr^?X token.LSQBr_?(jjX6http://docs.python.org/3/library/token.html#token.LSQBX-tr`?X1xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIXra?(jjX_http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIXX-trb?Xdis.Instruction.argvalrc?(jjX@http://docs.python.org/3/library/dis.html#dis.Instruction.argvalX-trd?XPy_TPFLAGS_TUPLE_SUBCLASSre?(jjXEhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_TUPLE_SUBCLASSX-trf?Xssl.OPENSSL_VERSION_NUMBERrg?(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_NUMBERX-trh?Xos.POSIX_FADV_NORMALri?(jjX=http://docs.python.org/3/library/os.html#os.POSIX_FADV_NORMALX-trj?XPy_TPFLAGS_READYINGrk?(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_READYINGX-trl?Xssl.PROTOCOL_TLSv1_1rm?(jjX>http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_1X-trn?Xssl.PROTOCOL_TLSv1_2ro?(jjX>http://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_2X-trp?Xmath.erq?(jjX1http://docs.python.org/3/library/math.html#math.eX-trr?X errno.ECOMMrs?(jjX7http://docs.python.org/3/library/errno.html#errno.ECOMMX-trt?X token.LESSru?(jjX6http://docs.python.org/3/library/token.html#token.LESSX-trv?XPy_TPFLAGS_BASETYPErw?(jjX?http://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_BASETYPEX-trx?X ssl.HAS_NPNry?(jjX5http://docs.python.org/3/library/ssl.html#ssl.HAS_NPNX-trz?Xstring.ascii_lowercaser{?(jjXChttp://docs.python.org/3/library/string.html#string.ascii_lowercaseX-tr|?Xwinsound.MB_ICONQUESTIONr}?(jjXGhttp://docs.python.org/3/library/winsound.html#winsound.MB_ICONQUESTIONX-tr~?X errno.ESRMNTr?(jjX8http://docs.python.org/3/library/errno.html#errno.ESRMNTX-tr?XPy_TPFLAGS_TYPE_SUBCLASSr?(jjXDhttp://docs.python.org/3/c-api/typeobj.html#Py_TPFLAGS_TYPE_SUBCLASSX-tr?X token.EQUALr?(jjX7http://docs.python.org/3/library/token.html#token.EQUALX-tr?Xtabnanny.filename_onlyr?(jjXEhttp://docs.python.org/3/library/tabnanny.html#tabnanny.filename_onlyX-tr?X doctest.SKIPr?(jjX:http://docs.python.org/3/library/doctest.html#doctest.SKIPX-tr?Xos.SCHED_SPORADICr?(jjX:http://docs.python.org/3/library/os.html#os.SCHED_SPORADICX-tr?X8xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PEr?(jjXfhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PEX-tr?X stat.S_ISGIDr?(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISGIDX-tr?Xsys.warnoptionsr?(jjX9http://docs.python.org/3/library/sys.html#sys.warnoptionsX-tr?X errno.ENOENTr?(jjX8http://docs.python.org/3/library/errno.html#errno.ENOENTX-tr?uXstd:termr?}r?(Xvirtual machiner?(jjX;http://docs.python.org/3/glossary.html#term-virtual-machineX-tr?X __future__r?(jjX2http://docs.python.org/3/glossary.html#term-futureX-tr?X named tupler?(jjX7http://docs.python.org/3/glossary.html#term-named-tupleX-tr?Xiteratorr?(jjX4http://docs.python.org/3/glossary.html#term-iteratorX-tr?Xlbylr?(jjX0http://docs.python.org/3/glossary.html#term-lbylX-tr?Xgeneric functionr?(jjX<http://docs.python.org/3/glossary.html#term-generic-functionX-tr?X interpretedr?(jjX7http://docs.python.org/3/glossary.html#term-interpretedX-tr?Xbytecoder?(jjX4http://docs.python.org/3/glossary.html#term-bytecodeX-tr?X python 3000r?(jjX7http://docs.python.org/3/glossary.html#term-python-3000X-tr?Xcoercionr?(jjX4http://docs.python.org/3/glossary.html#term-coercionX-tr?Xabstract base classr?(jjX?http://docs.python.org/3/glossary.html#term-abstract-base-classX-tr?X generatorr?(jjX5http://docs.python.org/3/glossary.html#term-generatorX-tr?X file objectr?(jjX7http://docs.python.org/3/glossary.html#term-file-objectX-tr?Xcomplex numberr?(jjX:http://docs.python.org/3/glossary.html#term-complex-numberX-tr?Xpath entry finderr?(jjX=http://docs.python.org/3/glossary.html#term-path-entry-finderX-tr?X2to3r?(jjX/http://docs.python.org/3/glossary.html#term-to3X-tr?Xkeyword argumentr?(jjX<http://docs.python.org/3/glossary.html#term-keyword-argumentX-tr?Xnamespace packager?(jjX=http://docs.python.org/3/glossary.html#term-namespace-packageX-tr?X>>>r?(jjX,http://docs.python.org/3/glossary.html#term-X-tr?Xtriple-quoted stringr?(jjX@http://docs.python.org/3/glossary.html#term-triple-quoted-stringX-tr?X statementr?(jjX5http://docs.python.org/3/glossary.html#term-statementX-tr?X module specr?(jjX7http://docs.python.org/3/glossary.html#term-module-specX-tr?Xgilr?(jjX/http://docs.python.org/3/glossary.html#term-gilX-tr?Xtyper?(jjX0http://docs.python.org/3/glossary.html#term-typeX-tr?X immutabler?(jjX5http://docs.python.org/3/glossary.html#term-immutableX-tr?Xfinderr?(jjX2http://docs.python.org/3/glossary.html#term-finderX-tr?Xbytes-like objectr?(jjX=http://docs.python.org/3/glossary.html#term-bytes-like-objectX-tr?Xfunctionr?(jjX4http://docs.python.org/3/glossary.html#term-functionX-tr?X...r?(jjX-http://docs.python.org/3/glossary.html#term-1X-tr?Xprovisional packager?(jjX?http://docs.python.org/3/glossary.html#term-provisional-packageX-tr?Xcontext managerr?(jjX;http://docs.python.org/3/glossary.html#term-context-managerX-tr?Xspecial methodr?(jjX:http://docs.python.org/3/glossary.html#term-special-methodX-tr?Xglobal interpreter lockr?(jjXChttp://docs.python.org/3/glossary.html#term-global-interpreter-lockX-tr?X text filer?(jjX5http://docs.python.org/3/glossary.html#term-text-fileX-tr?Xloaderr?(jjX2http://docs.python.org/3/glossary.html#term-loaderX-tr?X decoratorr?(jjX5http://docs.python.org/3/glossary.html#term-decoratorX-tr?Xlist comprehensionr?(jjX>http://docs.python.org/3/glossary.html#term-list-comprehensionX-tr?Xcpythonr?(jjX3http://docs.python.org/3/glossary.html#term-cpythonX-tr?Xprovisional apir?(jjX;http://docs.python.org/3/glossary.html#term-provisional-apiX-tr?Xlistr?(jjX0http://docs.python.org/3/glossary.html#term-listX-tr?Xpath based finderr?(jjX=http://docs.python.org/3/glossary.html#term-path-based-finderX-tr?Xgarbage collectionr?(jjX>http://docs.python.org/3/glossary.html#term-garbage-collectionX-tr?Xvirtual environmentr?(jjX?http://docs.python.org/3/glossary.html#term-virtual-environmentX-tr?Xidler?(jjX0http://docs.python.org/3/glossary.html#term-idleX-tr?X zen of pythonr?(jjX9http://docs.python.org/3/glossary.html#term-zen-of-pythonX-tr?X duck-typingr?(jjX7http://docs.python.org/3/glossary.html#term-duck-typingX-tr?Xregular packager?(jjX;http://docs.python.org/3/glossary.html#term-regular-packageX-tr?Xfunction annotationr?(jjX?http://docs.python.org/3/glossary.html#term-function-annotationX-tr?Xreference countr?(jjX;http://docs.python.org/3/glossary.html#term-reference-countX-tr?Xmeta path finderr?(jjX<http://docs.python.org/3/glossary.html#term-meta-path-finderX-tr?Xfloor divisionr?(jjX:http://docs.python.org/3/glossary.html#term-floor-divisionX-tr?X interactiver?(jjX7http://docs.python.org/3/glossary.html#term-interactiveX-tr?Xpositional argumentr?(jjX?http://docs.python.org/3/glossary.html#term-positional-argumentX-tr?Xsequencer?(jjX4http://docs.python.org/3/glossary.html#term-sequenceX-tr@Xbdflr@(jjX0http://docs.python.org/3/glossary.html#term-bdflX-tr@X attributer@(jjX5http://docs.python.org/3/glossary.html#term-attributeX-tr@Xargumentr@(jjX4http://docs.python.org/3/glossary.html#term-argumentX-tr@Xmoduler@(jjX2http://docs.python.org/3/glossary.html#term-moduleX-tr@Xeafpr @(jjX0http://docs.python.org/3/glossary.html#term-eafpX-tr @X importingr @(jjX5http://docs.python.org/3/glossary.html#term-importingX-tr @Xnew-style classr @(jjX;http://docs.python.org/3/glossary.html#term-new-style-classX-tr@Xstruct sequencer@(jjX;http://docs.python.org/3/glossary.html#term-struct-sequenceX-tr@Xpythonicr@(jjX4http://docs.python.org/3/glossary.html#term-pythonicX-tr@Xslicer@(jjX1http://docs.python.org/3/glossary.html#term-sliceX-tr@Xiterabler@(jjX4http://docs.python.org/3/glossary.html#term-iterableX-tr@X descriptorr@(jjX6http://docs.python.org/3/glossary.html#term-descriptorX-tr@X namespacer@(jjX5http://docs.python.org/3/glossary.html#term-namespaceX-tr@X __slots__r@(jjX1http://docs.python.org/3/glossary.html#term-slotsX-tr@X binary filer@(jjX7http://docs.python.org/3/glossary.html#term-binary-fileX-tr@Ximporterr@(jjX4http://docs.python.org/3/glossary.html#term-importerX-tr @Xqualified namer!@(jjX:http://docs.python.org/3/glossary.html#term-qualified-nameX-tr"@Xfile-like objectr#@(jjX<http://docs.python.org/3/glossary.html#term-file-like-objectX-tr$@Xmutabler%@(jjX3http://docs.python.org/3/glossary.html#term-mutableX-tr&@X metaclassr'@(jjX5http://docs.python.org/3/glossary.html#term-metaclassX-tr(@Xmethodr)@(jjX2http://docs.python.org/3/glossary.html#term-methodX-tr*@Xpath entry hookr+@(jjX;http://docs.python.org/3/glossary.html#term-path-entry-hookX-tr,@X dictionaryr-@(jjX6http://docs.python.org/3/glossary.html#term-dictionaryX-tr.@Xobjectr/@(jjX2http://docs.python.org/3/glossary.html#term-objectX-tr0@X docstringr1@(jjX5http://docs.python.org/3/glossary.html#term-docstringX-tr2@Xmappingr3@(jjX3http://docs.python.org/3/glossary.html#term-mappingX-tr4@Xextension moduler5@(jjX<http://docs.python.org/3/glossary.html#term-extension-moduleX-tr6@X key functionr7@(jjX8http://docs.python.org/3/glossary.html#term-key-functionX-tr8@Xmethod resolution orderr9@(jjXChttp://docs.python.org/3/glossary.html#term-method-resolution-orderX-tr:@Xclassr;@(jjX1http://docs.python.org/3/glossary.html#term-classX-tr<@Xhashabler=@(jjX4http://docs.python.org/3/glossary.html#term-hashableX-tr>@X import pathr?@(jjX7http://docs.python.org/3/glossary.html#term-import-pathX-tr@@XpackagerA@(jjX3http://docs.python.org/3/glossary.html#term-packageX-trB@X parameterrC@(jjX5http://docs.python.org/3/glossary.html#term-parameterX-trD@X path entryrE@(jjX6http://docs.python.org/3/glossary.html#term-path-entryX-trF@Xsingle dispatchrG@(jjX;http://docs.python.org/3/glossary.html#term-single-dispatchX-trH@XportionrI@(jjX3http://docs.python.org/3/glossary.html#term-portionX-trJ@XmrorK@(jjX/http://docs.python.org/3/glossary.html#term-mroX-trL@Xuniversal newlinesrM@(jjX>http://docs.python.org/3/glossary.html#term-universal-newlinesX-trN@Xgenerator expressionrO@(jjX@http://docs.python.org/3/glossary.html#term-generator-expressionX-trP@X nested scoperQ@(jjX8http://docs.python.org/3/glossary.html#term-nested-scopeX-trR@XviewrS@(jjX0http://docs.python.org/3/glossary.html#term-viewX-trT@X expressionrU@(jjX6http://docs.python.org/3/glossary.html#term-expressionX-trV@XlambdarW@(jjX2http://docs.python.org/3/glossary.html#term-lambdaX-trX@uX py:functionrY@}rZ@(Xallr[@(jjX3http://docs.python.org/3/library/functions.html#allX-tr\@Xcodecs.iterencoder]@(jjX>http://docs.python.org/3/library/codecs.html#codecs.iterencodeX-tr^@Xtest.support.bind_portr_@(jjXAhttp://docs.python.org/3/library/test.html#test.support.bind_portX-tr`@Xssl.get_server_certificatera@(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.get_server_certificateX-trb@X os.chflagsrc@(jjX3http://docs.python.org/3/library/os.html#os.chflagsX-trd@X stat.S_ISLNKre@(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISLNKX-trf@X os.removedirsrg@(jjX6http://docs.python.org/3/library/os.html#os.removedirsX-trh@Xsite.getusersitepackagesri@(jjXChttp://docs.python.org/3/library/site.html#site.getusersitepackagesX-trj@Xhmac.compare_digestrk@(jjX>http://docs.python.org/3/library/hmac.html#hmac.compare_digestX-trl@X os.openptyrm@(jjX3http://docs.python.org/3/library/os.html#os.openptyX-trn@Xtypes.new_classro@(jjX;http://docs.python.org/3/library/types.html#types.new_classX-trp@Xctypes.pointerrq@(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.pointerX-trr@Xinspect.getgeneratorlocalsrs@(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.getgeneratorlocalsX-trt@Xplatform.platformru@(jjX@http://docs.python.org/3/library/platform.html#platform.platformX-trv@Xresource.getpagesizerw@(jjXChttp://docs.python.org/3/library/resource.html#resource.getpagesizeX-trx@Xstatistics.modery@(jjX@http://docs.python.org/3/library/statistics.html#statistics.modeX-trz@Xunicodedata.digitr{@(jjXChttp://docs.python.org/3/library/unicodedata.html#unicodedata.digitX-tr|@Xfilecmp.cmpfilesr}@(jjX>http://docs.python.org/3/library/filecmp.html#filecmp.cmpfilesX-tr~@Xoperator.__and__r@(jjX?http://docs.python.org/3/library/operator.html#operator.__and__X-tr@Xgettext.textdomainr@(jjX@http://docs.python.org/3/library/gettext.html#gettext.textdomainX-tr@Ximportlib.util.decode_sourcer@(jjXLhttp://docs.python.org/3/library/importlib.html#importlib.util.decode_sourceX-tr@Xshutil.make_archiver@(jjX@http://docs.python.org/3/library/shutil.html#shutil.make_archiveX-tr@Xquopri.encodestringr@(jjX@http://docs.python.org/3/library/quopri.html#quopri.encodestringX-tr@X time.sleepr@(jjX5http://docs.python.org/3/library/time.html#time.sleepX-tr@Xzipfile.is_zipfiler@(jjX@http://docs.python.org/3/library/zipfile.html#zipfile.is_zipfileX-tr@X quopri.encoder@(jjX:http://docs.python.org/3/library/quopri.html#quopri.encodeX-tr@X warnings.warnr@(jjX<http://docs.python.org/3/library/warnings.html#warnings.warnX-tr@X*distutils.ccompiler.gen_preprocess_optionsr@(jjXYhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_preprocess_optionsX-tr@X imp.get_magicr@(jjX7http://docs.python.org/3/library/imp.html#imp.get_magicX-tr@Xbase64.b64encoder@(jjX=http://docs.python.org/3/library/base64.html#base64.b64encodeX-tr@X pdb.runevalr@(jjX5http://docs.python.org/3/library/pdb.html#pdb.runevalX-tr@Xwebbrowser.open_newr@(jjXDhttp://docs.python.org/3/library/webbrowser.html#webbrowser.open_newX-tr@Xoperator.__rshift__r@(jjXBhttp://docs.python.org/3/library/operator.html#operator.__rshift__X-tr@Xoperator.__sub__r@(jjX?http://docs.python.org/3/library/operator.html#operator.__sub__X-tr@X turtle.byer@(jjX7http://docs.python.org/3/library/turtle.html#turtle.byeX-tr@X stat.S_ISCHRr@(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISCHRX-tr@Xinspect.getfullargspecr@(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getfullargspecX-tr@Ximportlib.util.set_packager@(jjXJhttp://docs.python.org/3/library/importlib.html#importlib.util.set_packageX-tr@X heapq.merger@(jjX7http://docs.python.org/3/library/heapq.html#heapq.mergeX-tr@Xipaddress.ip_addressr@(jjXDhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_addressX-tr@Xxml.dom.pulldom.parseStringr@(jjXQhttp://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.parseStringX-tr@Xtest.support.anticipate_failurer@(jjXJhttp://docs.python.org/3/library/test.html#test.support.anticipate_failureX-tr@Xoperator.setitemr@(jjX?http://docs.python.org/3/library/operator.html#operator.setitemX-tr@Xturtle.onreleaser@(jjX=http://docs.python.org/3/library/turtle.html#turtle.onreleaseX-tr@Xcontextlib.suppressr@(jjXDhttp://docs.python.org/3/library/contextlib.html#contextlib.suppressX-tr@Xsignal.sigwaitinfor@(jjX?http://docs.python.org/3/library/signal.html#signal.sigwaitinfoX-tr@X operator.and_r@(jjX<http://docs.python.org/3/library/operator.html#operator.and_X-tr@Xwinreg.SetValuer@(jjX<http://docs.python.org/3/library/winreg.html#winreg.SetValueX-tr@Xdistutils.dir_util.copy_treer@(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.copy_treeX-tr@Xtempfile.mkdtempr@(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.mkdtempX-tr@Xstringprep.in_table_c11_c12r@(jjXLhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11_c12X-tr@X turtle.rightr@(jjX9http://docs.python.org/3/library/turtle.html#turtle.rightX-tr@Xabc.abstractpropertyr@(jjX>http://docs.python.org/3/library/abc.html#abc.abstractpropertyX-tr@Xoperator.__ne__r@(jjX>http://docs.python.org/3/library/operator.html#operator.__ne__X-tr@X crypt.mksaltr@(jjX8http://docs.python.org/3/library/crypt.html#crypt.mksaltX-tr@X(distutils.ccompiler.get_default_compilerr@(jjXWhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.get_default_compilerX-tr@Xsys.setcheckintervalr@(jjX>http://docs.python.org/3/library/sys.html#sys.setcheckintervalX-tr@Xasyncio.coroutiner@(jjXDhttp://docs.python.org/3/library/asyncio-task.html#asyncio.coroutineX-tr@Xcodecs.registerr@(jjX<http://docs.python.org/3/library/codecs.html#codecs.registerX-tr@Xturtle.begin_polyr@(jjX>http://docs.python.org/3/library/turtle.html#turtle.begin_polyX-tr@X issubclassr@(jjX:http://docs.python.org/3/library/functions.html#issubclassX-tr@X ast.parser@(jjX3http://docs.python.org/3/library/ast.html#ast.parseX-tr@X_thread.allocate_lockr@(jjXChttp://docs.python.org/3/library/_thread.html#_thread.allocate_lockX-tr@X operator.imulr@(jjX<http://docs.python.org/3/library/operator.html#operator.imulX-tr@X math.ldexpr@(jjX5http://docs.python.org/3/library/math.html#math.ldexpX-tr@X cmath.tanhr@(jjX6http://docs.python.org/3/library/cmath.html#cmath.tanhX-tr@Xinspect.currentframer@(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.currentframeX-tr@Xmsilib.add_tablesr@(jjX>http://docs.python.org/3/library/msilib.html#msilib.add_tablesX-tr@X imp.reloadr@(jjX4http://docs.python.org/3/library/imp.html#imp.reloadX-tr@X os.getsidr@(jjX2http://docs.python.org/3/library/os.html#os.getsidX-tr@Xsumr@(jjX3http://docs.python.org/3/library/functions.html#sumX-tr@Xxml.parsers.expat.ErrorStringr@(jjXKhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ErrorStringX-tr@Xbase64.standard_b64decoder@(jjXFhttp://docs.python.org/3/library/base64.html#base64.standard_b64decodeX-tr@Xmath.logr@(jjX3http://docs.python.org/3/library/math.html#math.logX-tr@Xlinecache.clearcacher@(jjXDhttp://docs.python.org/3/library/linecache.html#linecache.clearcacheX-tr@Xabsr@(jjX3http://docs.python.org/3/library/functions.html#absX-tr@Xtextwrap.indentr@(jjX>http://docs.python.org/3/library/textwrap.html#textwrap.indentX-tr@Xunittest.mock.create_autospecr@(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.create_autospecX-tr@Xasyncio.start_serverr@(jjXIhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.start_serverX-tr@X os.path.joinr@(jjX:http://docs.python.org/3/library/os.path.html#os.path.joinX-tr@Xtest.support.load_package_testsr@(jjXJhttp://docs.python.org/3/library/test.html#test.support.load_package_testsX-tr@Xheapq.heappushpopr@(jjX=http://docs.python.org/3/library/heapq.html#heapq.heappushpopX-tr@Xinspect.getsourcer@(jjX?http://docs.python.org/3/library/inspect.html#inspect.getsourceX-trAXthreading.active_countrA(jjXFhttp://docs.python.org/3/library/threading.html#threading.active_countX-trAXos.path.sameopenfilerA(jjXBhttp://docs.python.org/3/library/os.path.html#os.path.sameopenfileX-trAXipaddress.v4_int_to_packedrA(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.v4_int_to_packedX-trAXsys._clear_type_cacherA(jjX?http://docs.python.org/3/library/sys.html#sys._clear_type_cacheX-trAXstringprep.in_table_c3r A(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c3X-tr AXstringprep.in_table_c4r A(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c4X-tr AXstringprep.in_table_c5r A(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c5X-trAXstringprep.in_table_c6rA(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c6X-trAXstringprep.in_table_c7rA(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c7X-trAXstringprep.in_table_c8rA(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c8X-trAXstringprep.in_table_c9rA(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c9X-trAXtest.support.temp_cwdrA(jjX@http://docs.python.org/3/library/test.html#test.support.temp_cwdX-trAXtraceback.print_tbrA(jjXBhttp://docs.python.org/3/library/traceback.html#traceback.print_tbX-trAX signal.alarmrA(jjX9http://docs.python.org/3/library/signal.html#signal.alarmX-trAXtest.support.requiresrA(jjX@http://docs.python.org/3/library/test.html#test.support.requiresX-trAXwinreg.DeleteKeyExrA(jjX?http://docs.python.org/3/library/winreg.html#winreg.DeleteKeyExX-tr AXdifflib.context_diffr!A(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.context_diffX-tr"AX turtle.xcorr#A(jjX8http://docs.python.org/3/library/turtle.html#turtle.xcorX-tr$AXos.nicer%A(jjX0http://docs.python.org/3/library/os.html#os.niceX-tr&AXdifflib.restorer'A(jjX=http://docs.python.org/3/library/difflib.html#difflib.restoreX-tr(AXaudioop.getsampler)A(jjX?http://docs.python.org/3/library/audioop.html#audioop.getsampleX-tr*AX uu.decoder+A(jjX2http://docs.python.org/3/library/uu.html#uu.decodeX-tr,AXitertools.cycler-A(jjX?http://docs.python.org/3/library/itertools.html#itertools.cycleX-tr.AX ctypes.resizer/A(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.resizeX-tr0AXtempfile.SpooledTemporaryFiler1A(jjXLhttp://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFileX-tr2AXdoctest.register_optionflagr3A(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.register_optionflagX-tr4AX dbm.ndbm.openr5A(jjX7http://docs.python.org/3/library/dbm.html#dbm.ndbm.openX-tr6AXcontextlib.contextmanagerr7A(jjXJhttp://docs.python.org/3/library/contextlib.html#contextlib.contextmanagerX-tr8AXlogging.getLogRecordFactoryr9A(jjXIhttp://docs.python.org/3/library/logging.html#logging.getLogRecordFactoryX-tr:AXtest.support.make_bad_fdr;A(jjXChttp://docs.python.org/3/library/test.html#test.support.make_bad_fdX-trAX spwd.getspnamr?A(jjX8http://docs.python.org/3/library/spwd.html#spwd.getspnamX-tr@AXplatform.architecturerAA(jjXDhttp://docs.python.org/3/library/platform.html#platform.architectureX-trBAXos.path.getatimerCA(jjX>http://docs.python.org/3/library/os.path.html#os.path.getatimeX-trDAX distutils.fancy_getopt.wrap_textrEA(jjXOhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.wrap_textX-trFAX os.setpgidrGA(jjX3http://docs.python.org/3/library/os.html#os.setpgidX-trHAXparser.st2listrIA(jjX;http://docs.python.org/3/library/parser.html#parser.st2listX-trJAX msvcrt.putwchrKA(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.putwchX-trLAXplatform.python_implementationrMA(jjXMhttp://docs.python.org/3/library/platform.html#platform.python_implementationX-trNAXfileinput.filelinenorOA(jjXDhttp://docs.python.org/3/library/fileinput.html#fileinput.filelinenoX-trPAXsymtable.symtablerQA(jjX@http://docs.python.org/3/library/symtable.html#symtable.symtableX-trRAXsysconfig.get_path_namesrSA(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_path_namesX-trTAXwsgiref.util.guess_schemerUA(jjXGhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.guess_schemeX-trVAX msvcrt.getcherWA(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.getcheX-trXAX"distutils.sysconfig.get_config_varrYA(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varX-trZAX locale.atoir[A(jjX8http://docs.python.org/3/library/locale.html#locale.atoiX-tr\AXimportlib.util.spec_from_loaderr]A(jjXOhttp://docs.python.org/3/library/importlib.html#importlib.util.spec_from_loaderX-tr^AXsubprocess.check_callr_A(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.check_callX-tr`AXaudioop.reverseraA(jjX=http://docs.python.org/3/library/audioop.html#audioop.reverseX-trbAXcurses.reset_shell_modercA(jjXDhttp://docs.python.org/3/library/curses.html#curses.reset_shell_modeX-trdAX turtle.gotoreA(jjX8http://docs.python.org/3/library/turtle.html#turtle.gotoX-trfAXos.chmodrgA(jjX1http://docs.python.org/3/library/os.html#os.chmodX-trhAXlogging.criticalriA(jjX>http://docs.python.org/3/library/logging.html#logging.criticalX-trjAXlocale.getdefaultlocalerkA(jjXDhttp://docs.python.org/3/library/locale.html#locale.getdefaultlocaleX-trlAXcurses.textpad.rectanglermA(jjXEhttp://docs.python.org/3/library/curses.html#curses.textpad.rectangleX-trnAX locale.atofroA(jjX8http://docs.python.org/3/library/locale.html#locale.atofX-trpAXplatform.mac_verrqA(jjX?http://docs.python.org/3/library/platform.html#platform.mac_verX-trrAXdifflib.IS_CHARACTER_JUNKrsA(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.IS_CHARACTER_JUNKX-trtAX os.getpgidruA(jjX3http://docs.python.org/3/library/os.html#os.getpgidX-trvAX cmath.exprwA(jjX5http://docs.python.org/3/library/cmath.html#cmath.expX-trxAXpkgutil.get_loaderryA(jjX@http://docs.python.org/3/library/pkgutil.html#pkgutil.get_loaderX-trzAX#distutils.fancy_getopt.fancy_getoptr{A(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.fancy_getoptX-tr|AX_thread.get_identr}A(jjX?http://docs.python.org/3/library/_thread.html#_thread.get_identX-tr~AXbinascii.a2b_qprA(jjX>http://docs.python.org/3/library/binascii.html#binascii.a2b_qpX-trAXoperator.is_notrA(jjX>http://docs.python.org/3/library/operator.html#operator.is_notX-trAXtime.localtimerA(jjX9http://docs.python.org/3/library/time.html#time.localtimeX-trAXfaulthandler.enablerA(jjXFhttp://docs.python.org/3/library/faulthandler.html#faulthandler.enableX-trAX cgitb.handlerrA(jjX9http://docs.python.org/3/library/cgitb.html#cgitb.handlerX-trAXdistutils.util.rfc822_escaperA(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.util.rfc822_escapeX-trAX html.escaperA(jjX6http://docs.python.org/3/library/html.html#html.escapeX-trAXossaudiodev.openmixerrA(jjXGhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.openmixerX-trAXcgi.print_environ_usagerA(jjXAhttp://docs.python.org/3/library/cgi.html#cgi.print_environ_usageX-trAXunittest.mock.patch.dictrA(jjXLhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.dictX-trAXaudioop.minmaxrA(jjX<http://docs.python.org/3/library/audioop.html#audioop.minmaxX-trAX pickle.loadsrA(jjX9http://docs.python.org/3/library/pickle.html#pickle.loadsX-trAXstatistics.median_highrA(jjXGhttp://docs.python.org/3/library/statistics.html#statistics.median_highX-trAXturtle.tiltanglerA(jjX=http://docs.python.org/3/library/turtle.html#turtle.tiltangleX-trAXsocket.inet_ptonrA(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ptonX-trAXoperator.__not__rA(jjX?http://docs.python.org/3/library/operator.html#operator.__not__X-trAXctypes.WinErrorrA(jjX<http://docs.python.org/3/library/ctypes.html#ctypes.WinErrorX-trAXsocket.inet_atonrA(jjX=http://docs.python.org/3/library/socket.html#socket.inet_atonX-trAXreadline.get_history_itemrA(jjXHhttp://docs.python.org/3/library/readline.html#readline.get_history_itemX-trAX plistlib.dumprA(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.dumpX-trAXsys.setswitchintervalrA(jjX?http://docs.python.org/3/library/sys.html#sys.setswitchintervalX-trAXinspect.getclasstreerA(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getclasstreeX-trAXsocket.sethostnamerA(jjX?http://docs.python.org/3/library/socket.html#socket.sethostnameX-trAX msvcrt.putchrA(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.putchX-trAX turtle.undorA(jjX8http://docs.python.org/3/library/turtle.html#turtle.undoX-trAX turtle.ycorrA(jjX8http://docs.python.org/3/library/turtle.html#turtle.ycorX-trAXcsv.list_dialectsrA(jjX;http://docs.python.org/3/library/csv.html#csv.list_dialectsX-trAXxml.dom.minidom.parseStringrA(jjXQhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.parseStringX-trAXaudioop.lin2linrA(jjX=http://docs.python.org/3/library/audioop.html#audioop.lin2linX-trAX%multiprocessing.sharedctypes.RawArrayrA(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.RawArrayX-trAXinspect.isroutinerA(jjX?http://docs.python.org/3/library/inspect.html#inspect.isroutineX-trAXdelattrrA(jjX7http://docs.python.org/3/library/functions.html#delattrX-trAXmodulefinder.AddPackagePathrA(jjXNhttp://docs.python.org/3/library/modulefinder.html#modulefinder.AddPackagePathX-trAXparser.compilestrA(jjX=http://docs.python.org/3/library/parser.html#parser.compilestX-trAXos.get_exec_pathrA(jjX9http://docs.python.org/3/library/os.html#os.get_exec_pathX-trAXplatform.python_version_tuplerA(jjXLhttp://docs.python.org/3/library/platform.html#platform.python_version_tupleX-trAX zlib.crc32rA(jjX5http://docs.python.org/3/library/zlib.html#zlib.crc32X-trAXsocket.gethostnamerA(jjX?http://docs.python.org/3/library/socket.html#socket.gethostnameX-trAXsysconfig.get_config_varrA(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_varX-trAXfileinput.isfirstlinerA(jjXEhttp://docs.python.org/3/library/fileinput.html#fileinput.isfirstlineX-trAXunittest.mock.patchrA(jjXGhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patchX-trAX select.kqueuerA(jjX:http://docs.python.org/3/library/select.html#select.kqueueX-trAXmath.erfrA(jjX3http://docs.python.org/3/library/math.html#math.erfX-trAXturtle.distancerA(jjX<http://docs.python.org/3/library/turtle.html#turtle.distanceX-trAXcurses.ascii.iscntrlrA(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.iscntrlX-trAXos.getgrouplistrA(jjX8http://docs.python.org/3/library/os.html#os.getgrouplistX-trAXaudioop.findfitrA(jjX=http://docs.python.org/3/library/audioop.html#audioop.findfitX-trAX_thread.start_new_threadrA(jjXFhttp://docs.python.org/3/library/_thread.html#_thread.start_new_threadX-trAXinspect.getmodulerA(jjX?http://docs.python.org/3/library/inspect.html#inspect.getmoduleX-trAXlinecache.getlinerA(jjXAhttp://docs.python.org/3/library/linecache.html#linecache.getlineX-trAX operator.eqrA(jjX:http://docs.python.org/3/library/operator.html#operator.eqX-trAXasyncio.open_connectionrA(jjXLhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.open_connectionX-trAX operator.iaddrA(jjX<http://docs.python.org/3/library/operator.html#operator.iaddX-trAX os.lchownrA(jjX2http://docs.python.org/3/library/os.html#os.lchownX-trAXoperator.truthrA(jjX=http://docs.python.org/3/library/operator.html#operator.truthX-trAXdoctest.testsourcerA(jjX@http://docs.python.org/3/library/doctest.html#doctest.testsourceX-trAX os.cpu_countrA(jjX5http://docs.python.org/3/library/os.html#os.cpu_countX-trAXcurses.initscrrA(jjX;http://docs.python.org/3/library/curses.html#curses.initscrX-trAXwebbrowser.getrA(jjX?http://docs.python.org/3/library/webbrowser.html#webbrowser.getX-trAX gc.enablerA(jjX2http://docs.python.org/3/library/gc.html#gc.enableX-trAXxml.sax.saxutils.quoteattrrA(jjXNhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.quoteattrX-trAXreadline.set_startup_hookrA(jjXHhttp://docs.python.org/3/library/readline.html#readline.set_startup_hookX-trAXfnmatch.translaterA(jjX?http://docs.python.org/3/library/fnmatch.html#fnmatch.translateX-trAXurllib.parse.unquote_to_bytesrA(jjXPhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote_to_bytesX-trAXatexit.unregisterrA(jjX>http://docs.python.org/3/library/atexit.html#atexit.unregisterX-trBX operator.ipowrB(jjX<http://docs.python.org/3/library/operator.html#operator.ipowX-trBXcurses.ascii.isgraphrB(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isgraphX-trBX"email.utils.collapse_rfc2231_valuerB(jjXShttp://docs.python.org/3/library/email.util.html#email.utils.collapse_rfc2231_valueX-trBX os.getuidrB(jjX2http://docs.python.org/3/library/os.html#os.getuidX-trBX gzip.compressr B(jjX8http://docs.python.org/3/library/gzip.html#gzip.compressX-tr BXplistlib.writePlistr B(jjXBhttp://docs.python.org/3/library/plistlib.html#plistlib.writePlistX-tr BXcurses.termattrsr B(jjX=http://docs.python.org/3/library/curses.html#curses.termattrsX-trBX curses.napmsrB(jjX9http://docs.python.org/3/library/curses.html#curses.napmsX-trBXimportlib.import_modulerB(jjXGhttp://docs.python.org/3/library/importlib.html#importlib.import_moduleX-trBXfpectl.turnon_sigfperB(jjXAhttp://docs.python.org/3/library/fpectl.html#fpectl.turnon_sigfpeX-trBXos.path.realpathrB(jjX>http://docs.python.org/3/library/os.path.html#os.path.realpathX-trBXcurses.def_prog_moderB(jjXAhttp://docs.python.org/3/library/curses.html#curses.def_prog_modeX-trBX math.copysignrB(jjX8http://docs.python.org/3/library/math.html#math.copysignX-trBXtest.support.run_unittestrB(jjXDhttp://docs.python.org/3/library/test.html#test.support.run_unittestX-trBXos.getpriorityrB(jjX7http://docs.python.org/3/library/os.html#os.getpriorityX-trBX curses.noechorB(jjX:http://docs.python.org/3/library/curses.html#curses.noechoX-tr BXparser.issuiter!B(jjX;http://docs.python.org/3/library/parser.html#parser.issuiteX-tr"BX math.erfcr#B(jjX4http://docs.python.org/3/library/math.html#math.erfcX-tr$BX turtle.speedr%B(jjX9http://docs.python.org/3/library/turtle.html#turtle.speedX-tr&BXensurepip.bootstrapr'B(jjXChttp://docs.python.org/3/library/ensurepip.html#ensurepip.bootstrapX-tr(BX math.sinhr)B(jjX4http://docs.python.org/3/library/math.html#math.sinhX-tr*BX inspect.stackr+B(jjX;http://docs.python.org/3/library/inspect.html#inspect.stackX-tr,BX turtle.cloner-B(jjX9http://docs.python.org/3/library/turtle.html#turtle.cloneX-tr.BXinspect.getsourcefiler/B(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getsourcefileX-tr0BXssl.get_default_verify_pathsr1B(jjXFhttp://docs.python.org/3/library/ssl.html#ssl.get_default_verify_pathsX-tr2BX classmethodr3B(jjX;http://docs.python.org/3/library/functions.html#classmethodX-tr4BXfileinput.inputr5B(jjX?http://docs.python.org/3/library/fileinput.html#fileinput.inputX-tr6BXturtle.shapetransformr7B(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.shapetransformX-tr8BXshutil.copyfiler9B(jjX<http://docs.python.org/3/library/shutil.html#shutil.copyfileX-tr:BXoperator.__gt__r;B(jjX>http://docs.python.org/3/library/operator.html#operator.__gt__X-trBXwinreg.QueryValueExr?B(jjX@http://docs.python.org/3/library/winreg.html#winreg.QueryValueExX-tr@BXturtle.undobufferentriesrAB(jjXEhttp://docs.python.org/3/library/turtle.html#turtle.undobufferentriesX-trBBXunicodedata.decompositionrCB(jjXKhttp://docs.python.org/3/library/unicodedata.html#unicodedata.decompositionX-trDBXoperator.__neg__rEB(jjX?http://docs.python.org/3/library/operator.html#operator.__neg__X-trFBXshutil.get_archive_formatsrGB(jjXGhttp://docs.python.org/3/library/shutil.html#shutil.get_archive_formatsX-trHBXwarnings.showwarningrIB(jjXChttp://docs.python.org/3/library/warnings.html#warnings.showwarningX-trJBXplatform.python_compilerrKB(jjXGhttp://docs.python.org/3/library/platform.html#platform.python_compilerX-trLBXoperator.__ixor__rMB(jjX@http://docs.python.org/3/library/operator.html#operator.__ixor__X-trNBXhelprOB(jjX4http://docs.python.org/3/library/functions.html#helpX-trPBXvarsrQB(jjX4http://docs.python.org/3/library/functions.html#varsX-trRBXgetopt.gnu_getoptrSB(jjX>http://docs.python.org/3/library/getopt.html#getopt.gnu_getoptX-trTBXtokenize.detect_encodingrUB(jjXGhttp://docs.python.org/3/library/tokenize.html#tokenize.detect_encodingX-trVBXos.syncrWB(jjX0http://docs.python.org/3/library/os.html#os.syncX-trXBX"email.iterators.body_line_iteratorrYB(jjXXhttp://docs.python.org/3/library/email.iterators.html#email.iterators.body_line_iteratorX-trZBXcurses.tigetstrr[B(jjX<http://docs.python.org/3/library/curses.html#curses.tigetstrX-tr\BXcurses.getmouser]B(jjX<http://docs.python.org/3/library/curses.html#curses.getmouseX-tr^BX turtle.tracerr_B(jjX:http://docs.python.org/3/library/turtle.html#turtle.tracerX-tr`BXcurses.ascii.unctrlraB(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.unctrlX-trbBXreprlib.recursive_reprrcB(jjXDhttp://docs.python.org/3/library/reprlib.html#reprlib.recursive_reprX-trdBXoperator.itruedivreB(jjX@http://docs.python.org/3/library/operator.html#operator.itruedivX-trfBXtraceback.extract_stackrgB(jjXGhttp://docs.python.org/3/library/traceback.html#traceback.extract_stackX-trhBX asyncio.waitriB(jjX?http://docs.python.org/3/library/asyncio-task.html#asyncio.waitX-trjBX os.listdirrkB(jjX3http://docs.python.org/3/library/os.html#os.listdirX-trlBXsignal.sigtimedwaitrmB(jjX@http://docs.python.org/3/library/signal.html#signal.sigtimedwaitX-trnBX pdb.set_traceroB(jjX7http://docs.python.org/3/library/pdb.html#pdb.set_traceX-trpBX operator.is_rqB(jjX;http://docs.python.org/3/library/operator.html#operator.is_X-trrBXturtle.degreesrsB(jjX;http://docs.python.org/3/library/turtle.html#turtle.degreesX-trtBX parser.suiteruB(jjX9http://docs.python.org/3/library/parser.html#parser.suiteX-trvBXsys.getallocatedblocksrwB(jjX@http://docs.python.org/3/library/sys.html#sys.getallocatedblocksX-trxBXsys._debugmallocstatsryB(jjX?http://docs.python.org/3/library/sys.html#sys._debugmallocstatsX-trzBXdbm.openr{B(jjX2http://docs.python.org/3/library/dbm.html#dbm.openX-tr|BXfpectl.turnoff_sigfper}B(jjXBhttp://docs.python.org/3/library/fpectl.html#fpectl.turnoff_sigfpeX-tr~BX uuid.getnoderB(jjX7http://docs.python.org/3/library/uuid.html#uuid.getnodeX-trBXsys.getdlopenflagsrB(jjX<http://docs.python.org/3/library/sys.html#sys.getdlopenflagsX-trBXasyncio.wait_forrB(jjXChttp://docs.python.org/3/library/asyncio-task.html#asyncio.wait_forX-trBXinspect.isframerB(jjX=http://docs.python.org/3/library/inspect.html#inspect.isframeX-trBXoperator.__truediv__rB(jjXChttp://docs.python.org/3/library/operator.html#operator.__truediv__X-trBXreadline.add_historyrB(jjXChttp://docs.python.org/3/library/readline.html#readline.add_historyX-trBXemail.encoders.encode_nooprB(jjXOhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_noopX-trBXos.path.islinkrB(jjX<http://docs.python.org/3/library/os.path.html#os.path.islinkX-trBXsocket.getservbynamerB(jjXAhttp://docs.python.org/3/library/socket.html#socket.getservbynameX-trBXturtle.shapesizerB(jjX=http://docs.python.org/3/library/turtle.html#turtle.shapesizeX-trBXdoctest.script_from_examplesrB(jjXJhttp://docs.python.org/3/library/doctest.html#doctest.script_from_examplesX-trBXos.majorrB(jjX1http://docs.python.org/3/library/os.html#os.majorX-trBXinspect.getouterframesrB(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getouterframesX-trBX math.truncrB(jjX5http://docs.python.org/3/library/math.html#math.truncX-trBX marshal.dumpsrB(jjX;http://docs.python.org/3/library/marshal.html#marshal.dumpsX-trBXimp.release_lockrB(jjX:http://docs.python.org/3/library/imp.html#imp.release_lockX-trBXcurses.doupdaterB(jjX<http://docs.python.org/3/library/curses.html#curses.doupdateX-trBXaudioop.ulaw2linrB(jjX>http://docs.python.org/3/library/audioop.html#audioop.ulaw2linX-trBXaudioop.lin2alawrB(jjX>http://docs.python.org/3/library/audioop.html#audioop.lin2alawX-trBX uuid.uuid3rB(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid3X-trBX sys.gettracerB(jjX6http://docs.python.org/3/library/sys.html#sys.gettraceX-trBX locale.strrB(jjX7http://docs.python.org/3/library/locale.html#locale.strX-trBXlogging.getLoggerClassrB(jjXDhttp://docs.python.org/3/library/logging.html#logging.getLoggerClassX-trBX cgi.escaperB(jjX4http://docs.python.org/3/library/cgi.html#cgi.escapeX-trBXcalendar.weekdayrB(jjX?http://docs.python.org/3/library/calendar.html#calendar.weekdayX-trBXwarnings.filterwarningsrB(jjXFhttp://docs.python.org/3/library/warnings.html#warnings.filterwarningsX-trBXrandom.getstaterB(jjX<http://docs.python.org/3/library/random.html#random.getstateX-trBXreadline.replace_history_itemrB(jjXLhttp://docs.python.org/3/library/readline.html#readline.replace_history_itemX-trBXctypes.CFUNCTYPErB(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.CFUNCTYPEX-trBXdecimal.setcontextrB(jjX@http://docs.python.org/3/library/decimal.html#decimal.setcontextX-trBXdecimal.localcontextrB(jjXBhttp://docs.python.org/3/library/decimal.html#decimal.localcontextX-trBXos.path.lexistsrB(jjX=http://docs.python.org/3/library/os.path.html#os.path.lexistsX-trBXxml.etree.ElementTree.parserB(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.parseX-trBX%multiprocessing.get_all_start_methodsrB(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_all_start_methodsX-trBXinspect.isclassrB(jjX=http://docs.python.org/3/library/inspect.html#inspect.isclassX-trBX shutil.chownrB(jjX9http://docs.python.org/3/library/shutil.html#shutil.chownX-trBXitertools.combinationsrB(jjXFhttp://docs.python.org/3/library/itertools.html#itertools.combinationsX-trBX binhex.hexbinrB(jjX:http://docs.python.org/3/library/binhex.html#binhex.hexbinX-trBX weakref.proxyrB(jjX;http://docs.python.org/3/library/weakref.html#weakref.proxyX-trBXcodecs.lookup_errorrB(jjX@http://docs.python.org/3/library/codecs.html#codecs.lookup_errorX-trBXitertools.islicerB(jjX@http://docs.python.org/3/library/itertools.html#itertools.isliceX-trBXinspect.isabstractrB(jjX@http://docs.python.org/3/library/inspect.html#inspect.isabstractX-trBXxml.etree.ElementTree.XMLIDrB(jjXWhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLIDX-trBX curses.getsyxrB(jjX:http://docs.python.org/3/library/curses.html#curses.getsyxX-trBXlogging.config.listenrB(jjXJhttp://docs.python.org/3/library/logging.config.html#logging.config.listenX-trBXdoctest.DocTestSuiterB(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocTestSuiteX-trBXurllib.request.pathname2urlrB(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.pathname2urlX-trBXbase64.b16decoderB(jjX=http://docs.python.org/3/library/base64.html#base64.b16decodeX-trBXfileinput.linenorB(jjX@http://docs.python.org/3/library/fileinput.html#fileinput.linenoX-trBXcurses.color_contentrB(jjXAhttp://docs.python.org/3/library/curses.html#curses.color_contentX-trBX os.truncaterB(jjX4http://docs.python.org/3/library/os.html#os.truncateX-trBXimaplib.Int2APrB(jjX<http://docs.python.org/3/library/imaplib.html#imaplib.Int2APX-trBXturtle.getcanvasrB(jjX=http://docs.python.org/3/library/turtle.html#turtle.getcanvasX-trBX turtle.isdownrB(jjX:http://docs.python.org/3/library/turtle.html#turtle.isdownX-trBXinspect.isgeneratorrB(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.isgeneratorX-trBX os.unsetenvrB(jjX4http://docs.python.org/3/library/os.html#os.unsetenvX-trBXmultiprocessing.connection.waitrB(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.waitX-trBXsys.displayhookrB(jjX9http://docs.python.org/3/library/sys.html#sys.displayhookX-trBX parser.exprrB(jjX8http://docs.python.org/3/library/parser.html#parser.exprX-trBX os.makedevrB(jjX3http://docs.python.org/3/library/os.html#os.makedevX-trBX math.asinrB(jjX4http://docs.python.org/3/library/math.html#math.asinX-trBXheapq.heapreplacerB(jjX=http://docs.python.org/3/library/heapq.html#heapq.heapreplaceX-trBX os.removerB(jjX2http://docs.python.org/3/library/os.html#os.removeX-trBXxml.sax.make_parserrB(jjXAhttp://docs.python.org/3/library/xml.sax.html#xml.sax.make_parserX-trBXensurepip.versionrB(jjXAhttp://docs.python.org/3/library/ensurepip.html#ensurepip.versionX-trCX!multiprocessing.sharedctypes.copyrC(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.copyX-trCXpprint.isreadablerC(jjX>http://docs.python.org/3/library/pprint.html#pprint.isreadableX-trCXos.fwalkrC(jjX1http://docs.python.org/3/library/os.html#os.fwalkX-trCXos.closerC(jjX1http://docs.python.org/3/library/os.html#os.closeX-trCXabc.get_cache_tokenr C(jjX=http://docs.python.org/3/library/abc.html#abc.get_cache_tokenX-tr CXwebbrowser.openr C(jjX@http://docs.python.org/3/library/webbrowser.html#webbrowser.openX-tr CX cgi.parser C(jjX3http://docs.python.org/3/library/cgi.html#cgi.parseX-trCX math.frexprC(jjX5http://docs.python.org/3/library/math.html#math.frexpX-trCXsndhdr.whathdrrC(jjX;http://docs.python.org/3/library/sndhdr.html#sndhdr.whathdrX-trCXbinascii.b2a_hexrC(jjX?http://docs.python.org/3/library/binascii.html#binascii.b2a_hexX-trCX cmath.asinrC(jjX6http://docs.python.org/3/library/cmath.html#cmath.asinX-trCX pty.spawnrC(jjX3http://docs.python.org/3/library/pty.html#pty.spawnX-trCX pickle.loadrC(jjX8http://docs.python.org/3/library/pickle.html#pickle.loadX-trCX operator.mulrC(jjX;http://docs.python.org/3/library/operator.html#operator.mulX-trCXcodecs.getencoderrC(jjX>http://docs.python.org/3/library/codecs.html#codecs.getencoderX-trCXxml.dom.getDOMImplementationrC(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.getDOMImplementationX-tr CX code.interactr!C(jjX8http://docs.python.org/3/library/code.html#code.interactX-tr"CX syslog.syslogr#C(jjX:http://docs.python.org/3/library/syslog.html#syslog.syslogX-tr$CXsys.getdefaultencodingr%C(jjX@http://docs.python.org/3/library/sys.html#sys.getdefaultencodingX-tr&CXtracemalloc.take_snapshotr'C(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.take_snapshotX-tr(CXcodecs.register_errorr)C(jjXBhttp://docs.python.org/3/library/codecs.html#codecs.register_errorX-tr*CXinspect.getframeinfor+C(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getframeinfoX-tr,CXdirectory_createdr-C(jjXChttp://docs.python.org/3/distutils/builtdist.html#directory_createdX-tr.CX math.radiansr/C(jjX7http://docs.python.org/3/library/math.html#math.radiansX-tr0CXoperator.__iand__r1C(jjX@http://docs.python.org/3/library/operator.html#operator.__iand__X-tr2CXbinascii.a2b_base64r3C(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.a2b_base64X-tr4CXinspect.getinnerframesr5C(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getinnerframesX-tr6CXfilterr7C(jjX6http://docs.python.org/3/library/functions.html#filterX-tr8CX glob.iglobr9C(jjX5http://docs.python.org/3/library/glob.html#glob.iglobX-tr:CX turtle.ltr;C(jjX6http://docs.python.org/3/library/turtle.html#turtle.ltX-trCX os.fchmodr?C(jjX2http://docs.python.org/3/library/os.html#os.fchmodX-tr@CXos.readrAC(jjX0http://docs.python.org/3/library/os.html#os.readX-trBCXdis.get_instructionsrCC(jjX>http://docs.python.org/3/library/dis.html#dis.get_instructionsX-trDCXtest.support.forgetrEC(jjX>http://docs.python.org/3/library/test.html#test.support.forgetX-trFCXplatform.releaserGC(jjX?http://docs.python.org/3/library/platform.html#platform.releaseX-trHCXstringprep.in_table_b1rIC(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_b1X-trJCXsocket.if_nametoindexrKC(jjXBhttp://docs.python.org/3/library/socket.html#socket.if_nametoindexX-trLCXtraceback.extract_tbrMC(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.extract_tbX-trNCX enumeraterOC(jjX9http://docs.python.org/3/library/functions.html#enumerateX-trPCXos.set_handle_inheritablerQC(jjXBhttp://docs.python.org/3/library/os.html#os.set_handle_inheritableX-trRCXmultiprocessing.set_executablerSC(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.set_executableX-trTCXshutil.copymoderUC(jjX<http://docs.python.org/3/library/shutil.html#shutil.copymodeX-trVCXturtle.onclickrWC(jjX;http://docs.python.org/3/library/turtle.html#turtle.onclickX-trXCXinspect.getmrorYC(jjX<http://docs.python.org/3/library/inspect.html#inspect.getmroX-trZCXconcurrent.futures.waitr[C(jjXPhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.waitX-tr\CXgettext.installr]C(jjX=http://docs.python.org/3/library/gettext.html#gettext.installX-tr^CXinspect.getmoduleinfor_C(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getmoduleinfoX-tr`CX struct.unpackraC(jjX:http://docs.python.org/3/library/struct.html#struct.unpackX-trbCX,multiprocessing.connection.deliver_challengercC(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.deliver_challengeX-trdCXos.path.isfilereC(jjX<http://docs.python.org/3/library/os.path.html#os.path.isfileX-trfCXplistlib.readPlistFromBytesrgC(jjXJhttp://docs.python.org/3/library/plistlib.html#plistlib.readPlistFromBytesX-trhCX plistlib.loadriC(jjX<http://docs.python.org/3/library/plistlib.html#plistlib.loadX-trjCXturtle.addshaperkC(jjX<http://docs.python.org/3/library/turtle.html#turtle.addshapeX-trlCXtabnanny.checkrmC(jjX=http://docs.python.org/3/library/tabnanny.html#tabnanny.checkX-trnCX importlib.util.module_for_loaderroC(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.module_for_loaderX-trpCXrandom.getrandbitsrqC(jjX?http://docs.python.org/3/library/random.html#random.getrandbitsX-trrCXsubprocess.callrsC(jjX@http://docs.python.org/3/library/subprocess.html#subprocess.callX-trtCX shutil.unregister_archive_formatruC(jjXMhttp://docs.python.org/3/library/shutil.html#shutil.unregister_archive_formatX-trvCXos._exitrwC(jjX1http://docs.python.org/3/library/os.html#os._exitX-trxCX token.ISEOFryC(jjX7http://docs.python.org/3/library/token.html#token.ISEOFX-trzCX os.setxattrr{C(jjX4http://docs.python.org/3/library/os.html#os.setxattrX-tr|CX marshal.loadr}C(jjX:http://docs.python.org/3/library/marshal.html#marshal.loadX-tr~CXmodulefinder.ReplacePackagerC(jjXNhttp://docs.python.org/3/library/modulefinder.html#modulefinder.ReplacePackageX-trCXos.path.existsrC(jjX<http://docs.python.org/3/library/os.path.html#os.path.existsX-trCXcurses.ungetmouserC(jjX>http://docs.python.org/3/library/curses.html#curses.ungetmouseX-trCXsocket.inet_ntoarC(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ntoaX-trCXwinreg.OpenKeyrC(jjX;http://docs.python.org/3/library/winreg.html#winreg.OpenKeyX-trCXwsgiref.simple_server.demo_apprC(jjXLhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.demo_appX-trCXemail.utils.decode_paramsrC(jjXJhttp://docs.python.org/3/library/email.util.html#email.utils.decode_paramsX-trCXwsgiref.validate.validatorrC(jjXHhttp://docs.python.org/3/library/wsgiref.html#wsgiref.validate.validatorX-trCXtypes.prepare_classrC(jjX?http://docs.python.org/3/library/types.html#types.prepare_classX-trCX base64.encoderC(jjX:http://docs.python.org/3/library/base64.html#base64.encodeX-trCXsocket.inet_ntoprC(jjX=http://docs.python.org/3/library/socket.html#socket.inet_ntopX-trCXos.execlrC(jjX1http://docs.python.org/3/library/os.html#os.execlX-trCX sys.settracerC(jjX6http://docs.python.org/3/library/sys.html#sys.settraceX-trCXoperator.indexOfrC(jjX?http://docs.python.org/3/library/operator.html#operator.indexOfX-trCXbinascii.b2a_uurC(jjX>http://docs.python.org/3/library/binascii.html#binascii.b2a_uuX-trCXmimetypes.guess_extensionrC(jjXIhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_extensionX-trCX stat.S_ISFIFOrC(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISFIFOX-trCXsignal.sigwaitrC(jjX;http://docs.python.org/3/library/signal.html#signal.sigwaitX-trCXbz2.decompressrC(jjX8http://docs.python.org/3/library/bz2.html#bz2.decompressX-trCXbase64.b32encoderC(jjX=http://docs.python.org/3/library/base64.html#base64.b32encodeX-trCXcurses.killcharrC(jjX<http://docs.python.org/3/library/curses.html#curses.killcharX-trCXos.execvrC(jjX1http://docs.python.org/3/library/os.html#os.execvX-trCXgetpass.getpassrC(jjX=http://docs.python.org/3/library/getpass.html#getpass.getpassX-trCX#distutils.archive_util.make_tarballrC(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_tarballX-trCXitertools.dropwhilerC(jjXChttp://docs.python.org/3/library/itertools.html#itertools.dropwhileX-trCXwinreg.LoadKeyrC(jjX;http://docs.python.org/3/library/winreg.html#winreg.LoadKeyX-trCXpdb.post_mortemrC(jjX9http://docs.python.org/3/library/pdb.html#pdb.post_mortemX-trCX ssl.RAND_egdrC(jjX6http://docs.python.org/3/library/ssl.html#ssl.RAND_egdX-trCXoperator.invertrC(jjX>http://docs.python.org/3/library/operator.html#operator.invertX-trCXpickletools.disrC(jjXAhttp://docs.python.org/3/library/pickletools.html#pickletools.disX-trCX operator.addrC(jjX;http://docs.python.org/3/library/operator.html#operator.addX-trCX curses.nonlrC(jjX8http://docs.python.org/3/library/curses.html#curses.nonlX-trCXheapq.nlargestrC(jjX:http://docs.python.org/3/library/heapq.html#heapq.nlargestX-trCXos.path.expandvarsrC(jjX@http://docs.python.org/3/library/os.path.html#os.path.expandvarsX-trCX binhex.binhexrC(jjX:http://docs.python.org/3/library/binhex.html#binhex.binhexX-trCXlogging.getLevelNamerC(jjXBhttp://docs.python.org/3/library/logging.html#logging.getLevelNameX-trCXsys.getrecursionlimitrC(jjX?http://docs.python.org/3/library/sys.html#sys.getrecursionlimitX-trCXdistutils.dep_util.newerrC(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newerX-trCXsysconfig.parse_config_hrC(jjXHhttp://docs.python.org/3/library/sysconfig.html#sysconfig.parse_config_hX-trCX importlib.util.cache_from_sourcerC(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.cache_from_sourceX-trCX fcntl.lockfrC(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.lockfX-trCXmultiprocessing.ArrayrC(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ArrayX-trCX cmath.isinfrC(jjX7http://docs.python.org/3/library/cmath.html#cmath.isinfX-trCXos.path.getsizerC(jjX=http://docs.python.org/3/library/os.path.html#os.path.getsizeX-trCXmimetypes.add_typerC(jjXBhttp://docs.python.org/3/library/mimetypes.html#mimetypes.add_typeX-trCXtermios.tcsendbreakrC(jjXAhttp://docs.python.org/3/library/termios.html#termios.tcsendbreakX-trCXcurses.erasecharrC(jjX=http://docs.python.org/3/library/curses.html#curses.erasecharX-trCXssl.RAND_bytesrC(jjX8http://docs.python.org/3/library/ssl.html#ssl.RAND_bytesX-trCXfileinput.filenorC(jjX@http://docs.python.org/3/library/fileinput.html#fileinput.filenoX-trCX locale.formatrC(jjX:http://docs.python.org/3/library/locale.html#locale.formatX-trCX ctypes.sizeofrC(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.sizeofX-trCXpy_compile.compilerC(jjXChttp://docs.python.org/3/library/py_compile.html#py_compile.compileX-trCXmultiprocessing.get_loggerrC(jjXPhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_loggerX-trCXturtle.end_fillrC(jjX<http://docs.python.org/3/library/turtle.html#turtle.end_fillX-trCXcgi.print_directoryrC(jjX=http://docs.python.org/3/library/cgi.html#cgi.print_directoryX-trCXaudioop.tostereorC(jjX>http://docs.python.org/3/library/audioop.html#audioop.tostereoX-trCXos.lseekrC(jjX1http://docs.python.org/3/library/os.html#os.lseekX-trCX json.loadsrC(jjX5http://docs.python.org/3/library/json.html#json.loadsX-trCXmsilib.add_datarC(jjX<http://docs.python.org/3/library/msilib.html#msilib.add_dataX-trCXmailcap.getcapsrC(jjX=http://docs.python.org/3/library/mailcap.html#mailcap.getcapsX-trCXexecrC(jjX4http://docs.python.org/3/library/functions.html#execX-trCXasyncio.new_event_looprC(jjXOhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.new_event_loopX-trCX math.asinhrC(jjX5http://docs.python.org/3/library/math.html#math.asinhX-trCXemail.utils.make_msgidrC(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.make_msgidX-trCX os.path.isabsrC(jjX;http://docs.python.org/3/library/os.path.html#os.path.isabsX-trDXemail.header.decode_headerrD(jjXMhttp://docs.python.org/3/library/email.header.html#email.header.decode_headerX-trDXwarnings.warn_explicitrD(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.warn_explicitX-trDX operator.not_rD(jjX<http://docs.python.org/3/library/operator.html#operator.not_X-trDXurllib.parse.unquote_plusrD(jjXLhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote_plusX-trDXbinascii.unhexlifyr D(jjXAhttp://docs.python.org/3/library/binascii.html#binascii.unhexlifyX-tr DX)multiprocessing.sharedctypes.synchronizedr D(jjX_http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.synchronizedX-tr DXtempfile.TemporaryFiler D(jjXEhttp://docs.python.org/3/library/tempfile.html#tempfile.TemporaryFileX-trDXos.popenrD(jjX1http://docs.python.org/3/library/os.html#os.popenX-trDXdoctest.testfilerD(jjX>http://docs.python.org/3/library/doctest.html#doctest.testfileX-trDXoperator.__or__rD(jjX>http://docs.python.org/3/library/operator.html#operator.__or__X-trDX curses.beeprD(jjX8http://docs.python.org/3/library/curses.html#curses.beepX-trDXtest.support.check_warningsrD(jjXFhttp://docs.python.org/3/library/test.html#test.support.check_warningsX-trDX os.getloginrD(jjX4http://docs.python.org/3/library/os.html#os.getloginX-trDXpkgutil.get_datarD(jjX>http://docs.python.org/3/library/pkgutil.html#pkgutil.get_dataX-trDX shutil.moverD(jjX8http://docs.python.org/3/library/shutil.html#shutil.moveX-trDX os.startfilerD(jjX5http://docs.python.org/3/library/os.html#os.startfileX-tr DXasyncio.create_subprocess_shellr!D(jjXXhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shellX-tr"DX math.gammar#D(jjX5http://docs.python.org/3/library/math.html#math.gammaX-tr$DXos.openr%D(jjX0http://docs.python.org/3/library/os.html#os.openX-tr&DXsignal.siginterruptr'D(jjX@http://docs.python.org/3/library/signal.html#signal.siginterruptX-tr(DX os.renamesr)D(jjX3http://docs.python.org/3/library/os.html#os.renamesX-tr*DXturtle.pensizer+D(jjX;http://docs.python.org/3/library/turtle.html#turtle.pensizeX-tr,DXmath.expr-D(jjX3http://docs.python.org/3/library/math.html#math.expX-tr.DXos.sched_rr_get_intervalr/D(jjXAhttp://docs.python.org/3/library/os.html#os.sched_rr_get_intervalX-tr0DXtest.support.findfiler1D(jjX@http://docs.python.org/3/library/test.html#test.support.findfileX-tr2DX operator.absr3D(jjX;http://docs.python.org/3/library/operator.html#operator.absX-tr4DXtest.support.captured_stderrr5D(jjXGhttp://docs.python.org/3/library/test.html#test.support.captured_stderrX-tr6DXshutil.unregister_unpack_formatr7D(jjXLhttp://docs.python.org/3/library/shutil.html#shutil.unregister_unpack_formatX-tr8DX turtle.sethr9D(jjX8http://docs.python.org/3/library/turtle.html#turtle.sethX-tr:DX#distutils.ccompiler.gen_lib_optionsr;D(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_lib_optionsX-trDX select.epollr?D(jjX9http://docs.python.org/3/library/select.html#select.epollX-tr@DXdis.disassemblerAD(jjX9http://docs.python.org/3/library/dis.html#dis.disassembleX-trBDX os.unlinkrCD(jjX2http://docs.python.org/3/library/os.html#os.unlinkX-trDDX turtle.writerED(jjX9http://docs.python.org/3/library/turtle.html#turtle.writeX-trFDX turtle.setyrGD(jjX8http://docs.python.org/3/library/turtle.html#turtle.setyX-trHDX turtle.setxrID(jjX8http://docs.python.org/3/library/turtle.html#turtle.setxX-trJDXwinsound.MessageBeeprKD(jjXChttp://docs.python.org/3/library/winsound.html#winsound.MessageBeepX-trLDXemail.utils.getaddressesrMD(jjXIhttp://docs.python.org/3/library/email.util.html#email.utils.getaddressesX-trNDX operator.xorrOD(jjX;http://docs.python.org/3/library/operator.html#operator.xorX-trPDXunittest.mock.patch.multiplerQD(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.multipleX-trRDX copy.copyrSD(jjX4http://docs.python.org/3/library/copy.html#copy.copyX-trTDXturtle.exitonclickrUD(jjX?http://docs.python.org/3/library/turtle.html#turtle.exitonclickX-trVDX stat.S_ISDIRrWD(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISDIRX-trXDXdistutils.dir_util.create_treerYD(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.create_treeX-trZDXoperator.__lshift__r[D(jjXBhttp://docs.python.org/3/library/operator.html#operator.__lshift__X-tr\DXzlib.compressobjr]D(jjX;http://docs.python.org/3/library/zlib.html#zlib.compressobjX-tr^DXlogging.setLogRecordFactoryr_D(jjXIhttp://docs.python.org/3/library/logging.html#logging.setLogRecordFactoryX-tr`DX os.chrootraD(jjX2http://docs.python.org/3/library/os.html#os.chrootX-trbDXrandom.randintrcD(jjX;http://docs.python.org/3/library/random.html#random.randintX-trdDX operator.iandreD(jjX<http://docs.python.org/3/library/operator.html#operator.iandX-trfDXoctrgD(jjX3http://docs.python.org/3/library/functions.html#octX-trhDXemail.utils.mktime_tzriD(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.mktime_tzX-trjDXimaplib.Internaldate2tuplerkD(jjXHhttp://docs.python.org/3/library/imaplib.html#imaplib.Internaldate2tupleX-trlDX!multiprocessing.connection.ClientrmD(jjXWhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.ClientX-trnDXos.path.basenameroD(jjX>http://docs.python.org/3/library/os.path.html#os.path.basenameX-trpDXos.sched_getparamrqD(jjX:http://docs.python.org/3/library/os.html#os.sched_getparamX-trrDX ctypes.castrsD(jjX8http://docs.python.org/3/library/ctypes.html#ctypes.castX-trtDXrandom.uniformruD(jjX;http://docs.python.org/3/library/random.html#random.uniformX-trvDXurllib.request.urlretrieverwD(jjXOhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlretrieveX-trxDXsqlite3.connectryD(jjX=http://docs.python.org/3/library/sqlite3.html#sqlite3.connectX-trzDX turtle.clearr{D(jjX9http://docs.python.org/3/library/turtle.html#turtle.clearX-tr|DXwebbrowser.registerr}D(jjXDhttp://docs.python.org/3/library/webbrowser.html#webbrowser.registerX-tr~DX pty.openptyrD(jjX5http://docs.python.org/3/library/pty.html#pty.openptyX-trDXlocale.format_stringrD(jjXAhttp://docs.python.org/3/library/locale.html#locale.format_stringX-trDX pdb.runcallrD(jjX5http://docs.python.org/3/library/pdb.html#pdb.runcallX-trDXcalendar.leapdaysrD(jjX@http://docs.python.org/3/library/calendar.html#calendar.leapdaysX-trDX os.readlinkrD(jjX4http://docs.python.org/3/library/os.html#os.readlinkX-trDXsetattrrD(jjX7http://docs.python.org/3/library/functions.html#setattrX-trDXplistlib.loadsrD(jjX=http://docs.python.org/3/library/plistlib.html#plistlib.loadsX-trDXcurses.isendwinrD(jjX<http://docs.python.org/3/library/curses.html#curses.isendwinX-trDXcurses.longnamerD(jjX<http://docs.python.org/3/library/curses.html#curses.longnameX-trDX uuid.uuid4rD(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid4X-trDX uuid.uuid5rD(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid5X-trDX stat.S_ISREGrD(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISREGX-trDX importlib.util.source_from_cacherD(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.util.source_from_cacheX-trDX xml.etree.ElementTree.SubElementrD(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.SubElementX-trDX uuid.uuid1rD(jjX5http://docs.python.org/3/library/uuid.html#uuid.uuid1X-trDXsys.getcheckintervalrD(jjX>http://docs.python.org/3/library/sys.html#sys.getcheckintervalX-trDX os.spawnlrD(jjX2http://docs.python.org/3/library/os.html#os.spawnlX-trDXcodecs.getreaderrD(jjX=http://docs.python.org/3/library/codecs.html#codecs.getreaderX-trDXoperator.__iconcat__rD(jjXChttp://docs.python.org/3/library/operator.html#operator.__iconcat__X-trDXmsvcrt.getwcherD(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.getwcheX-trDXpyclbr.readmodule_exrD(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.readmodule_exX-trDXcurses.resettyrD(jjX;http://docs.python.org/3/library/curses.html#curses.resettyX-trDXthreading.main_threadrD(jjXEhttp://docs.python.org/3/library/threading.html#threading.main_threadX-trDXmsilib.init_databaserD(jjXAhttp://docs.python.org/3/library/msilib.html#msilib.init_databaseX-trDXrandom.triangularrD(jjX>http://docs.python.org/3/library/random.html#random.triangularX-trDXsignal.set_wakeup_fdrD(jjXAhttp://docs.python.org/3/library/signal.html#signal.set_wakeup_fdX-trDXcurses.ascii.ispunctrD(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ispunctX-trDX curses.echorD(jjX8http://docs.python.org/3/library/curses.html#curses.echoX-trDXurllib.parse.urlparserD(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparseX-trDX importlib.machinery.all_suffixesrD(jjXPhttp://docs.python.org/3/library/importlib.html#importlib.machinery.all_suffixesX-trDXhashrD(jjX4http://docs.python.org/3/library/functions.html#hashX-trDXbase64.b85decoderD(jjX=http://docs.python.org/3/library/base64.html#base64.b85decodeX-trDX turtle.fdrD(jjX6http://docs.python.org/3/library/turtle.html#turtle.fdX-trDX turtle.getpenrD(jjX:http://docs.python.org/3/library/turtle.html#turtle.getpenX-trDXlocalsrD(jjX6http://docs.python.org/3/library/functions.html#localsX-trDX enum.uniquerD(jjX6http://docs.python.org/3/library/enum.html#enum.uniqueX-trDXwinreg.OpenKeyExrD(jjX=http://docs.python.org/3/library/winreg.html#winreg.OpenKeyExX-trDX"distutils.sysconfig.get_python_librD(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_libX-trDXdoctest.debug_srcrD(jjX?http://docs.python.org/3/library/doctest.html#doctest.debug_srcX-trDX cmath.sqrtrD(jjX6http://docs.python.org/3/library/cmath.html#cmath.sqrtX-trDXcalendar.weekheaderrD(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.weekheaderX-trDXturtle.setpositionrD(jjX?http://docs.python.org/3/library/turtle.html#turtle.setpositionX-trDXunicodedata.east_asian_widthrD(jjXNhttp://docs.python.org/3/library/unicodedata.html#unicodedata.east_asian_widthX-trDXfunctools.cmp_to_keyrD(jjXDhttp://docs.python.org/3/library/functools.html#functools.cmp_to_keyX-trDXplistlib.writePlistToBytesrD(jjXIhttp://docs.python.org/3/library/plistlib.html#plistlib.writePlistToBytesX-trDX fractions.gcdrD(jjX=http://docs.python.org/3/library/fractions.html#fractions.gcdX-trDXimportlib.invalidate_cachesrD(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.invalidate_cachesX-trDX dis.discorD(jjX3http://docs.python.org/3/library/dis.html#dis.discoX-trDXdoctest.run_docstring_examplesrD(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.run_docstring_examplesX-trDX)distutils.sysconfig.get_makefile_filenamerD(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_makefile_filenameX-trDXoperator.__add__rD(jjX?http://docs.python.org/3/library/operator.html#operator.__add__X-trDXturtle.clearscreenrD(jjX?http://docs.python.org/3/library/turtle.html#turtle.clearscreenX-trDXdistutils.file_util.copy_filerD(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.copy_fileX-trDX sys._getframerD(jjX7http://docs.python.org/3/library/sys.html#sys._getframeX-trDXurllib.request.install_openerrD(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.install_openerX-trDX pprint.pprintrD(jjX:http://docs.python.org/3/library/pprint.html#pprint.pprintX-trDXoperator.__mul__rD(jjX?http://docs.python.org/3/library/operator.html#operator.__mul__X-trDX shutil.copyrD(jjX8http://docs.python.org/3/library/shutil.html#shutil.copyX-trDX operator.subrD(jjX;http://docs.python.org/3/library/operator.html#operator.subX-trDXlenrD(jjX3http://docs.python.org/3/library/functions.html#lenX-trDXinspect.getargvaluesrD(jjXBhttp://docs.python.org/3/library/inspect.html#inspect.getargvaluesX-trDX time.mktimerD(jjX6http://docs.python.org/3/library/time.html#time.mktimeX-trDXcurses.pair_numberrD(jjX?http://docs.python.org/3/library/curses.html#curses.pair_numberX-trDX cmath.polarrD(jjX7http://docs.python.org/3/library/cmath.html#cmath.polarX-trDX os.spawnlperD(jjX4http://docs.python.org/3/library/os.html#os.spawnlpeX-trEXsignal.pthread_sigmaskrE(jjXChttp://docs.python.org/3/library/signal.html#signal.pthread_sigmaskX-trEX os.pathconfrE(jjX4http://docs.python.org/3/library/os.html#os.pathconfX-trEXfaulthandler.dump_tracebackrE(jjXNhttp://docs.python.org/3/library/faulthandler.html#faulthandler.dump_tracebackX-trEXoperator.methodcallerrE(jjXDhttp://docs.python.org/3/library/operator.html#operator.methodcallerX-trEXtracemalloc.get_traced_memoryr E(jjXOhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_traced_memoryX-tr EX turtle.backr E(jjX8http://docs.python.org/3/library/turtle.html#turtle.backX-tr EXctypes.create_string_bufferr E(jjXHhttp://docs.python.org/3/library/ctypes.html#ctypes.create_string_bufferX-trEX turtle.setuprE(jjX9http://docs.python.org/3/library/turtle.html#turtle.setupX-trEXstatistics.pstdevrE(jjXBhttp://docs.python.org/3/library/statistics.html#statistics.pstdevX-trEX os.execvperE(jjX3http://docs.python.org/3/library/os.html#os.execvpeX-trEXcgi.testrE(jjX2http://docs.python.org/3/library/cgi.html#cgi.testX-trEXshutil.disk_usagerE(jjX>http://docs.python.org/3/library/shutil.html#shutil.disk_usageX-trEX reprlib.reprrE(jjX:http://docs.python.org/3/library/reprlib.html#reprlib.reprX-trEXgettext.dgettextrE(jjX>http://docs.python.org/3/library/gettext.html#gettext.dgettextX-trEX os.killpgrE(jjX2http://docs.python.org/3/library/os.html#os.killpgX-trEXcurses.panel.top_panelrE(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.top_panelX-tr EXfunctools.update_wrapperr!E(jjXHhttp://docs.python.org/3/library/functools.html#functools.update_wrapperX-tr"EX turtle.listenr#E(jjX:http://docs.python.org/3/library/turtle.html#turtle.listenX-tr$EX operator.or_r%E(jjX;http://docs.python.org/3/library/operator.html#operator.or_X-tr&EXglobalsr'E(jjX7http://docs.python.org/3/library/functions.html#globalsX-tr(EXreadline.clear_historyr)E(jjXEhttp://docs.python.org/3/library/readline.html#readline.clear_historyX-tr*EX gc.is_trackedr+E(jjX6http://docs.python.org/3/library/gc.html#gc.is_trackedX-tr,EX turtle.leftr-E(jjX8http://docs.python.org/3/library/turtle.html#turtle.leftX-tr.EXplatform.system_aliasr/E(jjXDhttp://docs.python.org/3/library/platform.html#platform.system_aliasX-tr0EXitertools.filterfalser1E(jjXEhttp://docs.python.org/3/library/itertools.html#itertools.filterfalseX-tr2EXpkgutil.iter_importersr3E(jjXDhttp://docs.python.org/3/library/pkgutil.html#pkgutil.iter_importersX-tr4EX turtle.pdr5E(jjX6http://docs.python.org/3/library/turtle.html#turtle.pdX-tr6EX bz2.compressr7E(jjX6http://docs.python.org/3/library/bz2.html#bz2.compressX-tr8EXunicodedata.categoryr9E(jjXFhttp://docs.python.org/3/library/unicodedata.html#unicodedata.categoryX-tr:EX socket.ntohsr;E(jjX9http://docs.python.org/3/library/socket.html#socket.ntohsX-trEX stat.S_IMODEr?E(jjX7http://docs.python.org/3/library/stat.html#stat.S_IMODEX-tr@EX math.fabsrAE(jjX4http://docs.python.org/3/library/math.html#math.fabsX-trBEX turtle.purCE(jjX6http://docs.python.org/3/library/turtle.html#turtle.puX-trDEXcodecs.backslashreplace_errorsrEE(jjXKhttp://docs.python.org/3/library/codecs.html#codecs.backslashreplace_errorsX-trFEX bisect.insortrGE(jjX:http://docs.python.org/3/library/bisect.html#bisect.insortX-trHEX turtle.colorrIE(jjX9http://docs.python.org/3/library/turtle.html#turtle.colorX-trJEX socket.ntohlrKE(jjX9http://docs.python.org/3/library/socket.html#socket.ntohlX-trLEXunittest.mock.patch.stopallrME(jjXOhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.stopallX-trNEX cmath.coshrOE(jjX6http://docs.python.org/3/library/cmath.html#cmath.coshX-trPEXbisect.bisect_rightrQE(jjX@http://docs.python.org/3/library/bisect.html#bisect.bisect_rightX-trREXre.subrSE(jjX/http://docs.python.org/3/library/re.html#re.subX-trTEXsysconfig.is_python_buildrUE(jjXIhttp://docs.python.org/3/library/sysconfig.html#sysconfig.is_python_buildX-trVEX os.confstrrWE(jjX3http://docs.python.org/3/library/os.html#os.confstrX-trXEXurllib.parse.urldefragrYE(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urldefragX-trZEXmsvcrt.get_osfhandler[E(jjXAhttp://docs.python.org/3/library/msvcrt.html#msvcrt.get_osfhandleX-tr\EXpy_compile.mainr]E(jjX@http://docs.python.org/3/library/py_compile.html#py_compile.mainX-tr^EXitertools.zip_longestr_E(jjXEhttp://docs.python.org/3/library/itertools.html#itertools.zip_longestX-tr`EXdistutils.core.setupraE(jjXChttp://docs.python.org/3/distutils/apiref.html#distutils.core.setupX-trbEXturtle.pencolorrcE(jjX<http://docs.python.org/3/library/turtle.html#turtle.pencolorX-trdEX os.replacereE(jjX3http://docs.python.org/3/library/os.html#os.replaceX-trfEX os.fsencodergE(jjX4http://docs.python.org/3/library/os.html#os.fsencodeX-trhEX%xml.sax.saxutils.prepare_input_sourceriE(jjXYhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.prepare_input_sourceX-trjEXos.setpriorityrkE(jjX7http://docs.python.org/3/library/os.html#os.setpriorityX-trlEXbisect.insort_rightrmE(jjX@http://docs.python.org/3/library/bisect.html#bisect.insort_rightX-trnEXwinreg.SetValueExroE(jjX>http://docs.python.org/3/library/winreg.html#winreg.SetValueExX-trpEXinspect.ismodulerqE(jjX>http://docs.python.org/3/library/inspect.html#inspect.ismoduleX-trrEX marshal.loadsrsE(jjX;http://docs.python.org/3/library/marshal.html#marshal.loadsX-trtEXcurses.init_pairruE(jjX=http://docs.python.org/3/library/curses.html#curses.init_pairX-trvEXos.chdirrwE(jjX1http://docs.python.org/3/library/os.html#os.chdirX-trxEX msvcrt.getwchryE(jjX:http://docs.python.org/3/library/msvcrt.html#msvcrt.getwchX-trzEX operator.modr{E(jjX;http://docs.python.org/3/library/operator.html#operator.modX-tr|EXgettext.bindtextdomainr}E(jjXDhttp://docs.python.org/3/library/gettext.html#gettext.bindtextdomainX-tr~EXplatform.python_branchrE(jjXEhttp://docs.python.org/3/library/platform.html#platform.python_branchX-trEX multiprocessing.set_start_methodrE(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.set_start_methodX-trEXemail.encoders.encode_7or8bitrE(jjXRhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_7or8bitX-trEXipaddress.v6_int_to_packedrE(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.v6_int_to_packedX-trEXcurses.halfdelayrE(jjX=http://docs.python.org/3/library/curses.html#curses.halfdelayX-trEXmultiprocessing.log_to_stderrrE(jjXShttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.log_to_stderrX-trEX curses.rawrE(jjX7http://docs.python.org/3/library/curses.html#curses.rawX-trEXstatistics.median_groupedrE(jjXJhttp://docs.python.org/3/library/statistics.html#statistics.median_groupedX-trEXos.get_inheritablerE(jjX;http://docs.python.org/3/library/os.html#os.get_inheritableX-trEXaudioop.alaw2linrE(jjX>http://docs.python.org/3/library/audioop.html#audioop.alaw2linX-trEXbinascii.a2b_hexrE(jjX?http://docs.python.org/3/library/binascii.html#binascii.a2b_hexX-trEX)distutils.sysconfig.get_config_h_filenamerE(jjXXhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_h_filenameX-trEX file_createdrE(jjX>http://docs.python.org/3/distutils/builtdist.html#file_createdX-trEXoperator.ifloordivrE(jjXAhttp://docs.python.org/3/library/operator.html#operator.ifloordivX-trEXinspect.getcommentsrE(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.getcommentsX-trEX imp.lock_heldrE(jjX7http://docs.python.org/3/library/imp.html#imp.lock_heldX-trEXstring.capwordsrE(jjX<http://docs.python.org/3/library/string.html#string.capwordsX-trEXidrE(jjX2http://docs.python.org/3/library/functions.html#idX-trEX cmath.sinhrE(jjX6http://docs.python.org/3/library/cmath.html#cmath.sinhX-trEXreadline.get_completerrE(jjXEhttp://docs.python.org/3/library/readline.html#readline.get_completerX-trEXsysconfig.get_python_versionrE(jjXLhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_python_versionX-trEX tty.setcbreakrE(jjX7http://docs.python.org/3/library/tty.html#tty.setcbreakX-trEXos.unamerE(jjX1http://docs.python.org/3/library/os.html#os.unameX-trEXemail.charset.add_charsetrE(jjXMhttp://docs.python.org/3/library/email.charset.html#email.charset.add_charsetX-trEXos.sched_yieldrE(jjX7http://docs.python.org/3/library/os.html#os.sched_yieldX-trEXcgi.print_environrE(jjX;http://docs.python.org/3/library/cgi.html#cgi.print_environX-trEX audioop.crossrE(jjX;http://docs.python.org/3/library/audioop.html#audioop.crossX-trEXsignal.getitimerrE(jjX=http://docs.python.org/3/library/signal.html#signal.getitimerX-trEXtarfile.is_tarfilerE(jjX@http://docs.python.org/3/library/tarfile.html#tarfile.is_tarfileX-trEX tokenize.openrE(jjX<http://docs.python.org/3/library/tokenize.html#tokenize.openX-trEX multiprocessing.get_start_methodrE(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_start_methodX-trEX gc.get_statsrE(jjX5http://docs.python.org/3/library/gc.html#gc.get_statsX-trEX time.timerE(jjX4http://docs.python.org/3/library/time.html#time.timeX-trEXemail.utils.localtimerE(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.localtimeX-trEX uu.encoderE(jjX2http://docs.python.org/3/library/uu.html#uu.encodeX-trEXxml.sax.parseStringrE(jjXAhttp://docs.python.org/3/library/xml.sax.html#xml.sax.parseStringX-trEXxml.sax.saxutils.escaperE(jjXKhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.escapeX-trEXplistlib.dumpsrE(jjX=http://docs.python.org/3/library/plistlib.html#plistlib.dumpsX-trEXasyncio.iscoroutinerE(jjXFhttp://docs.python.org/3/library/asyncio-task.html#asyncio.iscoroutineX-trEXbz2.openrE(jjX2http://docs.python.org/3/library/bz2.html#bz2.openX-trEXmsvcrt.heapminrE(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.heapminX-trEXlogging.basicConfigrE(jjXAhttp://docs.python.org/3/library/logging.html#logging.basicConfigX-trEXoperator.__concat__rE(jjXBhttp://docs.python.org/3/library/operator.html#operator.__concat__X-trEXgc.get_thresholdrE(jjX9http://docs.python.org/3/library/gc.html#gc.get_thresholdX-trEX"distutils.sysconfig.get_python_incrE(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_incX-trEXctypes.string_atrE(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.string_atX-trEX math.tanhrE(jjX4http://docs.python.org/3/library/math.html#math.tanhX-trEXminrE(jjX3http://docs.python.org/3/library/functions.html#minX-trEXsyslog.openlogrE(jjX;http://docs.python.org/3/library/syslog.html#syslog.openlogX-trEXbase64.standard_b64encoderE(jjXFhttp://docs.python.org/3/library/base64.html#base64.standard_b64encodeX-trEXmimetypes.guess_all_extensionsrE(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_all_extensionsX-trEXplatform.java_verrE(jjX@http://docs.python.org/3/library/platform.html#platform.java_verX-trEXturtle.numinputrE(jjX<http://docs.python.org/3/library/turtle.html#turtle.numinputX-trEXrandom.randrangerE(jjX=http://docs.python.org/3/library/random.html#random.randrangeX-trEX math.lgammarE(jjX6http://docs.python.org/3/library/math.html#math.lgammaX-trEXfunctools.reducerE(jjX@http://docs.python.org/3/library/functools.html#functools.reduceX-trEXoperator.__ilshift__rE(jjXChttp://docs.python.org/3/library/operator.html#operator.__ilshift__X-trEXunittest.skipUnlessrE(jjXBhttp://docs.python.org/3/library/unittest.html#unittest.skipUnlessX-trEXwinreg.SaveKeyrE(jjX;http://docs.python.org/3/library/winreg.html#winreg.SaveKeyX-trEX os.execlprE(jjX2http://docs.python.org/3/library/os.html#os.execlpX-trEX heapq.heappoprE(jjX9http://docs.python.org/3/library/heapq.html#heapq.heappopX-trEX pwd.getpwallrE(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwallX-trEXunittest.installHandlerrE(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.installHandlerX-trEX spwd.getspallrE(jjX8http://docs.python.org/3/library/spwd.html#spwd.getspallX-trEXcurses.tigetnumrE(jjX<http://docs.python.org/3/library/curses.html#curses.tigetnumX-trFXsysconfig.get_config_h_filenamerF(jjXOhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_h_filenameX-trFXheapq.heappushrF(jjX:http://docs.python.org/3/library/heapq.html#heapq.heappushX-trFX turtle.setposrF(jjX:http://docs.python.org/3/library/turtle.html#turtle.setposX-trFXssl.RAND_statusrF(jjX9http://docs.python.org/3/library/ssl.html#ssl.RAND_statusX-trFX os.execler F(jjX2http://docs.python.org/3/library/os.html#os.execleX-tr FX math.acoshr F(jjX5http://docs.python.org/3/library/math.html#math.acoshX-tr FXaudioop.lin2ulawr F(jjX>http://docs.python.org/3/library/audioop.html#audioop.lin2ulawX-trFXos.abortrF(jjX1http://docs.python.org/3/library/os.html#os.abortX-trFX logging.inforF(jjX:http://docs.python.org/3/library/logging.html#logging.infoX-trFXoperator.containsrF(jjX@http://docs.python.org/3/library/operator.html#operator.containsX-trFXplatform.python_versionrF(jjXFhttp://docs.python.org/3/library/platform.html#platform.python_versionX-trFXshutil.get_terminal_sizerF(jjXEhttp://docs.python.org/3/library/shutil.html#shutil.get_terminal_sizeX-trFXemail.message_from_filerF(jjXJhttp://docs.python.org/3/library/email.parser.html#email.message_from_fileX-trFXturtle.screensizerF(jjX>http://docs.python.org/3/library/turtle.html#turtle.screensizeX-trFXast.get_docstringrF(jjX;http://docs.python.org/3/library/ast.html#ast.get_docstringX-trFXturtle.resizemoderF(jjX>http://docs.python.org/3/library/turtle.html#turtle.resizemodeX-tr FX time.asctimer!F(jjX7http://docs.python.org/3/library/time.html#time.asctimeX-tr"FXctypes.memmover#F(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.memmoveX-tr$FXos.piper%F(jjX0http://docs.python.org/3/library/os.html#os.pipeX-tr&FXcollections.namedtupler'F(jjXHhttp://docs.python.org/3/library/collections.html#collections.namedtupleX-tr(FXtimeit.default_timerr)F(jjXAhttp://docs.python.org/3/library/timeit.html#timeit.default_timerX-tr*FX cmath.tanr+F(jjX5http://docs.python.org/3/library/cmath.html#cmath.tanX-tr,FXfunctools.total_orderingr-F(jjXHhttp://docs.python.org/3/library/functools.html#functools.total_orderingX-tr.FXtime.clock_gettimer/F(jjX=http://docs.python.org/3/library/time.html#time.clock_gettimeX-tr0FXfileinput.nextfiler1F(jjXBhttp://docs.python.org/3/library/fileinput.html#fileinput.nextfileX-tr2FXunittest.expectedFailurer3F(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.expectedFailureX-tr4FXnntplib.decode_headerr5F(jjXChttp://docs.python.org/3/library/nntplib.html#nntplib.decode_headerX-tr6FXinputr7F(jjX5http://docs.python.org/3/library/functions.html#inputX-tr8FX unittest.mainr9F(jjX<http://docs.python.org/3/library/unittest.html#unittest.mainX-tr:FXbinr;F(jjX3http://docs.python.org/3/library/functions.html#binX-trFXsys.excepthookr?F(jjX8http://docs.python.org/3/library/sys.html#sys.excepthookX-tr@FX curses.metarAF(jjX8http://docs.python.org/3/library/curses.html#curses.metaX-trBFXformatrCF(jjX6http://docs.python.org/3/library/functions.html#formatX-trDFX os.fstatvfsrEF(jjX4http://docs.python.org/3/library/os.html#os.fstatvfsX-trFFXsys.setprofilerGF(jjX8http://docs.python.org/3/library/sys.html#sys.setprofileX-trHFX fcntl.ioctlrIF(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.ioctlX-trJFXoperator.length_hintrKF(jjXChttp://docs.python.org/3/library/operator.html#operator.length_hintX-trLFXurllib.parse.urlunparserMF(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlunparseX-trNFXcalendar.setfirstweekdayrOF(jjXGhttp://docs.python.org/3/library/calendar.html#calendar.setfirstweekdayX-trPFX turtle.dotrQF(jjX7http://docs.python.org/3/library/turtle.html#turtle.dotX-trRFX os.getpgrprSF(jjX3http://docs.python.org/3/library/os.html#os.getpgrpX-trTFXturtle.fillingrUF(jjX;http://docs.python.org/3/library/turtle.html#turtle.fillingX-trVFXstringprep.in_table_c12rWF(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c12X-trXFX,readline.set_completion_display_matches_hookrYF(jjX[http://docs.python.org/3/library/readline.html#readline.set_completion_display_matches_hookX-trZFXstringprep.in_table_c11r[F(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11X-tr\FXos.path.relpathr]F(jjX=http://docs.python.org/3/library/os.path.html#os.path.relpathX-tr^FXmailcap.findmatchr_F(jjX?http://docs.python.org/3/library/mailcap.html#mailcap.findmatchX-tr`FX os.setregidraF(jjX4http://docs.python.org/3/library/os.html#os.setregidX-trbFX json.dumprcF(jjX4http://docs.python.org/3/library/json.html#json.dumpX-trdFXmultiprocessing.PipereF(jjXJhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.PipeX-trfFXcurses.ascii.ismetargF(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ismetaX-trhFXsys.getprofileriF(jjX8http://docs.python.org/3/library/sys.html#sys.getprofileX-trjFXsite.addsitedirrkF(jjX:http://docs.python.org/3/library/site.html#site.addsitedirX-trlFXshutil.get_unpack_formatsrmF(jjXFhttp://docs.python.org/3/library/shutil.html#shutil.get_unpack_formatsX-trnFXctypes.set_last_errorroF(jjXBhttp://docs.python.org/3/library/ctypes.html#ctypes.set_last_errorX-trpFX math.modfrqF(jjX4http://docs.python.org/3/library/math.html#math.modfX-trrFXresource.getrlimitrsF(jjXAhttp://docs.python.org/3/library/resource.html#resource.getrlimitX-trtFXtempfile.mktempruF(jjX>http://docs.python.org/3/library/tempfile.html#tempfile.mktempX-trvFXcurses.can_change_colorrwF(jjXDhttp://docs.python.org/3/library/curses.html#curses.can_change_colorX-trxFXos.preadryF(jjX1http://docs.python.org/3/library/os.html#os.preadX-trzFXdecimal.getcontextr{F(jjX@http://docs.python.org/3/library/decimal.html#decimal.getcontextX-tr|FX cmath.sinr}F(jjX5http://docs.python.org/3/library/cmath.html#cmath.sinX-tr~FXresource.prlimitrF(jjX?http://docs.python.org/3/library/resource.html#resource.prlimitX-trFXturtle.textinputrF(jjX=http://docs.python.org/3/library/turtle.html#turtle.textinputX-trFXturtle.positionrF(jjX<http://docs.python.org/3/library/turtle.html#turtle.positionX-trFX#distutils.archive_util.make_zipfilerF(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_zipfileX-trFXos.rmdirrF(jjX1http://docs.python.org/3/library/os.html#os.rmdirX-trFXbase64.encodestringrF(jjX@http://docs.python.org/3/library/base64.html#base64.encodestringX-trFXmsilib.add_streamrF(jjX>http://docs.python.org/3/library/msilib.html#msilib.add_streamX-trFXbase64.b16encoderF(jjX=http://docs.python.org/3/library/base64.html#base64.b16encodeX-trFX math.sqrtrF(jjX4http://docs.python.org/3/library/math.html#math.sqrtX-trFXos.fsyncrF(jjX1http://docs.python.org/3/library/os.html#os.fsyncX-trFXipaddress.ip_networkrF(jjXDhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_networkX-trFXpprint.isrecursiverF(jjX?http://docs.python.org/3/library/pprint.html#pprint.isrecursiveX-trFX math.isnanrF(jjX5http://docs.python.org/3/library/math.html#math.isnanX-trFXlogging.disablerF(jjX=http://docs.python.org/3/library/logging.html#logging.disableX-trFXinspect.getmodulenamerF(jjXChttp://docs.python.org/3/library/inspect.html#inspect.getmodulenameX-trFX curses.filterrF(jjX:http://docs.python.org/3/library/curses.html#curses.filterX-trFX os.sendfilerF(jjX4http://docs.python.org/3/library/os.html#os.sendfileX-trFX re.searchrF(jjX2http://docs.python.org/3/library/re.html#re.searchX-trFXtermios.tcdrainrF(jjX=http://docs.python.org/3/library/termios.html#termios.tcdrainX-trFXtime.get_clock_inforF(jjX>http://docs.python.org/3/library/time.html#time.get_clock_infoX-trFXtime.clock_settimerF(jjX=http://docs.python.org/3/library/time.html#time.clock_settimeX-trFX gc.set_debugrF(jjX5http://docs.python.org/3/library/gc.html#gc.set_debugX-trFX math.atanrF(jjX4http://docs.python.org/3/library/math.html#math.atanX-trFX curses.newwinrF(jjX:http://docs.python.org/3/library/curses.html#curses.newwinX-trFX shlex.quoterF(jjX7http://docs.python.org/3/library/shlex.html#shlex.quoteX-trFXcolorsys.hls_to_rgbrF(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.hls_to_rgbX-trFX turtle.donerF(jjX8http://docs.python.org/3/library/turtle.html#turtle.doneX-trFXimp.load_modulerF(jjX9http://docs.python.org/3/library/imp.html#imp.load_moduleX-trFXwarnings.resetwarningsrF(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.resetwarningsX-trFXcurses.mousemaskrF(jjX=http://docs.python.org/3/library/curses.html#curses.mousemaskX-trFXdis.findlabelsrF(jjX8http://docs.python.org/3/library/dis.html#dis.findlabelsX-trFXbdb.checkfuncnamerF(jjX;http://docs.python.org/3/library/bdb.html#bdb.checkfuncnameX-trFX bdb.effectiverF(jjX7http://docs.python.org/3/library/bdb.html#bdb.effectiveX-trFXoperator.__imul__rF(jjX@http://docs.python.org/3/library/operator.html#operator.__imul__X-trFXgzip.decompressrF(jjX:http://docs.python.org/3/library/gzip.html#gzip.decompressX-trFXsys.getwindowsversionrF(jjX?http://docs.python.org/3/library/sys.html#sys.getwindowsversionX-trFXturtle.setworldcoordinatesrF(jjXGhttp://docs.python.org/3/library/turtle.html#turtle.setworldcoordinatesX-trFXurllib.request.getproxiesrF(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.getproxiesX-trFXturtle.bgcolorrF(jjX;http://docs.python.org/3/library/turtle.html#turtle.bgcolorX-trFXsuperrF(jjX5http://docs.python.org/3/library/functions.html#superX-trFXos.dup2rF(jjX0http://docs.python.org/3/library/os.html#os.dup2X-trFXinspect.unwraprF(jjX<http://docs.python.org/3/library/inspect.html#inspect.unwrapX-trFXcalendar.monthrangerF(jjXBhttp://docs.python.org/3/library/calendar.html#calendar.monthrangeX-trFXos.path.expanduserrF(jjX@http://docs.python.org/3/library/os.path.html#os.path.expanduserX-trFXlogging.setLoggerClassrF(jjXDhttp://docs.python.org/3/library/logging.html#logging.setLoggerClassX-trFXctypes.get_last_errorrF(jjXBhttp://docs.python.org/3/library/ctypes.html#ctypes.get_last_errorX-trFX os.ftruncaterF(jjX5http://docs.python.org/3/library/os.html#os.ftruncateX-trFXurllib.parse.quote_plusrF(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plusX-trFXreadline.read_history_filerF(jjXIhttp://docs.python.org/3/library/readline.html#readline.read_history_fileX-trFXcurses.panel.update_panelsrF(jjXMhttp://docs.python.org/3/library/curses.panel.html#curses.panel.update_panelsX-trFXlogging.makeLogRecordrF(jjXChttp://docs.python.org/3/library/logging.html#logging.makeLogRecordX-trFXasyncio.shieldrF(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.shieldX-trFXos.mkdirrF(jjX1http://docs.python.org/3/library/os.html#os.mkdirX-trFXsignal.getsignalrF(jjX=http://docs.python.org/3/library/signal.html#signal.getsignalX-trFX curses.tparmrF(jjX9http://docs.python.org/3/library/curses.html#curses.tparmX-trFXturtle.backwardrF(jjX<http://docs.python.org/3/library/turtle.html#turtle.backwardX-trFXsignal.sigpendingrF(jjX>http://docs.python.org/3/library/signal.html#signal.sigpendingX-trFXoperator.indexrF(jjX=http://docs.python.org/3/library/operator.html#operator.indexX-trFXstruct.unpack_fromrF(jjX?http://docs.python.org/3/library/struct.html#struct.unpack_fromX-trFX audioop.avgpprF(jjX;http://docs.python.org/3/library/audioop.html#audioop.avgppX-trFXsocket.CMSG_LENrF(jjX<http://docs.python.org/3/library/socket.html#socket.CMSG_LENX-trFXcurses.unget_wchrF(jjX=http://docs.python.org/3/library/curses.html#curses.unget_wchX-trFXoperator.__ge__rF(jjX>http://docs.python.org/3/library/operator.html#operator.__ge__X-trFXabc.abstractclassmethodrF(jjXAhttp://docs.python.org/3/library/abc.html#abc.abstractclassmethodX-trFXcurses.curs_setrF(jjX<http://docs.python.org/3/library/curses.html#curses.curs_setX-trGXoperator.__contains__rG(jjXDhttp://docs.python.org/3/library/operator.html#operator.__contains__X-trGXos.walkrG(jjX0http://docs.python.org/3/library/os.html#os.walkX-trGXcurses.ascii.ctrlrG(jjXDhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.ctrlX-trGXnextrG(jjX4http://docs.python.org/3/library/functions.html#nextX-trGX nis.matchr G(jjX3http://docs.python.org/3/library/nis.html#nis.matchX-tr GXcgi.parse_multipartr G(jjX=http://docs.python.org/3/library/cgi.html#cgi.parse_multipartX-tr GXoperator.__pos__r G(jjX?http://docs.python.org/3/library/operator.html#operator.__pos__X-trGXos.writerG(jjX1http://docs.python.org/3/library/os.html#os.writeX-trGXpprint.pformatrG(jjX;http://docs.python.org/3/library/pprint.html#pprint.pformatX-trGX cmath.rectrG(jjX6http://docs.python.org/3/library/cmath.html#cmath.rectX-trGXlocale.getlocalerG(jjX=http://docs.python.org/3/library/locale.html#locale.getlocaleX-trGXsqlite3.register_adapterrG(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.register_adapterX-trGXtraceback.format_exception_onlyrG(jjXOhttp://docs.python.org/3/library/traceback.html#traceback.format_exception_onlyX-trGX itertools.teerG(jjX=http://docs.python.org/3/library/itertools.html#itertools.teeX-trGX ssl.RAND_addrG(jjX6http://docs.python.org/3/library/ssl.html#ssl.RAND_addX-trGX audioop.maxpprG(jjX;http://docs.python.org/3/library/audioop.html#audioop.maxppX-tr GXwinreg.EnableReflectionKeyr!G(jjXGhttp://docs.python.org/3/library/winreg.html#winreg.EnableReflectionKeyX-tr"GXfileinput.hook_encodedr#G(jjXFhttp://docs.python.org/3/library/fileinput.html#fileinput.hook_encodedX-tr$GXdistutils.util.executer%G(jjXEhttp://docs.python.org/3/distutils/apiref.html#distutils.util.executeX-tr&GX os.fchownr'G(jjX2http://docs.python.org/3/library/os.html#os.fchownX-tr(GXctypes.wstring_atr)G(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.wstring_atX-tr*GX codecs.encoder+G(jjX:http://docs.python.org/3/library/codecs.html#codecs.encodeX-tr,GXos.linkr-G(jjX0http://docs.python.org/3/library/os.html#os.linkX-tr.GX curses.unctrlr/G(jjX:http://docs.python.org/3/library/curses.html#curses.unctrlX-tr0GXshutil.copyfileobjr1G(jjX?http://docs.python.org/3/library/shutil.html#shutil.copyfileobjX-tr2GXunicodedata.decimalr3G(jjXEhttp://docs.python.org/3/library/unicodedata.html#unicodedata.decimalX-tr4GXturtle.colormoder5G(jjX=http://docs.python.org/3/library/turtle.html#turtle.colormodeX-tr6GX os.WIFEXITEDr7G(jjX5http://docs.python.org/3/library/os.html#os.WIFEXITEDX-tr8GXcsv.get_dialectr9G(jjX9http://docs.python.org/3/library/csv.html#csv.get_dialectX-tr:GX profile.runr;G(jjX9http://docs.python.org/3/library/profile.html#profile.runX-trGXcurses.wrapperr?G(jjX;http://docs.python.org/3/library/curses.html#curses.wrapperX-tr@GX operator.isubrAG(jjX<http://docs.python.org/3/library/operator.html#operator.isubX-trBGX platform.distrCG(jjX<http://docs.python.org/3/library/platform.html#platform.distX-trDGX ctypes.byrefrEG(jjX9http://docs.python.org/3/library/ctypes.html#ctypes.byrefX-trFGXplatform.python_buildrGG(jjXDhttp://docs.python.org/3/library/platform.html#platform.python_buildX-trHGXinspect.signaturerIG(jjX?http://docs.python.org/3/library/inspect.html#inspect.signatureX-trJGXbinascii.crc_hqxrKG(jjX?http://docs.python.org/3/library/binascii.html#binascii.crc_hqxX-trLGXwinreg.DisableReflectionKeyrMG(jjXHhttp://docs.python.org/3/library/winreg.html#winreg.DisableReflectionKeyX-trNGXbase64.encodebytesrOG(jjX?http://docs.python.org/3/library/base64.html#base64.encodebytesX-trPGXunicodedata.namerQG(jjXBhttp://docs.python.org/3/library/unicodedata.html#unicodedata.nameX-trRGXos.get_terminal_sizerSG(jjX=http://docs.python.org/3/library/os.html#os.get_terminal_sizeX-trTGXemail.utils.quoterUG(jjXBhttp://docs.python.org/3/library/email.util.html#email.utils.quoteX-trVGX asyncore.looprWG(jjX<http://docs.python.org/3/library/asyncore.html#asyncore.loopX-trXGXsqlite3.register_converterrYG(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.register_converterX-trZGXtextwrap.shortenr[G(jjX?http://docs.python.org/3/library/textwrap.html#textwrap.shortenX-tr\GXipaddress.collapse_addressesr]G(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.collapse_addressesX-tr^GXctypes.util.find_libraryr_G(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes.util.find_libraryX-tr`GXdis.stack_effectraG(jjX:http://docs.python.org/3/library/dis.html#dis.stack_effectX-trbGXbinascii.rledecode_hqxrcG(jjXEhttp://docs.python.org/3/library/binascii.html#binascii.rledecode_hqxX-trdGX logging.debugreG(jjX;http://docs.python.org/3/library/logging.html#logging.debugX-trfGXstringprep.map_table_b3rgG(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.map_table_b3X-trhGXsys.settscdumpriG(jjX8http://docs.python.org/3/library/sys.html#sys.settscdumpX-trjGXsyslog.closelogrkG(jjX<http://docs.python.org/3/library/syslog.html#syslog.closelogX-trlGXfunctools.partialrmG(jjXAhttp://docs.python.org/3/library/functools.html#functools.partialX-trnGX getopt.getoptroG(jjX:http://docs.python.org/3/library/getopt.html#getopt.getoptX-trpGX os.getpidrqG(jjX2http://docs.python.org/3/library/os.html#os.getpidX-trrGX cmath.isnanrsG(jjX7http://docs.python.org/3/library/cmath.html#cmath.isnanX-trtGXabc.abstractstaticmethodruG(jjXBhttp://docs.python.org/3/library/abc.html#abc.abstractstaticmethodX-trvGXstringprep.in_table_d1rwG(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_d1X-trxGXsqlite3.complete_statementryG(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statementX-trzGXstringprep.in_table_d2r{G(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_d2X-tr|GXfaulthandler.registerr}G(jjXHhttp://docs.python.org/3/library/faulthandler.html#faulthandler.registerX-tr~GX!distutils.dep_util.newer_pairwiserG(jjXPhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_pairwiseX-trGXoperator.__iadd__rG(jjX@http://docs.python.org/3/library/operator.html#operator.__iadd__X-trGXoperator.lshiftrG(jjX>http://docs.python.org/3/library/operator.html#operator.lshiftX-trGXtokenize.untokenizerG(jjXBhttp://docs.python.org/3/library/tokenize.html#tokenize.untokenizeX-trGXcurses.ungetchrG(jjX;http://docs.python.org/3/library/curses.html#curses.ungetchX-trGX pwd.getpwnamrG(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwnamX-trGXtraceback.print_excrG(jjXChttp://docs.python.org/3/library/traceback.html#traceback.print_excX-trGXos.minorrG(jjX1http://docs.python.org/3/library/os.html#os.minorX-trGXcopyreg.picklerG(jjX<http://docs.python.org/3/library/copyreg.html#copyreg.pickleX-trGXturtle.showturtlerG(jjX>http://docs.python.org/3/library/turtle.html#turtle.showturtleX-trGXthreading.get_identrG(jjXChttp://docs.python.org/3/library/threading.html#threading.get_identX-trGXlocale.strxfrmrG(jjX;http://docs.python.org/3/library/locale.html#locale.strxfrmX-trGXzlib.decompressrG(jjX:http://docs.python.org/3/library/zlib.html#zlib.decompressX-trGX curses.flashrG(jjX9http://docs.python.org/3/library/curses.html#curses.flashX-trGXsignal.pthread_killrG(jjX@http://docs.python.org/3/library/signal.html#signal.pthread_killX-trGXemail.utils.formataddrrG(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.formataddrX-trGX math.atanhrG(jjX5http://docs.python.org/3/library/math.html#math.atanhX-trGXitertools.starmaprG(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.starmapX-trGXos.posix_fallocaterG(jjX;http://docs.python.org/3/library/os.html#os.posix_fallocateX-trGXbinascii.rlecode_hqxrG(jjXChttp://docs.python.org/3/library/binascii.html#binascii.rlecode_hqxX-trGXitertools.groupbyrG(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.groupbyX-trGX heapq.heapifyrG(jjX9http://docs.python.org/3/library/heapq.html#heapq.heapifyX-trGX+multiprocessing.connection.answer_challengerG(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.answer_challengeX-trGX gettext.findrG(jjX:http://docs.python.org/3/library/gettext.html#gettext.findX-trGXsysconfig.get_pathsrG(jjXChttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_pathsX-trGXrandom.betavariaterG(jjX?http://docs.python.org/3/library/random.html#random.betavariateX-trGXpdb.runrG(jjX1http://docs.python.org/3/library/pdb.html#pdb.runX-trGXasyncio.get_event_loop_policyrG(jjXVhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.get_event_loop_policyX-trGXaudioop.findfactorrG(jjX@http://docs.python.org/3/library/audioop.html#audioop.findfactorX-trGXos.path.normpathrG(jjX>http://docs.python.org/3/library/os.path.html#os.path.normpathX-trGXoperator.__setitem__rG(jjXChttp://docs.python.org/3/library/operator.html#operator.__setitem__X-trGXthreading.stack_sizerG(jjXDhttp://docs.python.org/3/library/threading.html#threading.stack_sizeX-trGXmsvcrt.ungetwchrG(jjX<http://docs.python.org/3/library/msvcrt.html#msvcrt.ungetwchX-trGXos.path.abspathrG(jjX=http://docs.python.org/3/library/os.path.html#os.path.abspathX-trGXplatform.versionrG(jjX?http://docs.python.org/3/library/platform.html#platform.versionX-trGX imghdr.whatrG(jjX8http://docs.python.org/3/library/imghdr.html#imghdr.whatX-trGXcurses.has_keyrG(jjX;http://docs.python.org/3/library/curses.html#curses.has_keyX-trGXcodecs.ignore_errorsrG(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.ignore_errorsX-trGXlogging.config.dictConfigrG(jjXNhttp://docs.python.org/3/library/logging.config.html#logging.config.dictConfigX-trGXcodecs.getincrementalencoderrG(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.getincrementalencoderX-trGXimaplib.ParseFlagsrG(jjX@http://docs.python.org/3/library/imaplib.html#imaplib.ParseFlagsX-trGXlocale.resetlocalerG(jjX?http://docs.python.org/3/library/locale.html#locale.resetlocaleX-trGXinspect.isgetsetdescriptorrG(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.isgetsetdescriptorX-trGX os.getenvrG(jjX2http://docs.python.org/3/library/os.html#os.getenvX-trGXturtle.onscreenclickrG(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.onscreenclickX-trGXwinreg.ExpandEnvironmentStringsrG(jjXLhttp://docs.python.org/3/library/winreg.html#winreg.ExpandEnvironmentStringsX-trGXimportlib.__import__rG(jjXDhttp://docs.python.org/3/library/importlib.html#importlib.__import__X-trGXoperator.__pow__rG(jjX?http://docs.python.org/3/library/operator.html#operator.__pow__X-trGXcurses.has_colorsrG(jjX>http://docs.python.org/3/library/curses.html#curses.has_colorsX-trGXlocale.currencyrG(jjX<http://docs.python.org/3/library/locale.html#locale.currencyX-trGX sys.internrG(jjX4http://docs.python.org/3/library/sys.html#sys.internX-trGXdifflib.get_close_matchesrG(jjXGhttp://docs.python.org/3/library/difflib.html#difflib.get_close_matchesX-trGXweakref.getweakrefsrG(jjXAhttp://docs.python.org/3/library/weakref.html#weakref.getweakrefsX-trGXasyncio.start_unix_serverrG(jjXNhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.start_unix_serverX-trGXcurses.resizetermrG(jjX>http://docs.python.org/3/library/curses.html#curses.resizetermX-trGXos.path.splitdriverG(jjX@http://docs.python.org/3/library/os.path.html#os.path.splitdriveX-trGXsocket.getdefaulttimeoutrG(jjXEhttp://docs.python.org/3/library/socket.html#socket.getdefaulttimeoutX-trGXlogging.warningrG(jjX=http://docs.python.org/3/library/logging.html#logging.warningX-trGXos.mknodrG(jjX1http://docs.python.org/3/library/os.html#os.mknodX-trGX os.WCOREDUMPrG(jjX5http://docs.python.org/3/library/os.html#os.WCOREDUMPX-trGXctypes.POINTERrG(jjX;http://docs.python.org/3/library/ctypes.html#ctypes.POINTERX-trGX math.atan2rG(jjX5http://docs.python.org/3/library/math.html#math.atan2X-trGXreadline.get_completion_typerG(jjXKhttp://docs.python.org/3/library/readline.html#readline.get_completion_typeX-trGX os.WIFSTOPPEDrG(jjX6http://docs.python.org/3/library/os.html#os.WIFSTOPPEDX-trGXctypes.addressofrG(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.addressofX-trHXshutil.copytreerH(jjX<http://docs.python.org/3/library/shutil.html#shutil.copytreeX-trHXcodecs.xmlcharrefreplace_errorsrH(jjXLhttp://docs.python.org/3/library/codecs.html#codecs.xmlcharrefreplace_errorsX-trHXfaulthandler.is_enabledrH(jjXJhttp://docs.python.org/3/library/faulthandler.html#faulthandler.is_enabledX-trHXoperator.countOfrH(jjX?http://docs.python.org/3/library/operator.html#operator.countOfX-trHX os.fchdirr H(jjX2http://docs.python.org/3/library/os.html#os.fchdirX-tr HXwinreg.EnumValuer H(jjX=http://docs.python.org/3/library/winreg.html#winreg.EnumValueX-tr HXurllib.request.urlcleanupr H(jjXNhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlcleanupX-trHXemail.utils.formatdaterH(jjXGhttp://docs.python.org/3/library/email.util.html#email.utils.formatdateX-trHXmimetypes.guess_typerH(jjXDhttp://docs.python.org/3/library/mimetypes.html#mimetypes.guess_typeX-trHX curses.norawrH(jjX9http://docs.python.org/3/library/curses.html#curses.norawX-trHX cmath.asinhrH(jjX7http://docs.python.org/3/library/cmath.html#cmath.asinhX-trHX imp.get_tagrH(jjX5http://docs.python.org/3/library/imp.html#imp.get_tagX-trHXturtle.resetscreenrH(jjX?http://docs.python.org/3/library/turtle.html#turtle.resetscreenX-trHXlocale.strcollrH(jjX;http://docs.python.org/3/library/locale.html#locale.strcollX-trHXbinascii.a2b_uurH(jjX>http://docs.python.org/3/library/binascii.html#binascii.a2b_uuX-trHXlzma.decompressrH(jjX:http://docs.python.org/3/library/lzma.html#lzma.decompressX-tr HXinspect.getargspecr!H(jjX@http://docs.python.org/3/library/inspect.html#inspect.getargspecX-tr"HXgc.get_objectsr#H(jjX7http://docs.python.org/3/library/gc.html#gc.get_objectsX-tr$HX os.fpathconfr%H(jjX5http://docs.python.org/3/library/os.html#os.fpathconfX-tr&HXturtle.turtlesizer'H(jjX>http://docs.python.org/3/library/turtle.html#turtle.turtlesizeX-tr(HXsys.getswitchintervalr)H(jjX?http://docs.python.org/3/library/sys.html#sys.getswitchintervalX-tr*Hu(X gc.get_debugr+H(jjX5http://docs.python.org/3/library/gc.html#gc.get_debugX-tr,HXxml.sax.saxutils.unescaper-H(jjXMhttp://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.unescapeX-tr.HXctypes.alignmentr/H(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.alignmentX-tr0HX venv.creater1H(jjX6http://docs.python.org/3/library/venv.html#venv.createX-tr2HXctypes.FormatErrorr3H(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.FormatErrorX-tr4HXoperator.__index__r5H(jjXAhttp://docs.python.org/3/library/operator.html#operator.__index__X-tr6HX os.putenvr7H(jjX2http://docs.python.org/3/library/os.html#os.putenvX-tr8HX_thread.interrupt_mainr9H(jjXDhttp://docs.python.org/3/library/_thread.html#_thread.interrupt_mainX-tr:HXresource.getrusager;H(jjXAhttp://docs.python.org/3/library/resource.html#resource.getrusageX-trHXssl.DER_cert_to_PEM_certr?H(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.DER_cert_to_PEM_certX-tr@HXturtle.hideturtlerAH(jjX>http://docs.python.org/3/library/turtle.html#turtle.hideturtleX-trBHXbisect.insort_leftrCH(jjX?http://docs.python.org/3/library/bisect.html#bisect.insort_leftX-trDHX stat.S_ISPORTrEH(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISPORTX-trFHX os.renamerGH(jjX2http://docs.python.org/3/library/os.html#os.renameX-trHHXio.openrIH(jjX0http://docs.python.org/3/library/io.html#io.openX-trJHXemail.encoders.encode_quoprirKH(jjXQhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_quopriX-trLHXcurses.mouseintervalrMH(jjXAhttp://docs.python.org/3/library/curses.html#curses.mouseintervalX-trNHXoperator.__mod__rOH(jjX?http://docs.python.org/3/library/operator.html#operator.__mod__X-trPHXdistutils.file_util.move_filerQH(jjXLhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.move_fileX-trRHXos.path.getmtimerSH(jjX>http://docs.python.org/3/library/os.path.html#os.path.getmtimeX-trTHXcurses.ascii.isctrlrUH(jjXFhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isctrlX-trVHXweakref.getweakrefcountrWH(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.getweakrefcountX-trXHXos.removexattrrYH(jjX7http://docs.python.org/3/library/os.html#os.removexattrX-trZHX cmath.acoshr[H(jjX7http://docs.python.org/3/library/cmath.html#cmath.acoshX-tr\HXturtle.get_polyr]H(jjX<http://docs.python.org/3/library/turtle.html#turtle.get_polyX-tr^HXrandom.gammavariater_H(jjX@http://docs.python.org/3/library/random.html#random.gammavariateX-tr`HXiterraH(jjX4http://docs.python.org/3/library/functions.html#iterX-trbHX os.lchmodrcH(jjX2http://docs.python.org/3/library/os.html#os.lchmodX-trdHXhasattrreH(jjX7http://docs.python.org/3/library/functions.html#hasattrX-trfHX csv.readerrgH(jjX4http://docs.python.org/3/library/csv.html#csv.readerX-trhHXturtle.setheadingriH(jjX>http://docs.python.org/3/library/turtle.html#turtle.setheadingX-trjHXtest.support.captured_stdoutrkH(jjXGhttp://docs.python.org/3/library/test.html#test.support.captured_stdoutX-trlHXcalendar.calendarrmH(jjX@http://docs.python.org/3/library/calendar.html#calendar.calendarX-trnHXroundroH(jjX5http://docs.python.org/3/library/functions.html#roundX-trpHXdirrqH(jjX3http://docs.python.org/3/library/functions.html#dirX-trrHXasyncio.gatherrsH(jjXAhttp://docs.python.org/3/library/asyncio-task.html#asyncio.gatherX-trtHXdistutils.util.change_rootruH(jjXIhttp://docs.python.org/3/distutils/apiref.html#distutils.util.change_rootX-trvHXmath.powrwH(jjX3http://docs.python.org/3/library/math.html#math.powX-trxHXmultiprocessing.cpu_countryH(jjXOhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.cpu_countX-trzHXrandom.paretovariater{H(jjXAhttp://docs.python.org/3/library/random.html#random.paretovariateX-tr|HX#readline.get_current_history_lengthr}H(jjXRhttp://docs.python.org/3/library/readline.html#readline.get_current_history_lengthX-tr~HX math.fsumrH(jjX4http://docs.python.org/3/library/math.html#math.fsumX-trHXoperator.__xor__rH(jjX?http://docs.python.org/3/library/operator.html#operator.__xor__X-trHXlocale.localeconvrH(jjX>http://docs.python.org/3/library/locale.html#locale.localeconvX-trHXlogging.shutdownrH(jjX>http://docs.python.org/3/library/logging.html#logging.shutdownX-trHXcmath.isfiniterH(jjX:http://docs.python.org/3/library/cmath.html#cmath.isfiniteX-trHX os.mkfiforH(jjX2http://docs.python.org/3/library/os.html#os.mkfifoX-trHXtracemalloc.startrH(jjXChttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.startX-trHXstruct.calcsizerH(jjX<http://docs.python.org/3/library/struct.html#struct.calcsizeX-trHX site.mainrH(jjX4http://docs.python.org/3/library/site.html#site.mainX-trHX os.waitpidrH(jjX3http://docs.python.org/3/library/os.html#os.waitpidX-trHXnis.get_default_domainrH(jjX@http://docs.python.org/3/library/nis.html#nis.get_default_domainX-trHX!faulthandler.dump_traceback_laterrH(jjXThttp://docs.python.org/3/library/faulthandler.html#faulthandler.dump_traceback_laterX-trHX os.getloadavgrH(jjX6http://docs.python.org/3/library/os.html#os.getloadavgX-trHXfileinput.hook_compressedrH(jjXIhttp://docs.python.org/3/library/fileinput.html#fileinput.hook_compressedX-trHX dis.show_coderH(jjX7http://docs.python.org/3/library/dis.html#dis.show_codeX-trHXunittest.mock.mock_openrH(jjXKhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.mock_openX-trHX curses.setsyxrH(jjX:http://docs.python.org/3/library/curses.html#curses.setsyxX-trHXrandom.expovariaterH(jjX?http://docs.python.org/3/library/random.html#random.expovariateX-trHXasyncio.open_unix_connectionrH(jjXQhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.open_unix_connectionX-trHX os.WTERMSIGrH(jjX4http://docs.python.org/3/library/os.html#os.WTERMSIGX-trHXdoctest.DocFileSuiterH(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocFileSuiteX-trHX gzip.openrH(jjX4http://docs.python.org/3/library/gzip.html#gzip.openX-trHXinspect.ismemberdescriptorrH(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.ismemberdescriptorX-trHX winsound.BeeprH(jjX<http://docs.python.org/3/library/winsound.html#winsound.BeepX-trHX zlib.adler32rH(jjX7http://docs.python.org/3/library/zlib.html#zlib.adler32X-trHX os.getenvbrH(jjX3http://docs.python.org/3/library/os.html#os.getenvbX-trHXbinascii.a2b_hqxrH(jjX?http://docs.python.org/3/library/binascii.html#binascii.a2b_hqxX-trHXcolorsys.rgb_to_hsvrH(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hsvX-trHX quopri.decoderH(jjX:http://docs.python.org/3/library/quopri.html#quopri.decodeX-trHXoperator.ilshiftrH(jjX?http://docs.python.org/3/library/operator.html#operator.ilshiftX-trHXstruct.pack_intorH(jjX=http://docs.python.org/3/library/struct.html#struct.pack_intoX-trHXxml.etree.ElementTree.tostringrH(jjXZhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostringX-trHX json.dumpsrH(jjX5http://docs.python.org/3/library/json.html#json.dumpsX-trHX(faulthandler.cancel_dump_traceback_laterrH(jjX[http://docs.python.org/3/library/faulthandler.html#faulthandler.cancel_dump_traceback_laterX-trHX pwd.getpwuidrH(jjX6http://docs.python.org/3/library/pwd.html#pwd.getpwuidX-trHXmath.factorialrH(jjX9http://docs.python.org/3/library/math.html#math.factorialX-trHXinspect.getsourcelinesrH(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getsourcelinesX-trHXgc.get_referrersrH(jjX9http://docs.python.org/3/library/gc.html#gc.get_referrersX-trHXsysconfig.get_platformrH(jjXFhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_platformX-trHX socket.fromfdrH(jjX:http://docs.python.org/3/library/socket.html#socket.fromfdX-trHX curses.cbreakrH(jjX:http://docs.python.org/3/library/curses.html#curses.cbreakX-trHXparser.tuple2strH(jjX<http://docs.python.org/3/library/parser.html#parser.tuple2stX-trHX os.getgroupsrH(jjX5http://docs.python.org/3/library/os.html#os.getgroupsX-trHXlogging.captureWarningsrH(jjXEhttp://docs.python.org/3/library/logging.html#logging.captureWarningsX-trHX os.setresgidrH(jjX5http://docs.python.org/3/library/os.html#os.setresgidX-trHXurllib.parse.parse_qslrH(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qslX-trHXbinascii.b2a_hqxrH(jjX?http://docs.python.org/3/library/binascii.html#binascii.b2a_hqxX-trHX staticmethodrH(jjX<http://docs.python.org/3/library/functions.html#staticmethodX-trHX math.acosrH(jjX4http://docs.python.org/3/library/math.html#math.acosX-trHXplatform.processorrH(jjXAhttp://docs.python.org/3/library/platform.html#platform.processorX-trHXfaulthandler.disablerH(jjXGhttp://docs.python.org/3/library/faulthandler.html#faulthandler.disableX-trHXoperator.__itruediv__rH(jjXDhttp://docs.python.org/3/library/operator.html#operator.__itruediv__X-trHX wave.openfprH(jjX6http://docs.python.org/3/library/wave.html#wave.openfpX-trHXoperator.__ior__rH(jjX?http://docs.python.org/3/library/operator.html#operator.__ior__X-trHXplistlib.readPlistrH(jjXAhttp://docs.python.org/3/library/plistlib.html#plistlib.readPlistX-trHXzlib.decompressobjrH(jjX=http://docs.python.org/3/library/zlib.html#zlib.decompressobjX-trHXcurses.resize_termrH(jjX?http://docs.python.org/3/library/curses.html#curses.resize_termX-trHXsocket.gethostbynamerH(jjXAhttp://docs.python.org/3/library/socket.html#socket.gethostbynameX-trHXemail.message_from_binary_filerH(jjXQhttp://docs.python.org/3/library/email.parser.html#email.message_from_binary_fileX-trHX os.accessrH(jjX2http://docs.python.org/3/library/os.html#os.accessX-trHX time.strftimerH(jjX8http://docs.python.org/3/library/time.html#time.strftimeX-trHXcurses.setuptermrH(jjX=http://docs.python.org/3/library/curses.html#curses.setuptermX-trHXwarnings.simplefilterrH(jjXDhttp://docs.python.org/3/library/warnings.html#warnings.simplefilterX-trHXtoken.ISNONTERMINALrH(jjX?http://docs.python.org/3/library/token.html#token.ISNONTERMINALX-trHXdivmodrH(jjX6http://docs.python.org/3/library/functions.html#divmodX-trIX tracemalloc.get_object_tracebackrI(jjXRhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_object_tracebackX-trIXsys.exitrI(jjX2http://docs.python.org/3/library/sys.html#sys.exitX-trIXxml.etree.ElementTree.dumprI(jjXVhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.dumpX-trIX os.tcgetpgrprI(jjX5http://docs.python.org/3/library/os.html#os.tcgetpgrpX-trIXzipr I(jjX3http://docs.python.org/3/library/functions.html#zipX-tr IX audioop.mulr I(jjX9http://docs.python.org/3/library/audioop.html#audioop.mulX-tr IXlocale.normalizer I(jjX=http://docs.python.org/3/library/locale.html#locale.normalizeX-trIXimaplib.Time2InternaldaterI(jjXGhttp://docs.python.org/3/library/imaplib.html#imaplib.Time2InternaldateX-trIXchrrI(jjX3http://docs.python.org/3/library/functions.html#chrX-trIXkeyword.iskeywordrI(jjX?http://docs.python.org/3/library/keyword.html#keyword.iskeywordX-trIXreadline.get_begidxrI(jjXBhttp://docs.python.org/3/library/readline.html#readline.get_begidxX-trIXast.copy_locationrI(jjX;http://docs.python.org/3/library/ast.html#ast.copy_locationX-trIXwsgiref.util.request_urirI(jjXFhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.request_uriX-trIXgettext.bind_textdomain_codesetrI(jjXMhttp://docs.python.org/3/library/gettext.html#gettext.bind_textdomain_codesetX-trIXpkgutil.extend_pathrI(jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.extend_pathX-trIX grp.getgrgidrI(jjX6http://docs.python.org/3/library/grp.html#grp.getgrgidX-tr IXsubprocess.check_outputr!I(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.check_outputX-tr"IX turtle.resetr#I(jjX9http://docs.python.org/3/library/turtle.html#turtle.resetX-tr$IXcalendar.prcalr%I(jjX=http://docs.python.org/3/library/calendar.html#calendar.prcalX-tr&IXemail.utils.encode_rfc2231r'I(jjXKhttp://docs.python.org/3/library/email.util.html#email.utils.encode_rfc2231X-tr(IX cgitb.enabler)I(jjX8http://docs.python.org/3/library/cgitb.html#cgitb.enableX-tr*IXxmlrpc.client.dumpsr+I(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.dumpsX-tr,IXcreate_shortcutr-I(jjXAhttp://docs.python.org/3/distutils/builtdist.html#create_shortcutX-tr.IXurllib.parse.quoter/I(jjXEhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.quoteX-tr0IX stat.S_ISWHTr1I(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISWHTX-tr2IXcurses.is_term_resizedr3I(jjXChttp://docs.python.org/3/library/curses.html#curses.is_term_resizedX-tr4IX select.selectr5I(jjX:http://docs.python.org/3/library/select.html#select.selectX-tr6IXast.dumpr7I(jjX2http://docs.python.org/3/library/ast.html#ast.dumpX-tr8IXemail.charset.add_codecr9I(jjXKhttp://docs.python.org/3/library/email.charset.html#email.charset.add_codecX-tr:IX time.tzsetr;I(jjX5http://docs.python.org/3/library/time.html#time.tzsetX-trIX msvcrt.kbhitr?I(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.kbhitX-tr@IXgettext.lgettextrAI(jjX>http://docs.python.org/3/library/gettext.html#gettext.lgettextX-trBIX select.keventrCI(jjX:http://docs.python.org/3/library/select.html#select.keventX-trDIXemail.utils.decode_rfc2231rEI(jjXKhttp://docs.python.org/3/library/email.util.html#email.utils.decode_rfc2231X-trFIXmsvcrt.setmoderGI(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.setmodeX-trHIX grp.getgrallrII(jjX6http://docs.python.org/3/library/grp.html#grp.getgrallX-trJIX shlex.splitrKI(jjX7http://docs.python.org/3/library/shlex.html#shlex.splitX-trLIX crypt.cryptrMI(jjX7http://docs.python.org/3/library/crypt.html#crypt.cryptX-trNIX random.gaussrOI(jjX9http://docs.python.org/3/library/random.html#random.gaussX-trPIX fcntl.fcntlrQI(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.fcntlX-trRIXinspect.istracebackrSI(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.istracebackX-trTIXos.readvrUI(jjX1http://docs.python.org/3/library/os.html#os.readvX-trVIXturtle.fillcolorrWI(jjX=http://docs.python.org/3/library/turtle.html#turtle.fillcolorX-trXIX math.coshrYI(jjX4http://docs.python.org/3/library/math.html#math.coshX-trZIX os.getegidr[I(jjX3http://docs.python.org/3/library/os.html#os.getegidX-tr\IXoperator.__ifloordiv__r]I(jjXEhttp://docs.python.org/3/library/operator.html#operator.__ifloordiv__X-tr^IXturtle.forwardr_I(jjX;http://docs.python.org/3/library/turtle.html#turtle.forwardX-tr`IX asyncio.sleepraI(jjX@http://docs.python.org/3/library/asyncio-task.html#asyncio.sleepX-trbIXnis.catrcI(jjX1http://docs.python.org/3/library/nis.html#nis.catX-trdIX!xml.dom.registerDOMImplementationreI(jjXOhttp://docs.python.org/3/library/xml.dom.html#xml.dom.registerDOMImplementationX-trfIXreadline.get_completer_delimsrgI(jjXLhttp://docs.python.org/3/library/readline.html#readline.get_completer_delimsX-trhIXxml.parsers.expat.ParserCreateriI(jjXLhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ParserCreateX-trjIXtest.support.run_doctestrkI(jjXChttp://docs.python.org/3/library/test.html#test.support.run_doctestX-trlIXbinascii.b2a_base64rmI(jjXBhttp://docs.python.org/3/library/binascii.html#binascii.b2a_base64X-trnIXsys._current_framesroI(jjX=http://docs.python.org/3/library/sys.html#sys._current_framesX-trpIXturtle.towardsrqI(jjX;http://docs.python.org/3/library/turtle.html#turtle.towardsX-trrIXwarnings.formatwarningrsI(jjXEhttp://docs.python.org/3/library/warnings.html#warnings.formatwarningX-trtIXturtle.shearfactorruI(jjX?http://docs.python.org/3/library/turtle.html#turtle.shearfactorX-trvIXmimetypes.read_mime_typesrwI(jjXIhttp://docs.python.org/3/library/mimetypes.html#mimetypes.read_mime_typesX-trxIXos.posix_fadviseryI(jjX9http://docs.python.org/3/library/os.html#os.posix_fadviseX-trzIXemail.utils.unquoter{I(jjXDhttp://docs.python.org/3/library/email.util.html#email.utils.unquoteX-tr|IXtest.support.run_with_localer}I(jjXGhttp://docs.python.org/3/library/test.html#test.support.run_with_localeX-tr~IXos.plockrI(jjX1http://docs.python.org/3/library/os.html#os.plockX-trIXsys.call_tracingrI(jjX:http://docs.python.org/3/library/sys.html#sys.call_tracingX-trIXfunctools.wrapsrI(jjX?http://docs.python.org/3/library/functools.html#functools.wrapsX-trIXitertools.countrI(jjX?http://docs.python.org/3/library/itertools.html#itertools.countX-trIXipaddress.ip_interfacerI(jjXFhttp://docs.python.org/3/library/ipaddress.html#ipaddress.ip_interfaceX-trIX os.setgidrI(jjX2http://docs.python.org/3/library/os.html#os.setgidX-trIX turtle.rtrI(jjX6http://docs.python.org/3/library/turtle.html#turtle.rtX-trIX turtle.bgpicrI(jjX9http://docs.python.org/3/library/turtle.html#turtle.bgpicX-trIX wave.openrI(jjX4http://docs.python.org/3/library/wave.html#wave.openX-trIX fcntl.flockrI(jjX7http://docs.python.org/3/library/fcntl.html#fcntl.flockX-trIXmsvcrt.open_osfhandlerI(jjXBhttp://docs.python.org/3/library/msvcrt.html#msvcrt.open_osfhandleX-trIXcodeop.compile_commandrI(jjXChttp://docs.python.org/3/library/codeop.html#codeop.compile_commandX-trIXplatform.linux_distributionrI(jjXJhttp://docs.python.org/3/library/platform.html#platform.linux_distributionX-trIXmaprI(jjX3http://docs.python.org/3/library/functions.html#mapX-trIXstatistics.variancerI(jjXDhttp://docs.python.org/3/library/statistics.html#statistics.varianceX-trIXcolorsys.yiq_to_rgbrI(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.yiq_to_rgbX-trIXdistutils.util.convert_pathrI(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.convert_pathX-trIXos.path.samestatrI(jjX>http://docs.python.org/3/library/os.path.html#os.path.samestatX-trIXmaxrI(jjX3http://docs.python.org/3/library/functions.html#maxX-trIXaudioop.byteswaprI(jjX>http://docs.python.org/3/library/audioop.html#audioop.byteswapX-trIXgetpass.getuserrI(jjX=http://docs.python.org/3/library/getpass.html#getpass.getuserX-trIXturtle.end_polyrI(jjX<http://docs.python.org/3/library/turtle.html#turtle.end_polyX-trIXheapq.nsmallestrI(jjX;http://docs.python.org/3/library/heapq.html#heapq.nsmallestX-trIX csv.writerrI(jjX4http://docs.python.org/3/library/csv.html#csv.writerX-trIXoperator.getitemrI(jjX?http://docs.python.org/3/library/operator.html#operator.getitemX-trIX'itertools.combinations_with_replacementrI(jjXWhttp://docs.python.org/3/library/itertools.html#itertools.combinations_with_replacementX-trIXtraceback.format_stackrI(jjXFhttp://docs.python.org/3/library/traceback.html#traceback.format_stackX-trIX math.isinfrI(jjX5http://docs.python.org/3/library/math.html#math.isinfX-trIXos.forkrI(jjX0http://docs.python.org/3/library/os.html#os.forkX-trIXturtle.headingrI(jjX;http://docs.python.org/3/library/turtle.html#turtle.headingX-trIXgettext.ldgettextrI(jjX?http://docs.python.org/3/library/gettext.html#gettext.ldgettextX-trIXbinascii.crc32rI(jjX=http://docs.python.org/3/library/binascii.html#binascii.crc32X-trIXcopyreg.constructorrI(jjXAhttp://docs.python.org/3/library/copyreg.html#copyreg.constructorX-trIXinspect.iscoderI(jjX<http://docs.python.org/3/library/inspect.html#inspect.iscodeX-trIX cmath.atanrI(jjX6http://docs.python.org/3/library/cmath.html#cmath.atanX-trIX turtle.stamprI(jjX9http://docs.python.org/3/library/turtle.html#turtle.stampX-trIXgc.get_referentsrI(jjX9http://docs.python.org/3/library/gc.html#gc.get_referentsX-trIX aifc.openrI(jjX4http://docs.python.org/3/library/aifc.html#aifc.openX-trIXlogging.exceptionrI(jjX?http://docs.python.org/3/library/logging.html#logging.exceptionX-trIX os.lchflagsrI(jjX4http://docs.python.org/3/library/os.html#os.lchflagsX-trIXfnmatch.fnmatchcaserI(jjXAhttp://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchcaseX-trIXunicodedata.combiningrI(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.combiningX-trIX turtle.homerI(jjX8http://docs.python.org/3/library/turtle.html#turtle.homeX-trIX math.fmodrI(jjX4http://docs.python.org/3/library/math.html#math.fmodX-trIXlogging.addLevelNamerI(jjXBhttp://docs.python.org/3/library/logging.html#logging.addLevelNameX-trIXimp.acquire_lockrI(jjX:http://docs.python.org/3/library/imp.html#imp.acquire_lockX-trIXos.path.normcaserI(jjX>http://docs.python.org/3/library/os.path.html#os.path.normcaseX-trIXsysconfig.get_makefile_filenamerI(jjXOhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_makefile_filenameX-trIXbinascii.b2a_qprI(jjX>http://docs.python.org/3/library/binascii.html#binascii.b2a_qpX-trIXoperator.__eq__rI(jjX>http://docs.python.org/3/library/operator.html#operator.__eq__X-trIXurllib.parse.urlunsplitrI(jjXJhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlunsplitX-trIX os.makedirsrI(jjX4http://docs.python.org/3/library/os.html#os.makedirsX-trIXctypes.DllCanUnloadNowrI(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes.DllCanUnloadNowX-trIXdifflib.IS_LINE_JUNKrI(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.IS_LINE_JUNKX-trIXsocket.getservbyportrI(jjXAhttp://docs.python.org/3/library/socket.html#socket.getservbyportX-trIXimp.source_from_cacherI(jjX?http://docs.python.org/3/library/imp.html#imp.source_from_cacheX-trIXreadline.read_init_filerI(jjXFhttp://docs.python.org/3/library/readline.html#readline.read_init_fileX-trIXmimetypes.initrI(jjX>http://docs.python.org/3/library/mimetypes.html#mimetypes.initX-trIXos.WEXITSTATUSrI(jjX7http://docs.python.org/3/library/os.html#os.WEXITSTATUSX-trIXoperator.__delitem__rI(jjXChttp://docs.python.org/3/library/operator.html#operator.__delitem__X-trIXcurses.delay_outputrI(jjX@http://docs.python.org/3/library/curses.html#curses.delay_outputX-trIXurllib.request.build_openerrI(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.build_openerX-trIXitertools.repeatrI(jjX@http://docs.python.org/3/library/itertools.html#itertools.repeatX-trIX os.getgidrI(jjX2http://docs.python.org/3/library/os.html#os.getgidX-trIXurllib.request.urlopenrI(jjXKhttp://docs.python.org/3/library/urllib.request.html#urllib.request.urlopenX-trJXaudioop.tomonorJ(jjX<http://docs.python.org/3/library/audioop.html#audioop.tomonoX-trJXtest.support.change_cwdrJ(jjXBhttp://docs.python.org/3/library/test.html#test.support.change_cwdX-trJX audioop.biasrJ(jjX:http://docs.python.org/3/library/audioop.html#audioop.biasX-trJXtermios.tcflowrJ(jjX<http://docs.python.org/3/library/termios.html#termios.tcflowX-trJX socket.socketr J(jjX:http://docs.python.org/3/library/socket.html#socket.socketX-tr JXlocale.setlocaler J(jjX=http://docs.python.org/3/library/locale.html#locale.setlocaleX-tr JXimp.get_suffixesr J(jjX:http://docs.python.org/3/library/imp.html#imp.get_suffixesX-trJXreadline.set_completer_delimsrJ(jjXLhttp://docs.python.org/3/library/readline.html#readline.set_completer_delimsX-trJXcode.compile_commandrJ(jjX?http://docs.python.org/3/library/code.html#code.compile_commandX-trJX+xml.etree.ElementTree.ProcessingInstructionrJ(jjXghttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ProcessingInstructionX-trJX cmath.cosrJ(jjX5http://docs.python.org/3/library/cmath.html#cmath.cosX-trJXcompileall.compile_filerJ(jjXHhttp://docs.python.org/3/library/compileall.html#compileall.compile_fileX-trJX os.path.isdirrJ(jjX;http://docs.python.org/3/library/os.path.html#os.path.isdirX-trJXgettext.lngettextrJ(jjX?http://docs.python.org/3/library/gettext.html#gettext.lngettextX-trJXemail.message_from_stringrJ(jjXLhttp://docs.python.org/3/library/email.parser.html#email.message_from_stringX-trJXinspect.cleandocrJ(jjX>http://docs.python.org/3/library/inspect.html#inspect.cleandocX-tr JXmultiprocessing.current_processr!J(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.current_processX-tr"JX turtle.posr#J(jjX7http://docs.python.org/3/library/turtle.html#turtle.posX-tr$JXsortedr%J(jjX6http://docs.python.org/3/library/functions.html#sortedX-tr&JXos.pipe2r'J(jjX1http://docs.python.org/3/library/os.html#os.pipe2X-tr(JX re.fullmatchr)J(jjX5http://docs.python.org/3/library/re.html#re.fullmatchX-tr*JXwinsound.PlaySoundr+J(jjXAhttp://docs.python.org/3/library/winsound.html#winsound.PlaySoundX-tr,JX os.spawnlpr-J(jjX3http://docs.python.org/3/library/os.html#os.spawnlpX-tr.JX operator.ner/J(jjX:http://docs.python.org/3/library/operator.html#operator.neX-tr0JXos.path.getctimer1J(jjX>http://docs.python.org/3/library/os.path.html#os.path.getctimeX-tr2JXinspect.formatargvaluesr3J(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.formatargvaluesX-tr4JXpkgutil.iter_modulesr5J(jjXBhttp://docs.python.org/3/library/pkgutil.html#pkgutil.iter_modulesX-tr6JXxml.etree.ElementTree.XMLr7J(jjXUhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLX-tr8JXos.sched_get_priority_minr9J(jjXBhttp://docs.python.org/3/library/os.html#os.sched_get_priority_minX-tr:JXcgi.parse_headerr;J(jjX:http://docs.python.org/3/library/cgi.html#cgi.parse_headerX-trJXunicodedata.normalizer?J(jjXGhttp://docs.python.org/3/library/unicodedata.html#unicodedata.normalizeX-tr@JX os.getxattrrAJ(jjX4http://docs.python.org/3/library/os.html#os.getxattrX-trBJXinspect.ismethoddescriptorrCJ(jjXHhttp://docs.python.org/3/library/inspect.html#inspect.ismethoddescriptorX-trDJX time.gmtimerEJ(jjX6http://docs.python.org/3/library/time.html#time.gmtimeX-trFJXturtle.get_shapepolyrGJ(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.get_shapepolyX-trHJXlzma.is_check_supportedrIJ(jjXBhttp://docs.python.org/3/library/lzma.html#lzma.is_check_supportedX-trJJX#wsgiref.util.setup_testing_defaultsrKJ(jjXQhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.setup_testing_defaultsX-trLJXcurses.use_default_colorsrMJ(jjXFhttp://docs.python.org/3/library/curses.html#curses.use_default_colorsX-trNJXtime.clock_getresrOJ(jjX<http://docs.python.org/3/library/time.html#time.clock_getresX-trPJXthreading.enumeraterQJ(jjXChttp://docs.python.org/3/library/threading.html#threading.enumerateX-trRJXcodecs.EncodedFilerSJ(jjX?http://docs.python.org/3/library/codecs.html#codecs.EncodedFileX-trTJXrandom.vonmisesvariaterUJ(jjXChttp://docs.python.org/3/library/random.html#random.vonmisesvariateX-trVJXsocket.getnameinforWJ(jjX?http://docs.python.org/3/library/socket.html#socket.getnameinfoX-trXJX os.writevrYJ(jjX2http://docs.python.org/3/library/os.html#os.writevX-trZJXcsv.field_size_limitr[J(jjX>http://docs.python.org/3/library/csv.html#csv.field_size_limitX-tr\JX os.seteuidr]J(jjX3http://docs.python.org/3/library/os.html#os.seteuidX-tr^JXmsvcrt.lockingr_J(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.lockingX-tr`JXcurses.savettyraJ(jjX;http://docs.python.org/3/library/curses.html#curses.savettyX-trbJXmultiprocessing.get_contextrcJ(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.get_contextX-trdJXturtle.begin_fillreJ(jjX>http://docs.python.org/3/library/turtle.html#turtle.begin_fillX-trfJXinspect.getattr_staticrgJ(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getattr_staticX-trhJXcurses.flushinpriJ(jjX<http://docs.python.org/3/library/curses.html#curses.flushinpX-trjJXdis.disrkJ(jjX1http://docs.python.org/3/library/dis.html#dis.disX-trlJXsocket.if_nameindexrmJ(jjX@http://docs.python.org/3/library/socket.html#socket.if_nameindexX-trnJXbase64.b64decoderoJ(jjX=http://docs.python.org/3/library/base64.html#base64.b64decodeX-trpJXmsilib.gen_uuidrqJ(jjX<http://docs.python.org/3/library/msilib.html#msilib.gen_uuidX-trrJXsys.setrecursionlimitrsJ(jjX?http://docs.python.org/3/library/sys.html#sys.setrecursionlimitX-trtJX bisect.bisectruJ(jjX:http://docs.python.org/3/library/bisect.html#bisect.bisectX-trvJXdis.findlinestartsrwJ(jjX<http://docs.python.org/3/library/dis.html#dis.findlinestartsX-trxJX shelve.openryJ(jjX8http://docs.python.org/3/library/shelve.html#shelve.openX-trzJX os.setuidr{J(jjX2http://docs.python.org/3/library/os.html#os.setuidX-tr|JX random.choicer}J(jjX:http://docs.python.org/3/library/random.html#random.choiceX-tr~JXos.stat_float_timesrJ(jjX<http://docs.python.org/3/library/os.html#os.stat_float_timesX-trJXoperator.attrgetterrJ(jjXBhttp://docs.python.org/3/library/operator.html#operator.attrgetterX-trJXturtle.settiltanglerJ(jjX@http://docs.python.org/3/library/turtle.html#turtle.settiltangleX-trJXreadline.redisplayrJ(jjXAhttp://docs.python.org/3/library/readline.html#readline.redisplayX-trJX(xml.etree.ElementTree.register_namespacerJ(jjXdhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.register_namespaceX-trJX os.ttynamerJ(jjX3http://docs.python.org/3/library/os.html#os.ttynameX-trJXthreading.settracerJ(jjXBhttp://docs.python.org/3/library/threading.html#threading.settraceX-trJXordrJ(jjX3http://docs.python.org/3/library/functions.html#ordX-trJX time.ctimerJ(jjX5http://docs.python.org/3/library/time.html#time.ctimeX-trJXcodecs.iterdecoderJ(jjX>http://docs.python.org/3/library/codecs.html#codecs.iterdecodeX-trJXtest.support.import_modulerJ(jjXEhttp://docs.python.org/3/library/test.html#test.support.import_moduleX-trJXwsgiref.util.is_hop_by_hoprJ(jjXHhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.is_hop_by_hopX-trJXos.timesrJ(jjX1http://docs.python.org/3/library/os.html#os.timesX-trJX os.pwriterJ(jjX2http://docs.python.org/3/library/os.html#os.pwriteX-trJX!ipaddress.summarize_address_rangerJ(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.summarize_address_rangeX-trJX doctest.set_unittest_reportflagsrJ(jjXNhttp://docs.python.org/3/library/doctest.html#doctest.set_unittest_reportflagsX-trJX math.expm1rJ(jjX5http://docs.python.org/3/library/math.html#math.expm1X-trJX os.systemrJ(jjX2http://docs.python.org/3/library/os.html#os.systemX-trJXtempfile.TemporaryDirectoryrJ(jjXJhttp://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectoryX-trJXos.sched_setaffinityrJ(jjX=http://docs.python.org/3/library/os.html#os.sched_setaffinityX-trJXstatistics.median_lowrJ(jjXFhttp://docs.python.org/3/library/statistics.html#statistics.median_lowX-trJXdistutils.util.check_environrJ(jjXKhttp://docs.python.org/3/distutils/apiref.html#distutils.util.check_environX-trJXlogging.config.fileConfigrJ(jjXNhttp://docs.python.org/3/library/logging.config.html#logging.config.fileConfigX-trJXcurses.ascii.isblankrJ(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isblankX-trJX shutil.whichrJ(jjX9http://docs.python.org/3/library/shutil.html#shutil.whichX-trJX"sqlite3.enable_callback_tracebacksrJ(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacksX-trJXtermios.tcgetattrrJ(jjX?http://docs.python.org/3/library/termios.html#termios.tcgetattrX-trJX&importlib.util.spec_from_file_locationrJ(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.util.spec_from_file_locationX-trJX"xml.etree.ElementTree.tostringlistrJ(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostringlistX-trJX os.isattyrJ(jjX2http://docs.python.org/3/library/os.html#os.isattyX-trJXplatform.python_revisionrJ(jjXGhttp://docs.python.org/3/library/platform.html#platform.python_revisionX-trJX dbm.gnu.openrJ(jjX6http://docs.python.org/3/library/dbm.html#dbm.gnu.openX-trJX audioop.avgrJ(jjX9http://docs.python.org/3/library/audioop.html#audioop.avgX-trJXmsilib.UuidCreaterJ(jjX>http://docs.python.org/3/library/msilib.html#msilib.UuidCreateX-trJX random.randomrJ(jjX:http://docs.python.org/3/library/random.html#random.randomX-trJX stat.filemoderJ(jjX8http://docs.python.org/3/library/stat.html#stat.filemodeX-trJXsubprocess.getoutputrJ(jjXEhttp://docs.python.org/3/library/subprocess.html#subprocess.getoutputX-trJX os.spawnvperJ(jjX4http://docs.python.org/3/library/os.html#os.spawnvpeX-trJX cmath.logrJ(jjX5http://docs.python.org/3/library/cmath.html#cmath.logX-trJXsite.getuserbaserJ(jjX;http://docs.python.org/3/library/site.html#site.getuserbaseX-trJXbase64.b32decoderJ(jjX=http://docs.python.org/3/library/base64.html#base64.b32decodeX-trJXre.matchrJ(jjX1http://docs.python.org/3/library/re.html#re.matchX-trJXssl.enum_certificatesrJ(jjX?http://docs.python.org/3/library/ssl.html#ssl.enum_certificatesX-trJXopenrJ(jjX4http://docs.python.org/3/library/functions.html#openX-trJXplatform.win32_verrJ(jjXAhttp://docs.python.org/3/library/platform.html#platform.win32_verX-trJXturtle.onkeyreleaserJ(jjX@http://docs.python.org/3/library/turtle.html#turtle.onkeyreleaseX-trJXgettext.gettextrJ(jjX=http://docs.python.org/3/library/gettext.html#gettext.gettextX-trJX turtle.downrJ(jjX8http://docs.python.org/3/library/turtle.html#turtle.downX-trJXasyncio.set_event_loop_policyrJ(jjXVhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.set_event_loop_policyX-trJX ctypes.memsetrJ(jjX:http://docs.python.org/3/library/ctypes.html#ctypes.memsetX-trJXcompileall.compile_dirrJ(jjXGhttp://docs.python.org/3/library/compileall.html#compileall.compile_dirX-trJXos.sched_getaffinityrJ(jjX=http://docs.python.org/3/library/os.html#os.sched_getaffinityX-trJXos.utimerJ(jjX1http://docs.python.org/3/library/os.html#os.utimeX-trJXcalendar.timegmrJ(jjX>http://docs.python.org/3/library/calendar.html#calendar.timegmX-trJXreadline.remove_history_itemrJ(jjXKhttp://docs.python.org/3/library/readline.html#readline.remove_history_itemX-trJXcgi.print_formrJ(jjX8http://docs.python.org/3/library/cgi.html#cgi.print_formX-trJX turtle.ondragrJ(jjX:http://docs.python.org/3/library/turtle.html#turtle.ondragX-trJX bdb.set_tracerJ(jjX7http://docs.python.org/3/library/bdb.html#bdb.set_traceX-trJXturtle.onkeypressrJ(jjX>http://docs.python.org/3/library/turtle.html#turtle.onkeypressX-trJXinspect.getclosurevarsrJ(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.getclosurevarsX-trJXcurses.ascii.isupperrJ(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isupperX-trJXos.sched_setschedulerrJ(jjX>http://docs.python.org/3/library/os.html#os.sched_setschedulerX-trJXturtle.register_shaperJ(jjXBhttp://docs.python.org/3/library/turtle.html#turtle.register_shapeX-trJXplatform.popenrJ(jjX=http://docs.python.org/3/library/platform.html#platform.popenX-trJX gc.collectrJ(jjX3http://docs.python.org/3/library/gc.html#gc.collectX-trKX os.setsidrK(jjX2http://docs.python.org/3/library/os.html#os.setsidX-trKXreversedrK(jjX8http://docs.python.org/3/library/functions.html#reversedX-trKXturtle.write_docstringdictrK(jjXGhttp://docs.python.org/3/library/turtle.html#turtle.write_docstringdictX-trKXos.statrK(jjX0http://docs.python.org/3/library/os.html#os.statX-trKXsocket.create_connectionr K(jjXEhttp://docs.python.org/3/library/socket.html#socket.create_connectionX-tr KXsys.setdlopenflagsr K(jjX<http://docs.python.org/3/library/sys.html#sys.setdlopenflagsX-tr KXoperator.__abs__r K(jjX?http://docs.python.org/3/library/operator.html#operator.__abs__X-trKXos.chownrK(jjX1http://docs.python.org/3/library/os.html#os.chownX-trKXplatform.machinerK(jjX?http://docs.python.org/3/library/platform.html#platform.machineX-trKXquopri.decodestringrK(jjX@http://docs.python.org/3/library/quopri.html#quopri.decodestringX-trKX hashlib.newrK(jjX9http://docs.python.org/3/library/hashlib.html#hashlib.newX-trKX textwrap.wraprK(jjX<http://docs.python.org/3/library/textwrap.html#textwrap.wrapX-trKXcurses.ascii.isasciirK(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isasciiX-trKXsignal.setitimerrK(jjX=http://docs.python.org/3/library/signal.html#signal.setitimerX-trKXrandom.setstaterK(jjX<http://docs.python.org/3/library/random.html#random.setstateX-trKXturtle.window_heightrK(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.window_heightX-tr KX sunau.openr!K(jjX6http://docs.python.org/3/library/sunau.html#sunau.openX-tr"KX codecs.decoder#K(jjX:http://docs.python.org/3/library/codecs.html#codecs.decodeX-tr$KXresource.setrlimitr%K(jjXAhttp://docs.python.org/3/library/resource.html#resource.setrlimitX-tr&KXemail.utils.format_datetimer'K(jjXLhttp://docs.python.org/3/library/email.util.html#email.utils.format_datetimeX-tr(KX curses.getwinr)K(jjX:http://docs.python.org/3/library/curses.html#curses.getwinX-tr*KXunittest.mock.patch.objectr+K(jjXNhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch.objectX-tr,KXos.get_handle_inheritabler-K(jjXBhttp://docs.python.org/3/library/os.html#os.get_handle_inheritableX-tr.KXos.WIFCONTINUEDr/K(jjX8http://docs.python.org/3/library/os.html#os.WIFCONTINUEDX-tr0KXreadline.write_history_filer1K(jjXJhttp://docs.python.org/3/library/readline.html#readline.write_history_fileX-tr2KXxml.dom.minidom.parser3K(jjXKhttp://docs.python.org/3/library/xml.dom.minidom.html#xml.dom.minidom.parseX-tr4KXcalendar.prmonthr5K(jjX?http://docs.python.org/3/library/calendar.html#calendar.prmonthX-tr6KX audioop.addr7K(jjX9http://docs.python.org/3/library/audioop.html#audioop.addX-tr8KXos.device_encodingr9K(jjX;http://docs.python.org/3/library/os.html#os.device_encodingX-tr:KX os.closeranger;K(jjX6http://docs.python.org/3/library/os.html#os.closerangeX-trKXreadline.get_endidxr?K(jjXBhttp://docs.python.org/3/library/readline.html#readline.get_endidxX-tr@KX turtle.tiltrAK(jjX8http://docs.python.org/3/library/turtle.html#turtle.tiltX-trBKXcontextlib.redirect_stdoutrCK(jjXKhttp://docs.python.org/3/library/contextlib.html#contextlib.redirect_stdoutX-trDKXtempfile.gettempprefixrEK(jjXEhttp://docs.python.org/3/library/tempfile.html#tempfile.gettempprefixX-trFKXinspect.getcallargsrGK(jjXAhttp://docs.python.org/3/library/inspect.html#inspect.getcallargsX-trHKXget_special_folder_pathrIK(jjXIhttp://docs.python.org/3/distutils/builtdist.html#get_special_folder_pathX-trJKXbisect.bisect_leftrKK(jjX?http://docs.python.org/3/library/bisect.html#bisect.bisect_leftX-trLKXplatform.systemrMK(jjX>http://docs.python.org/3/library/platform.html#platform.systemX-trNKXbase64.decodebytesrOK(jjX?http://docs.python.org/3/library/base64.html#base64.decodebytesX-trPKXencodings.idna.ToUnicoderQK(jjXEhttp://docs.python.org/3/library/codecs.html#encodings.idna.ToUnicodeX-trRKX copy.deepcopyrSK(jjX8http://docs.python.org/3/library/copy.html#copy.deepcopyX-trTKXoperator.__imod__rUK(jjX@http://docs.python.org/3/library/operator.html#operator.__imod__X-trVKXanyrWK(jjX3http://docs.python.org/3/library/functions.html#anyX-trXKXmultiprocessing.active_childrenrYK(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.active_childrenX-trZKX os.tcsetpgrpr[K(jjX5http://docs.python.org/3/library/os.html#os.tcsetpgrpX-tr\KX os.fdatasyncr]K(jjX5http://docs.python.org/3/library/os.html#os.fdatasyncX-tr^KXtracemalloc.is_tracingr_K(jjXHhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.is_tracingX-tr`KXpkgutil.find_loaderraK(jjXAhttp://docs.python.org/3/library/pkgutil.html#pkgutil.find_loaderX-trbKX os.forkptyrcK(jjX3http://docs.python.org/3/library/os.html#os.forkptyX-trdKXcolorsys.rgb_to_hlsreK(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hlsX-trfKXpprint.safereprrgK(jjX<http://docs.python.org/3/library/pprint.html#pprint.safereprX-trhKXoperator.__invert__riK(jjXBhttp://docs.python.org/3/library/operator.html#operator.__invert__X-trjKXaudioop.ratecvrkK(jjX<http://docs.python.org/3/library/audioop.html#audioop.ratecvX-trlKX math.log2rmK(jjX4http://docs.python.org/3/library/math.html#math.log2X-trnKXdistutils.file_util.write_fileroK(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.file_util.write_fileX-trpKX re.escaperqK(jjX2http://docs.python.org/3/library/re.html#re.escapeX-trrKX turtle.shapersK(jjX9http://docs.python.org/3/library/turtle.html#turtle.shapeX-trtKXbase64.urlsafe_b64encoderuK(jjXEhttp://docs.python.org/3/library/base64.html#base64.urlsafe_b64encodeX-trvKXwinreg.QueryValuerwK(jjX>http://docs.python.org/3/library/winreg.html#winreg.QueryValueX-trxKXcurses.reset_prog_moderyK(jjXChttp://docs.python.org/3/library/curses.html#curses.reset_prog_modeX-trzKXtime.monotonicr{K(jjX9http://docs.python.org/3/library/time.html#time.monotonicX-tr|KXcsv.register_dialectr}K(jjX>http://docs.python.org/3/library/csv.html#csv.register_dialectX-tr~KX codecs.lookuprK(jjX:http://docs.python.org/3/library/codecs.html#codecs.lookupX-trKXcurses.nocbreakrK(jjX<http://docs.python.org/3/library/curses.html#curses.nocbreakX-trKX _thread.exitrK(jjX:http://docs.python.org/3/library/_thread.html#_thread.exitX-trKXos.sched_getschedulerrK(jjX>http://docs.python.org/3/library/os.html#os.sched_getschedulerX-trKXcallablerK(jjX8http://docs.python.org/3/library/functions.html#callableX-trKXos.wait4rK(jjX1http://docs.python.org/3/library/os.html#os.wait4X-trKXfunctools.lru_cacherK(jjXChttp://docs.python.org/3/library/functools.html#functools.lru_cacheX-trKXemail.encoders.encode_base64rK(jjXQhttp://docs.python.org/3/library/email.encoders.html#email.encoders.encode_base64X-trKXinspect.isgeneratorfunctionrK(jjXIhttp://docs.python.org/3/library/inspect.html#inspect.isgeneratorfunctionX-trKXos.wait3rK(jjX1http://docs.python.org/3/library/os.html#os.wait3X-trKXimportlib.util.resolve_namerK(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.util.resolve_nameX-trKXsysconfig.get_scheme_namesrK(jjXJhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_scheme_namesX-trKX turtle.penrK(jjX7http://docs.python.org/3/library/turtle.html#turtle.penX-trKX os.waitidrK(jjX2http://docs.python.org/3/library/os.html#os.waitidX-trKXimp.find_modulerK(jjX9http://docs.python.org/3/library/imp.html#imp.find_moduleX-trKXgc.set_thresholdrK(jjX9http://docs.python.org/3/library/gc.html#gc.set_thresholdX-trKXinspect.getmembersrK(jjX@http://docs.python.org/3/library/inspect.html#inspect.getmembersX-trKX turtle.htrK(jjX6http://docs.python.org/3/library/turtle.html#turtle.htX-trKX shutil.rmtreerK(jjX:http://docs.python.org/3/library/shutil.html#shutil.rmtreeX-trKXtracemalloc.get_traceback_limitrK(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_traceback_limitX-trKX%multiprocessing.sharedctypes.RawValuerK(jjX[http://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.RawValueX-trKXpyclbr.readmodulerK(jjX>http://docs.python.org/3/library/pyclbr.html#pyclbr.readmoduleX-trKX difflib.ndiffrK(jjX;http://docs.python.org/3/library/difflib.html#difflib.ndiffX-trKX os.getresuidrK(jjX5http://docs.python.org/3/library/os.html#os.getresuidX-trKX html.unescaperK(jjX8http://docs.python.org/3/library/html.html#html.unescapeX-trKX os.fsdecoderK(jjX4http://docs.python.org/3/library/os.html#os.fsdecodeX-trKXsys.getrefcountrK(jjX9http://docs.python.org/3/library/sys.html#sys.getrefcountX-trKXimp.new_modulerK(jjX8http://docs.python.org/3/library/imp.html#imp.new_moduleX-trKXos.fstatrK(jjX1http://docs.python.org/3/library/os.html#os.fstatX-trKXdistutils.util.get_platformrK(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.get_platformX-trKX operator.powrK(jjX;http://docs.python.org/3/library/operator.html#operator.powX-trKXctypes.set_errnorK(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.set_errnoX-trKXunicodedata.mirroredrK(jjXFhttp://docs.python.org/3/library/unicodedata.html#unicodedata.mirroredX-trKX operator.posrK(jjX;http://docs.python.org/3/library/operator.html#operator.posX-trKXwinreg.DeleteValuerK(jjX?http://docs.python.org/3/library/winreg.html#winreg.DeleteValueX-trKXinspect.getdocrK(jjX<http://docs.python.org/3/library/inspect.html#inspect.getdocX-trKXtraceback.format_tbrK(jjXChttp://docs.python.org/3/library/traceback.html#traceback.format_tbX-trKXfnmatch.fnmatchrK(jjX=http://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchX-trKXtraceback.clear_framesrK(jjXFhttp://docs.python.org/3/library/traceback.html#traceback.clear_framesX-trKX$xml.etree.ElementTree.fromstringlistrK(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.fromstringlistX-trKX!email.utils.parsedate_to_datetimerK(jjXRhttp://docs.python.org/3/library/email.util.html#email.utils.parsedate_to_datetimeX-trKXcurses.panel.new_panelrK(jjXIhttp://docs.python.org/3/library/curses.panel.html#curses.panel.new_panelX-trKXcolorsys.hsv_to_rgbrK(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.hsv_to_rgbX-trKXdistutils.core.run_setuprK(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.core.run_setupX-trKXinspect.getgeneratorstaterK(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.getgeneratorstateX-trKXsocket.fromsharerK(jjX=http://docs.python.org/3/library/socket.html#socket.fromshareX-trKXasyncio.set_event_looprK(jjXOhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.set_event_loopX-trKXprintrK(jjX5http://docs.python.org/3/library/functions.html#printX-trKXnis.mapsrK(jjX2http://docs.python.org/3/library/nis.html#nis.mapsX-trKXsyslog.setlogmaskrK(jjX>http://docs.python.org/3/library/syslog.html#syslog.setlogmaskX-trKXunicodedata.lookuprK(jjXDhttp://docs.python.org/3/library/unicodedata.html#unicodedata.lookupX-trKXconcurrent.futures.as_completedrK(jjXXhttp://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.as_completedX-trKX"tracemalloc.get_tracemalloc_memoryrK(jjXThttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.get_tracemalloc_memoryX-trKX pickle.dumpsrK(jjX9http://docs.python.org/3/library/pickle.html#pickle.dumpsX-trKX os.getcwdrK(jjX2http://docs.python.org/3/library/os.html#os.getcwdX-trKXoperator.truedivrK(jjX?http://docs.python.org/3/library/operator.html#operator.truedivX-trKXctypes.DllGetClassObjectrK(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes.DllGetClassObjectX-trKXcalendar.monthrK(jjX=http://docs.python.org/3/library/calendar.html#calendar.monthX-trKXssl.match_hostnamerK(jjX<http://docs.python.org/3/library/ssl.html#ssl.match_hostnameX-trKX os.getresgidrK(jjX5http://docs.python.org/3/library/os.html#os.getresgidX-trKXimportlib.reloadrK(jjX@http://docs.python.org/3/library/importlib.html#importlib.reloadX-trKXssl.PEM_cert_to_DER_certrK(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.PEM_cert_to_DER_certX-trKXcurses.pair_contentrK(jjX@http://docs.python.org/3/library/curses.html#curses.pair_contentX-trKXreprrK(jjX4http://docs.python.org/3/library/functions.html#reprX-trKX timeit.repeatrK(jjX:http://docs.python.org/3/library/timeit.html#timeit.repeatX-trLXunicodedata.bidirectionalrL(jjXKhttp://docs.python.org/3/library/unicodedata.html#unicodedata.bidirectionalX-trLXinspect.isfunctionrL(jjX@http://docs.python.org/3/library/inspect.html#inspect.isfunctionX-trLXdistutils.util.split_quotedrL(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.split_quotedX-trLX ssl.enum_crlsrL(jjX7http://docs.python.org/3/library/ssl.html#ssl.enum_crlsX-trLXcurses.noqiflushr L(jjX=http://docs.python.org/3/library/curses.html#curses.noqiflushX-tr LXcodecs.strict_errorsr L(jjXAhttp://docs.python.org/3/library/codecs.html#codecs.strict_errorsX-tr LXcurses.ascii.isdigitr L(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isdigitX-trLX stat.S_ISDOORrL(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISDOORX-trLX turtle.strL(jjX6http://docs.python.org/3/library/turtle.html#turtle.stX-trLX sys.exc_inforL(jjX6http://docs.python.org/3/library/sys.html#sys.exc_infoX-trLX socket.htonsrL(jjX9http://docs.python.org/3/library/socket.html#socket.htonsX-trLXthreading.setprofilerL(jjXDhttp://docs.python.org/3/library/threading.html#threading.setprofileX-trLXtraceback.print_exceptionrL(jjXIhttp://docs.python.org/3/library/traceback.html#traceback.print_exceptionX-trLXshutil.ignore_patternsrL(jjXChttp://docs.python.org/3/library/shutil.html#shutil.ignore_patternsX-trLXprofile.runctxrL(jjX<http://docs.python.org/3/library/profile.html#profile.runctxX-trLXpickletools.genopsrL(jjXDhttp://docs.python.org/3/library/pickletools.html#pickletools.genopsX-tr LX socket.htonlr!L(jjX9http://docs.python.org/3/library/socket.html#socket.htonlX-tr"LXre.splitr#L(jjX1http://docs.python.org/3/library/re.html#re.splitX-tr$LXos.sched_get_priority_maxr%L(jjXBhttp://docs.python.org/3/library/os.html#os.sched_get_priority_maxX-tr&LXinspect.getfiler'L(jjX=http://docs.python.org/3/library/inspect.html#inspect.getfileX-tr(LXoperator.delitemr)L(jjX?http://docs.python.org/3/library/operator.html#operator.delitemX-tr*LX time.strptimer+L(jjX8http://docs.python.org/3/library/time.html#time.strptimeX-tr,LXwinreg.QueryReflectionKeyr-L(jjXFhttp://docs.python.org/3/library/winreg.html#winreg.QueryReflectionKeyX-tr.LX operator.negr/L(jjX;http://docs.python.org/3/library/operator.html#operator.negX-tr0LXsubprocess.getstatusoutputr1L(jjXKhttp://docs.python.org/3/library/subprocess.html#subprocess.getstatusoutputX-tr2LXoperator.__ipow__r3L(jjX@http://docs.python.org/3/library/operator.html#operator.__ipow__X-tr4LX dbm.whichdbr5L(jjX5http://docs.python.org/3/library/dbm.html#dbm.whichdbX-tr6LX#distutils.sysconfig.get_config_varsr7L(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varsX-tr8LXctypes.get_errnor9L(jjX=http://docs.python.org/3/library/ctypes.html#ctypes.get_errnoX-tr:LXtraceback.print_stackr;L(jjXEhttp://docs.python.org/3/library/traceback.html#traceback.print_stackX-trLX$distutils.sysconfig.set_python_buildr?L(jjXShttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.set_python_buildX-tr@LXencodings.idna.namepreprAL(jjXDhttp://docs.python.org/3/library/codecs.html#encodings.idna.nameprepX-trBLXhashlib.pbkdf2_hmacrCL(jjXAhttp://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmacX-trDLX grp.getgrnamrEL(jjX6http://docs.python.org/3/library/grp.html#grp.getgrnamX-trFLXrandom.shufflerGL(jjX;http://docs.python.org/3/library/random.html#random.shuffleX-trHLXurllib.parse.urlencoderIL(jjXIhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencodeX-trJLXtracemalloc.clear_tracesrKL(jjXJhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.clear_tracesX-trLLX math.hypotrML(jjX5http://docs.python.org/3/library/math.html#math.hypotX-trNLXurllib.parse.unquoterOL(jjXGhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquoteX-trPLXhmac.newrQL(jjX3http://docs.python.org/3/library/hmac.html#hmac.newX-trRLX glob.escaperSL(jjX6http://docs.python.org/3/library/glob.html#glob.escapeX-trTLXos.path.dirnamerUL(jjX=http://docs.python.org/3/library/os.path.html#os.path.dirnameX-trVLXgetattrrWL(jjX7http://docs.python.org/3/library/functions.html#getattrX-trXLX math.log10rYL(jjX5http://docs.python.org/3/library/math.html#math.log10X-trZLXoperator.__le__r[L(jjX>http://docs.python.org/3/library/operator.html#operator.__le__X-tr\LX time.clockr]L(jjX5http://docs.python.org/3/library/time.html#time.clockX-tr^LXmath.sinr_L(jjX3http://docs.python.org/3/library/math.html#math.sinX-tr`LX os.symlinkraL(jjX3http://docs.python.org/3/library/os.html#os.symlinkX-trbLXtextwrap.dedentrcL(jjX>http://docs.python.org/3/library/textwrap.html#textwrap.dedentX-trdLX operator.iorreL(jjX;http://docs.python.org/3/library/operator.html#operator.iorX-trfLX turtle.delayrgL(jjX9http://docs.python.org/3/library/turtle.html#turtle.delayX-trhLXtime.perf_counterriL(jjX<http://docs.python.org/3/library/time.html#time.perf_counterX-trjLXsocket.socketpairrkL(jjX>http://docs.python.org/3/library/socket.html#socket.socketpairX-trlLXcurses.tigetflagrmL(jjX=http://docs.python.org/3/library/curses.html#curses.tigetflagX-trnLXemail.utils.parsedateroL(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.parsedateX-trpLX lzma.compressrqL(jjX8http://docs.python.org/3/library/lzma.html#lzma.compressX-trrLXfileinput.filenamersL(jjXBhttp://docs.python.org/3/library/fileinput.html#fileinput.filenameX-trtLXurllib.parse.parse_qsruL(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qsX-trvLXtabnanny.tokeneaterrwL(jjXBhttp://docs.python.org/3/library/tabnanny.html#tabnanny.tokeneaterX-trxLXturtle.turtlesryL(jjX;http://docs.python.org/3/library/turtle.html#turtle.turtlesX-trzLX random.sampler{L(jjX:http://docs.python.org/3/library/random.html#random.sampleX-tr|LXstringprep.map_table_b2r}L(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.map_table_b2X-tr~LX gc.get_countrL(jjX5http://docs.python.org/3/library/gc.html#gc.get_countX-trLXast.iter_fieldsrL(jjX9http://docs.python.org/3/library/ast.html#ast.iter_fieldsX-trLXaudioop.lin2adpcmrL(jjX?http://docs.python.org/3/library/audioop.html#audioop.lin2adpcmX-trLXfileinput.closerL(jjX?http://docs.python.org/3/library/fileinput.html#fileinput.closeX-trLXwinreg.QueryInfoKeyrL(jjX@http://docs.python.org/3/library/winreg.html#winreg.QueryInfoKeyX-trLX test.support.skip_unless_symlinkrL(jjXKhttp://docs.python.org/3/library/test.html#test.support.skip_unless_symlinkX-trLXurllib.request.url2pathnamerL(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.url2pathnameX-trLXast.fix_missing_locationsrL(jjXChttp://docs.python.org/3/library/ast.html#ast.fix_missing_locationsX-trLXtest.support.temp_dirrL(jjX@http://docs.python.org/3/library/test.html#test.support.temp_dirX-trLXcodecs.getwriterrL(jjX=http://docs.python.org/3/library/codecs.html#codecs.getwriterX-trLXshutil.register_archive_formatrL(jjXKhttp://docs.python.org/3/library/shutil.html#shutil.register_archive_formatX-trLXoperator.__lt__rL(jjX>http://docs.python.org/3/library/operator.html#operator.__lt__X-trLXwsgiref.handlers.read_environrL(jjXKhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.read_environX-trLXoperator.__floordiv__rL(jjXDhttp://docs.python.org/3/library/operator.html#operator.__floordiv__X-trLX math.log1prL(jjX5http://docs.python.org/3/library/math.html#math.log1pX-trLXparser.sequence2strL(jjX?http://docs.python.org/3/library/parser.html#parser.sequence2stX-trLX_thread.stack_sizerL(jjX@http://docs.python.org/3/library/_thread.html#_thread.stack_sizeX-trLXos.path.samefilerL(jjX>http://docs.python.org/3/library/os.path.html#os.path.samefileX-trLXfileinput.isstdinrL(jjXAhttp://docs.python.org/3/library/fileinput.html#fileinput.isstdinX-trLXdistutils.dep_util.newer_grouprL(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_groupX-trLXos.duprL(jjX/http://docs.python.org/3/library/os.html#os.dupX-trLXxml.etree.ElementTree.CommentrL(jjXYhttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.CommentX-trLX xml.etree.ElementTree.fromstringrL(jjX\http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.fromstringX-trLXinspect.isbuiltinrL(jjX?http://docs.python.org/3/library/inspect.html#inspect.isbuiltinX-trLXos.path.splituncrL(jjX>http://docs.python.org/3/library/os.path.html#os.path.splituncX-trLX operator.gtrL(jjX:http://docs.python.org/3/library/operator.html#operator.gtX-trLXpowrL(jjX3http://docs.python.org/3/library/functions.html#powX-trLXcodecs.replace_errorsrL(jjXBhttp://docs.python.org/3/library/codecs.html#codecs.replace_errorsX-trLXunittest.skipIfrL(jjX>http://docs.python.org/3/library/unittest.html#unittest.skipIfX-trLX os.path.splitrL(jjX;http://docs.python.org/3/library/os.path.html#os.path.splitX-trLXast.walkrL(jjX2http://docs.python.org/3/library/ast.html#ast.walkX-trLXtest.support.captured_stdinrL(jjXFhttp://docs.python.org/3/library/test.html#test.support.captured_stdinX-trLXturtle.setundobufferrL(jjXAhttp://docs.python.org/3/library/turtle.html#turtle.setundobufferX-trLXshutil.register_unpack_formatrL(jjXJhttp://docs.python.org/3/library/shutil.html#shutil.register_unpack_formatX-trLXcontextlib.closingrL(jjXChttp://docs.python.org/3/library/contextlib.html#contextlib.closingX-trLX tarfile.openrL(jjX:http://docs.python.org/3/library/tarfile.html#tarfile.openX-trLXtokenize.tokenizerL(jjX@http://docs.python.org/3/library/tokenize.html#tokenize.tokenizeX-trLXitertools.takewhilerL(jjXChttp://docs.python.org/3/library/itertools.html#itertools.takewhileX-trLXcurses.ascii.islowerrL(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.islowerX-trLX turtle.circlerL(jjX:http://docs.python.org/3/library/turtle.html#turtle.circleX-trLXtempfile.mkstemprL(jjX?http://docs.python.org/3/library/tempfile.html#tempfile.mkstempX-trLXemail.charset.add_aliasrL(jjXKhttp://docs.python.org/3/library/email.charset.html#email.charset.add_aliasX-trLXcodecs.getincrementaldecoderrL(jjXIhttp://docs.python.org/3/library/codecs.html#codecs.getincrementaldecoderX-trLXstatistics.stdevrL(jjXAhttp://docs.python.org/3/library/statistics.html#statistics.stdevX-trLXstatistics.medianrL(jjXBhttp://docs.python.org/3/library/statistics.html#statistics.medianX-trLXoperator.concatrL(jjX>http://docs.python.org/3/library/operator.html#operator.concatX-trLXbase64.decodestringrL(jjX@http://docs.python.org/3/library/base64.html#base64.decodestringX-trLXctypes.GetLastErrorrL(jjX@http://docs.python.org/3/library/ctypes.html#ctypes.GetLastErrorX-trLXcalendar.monthcalendarrL(jjXEhttp://docs.python.org/3/library/calendar.html#calendar.monthcalendarX-trLX sndhdr.whatrL(jjX8http://docs.python.org/3/library/sndhdr.html#sndhdr.whatX-trLXturtle.radiansrL(jjX;http://docs.python.org/3/library/turtle.html#turtle.radiansX-trLXrunpy.run_modulerL(jjX<http://docs.python.org/3/library/runpy.html#runpy.run_moduleX-trLX os.geteuidrL(jjX3http://docs.python.org/3/library/os.html#os.geteuidX-trLX cmath.log10rL(jjX7http://docs.python.org/3/library/cmath.html#cmath.log10X-trLXemail.utils.parsedate_tzrL(jjXIhttp://docs.python.org/3/library/email.util.html#email.utils.parsedate_tzX-trLX turtle.widthrL(jjX9http://docs.python.org/3/library/turtle.html#turtle.widthX-trLX os.urandomrL(jjX3http://docs.python.org/3/library/os.html#os.urandomX-trLXlocale.nl_langinforL(jjX?http://docs.python.org/3/library/locale.html#locale.nl_langinfoX-trLXmsvcrt.ungetchrL(jjX;http://docs.python.org/3/library/msvcrt.html#msvcrt.ungetchX-trLXmsilib.FCICreaterL(jjX=http://docs.python.org/3/library/msilib.html#msilib.FCICreateX-trLX tty.setrawrL(jjX4http://docs.python.org/3/library/tty.html#tty.setrawX-trLXcurses.panel.bottom_panelrL(jjXLhttp://docs.python.org/3/library/curses.panel.html#curses.panel.bottom_panelX-trLXbase64.a85encoderL(jjX=http://docs.python.org/3/library/base64.html#base64.a85encodeX-trLX"multiprocessing.sharedctypes.ArrayrL(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.ArrayX-trLXunicodedata.numericrL(jjXEhttp://docs.python.org/3/library/unicodedata.html#unicodedata.numericX-trMX os.execvprM(jjX2http://docs.python.org/3/library/os.html#os.execvpX-trMXlocale.getpreferredencodingrM(jjXHhttp://docs.python.org/3/library/locale.html#locale.getpreferredencodingX-trMXturtle.window_widthrM(jjX@http://docs.python.org/3/library/turtle.html#turtle.window_widthX-trMXfnmatch.filterrM(jjX<http://docs.python.org/3/library/fnmatch.html#fnmatch.filterX-trMXinspect.formatargspecr M(jjXChttp://docs.python.org/3/library/inspect.html#inspect.formatargspecX-tr MXcompiler M(jjX7http://docs.python.org/3/library/functions.html#compileX-tr MX os.WSTOPSIGr M(jjX4http://docs.python.org/3/library/os.html#os.WSTOPSIGX-trMX os.execverM(jjX2http://docs.python.org/3/library/os.html#os.execveX-trMXstatistics.meanrM(jjX@http://docs.python.org/3/library/statistics.html#statistics.meanX-trMXshutil.unpack_archiverM(jjXBhttp://docs.python.org/3/library/shutil.html#shutil.unpack_archiveX-trMXos.path.commonprefixrM(jjXBhttp://docs.python.org/3/library/os.path.html#os.path.commonprefixX-trMXos.path.ismountrM(jjX=http://docs.python.org/3/library/os.path.html#os.path.ismountX-trMXturtle.ontimerrM(jjX;http://docs.python.org/3/library/turtle.html#turtle.ontimerX-trMXcurses.ascii.altrM(jjXChttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.altX-trMXre.purgerM(jjX1http://docs.python.org/3/library/re.html#re.purgeX-trMXcurses.termnamerM(jjX<http://docs.python.org/3/library/curses.html#curses.termnameX-tr MXreadline.set_completerr!M(jjXEhttp://docs.python.org/3/library/readline.html#readline.set_completerX-tr"MXsysconfig.get_config_varsr#M(jjXIhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_config_varsX-tr$MX __import__r%M(jjX:http://docs.python.org/3/library/functions.html#__import__X-tr&MXxml.etree.ElementTree.iselementr'M(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.iselementX-tr(MXos.umaskr)M(jjX1http://docs.python.org/3/library/os.html#os.umaskX-tr*MXwinreg.CreateKeyExr+M(jjX?http://docs.python.org/3/library/winreg.html#winreg.CreateKeyExX-tr,MXstruct.iter_unpackr-M(jjX?http://docs.python.org/3/library/struct.html#struct.iter_unpackX-tr.MX audioop.rmsr/M(jjX9http://docs.python.org/3/library/audioop.html#audioop.rmsX-tr0MXcurses.ascii.asciir1M(jjXEhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.asciiX-tr2MXbase64.a85decoder3M(jjX=http://docs.python.org/3/library/base64.html#base64.a85decodeX-tr4MXgettext.dngettextr5M(jjX?http://docs.python.org/3/library/gettext.html#gettext.dngettextX-tr6MXasciir7M(jjX5http://docs.python.org/3/library/functions.html#asciiX-tr8MX asyncio.asyncr9M(jjX@http://docs.python.org/3/library/asyncio-task.html#asyncio.asyncX-tr:MX cgi.parse_qslr;M(jjX7http://docs.python.org/3/library/cgi.html#cgi.parse_qslX-trMX distutils.ccompiler.new_compilerr?M(jjXOhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.new_compilerX-tr@MXtypes.DynamicClassAttributerAM(jjXGhttp://docs.python.org/3/library/types.html#types.DynamicClassAttributeX-trBMX test.support.import_fresh_modulerCM(jjXKhttp://docs.python.org/3/library/test.html#test.support.import_fresh_moduleX-trDMXpkgutil.get_importerrEM(jjXBhttp://docs.python.org/3/library/pkgutil.html#pkgutil.get_importerX-trFMXsocket.if_indextonamerGM(jjXBhttp://docs.python.org/3/library/socket.html#socket.if_indextonameX-trHMX curses.nlrIM(jjX6http://docs.python.org/3/library/curses.html#curses.nlX-trJMX#distutils.archive_util.make_archiverKM(jjXRhttp://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_archiveX-trLMXcurses.color_pairrMM(jjX>http://docs.python.org/3/library/curses.html#curses.color_pairX-trNMX&distutils.sysconfig.customize_compilerrOM(jjXUhttp://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.customize_compilerX-trPMXturtle.getscreenrQM(jjX=http://docs.python.org/3/library/turtle.html#turtle.getscreenX-trRMXctypes.WINFUNCTYPErSM(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.WINFUNCTYPEX-trTMXoperator.__getitem__rUM(jjXChttp://docs.python.org/3/library/operator.html#operator.__getitem__X-trVMX turtle.onkeyrWM(jjX9http://docs.python.org/3/library/turtle.html#turtle.onkeyX-trXMXselect.devpollrYM(jjX;http://docs.python.org/3/library/select.html#select.devpollX-trZMXturtle.getturtler[M(jjX=http://docs.python.org/3/library/turtle.html#turtle.getturtleX-tr\MXplatform.libc_verr]M(jjX@http://docs.python.org/3/library/platform.html#platform.libc_verX-tr^MX tkinter.Tclr_M(jjX9http://docs.python.org/3/library/tkinter.html#tkinter.TclX-tr`MXssl.create_default_contextraM(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.create_default_contextX-trbMX operator.lercM(jjX:http://docs.python.org/3/library/operator.html#operator.leX-trdMX codecs.openreM(jjX8http://docs.python.org/3/library/codecs.html#codecs.openX-trfMX marshal.dumprgM(jjX:http://docs.python.org/3/library/marshal.html#marshal.dumpX-trhMXpdb.pmriM(jjX0http://docs.python.org/3/library/pdb.html#pdb.pmX-trjMX os.listxattrrkM(jjX5http://docs.python.org/3/library/os.html#os.listxattrX-trlMXcolorsys.rgb_to_yiqrmM(jjXBhttp://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_yiqX-trnMX os.sysconfroM(jjX3http://docs.python.org/3/library/os.html#os.sysconfX-trpMX operator.ixorrqM(jjX<http://docs.python.org/3/library/operator.html#operator.ixorX-trrMXcurses.qiflushrsM(jjX;http://docs.python.org/3/library/curses.html#curses.qiflushX-trtMX json.loadruM(jjX4http://docs.python.org/3/library/json.html#json.loadX-trvMX operator.ltrwM(jjX:http://docs.python.org/3/library/operator.html#operator.ltX-trxMXcurses.ascii.isspaceryM(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isspaceX-trzMXctypes.create_unicode_bufferr{M(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.create_unicode_bufferX-tr|MXsocket.CMSG_SPACEr}M(jjX>http://docs.python.org/3/library/socket.html#socket.CMSG_SPACEX-tr~MXoperator.floordivrM(jjX@http://docs.python.org/3/library/operator.html#operator.floordivX-trMX"distutils.ccompiler.show_compilersrM(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.show_compilersX-trMXgettext.translationrM(jjXAhttp://docs.python.org/3/library/gettext.html#gettext.translationX-trMX xml.sax.parserM(jjX;http://docs.python.org/3/library/xml.sax.html#xml.sax.parseX-trMXcurses.def_shell_moderM(jjXBhttp://docs.python.org/3/library/curses.html#curses.def_shell_modeX-trMXurllib.parse.urljoinrM(jjXGhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urljoinX-trMX turtle.moderM(jjX8http://docs.python.org/3/library/turtle.html#turtle.modeX-trMXoperator.irshiftrM(jjX?http://docs.python.org/3/library/operator.html#operator.irshiftX-trMX textwrap.fillrM(jjX<http://docs.python.org/3/library/textwrap.html#textwrap.fillX-trMXpkgutil.walk_packagesrM(jjXChttp://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packagesX-trMXitertools.accumulaterM(jjXDhttp://docs.python.org/3/library/itertools.html#itertools.accumulateX-trMXtraceback.format_excrM(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.format_excX-trMXdoctest.testmodrM(jjX=http://docs.python.org/3/library/doctest.html#doctest.testmodX-trMXreadline.insert_textrM(jjXChttp://docs.python.org/3/library/readline.html#readline.insert_textX-trMXos.waitrM(jjX0http://docs.python.org/3/library/os.html#os.waitX-trMXmsilib.OpenDatabaserM(jjX@http://docs.python.org/3/library/msilib.html#msilib.OpenDatabaseX-trMXtest.support.find_unused_portrM(jjXHhttp://docs.python.org/3/library/test.html#test.support.find_unused_portX-trMXurllib.parse.urlsplitrM(jjXHhttp://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlsplitX-trMXssl.wrap_socketrM(jjX9http://docs.python.org/3/library/ssl.html#ssl.wrap_socketX-trMX!wsgiref.simple_server.make_serverrM(jjXOhttp://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.make_serverX-trMX isinstancerM(jjX:http://docs.python.org/3/library/functions.html#isinstanceX-trMXrunpy.run_pathrM(jjX:http://docs.python.org/3/library/runpy.html#runpy.run_pathX-trMX dbm.dumb.openrM(jjX7http://docs.python.org/3/library/dbm.html#dbm.dumb.openX-trMX math.floorrM(jjX5http://docs.python.org/3/library/math.html#math.floorX-trMX lzma.openrM(jjX4http://docs.python.org/3/library/lzma.html#lzma.openX-trMXcurses.use_envrM(jjX;http://docs.python.org/3/library/curses.html#curses.use_envX-trMXitertools.productrM(jjXAhttp://docs.python.org/3/library/itertools.html#itertools.productX-trMX sys.getsizeofrM(jjX7http://docs.python.org/3/library/sys.html#sys.getsizeofX-trMXaudioop.adpcm2linrM(jjX?http://docs.python.org/3/library/audioop.html#audioop.adpcm2linX-trMXtoken.ISTERMINALrM(jjX<http://docs.python.org/3/library/token.html#token.ISTERMINALX-trMXstringprep.in_table_a1rM(jjXGhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_a1X-trMXoperator.iconcatrM(jjX?http://docs.python.org/3/library/operator.html#operator.iconcatX-trMXitertools.permutationsrM(jjXFhttp://docs.python.org/3/library/itertools.html#itertools.permutationsX-trMXencodings.idna.ToASCIIrM(jjXChttp://docs.python.org/3/library/codecs.html#encodings.idna.ToASCIIX-trMXsysconfig.get_pathrM(jjXBhttp://docs.python.org/3/library/sysconfig.html#sysconfig.get_pathX-trMX re.compilerM(jjX3http://docs.python.org/3/library/re.html#re.compileX-trMXwinreg.EnumKeyrM(jjX;http://docs.python.org/3/library/winreg.html#winreg.EnumKeyX-trMXreadline.get_history_lengthrM(jjXJhttp://docs.python.org/3/library/readline.html#readline.get_history_lengthX-trMX audioop.maxrM(jjX9http://docs.python.org/3/library/audioop.html#audioop.maxX-trMXitertools.compressrM(jjXBhttp://docs.python.org/3/library/itertools.html#itertools.compressX-trMXcurses.ascii.isalpharM(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalphaX-trMXreadline.get_line_bufferrM(jjXGhttp://docs.python.org/3/library/readline.html#readline.get_line_bufferX-trMXast.increment_linenorM(jjX>http://docs.python.org/3/library/ast.html#ast.increment_linenoX-trMX turtle.bkrM(jjX6http://docs.python.org/3/library/turtle.html#turtle.bkX-trMXstringprep.in_table_c21_c22rM(jjXLhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21_c22X-trMXpty.forkrM(jjX2http://docs.python.org/3/library/pty.html#pty.forkX-trMXwebbrowser.open_new_tabrM(jjXHhttp://docs.python.org/3/library/webbrowser.html#webbrowser.open_new_tabX-trMX gc.disablerM(jjX3http://docs.python.org/3/library/gc.html#gc.disableX-trMXsocket.setdefaulttimeoutrM(jjXEhttp://docs.python.org/3/library/socket.html#socket.setdefaulttimeoutX-trMXast.literal_evalrM(jjX:http://docs.python.org/3/library/ast.html#ast.literal_evalX-trMX glob.globrM(jjX4http://docs.python.org/3/library/glob.html#glob.globX-trMXtraceback.format_exceptionrM(jjXJhttp://docs.python.org/3/library/traceback.html#traceback.format_exceptionX-trMXaudioop.findmaxrM(jjX=http://docs.python.org/3/library/audioop.html#audioop.findmaxX-trMXsocket.getfqdnrM(jjX;http://docs.python.org/3/library/socket.html#socket.getfqdnX-trMXbase64.urlsafe_b64decoderM(jjXEhttp://docs.python.org/3/library/base64.html#base64.urlsafe_b64decodeX-trMXfunctools.singledispatchrM(jjXHhttp://docs.python.org/3/library/functools.html#functools.singledispatchX-trMXos.set_inheritablerM(jjX;http://docs.python.org/3/library/os.html#os.set_inheritableX-trMXturtle.clearstamprM(jjX>http://docs.python.org/3/library/turtle.html#turtle.clearstampX-trMX base64.decoderM(jjX:http://docs.python.org/3/library/base64.html#base64.decodeX-trMXlinecache.checkcacherM(jjXDhttp://docs.python.org/3/library/linecache.html#linecache.checkcacheX-trMX cmath.atanhrM(jjX7http://docs.python.org/3/library/cmath.html#cmath.atanhX-trMXstatistics.pvariancerM(jjXEhttp://docs.python.org/3/library/statistics.html#statistics.pvarianceX-trMXtermios.tcflushrM(jjX=http://docs.python.org/3/library/termios.html#termios.tcflushX-trMXcompileall.compile_pathrM(jjXHhttp://docs.python.org/3/library/compileall.html#compileall.compile_pathX-trMXsocket.gethostbyname_exrM(jjXDhttp://docs.python.org/3/library/socket.html#socket.gethostbyname_exX-trNX sunau.openfprN(jjX8http://docs.python.org/3/library/sunau.html#sunau.openfpX-trNX re.finditerrN(jjX4http://docs.python.org/3/library/re.html#re.finditerX-trNXos.killrN(jjX0http://docs.python.org/3/library/os.html#os.killX-trNXtraceback.print_lastrN(jjXDhttp://docs.python.org/3/library/traceback.html#traceback.print_lastX-trNX dis.code_infor N(jjX7http://docs.python.org/3/library/dis.html#dis.code_infoX-tr NX operator.ger N(jjX:http://docs.python.org/3/library/operator.html#operator.geX-tr NXunittest.mock.callr N(jjXFhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.callX-trNXtime.process_timerN(jjX<http://docs.python.org/3/library/time.html#time.process_timeX-trNXemail.iterators._structurerN(jjXPhttp://docs.python.org/3/library/email.iterators.html#email.iterators._structureX-trNX turtle.penuprN(jjX9http://docs.python.org/3/library/turtle.html#turtle.penupX-trNX gc.isenabledrN(jjX5http://docs.python.org/3/library/gc.html#gc.isenabledX-trNXturtle.mainlooprN(jjX<http://docs.python.org/3/library/turtle.html#turtle.mainloopX-trNX logging.errorrN(jjX;http://docs.python.org/3/library/logging.html#logging.errorX-trNXmultiprocessing.freeze_supportrN(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.freeze_supportX-trNX doctest.debugrN(jjX;http://docs.python.org/3/library/doctest.html#doctest.debugX-trNX inspect.tracerN(jjX;http://docs.python.org/3/library/inspect.html#inspect.traceX-tr NX os.spawnler!N(jjX3http://docs.python.org/3/library/os.html#os.spawnleX-tr"NX stat.S_ISBLKr#N(jjX7http://docs.python.org/3/library/stat.html#stat.S_ISBLKX-tr$NXoperator.__inv__r%N(jjX?http://docs.python.org/3/library/operator.html#operator.__inv__X-tr&NXtest.support.can_symlinkr'N(jjXChttp://docs.python.org/3/library/test.html#test.support.can_symlinkX-tr(NXtracemalloc.stopr)N(jjXBhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.stopX-tr*NXossaudiodev.openr+N(jjXBhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.openX-tr,NX cmath.phaser-N(jjX7http://docs.python.org/3/library/cmath.html#cmath.phaseX-tr.NXipaddress.get_mixed_type_keyr/N(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.get_mixed_type_keyX-tr0NXplatform.unamer1N(jjX=http://docs.python.org/3/library/platform.html#platform.unameX-tr2NX curses.endwinr3N(jjX:http://docs.python.org/3/library/curses.html#curses.endwinX-tr4NXast.iter_child_nodesr5N(jjX>http://docs.python.org/3/library/ast.html#ast.iter_child_nodesX-tr6NXgettext.ldngettextr7N(jjX@http://docs.python.org/3/library/gettext.html#gettext.ldngettextX-tr8NX test.support.is_resource_enabledr9N(jjXKhttp://docs.python.org/3/library/test.html#test.support.is_resource_enabledX-tr:NXimportlib.find_loaderr;N(jjXEhttp://docs.python.org/3/library/importlib.html#importlib.find_loaderX-trNXgettext.ngettextr?N(jjX>http://docs.python.org/3/library/gettext.html#gettext.ngettextX-tr@NXasyncio.get_event_looprAN(jjXOhttp://docs.python.org/3/library/asyncio-eventloops.html#asyncio.get_event_loopX-trBNX signal.signalrCN(jjX:http://docs.python.org/3/library/signal.html#signal.signalX-trDNX math.isfiniterEN(jjX8http://docs.python.org/3/library/math.html#math.isfiniteX-trFNX4multiprocessing.sharedctypes.multiprocessing.ManagerrGN(jjXjhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.multiprocessing.ManagerX-trHNXcurses.ascii.isprintrIN(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isprintX-trJNX unittest.skiprKN(jjX<http://docs.python.org/3/library/unittest.html#unittest.skipX-trLNXtest.support.temp_umaskrMN(jjXBhttp://docs.python.org/3/library/test.html#test.support.temp_umaskX-trNNX os.getppidrON(jjX3http://docs.python.org/3/library/os.html#os.getppidX-trPNXsys.getfilesystemencodingrQN(jjXChttp://docs.python.org/3/library/sys.html#sys.getfilesystemencodingX-trRNXrandom.normalvariaterSN(jjXAhttp://docs.python.org/3/library/random.html#random.normalvariateX-trTNXfaulthandler.unregisterrUN(jjXJhttp://docs.python.org/3/library/faulthandler.html#faulthandler.unregisterX-trVNX timeit.timeitrWN(jjX:http://docs.python.org/3/library/timeit.html#timeit.timeitX-trXNXpickletools.optimizerYN(jjXFhttp://docs.python.org/3/library/pickletools.html#pickletools.optimizeX-trZNXunittest.removeHandlerr[N(jjXEhttp://docs.python.org/3/library/unittest.html#unittest.removeHandlerX-tr\NX os.setgroupsr]N(jjX5http://docs.python.org/3/library/os.html#os.setgroupsX-tr^NXwinreg.CreateKeyr_N(jjX=http://docs.python.org/3/library/winreg.html#winreg.CreateKeyX-tr`NX os.setreuidraN(jjX4http://docs.python.org/3/library/os.html#os.setreuidX-trbNXinspect.isdatadescriptorrcN(jjXFhttp://docs.python.org/3/library/inspect.html#inspect.isdatadescriptorX-trdNX turtle.upreN(jjX6http://docs.python.org/3/library/turtle.html#turtle.upX-trfNXimp.cache_from_sourcergN(jjX?http://docs.python.org/3/library/imp.html#imp.cache_from_sourceX-trhNXcodecs.getdecoderriN(jjX>http://docs.python.org/3/library/codecs.html#codecs.getdecoderX-trjNXevalrkN(jjX4http://docs.python.org/3/library/functions.html#evalX-trlNX msvcrt.getchrmN(jjX9http://docs.python.org/3/library/msvcrt.html#msvcrt.getchX-trnNXwinreg.FlushKeyroN(jjX<http://docs.python.org/3/library/winreg.html#winreg.FlushKeyX-trpNXmath.tanrqN(jjX3http://docs.python.org/3/library/math.html#math.tanX-trrNXreadline.parse_and_bindrsN(jjXFhttp://docs.python.org/3/library/readline.html#readline.parse_and_bindX-trtNXcsv.unregister_dialectruN(jjX@http://docs.python.org/3/library/csv.html#csv.unregister_dialectX-trvNX cmath.acosrwN(jjX6http://docs.python.org/3/library/cmath.html#cmath.acosX-trxNXtermios.tcsetattrryN(jjX?http://docs.python.org/3/library/termios.html#termios.tcsetattrX-trzNX os.spawnver{N(jjX3http://docs.python.org/3/library/os.html#os.spawnveX-tr|NXcurses.keynamer}N(jjX;http://docs.python.org/3/library/curses.html#curses.keynameX-tr~NX platform.noderN(jjX<http://docs.python.org/3/library/platform.html#platform.nodeX-trNXctypes.PYFUNCTYPErN(jjX>http://docs.python.org/3/library/ctypes.html#ctypes.PYFUNCTYPEX-trNXoperator.rshiftrN(jjX>http://docs.python.org/3/library/operator.html#operator.rshiftX-trNXhexrN(jjX3http://docs.python.org/3/library/functions.html#hexX-trNXmsilib.CreateRecordrN(jjX@http://docs.python.org/3/library/msilib.html#msilib.CreateRecordX-trNXoperator.itemgetterrN(jjXBhttp://docs.python.org/3/library/operator.html#operator.itemgetterX-trNXimportlib.util.set_loaderrN(jjXIhttp://docs.python.org/3/library/importlib.html#importlib.util.set_loaderX-trNXcurses.baudraterN(jjX<http://docs.python.org/3/library/curses.html#curses.baudrateX-trNX os.spawnvprN(jjX3http://docs.python.org/3/library/os.html#os.spawnvpX-trNXrandom.weibullvariaterN(jjXBhttp://docs.python.org/3/library/random.html#random.weibullvariateX-trNXdistutils.util.strtoboolrN(jjXGhttp://docs.python.org/3/distutils/apiref.html#distutils.util.strtoboolX-trNX&email.iterators.typed_subpart_iteratorrN(jjX\http://docs.python.org/3/library/email.iterators.html#email.iterators.typed_subpart_iteratorX-trNXdistutils.util.subst_varsrN(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.util.subst_varsX-trNX struct.packrN(jjX8http://docs.python.org/3/library/struct.html#struct.packX-trNXturtle.isvisiblerN(jjX=http://docs.python.org/3/library/turtle.html#turtle.isvisibleX-trNXasyncio.create_subprocess_execrN(jjXWhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_execX-trNX os.setegidrN(jjX3http://docs.python.org/3/library/os.html#os.setegidX-trNX stat.S_ISSOCKrN(jjX8http://docs.python.org/3/library/stat.html#stat.S_ISSOCKX-trNXos.path.splitextrN(jjX>http://docs.python.org/3/library/os.path.html#os.path.splitextX-trNXturtle.getshapesrN(jjX=http://docs.python.org/3/library/turtle.html#turtle.getshapesX-trNXturtle.pendownrN(jjX;http://docs.python.org/3/library/turtle.html#turtle.pendownX-trNXabc.abstractmethodrN(jjX<http://docs.python.org/3/library/abc.html#abc.abstractmethodX-trNXtempfile.gettempdirrN(jjXBhttp://docs.python.org/3/library/tempfile.html#tempfile.gettempdirX-trNXsite.getsitepackagesrN(jjX?http://docs.python.org/3/library/site.html#site.getsitepackagesX-trNX zlib.compressrN(jjX8http://docs.python.org/3/library/zlib.html#zlib.compressX-trNXssl.RAND_pseudo_bytesrN(jjX?http://docs.python.org/3/library/ssl.html#ssl.RAND_pseudo_bytesX-trNXemail.message_from_bytesrN(jjXKhttp://docs.python.org/3/library/email.parser.html#email.message_from_bytesX-trNXtempfile.NamedTemporaryFilerN(jjXJhttp://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFileX-trNX os.execlperN(jjX3http://docs.python.org/3/library/os.html#os.execlpeX-trNXunittest.registerResultrN(jjXFhttp://docs.python.org/3/library/unittest.html#unittest.registerResultX-trNXstringprep.in_table_c22rN(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c22X-trNXstringprep.in_table_c21rN(jjXHhttp://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21X-trNXthreading.current_threadrN(jjXHhttp://docs.python.org/3/library/threading.html#threading.current_threadX-trNXos.lockfrN(jjX1http://docs.python.org/3/library/os.html#os.lockfX-trNXreadline.set_history_lengthrN(jjXJhttp://docs.python.org/3/library/readline.html#readline.set_history_lengthX-trNXdistutils.dir_util.remove_treerN(jjXMhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.remove_treeX-trNXsocket.gethostbyaddrrN(jjXAhttp://docs.python.org/3/library/socket.html#socket.gethostbyaddrX-trNX dis.distbrN(jjX3http://docs.python.org/3/library/dis.html#dis.distbX-trNX turtle.titlerN(jjX9http://docs.python.org/3/library/turtle.html#turtle.titleX-trNXcalendar.firstweekdayrN(jjXDhttp://docs.python.org/3/library/calendar.html#calendar.firstweekdayX-trNXdistutils.dir_util.mkpathrN(jjXHhttp://docs.python.org/3/distutils/apiref.html#distutils.dir_util.mkpathX-trNX operator.imodrN(jjX<http://docs.python.org/3/library/operator.html#operator.imodX-trNX os.setpgrprN(jjX3http://docs.python.org/3/library/os.html#os.setpgrpX-trNX curses.has_ilrN(jjX:http://docs.python.org/3/library/curses.html#curses.has_ilX-trNXctypes.util.find_msvcrtrN(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes.util.find_msvcrtX-trNXmath.cosrN(jjX3http://docs.python.org/3/library/math.html#math.cosX-trNXdistutils.util.byte_compilerN(jjXJhttp://docs.python.org/3/distutils/apiref.html#distutils.util.byte_compileX-trNXxmlrpc.client.loadsrN(jjXGhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.loadsX-trNX os.strerrorrN(jjX4http://docs.python.org/3/library/os.html#os.strerrorX-trNX curses.has_icrN(jjX:http://docs.python.org/3/library/curses.html#curses.has_icX-trNXxml.etree.ElementTree.iterparserN(jjX[http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.iterparseX-trNXcurses.ascii.isxdigitrN(jjXHhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isxdigitX-trNXos.lstatrN(jjX1http://docs.python.org/3/library/os.html#os.lstatX-trNXinspect.ismethodrN(jjX>http://docs.python.org/3/library/inspect.html#inspect.ismethodX-trNXasyncio.as_completedrN(jjXGhttp://docs.python.org/3/library/asyncio-task.html#asyncio.as_completedX-trNXos.sched_setparamrN(jjX:http://docs.python.org/3/library/os.html#os.sched_setparamX-trNX filecmp.cmprN(jjX9http://docs.python.org/3/library/filecmp.html#filecmp.cmpX-trNXdifflib.unified_diffrN(jjXBhttp://docs.python.org/3/library/difflib.html#difflib.unified_diffX-trNXos.WIFSIGNALEDrN(jjX7http://docs.python.org/3/library/os.html#os.WIFSIGNALEDX-trNXlogging.config.stopListeningrN(jjXQhttp://docs.python.org/3/library/logging.config.html#logging.config.stopListeningX-trNXoperator.__irshift__rN(jjXChttp://docs.python.org/3/library/operator.html#operator.__irshift__X-trNX cgi.parse_qsrN(jjX6http://docs.python.org/3/library/cgi.html#cgi.parse_qsX-trNX math.ceilrN(jjX4http://docs.python.org/3/library/math.html#math.ceilX-trNXshutil.copystatrN(jjX<http://docs.python.org/3/library/shutil.html#shutil.copystatX-trNXtraceback.format_listrN(jjXEhttp://docs.python.org/3/library/traceback.html#traceback.format_listX-trOX os.setresuidrO(jjX5http://docs.python.org/3/library/os.html#os.setresuidX-trOXcurses.ascii.isalnumrO(jjXGhttp://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalnumX-trOX curses.putprO(jjX8http://docs.python.org/3/library/curses.html#curses.putpX-trOX operator.invrO(jjX;http://docs.python.org/3/library/operator.html#operator.invX-trOX logging.logr O(jjX9http://docs.python.org/3/library/logging.html#logging.logX-tr OXcurses.start_colorr O(jjX?http://docs.python.org/3/library/curses.html#curses.start_colorX-tr OX select.pollr O(jjX8http://docs.python.org/3/library/select.html#select.pollX-trOXfilecmp.clear_cacherO(jjXAhttp://docs.python.org/3/library/filecmp.html#filecmp.clear_cacheX-trOXreadline.set_pre_input_hookrO(jjXJhttp://docs.python.org/3/library/readline.html#readline.set_pre_input_hookX-trOXmultiprocessing.ValuerO(jjXKhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.ValueX-trOX os.ctermidrO(jjX3http://docs.python.org/3/library/os.html#os.ctermidX-trOX stat.S_IFMTrO(jjX6http://docs.python.org/3/library/stat.html#stat.S_IFMTX-trOXemail.header.make_headerrO(jjXKhttp://docs.python.org/3/library/email.header.html#email.header.make_headerX-trOX pickle.dumprO(jjX8http://docs.python.org/3/library/pickle.html#pickle.dumpX-trOXwsgiref.util.application_urirO(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.application_uriX-trOX math.degreesrO(jjX7http://docs.python.org/3/library/math.html#math.degreesX-tr OX curses.newpadr!O(jjX:http://docs.python.org/3/library/curses.html#curses.newpadX-tr"OX signal.pauser#O(jjX9http://docs.python.org/3/library/signal.html#signal.pauseX-tr$OX"multiprocessing.sharedctypes.Valuer%O(jjXXhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.ValueX-tr&OXwsgiref.util.shift_path_infor'O(jjXJhttp://docs.python.org/3/library/wsgiref.html#wsgiref.util.shift_path_infoX-tr(OX turtle.updater)O(jjX:http://docs.python.org/3/library/turtle.html#turtle.updateX-tr*OXlogging.getLoggerr+O(jjX?http://docs.python.org/3/library/logging.html#logging.getLoggerX-tr,OXoperator.__isub__r-O(jjX@http://docs.python.org/3/library/operator.html#operator.__isub__X-tr.OXturtle.clearstampsr/O(jjX?http://docs.python.org/3/library/turtle.html#turtle.clearstampsX-tr0OXemail.utils.parseaddrr1O(jjXFhttp://docs.python.org/3/library/email.util.html#email.utils.parseaddrX-tr2OXasyncio.iscoroutinefunctionr3O(jjXNhttp://docs.python.org/3/library/asyncio-task.html#asyncio.iscoroutinefunctionX-tr4OXwinreg.CloseKeyr5O(jjX<http://docs.python.org/3/library/winreg.html#winreg.CloseKeyX-tr6OXatexit.registerr7O(jjX<http://docs.python.org/3/library/atexit.html#atexit.registerX-tr8OX os.fdopenr9O(jjX2http://docs.python.org/3/library/os.html#os.fdopenX-tr:OXitertools.chainr;O(jjX?http://docs.python.org/3/library/itertools.html#itertools.chainX-trOXimportlib.util.find_specr?O(jjXHhttp://docs.python.org/3/library/importlib.html#importlib.util.find_specX-tr@OXcalendar.isleaprAO(jjX>http://docs.python.org/3/library/calendar.html#calendar.isleapX-trBOX os.getcwdbrCO(jjX3http://docs.python.org/3/library/os.html#os.getcwdbX-trDOX shutil.copy2rEO(jjX9http://docs.python.org/3/library/shutil.html#shutil.copy2X-trFOX os.statvfsrGO(jjX3http://docs.python.org/3/library/os.html#os.statvfsX-trHOXparser.st2tuplerIO(jjX<http://docs.python.org/3/library/parser.html#parser.st2tupleX-trJOXsocket.getaddrinforKO(jjX?http://docs.python.org/3/library/socket.html#socket.getaddrinfoX-trLOXssl.cert_time_to_secondsrMO(jjXBhttp://docs.python.org/3/library/ssl.html#ssl.cert_time_to_secondsX-trNOXre.subnrOO(jjX0http://docs.python.org/3/library/re.html#re.subnX-trPOXcurses.init_colorrQO(jjX>http://docs.python.org/3/library/curses.html#curses.init_colorX-trROuXpy:classmethodrSO}rTO(Xint.from_bytesrUO(jjX=http://docs.python.org/3/library/stdtypes.html#int.from_bytesX-trVOXbytearray.fromhexrWO(jjX@http://docs.python.org/3/library/stdtypes.html#bytearray.fromhexX-trXOXdatetime.datetime.fromtimestamprYO(jjXNhttp://docs.python.org/3/library/datetime.html#datetime.datetime.fromtimestampX-trZOXdatetime.datetime.combiner[O(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.datetime.combineX-tr\OXdis.Bytecode.from_tracebackr]O(jjXEhttp://docs.python.org/3/library/dis.html#dis.Bytecode.from_tracebackX-tr^OXdatetime.datetime.todayr_O(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.todayX-tr`OXdatetime.date.fromordinalraO(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.date.fromordinalX-trbOXasyncio.Task.current_taskrcO(jjXLhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.current_taskX-trdOXitertools.chain.from_iterablereO(jjXMhttp://docs.python.org/3/library/itertools.html#itertools.chain.from_iterableX-trfOX*importlib.machinery.PathFinder.find_modulergO(jjXZhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_moduleX-trhOX bytes.fromhexriO(jjX<http://docs.python.org/3/library/stdtypes.html#bytes.fromhexX-trjOXdatetime.datetime.strptimerkO(jjXIhttp://docs.python.org/3/library/datetime.html#datetime.datetime.strptimeX-trlOX(importlib.machinery.FileFinder.path_hookrmO(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.path_hookX-trnOXasyncio.Task.all_tasksroO(jjXIhttp://docs.python.org/3/library/asyncio-task.html#asyncio.Task.all_tasksX-trpOX(importlib.machinery.PathFinder.find_specrqO(jjXXhttp://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_specX-trrOX0importlib.machinery.PathFinder.invalidate_cachesrsO(jjX`http://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.invalidate_cachesX-trtOXdatetime.date.todayruO(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.todayX-trvOXtracemalloc.Snapshot.loadrwO(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.loadX-trxOXdatetime.datetime.nowryO(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.nowX-trzOXpathlib.Path.cwdr{O(jjX>http://docs.python.org/3/library/pathlib.html#pathlib.Path.cwdX-tr|OX dict.fromkeysr}O(jjX<http://docs.python.org/3/library/stdtypes.html#dict.fromkeysX-tr~OXtarfile.TarFile.openrO(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.openX-trOX"datetime.datetime.utcfromtimestamprO(jjXQhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcfromtimestampX-trOX float.fromhexrO(jjX<http://docs.python.org/3/library/stdtypes.html#float.fromhexX-trOX collections.somenamedtuple._makerO(jjXRhttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._makeX-trOXdatetime.datetime.fromordinalrO(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.fromordinalX-trOXdatetime.datetime.utcnowrO(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.utcnowX-trOXdatetime.date.fromtimestamprO(jjXJhttp://docs.python.org/3/library/datetime.html#datetime.date.fromtimestampX-trOuX py:attributerO}rO(Xio.TextIOBase.bufferrO(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.bufferX-trOXunittest.TestResult.bufferrO(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.bufferX-trOXdoctest.Example.linenorO(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.linenoX-trOX3http.server.SimpleHTTPRequestHandler.extensions_maprO(jjXehttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.extensions_mapX-trOX'xml.parsers.expat.xmlparser.buffer_usedrO(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_usedX-trOXdoctest.DocTestFailure.examplerO(jjXLhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.exampleX-trOXhttp.cookies.Morsel.coded_valuerO(jjXRhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.coded_valueX-trOX8http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomainrO(jjXmhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomainX-trOX$http.cookiejar.CookiePolicy.netscaperO(jjXYhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.netscapeX-trOXselectors.SelectorKey.eventsrO(jjXLhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.eventsX-trOX&importlib.machinery.EXTENSION_SUFFIXESrO(jjXVhttp://docs.python.org/3/library/importlib.html#importlib.machinery.EXTENSION_SUFFIXESX-trOXcmd.Cmd.misc_headerrO(jjX=http://docs.python.org/3/library/cmd.html#cmd.Cmd.misc_headerX-trOXsqlite3.Connection.iterdumprO(jjXIhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.iterdumpX-trOXpyclbr.Class.methodsrO(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Class.methodsX-trOXxml.dom.NamedNodeMap.lengthrO(jjXIhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NamedNodeMap.lengthX-trOX"sqlite3.Connection.isolation_levelrO(jjXPhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.isolation_levelX-trOX ipaddress.IPv6Network.compressedrO(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compressedX-trOXselectors.SelectorKey.fileobjrO(jjXMhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.fileobjX-trOXfilecmp.DEFAULT_IGNORESrO(jjXEhttp://docs.python.org/3/library/filecmp.html#filecmp.DEFAULT_IGNORESX-trOX+importlib.machinery.ModuleSpec.loader_staterO(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loader_stateX-trOXoptparse.Option.ACTIONSrO(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.ACTIONSX-trOXctypes.Structure._fields_rO(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._fields_X-trOXasyncio.StreamWriter.transportrO(jjXShttp://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.transportX-trOXipaddress.IPv6Interface.iprO(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.ipX-trOXasyncio.Server.socketsrO(jjXNhttp://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Server.socketsX-trOX'tkinter.scrolledtext.ScrolledText.framerO(jjXbhttp://docs.python.org/3/library/tkinter.scrolledtext.html#tkinter.scrolledtext.ScrolledText.frameX-trOXxml.dom.DocumentType.notationsrO(jjXLhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.notationsX-trOXreprlib.Repr.maxdequerO(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxdequeX-trOXnntplib.NNTP.nntp_versionrO(jjXGhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_versionX-trOXcollections.ChainMap.parentsrO(jjXNhttp://docs.python.org/3/library/collections.html#collections.ChainMap.parentsX-trOXsmtpd.SMTPServer.channel_classrO(jjXJhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.channel_classX-trOXsocketserver.BaseServer.timeoutrO(jjXRhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.timeoutX-trOXdoctest.DocTest.globsrO(jjXChttp://docs.python.org/3/library/doctest.html#doctest.DocTest.globsX-trOXipaddress.IPv6Network.hostmaskrO(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostmaskX-trOX#ipaddress.IPv6Address.is_site_localrO(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_site_localX-trOXctypes._CData._b_base_rO(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes._CData._b_base_X-trOXdoctest.DocTestFailure.testrO(jjXIhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.testX-trOXlogging.lastResortrO(jjX@http://docs.python.org/3/library/logging.html#logging.lastResortX-trOXpickle.Pickler.fastrO(jjX@http://docs.python.org/3/library/pickle.html#pickle.Pickler.fastX-trOX(subprocess.CalledProcessError.returncoderO(jjXYhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.returncodeX-trOX$ipaddress.IPv6Network.with_prefixlenrO(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_prefixlenX-trOXdoctest.DocTest.examplesrO(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.examplesX-trOXurllib.request.Request.full_urlrO(jjXThttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.full_urlX-trOX,wsgiref.handlers.BaseHandler.server_softwarerO(jjXZhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.server_softwareX-trOXurllib.request.Request.methodrO(jjXRhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.methodX-trOXdoctest.DocTestFailure.gotrO(jjXHhttp://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.gotX-trOXcsv.csvreader.fieldnamesrO(jjXBhttp://docs.python.org/3/library/csv.html#csv.csvreader.fieldnamesX-trOXdatetime.time.tzinforO(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.tzinfoX-trOXmemoryview.c_contiguousrO(jjXFhttp://docs.python.org/3/library/stdtypes.html#memoryview.c_contiguousX-trOXstruct.Struct.formatrO(jjXAhttp://docs.python.org/3/library/struct.html#struct.Struct.formatX-trOX$unittest.TestResult.expectedFailuresrO(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestResult.expectedFailuresX-trOXctypes.Structure._pack_rO(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._pack_X-trOXio.TextIOBase.errorsrO(jjX=http://docs.python.org/3/library/io.html#io.TextIOBase.errorsX-trOXzipfile.ZipInfo.reservedrO(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.reservedX-trOXreprlib.Repr.maxlongrO(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlongX-trOXdatetime.datetime.secondrO(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.secondX-trOXnetrc.netrc.macrosrO(jjX>http://docs.python.org/3/library/netrc.html#netrc.netrc.macrosX-trPX"curses.textpad.Textbox.stripspacesrP(jjXOhttp://docs.python.org/3/library/curses.html#curses.textpad.Textbox.stripspacesX-trPXcsv.Dialect.lineterminatorrP(jjXDhttp://docs.python.org/3/library/csv.html#csv.Dialect.lineterminatorX-trPXarray.array.itemsizerP(jjX@http://docs.python.org/3/library/array.html#array.array.itemsizeX-trPXxml.dom.Attr.valuerP(jjX@http://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.valueX-trPXhashlib.hash.namer P(jjX?http://docs.python.org/3/library/hashlib.html#hashlib.hash.nameX-tr PXos.stat_result.st_ctimer P(jjX@http://docs.python.org/3/library/os.html#os.stat_result.st_ctimeX-tr PXoptparse.Option.callback_argsr P(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.callback_argsX-trPXtracemalloc.StatisticDiff.sizerP(jjXPhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.sizeX-trPXtarfile.TarFile.pax_headersrP(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarFile.pax_headersX-trPXhttp.cookiejar.Cookie.expiresrP(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.expiresX-trPX%http.cookiejar.FileCookieJar.filenamerP(jjXZhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.filenameX-trPX&asyncio.asyncio.subprocess.Process.pidrP(jjX_http://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.pidX-trPXUnicodeError.reasonrP(jjXDhttp://docs.python.org/3/library/exceptions.html#UnicodeError.reasonX-trPX%ipaddress.IPv4Interface.with_hostmaskrP(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_hostmaskX-trPXcollections.UserList.datarP(jjXKhttp://docs.python.org/3/library/collections.html#collections.UserList.dataX-trPX0xml.parsers.expat.xmlparser.specified_attributesrP(jjX^http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.specified_attributesX-tr PX#ipaddress.IPv6Address.max_prefixlenr!P(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.max_prefixlenX-tr"PXemail.message.Message.preambler#P(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.preambleX-tr$PXtracemalloc.Snapshot.tracesr%P(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.tracesX-tr&PXxml.dom.DocumentType.entitiesr'P(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.entitiesX-tr(PXstring.Template.templater)P(jjXEhttp://docs.python.org/3/library/string.html#string.Template.templateX-tr*PX-xml.parsers.expat.xmlparser.ErrorColumnNumberr+P(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorColumnNumberX-tr,PX subprocess.TimeoutExpired.outputr-P(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.outputX-tr.PXtracemalloc.Filter.all_framesr/P(jjXOhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.all_framesX-tr0PX.http.server.BaseHTTPRequestHandler.sys_versionr1P(jjX`http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.sys_versionX-tr2PXunittest.mock.Mock.__class__r3P(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.__class__X-tr4PXre.regex.flagsr5P(jjX7http://docs.python.org/3/library/re.html#re.regex.flagsX-tr6PX#ipaddress.IPv6Network.with_hostmaskr7P(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_hostmaskX-tr8PXUnicodeError.objectr9P(jjXDhttp://docs.python.org/3/library/exceptions.html#UnicodeError.objectX-tr:PXctypes.PyDLL._namer;P(jjX?http://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._nameX-trPXdatetime.time.microsecondr?P(jjXHhttp://docs.python.org/3/library/datetime.html#datetime.time.microsecondX-tr@PX ipaddress.IPv4Address.compressedrAP(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.compressedX-trBPX urllib.request.URLopener.versionrCP(jjXUhttp://docs.python.org/3/library/urllib.request.html#urllib.request.URLopener.versionX-trDPXcmd.Cmd.cmdqueuerEP(jjX:http://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdqueueX-trFPXthreading.Barrier.brokenrGP(jjXHhttp://docs.python.org/3/library/threading.html#threading.Barrier.brokenX-trHPX&http.cookiejar.FileCookieJar.delayloadrIP(jjX[http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.delayloadX-trJPXmemoryview.contiguousrKP(jjXDhttp://docs.python.org/3/library/stdtypes.html#memoryview.contiguousX-trLPX1multiprocessing.connection.Listener.last_acceptedrMP(jjXghttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.last_acceptedX-trNPX#email.charset.Charset.input_charsetrOP(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_charsetX-trPPXshlex.shlex.linenorQP(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.linenoX-trRPXurllib.error.HTTPError.reasonrSP(jjXPhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.reasonX-trTPX$doctest.UnexpectedException.exc_inforUP(jjXRhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.exc_infoX-trVPXUnicodeError.startrWP(jjXChttp://docs.python.org/3/library/exceptions.html#UnicodeError.startX-trXPX)wsgiref.handlers.BaseHandler.error_statusrYP(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_statusX-trZPXsocketserver.BaseServer.socketr[P(jjXQhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socketX-tr\PXtarfile.TarInfo.namer]P(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.nameX-tr^PXhttp.cookies.Morsel.keyr_P(jjXJhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.keyX-tr`PXsocket.socket.typeraP(jjX?http://docs.python.org/3/library/socket.html#socket.socket.typeX-trbPXimportlib.util.MAGIC_NUMBERrcP(jjXKhttp://docs.python.org/3/library/importlib.html#importlib.util.MAGIC_NUMBERX-trdPX$textwrap.TextWrapper.drop_whitespacereP(jjXShttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.drop_whitespaceX-trfPXhmac.HMAC.block_sizergP(jjX?http://docs.python.org/3/library/hmac.html#hmac.HMAC.block_sizeX-trhPX"collections.somenamedtuple._fieldsriP(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._fieldsX-trjPXos.terminal_size.columnsrkP(jjXAhttp://docs.python.org/3/library/os.html#os.terminal_size.columnsX-trlPXuuid.UUID.variantrmP(jjX<http://docs.python.org/3/library/uuid.html#uuid.UUID.variantX-trnPXipaddress.IPv6Address.explodedroP(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.explodedX-trpPXtypes.ModuleType.__doc__rqP(jjXDhttp://docs.python.org/3/library/types.html#types.ModuleType.__doc__X-trrPXimaplib.IMAP4.PROTOCOL_VERSIONrsP(jjXLhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.PROTOCOL_VERSIONX-trtPXurllib.request.Request.typeruP(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.typeX-trvPX,wsgiref.handlers.BaseHandler.traceback_limitrwP(jjXZhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.traceback_limitX-trxPXsqlite3.Connection.text_factoryryP(jjXMhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.text_factoryX-trzPXsubprocess.Popen.argsr{P(jjXFhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.argsX-tr|PXtypes.ModuleType.__name__r}P(jjXEhttp://docs.python.org/3/library/types.html#types.ModuleType.__name__X-tr~PXipaddress.IPv6Address.teredorP(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.teredoX-trPXunittest.mock.Mock.calledrP(jjXMhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.calledX-trPX!subprocess.TimeoutExpired.timeoutrP(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.timeoutX-trPXpyclbr.Class.filerP(jjX>http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.fileX-trPX#ipaddress.IPv6Address.is_link_localrP(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_link_localX-trPX$ipaddress.IPv6Network.is_unspecifiedrP(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_unspecifiedX-trPX!xml.parsers.expat.ExpatError.coderP(jjXOhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.codeX-trPXcsv.Dialect.doublequoterP(jjXAhttp://docs.python.org/3/library/csv.html#csv.Dialect.doublequoteX-trPXos.stat_result.st_birthtimerP(jjXDhttp://docs.python.org/3/library/os.html#os.stat_result.st_birthtimeX-trPX#ipaddress.IPv4Network.is_link_localrP(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_link_localX-trPXhmac.HMAC.namerP(jjX9http://docs.python.org/3/library/hmac.html#hmac.HMAC.nameX-trPX'xml.parsers.expat.xmlparser.buffer_textrP(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_textX-trPXdoctest.DocTest.linenorP(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.linenoX-trPXmmap.mmap.closedrP(jjX;http://docs.python.org/3/library/mmap.html#mmap.mmap.closedX-trPXshlex.shlex.wordcharsrP(jjXAhttp://docs.python.org/3/library/shlex.html#shlex.shlex.wordcharsX-trPXhttp.cookiejar.Cookie.valuerP(jjXPhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.valueX-trPXselect.kqueue.closedrP(jjXAhttp://docs.python.org/3/library/select.html#select.kqueue.closedX-trPX,importlib.machinery.ExtensionFileLoader.namerP(jjX\http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.nameX-trPXdoctest.DocTest.namerP(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.nameX-trPXxml.dom.Text.datarP(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.Text.dataX-trPXcsv.Dialect.quotingrP(jjX=http://docs.python.org/3/library/csv.html#csv.Dialect.quotingX-trPX,email.headerregistry.MIMEVersionHeader.minorrP(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.minorX-trPXhttp.cookiejar.Cookie.versionrP(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.versionX-trPX$optparse.Option.ALWAYS_TYPED_ACTIONSrP(jjXShttp://docs.python.org/3/library/optparse.html#optparse.Option.ALWAYS_TYPED_ACTIONSX-trPX(asyncio.asyncio.subprocess.Process.stdinrP(jjXahttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stdinX-trPXnntplib.NNTPError.responserP(jjXHhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTPError.responseX-trPXzipimport.zipimporter.archiverP(jjXMhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.archiveX-trPXdatetime.date.maxrP(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.maxX-trPX>http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiablerP(jjXshttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiableX-trPXtarfile.TarInfo.sizerP(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.sizeX-trPXssl.SSLSocket.server_hostnamerP(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_hostnameX-trPXsqlite3.Cursor.descriptionrP(jjXHhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.descriptionX-trPXurllib.request.Request.selectorrP(jjXThttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.selectorX-trPXoptparse.Option.defaultrP(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.defaultX-trPXctypes.Structure._anonymous_rP(jjXIhttp://docs.python.org/3/library/ctypes.html#ctypes.Structure._anonymous_X-trPXfilecmp.dircmp.right_onlyrP(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_onlyX-trPXcsv.Dialect.quotecharrP(jjX?http://docs.python.org/3/library/csv.html#csv.Dialect.quotecharX-trPX(http.server.BaseHTTPRequestHandler.wfilerP(jjXZhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.wfileX-trPXsubprocess.Popen.stderrrP(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stderrX-trPXxml.dom.Node.attributesrP(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.attributesX-trPXxml.dom.Node.nextSiblingrP(jjXFhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nextSiblingX-trPXinspect.BoundArguments.kwargsrP(jjXKhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.kwargsX-trPX(email.policy.EmailPolicy.content_managerrP(jjX[http://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.content_managerX-trPX$tracemalloc.Snapshot.traceback_limitrP(jjXVhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Snapshot.traceback_limitX-trPXthreading.Barrier.partiesrP(jjXIhttp://docs.python.org/3/library/threading.html#threading.Barrier.partiesX-trPX&email.headerregistry.Address.addr_specrP(jjXahttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.addr_specX-trPXzipfile.ZipInfo.volumerP(jjXDhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.volumeX-trPXcsv.csvwriter.dialectrP(jjX?http://docs.python.org/3/library/csv.html#csv.csvwriter.dialectX-trPX3email.headerregistry.ParameterizedMIMEHeader.paramsrP(jjXnhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeader.paramsX-trPXxml.dom.Comment.datarP(jjXBhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Comment.dataX-trPXfilecmp.dircmp.common_filesrP(jjXIhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_filesX-trPX$ipaddress.IPv4Address.is_unspecifiedrP(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_unspecifiedX-trPXssl.SSLSocket.contextrP(jjX?http://docs.python.org/3/library/ssl.html#ssl.SSLSocket.contextX-trPXurllib.error.URLError.reasonrP(jjXOhttp://docs.python.org/3/library/urllib.error.html#urllib.error.URLError.reasonX-trPXssl.SSLError.libraryrP(jjX>http://docs.python.org/3/library/ssl.html#ssl.SSLError.libraryX-trPXipaddress.IPv6Address.packedrP(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.packedX-trPXzipfile.ZipInfo.filenamerP(jjXFhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.filenameX-trPXunittest.mock.Mock.call_countrP(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_countX-trPXpyclbr.Function.namerP(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.nameX-trPXtracemalloc.Filter.inclusiverP(jjXNhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.inclusiveX-trPXBaseException.argsrP(jjXChttp://docs.python.org/3/library/exceptions.html#BaseException.argsX-trPXpyclbr.Class.modulerP(jjX@http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.moduleX-trPXfunctools.partial.funcrP(jjXFhttp://docs.python.org/3/library/functools.html#functools.partial.funcX-trPXshlex.shlex.escapedquotesrP(jjXEhttp://docs.python.org/3/library/shlex.html#shlex.shlex.escapedquotesX-trPXdatetime.date.dayrP(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.dayX-trQX(http.server.BaseHTTPRequestHandler.rfilerQ(jjXZhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.rfileX-trQXweakref.ref.__callback__rQ(jjXFhttp://docs.python.org/3/library/weakref.html#weakref.ref.__callback__X-trQXxmlrpc.client.Fault.faultCoderQ(jjXQhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultCodeX-trQXcmd.Cmd.use_rawinputrQ(jjX>http://docs.python.org/3/library/cmd.html#cmd.Cmd.use_rawinputX-trQX.wsgiref.handlers.BaseHandler.wsgi_file_wrapperr Q(jjX\http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_file_wrapperX-tr QX'xml.parsers.expat.xmlparser.buffer_sizer Q(jjXUhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_sizeX-tr QXunittest.TestResult.failfastr Q(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.failfastX-trQXos.sched_param.sched_priorityrQ(jjXFhttp://docs.python.org/3/library/os.html#os.sched_param.sched_priorityX-trQX!ipaddress.IPv6Address.is_loopbackrQ(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_loopbackX-trQXtracemalloc.Filter.linenorQ(jjXKhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.linenoX-trQX%textwrap.TextWrapper.break_long_wordsrQ(jjXThttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_long_wordsX-trQXtarfile.TarInfo.pax_headersrQ(jjXIhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.pax_headersX-trQX$shutil.rmtree.avoids_symlink_attacksrQ(jjXQhttp://docs.python.org/3/library/shutil.html#shutil.rmtree.avoids_symlink_attacksX-trQXfilecmp.dircmp.rightrQ(jjXBhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.rightX-trQXos.stat_result.st_nlinkrQ(jjX@http://docs.python.org/3/library/os.html#os.stat_result.st_nlinkX-trQX!xml.etree.ElementTree.Element.tagrQ(jjX]http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tagX-tr QX!mimetypes.MimeTypes.encodings_mapr!Q(jjXQhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.encodings_mapX-tr"QX)xml.etree.ElementTree.ParseError.positionr#Q(jjXehttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.positionX-tr$QXunittest.TestResult.skippedr%Q(jjXJhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.skippedX-tr&QXxml.dom.Node.nodeValuer'Q(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeValueX-tr(QX#ipaddress.IPv6Network.is_site_localr)Q(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_site_localX-tr*QX!ipaddress.IPv4Address.is_loopbackr+Q(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_loopbackX-tr,QX#xml.dom.DocumentType.internalSubsetr-Q(jjXQhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.internalSubsetX-tr.QXfilecmp.dircmp.diff_filesr/Q(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.diff_filesX-tr0QXunittest.TestLoader.suiteClassr1Q(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.suiteClassX-tr2QX!ipaddress.IPv6Address.ipv4_mappedr3Q(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mappedX-tr4QXsubprocess.Popen.pidr5Q(jjXEhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.pidX-tr6QX subprocess.STARTUPINFO.hStdInputr7Q(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdInputX-tr8QX/email.headerregistry.ContentTypeHeader.maintyper9Q(jjXjhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.maintypeX-tr:QX$xml.etree.ElementTree.Element.attribr;Q(jjX`http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.attribX-trQXipaddress.IPv6Interface.networkr?Q(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.networkX-tr@QXxml.dom.Attr.localNamerAQ(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.localNameX-trBQXtracemalloc.Trace.tracebackrCQ(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Trace.tracebackX-trDQXtracemalloc.Statistic.countrEQ(jjXMhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.countX-trFQXos.stat_result.st_genrGQ(jjX>http://docs.python.org/3/library/os.html#os.stat_result.st_genX-trHQXsmtpd.SMTPChannel.seen_greetingrIQ(jjXKhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.seen_greetingX-trJQXhttp.cookiejar.Cookie.rfc2109rKQ(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.rfc2109X-trLQXunittest.TestResult.shouldStoprMQ(jjXMhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.shouldStopX-trNQXdatetime.date.resolutionrOQ(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.date.resolutionX-trPQX ipaddress.IPv4Address.is_privaterQQ(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_privateX-trRQXdatetime.timedelta.maxrSQ(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.maxX-trTQXreprlib.Repr.maxlistrUQ(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlistX-trVQX2xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_pathsrWQ(jjXfhttp://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_pathsX-trXQX"ipaddress.IPv6Address.is_multicastrYQ(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_multicastX-trZQXxmlrpc.client.Binary.datar[Q(jjXMhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.dataX-tr\QX%textwrap.TextWrapper.break_on_hyphensr]Q(jjXThttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_on_hyphensX-tr^QXipaddress.IPv4Interface.ipr_Q(jjXJhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.ipX-tr`QX#ipaddress.IPv4Address.is_link_localraQ(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_link_localX-trbQX#ipaddress.IPv6Network.num_addressesrcQ(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.num_addressesX-trdQXipaddress.IPv6Address.versionreQ(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.versionX-trfQX*socketserver.BaseServer.request_queue_sizergQ(jjX]http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.request_queue_sizeX-trhQX"email.charset.Charset.output_codecriQ(jjXVhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.output_codecX-trjQXsubprocess.Popen.returncoderkQ(jjXLhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.returncodeX-trlQX,xml.parsers.expat.xmlparser.CurrentByteIndexrmQ(jjXZhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentByteIndexX-trnQX)email.headerregistry.Address.display_nameroQ(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.display_nameX-trpQXzipfile.ZipInfo.internal_attrrqQ(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.internal_attrX-trrQXmimetypes.MimeTypes.types_maprsQ(jjXMhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_mapX-trtQXemail.message.Message.epilogueruQ(jjXRhttp://docs.python.org/3/library/email.message.html#email.message.Message.epilogueX-trvQX ipaddress.IPv4Network.is_privaterwQ(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_privateX-trxQX%email.headerregistry.Address.usernameryQ(jjX`http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.usernameX-trzQXxml.dom.Node.parentNoder{Q(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.parentNodeX-tr|QX5http.server.BaseHTTPRequestHandler.error_content_typer}Q(jjXghttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_content_typeX-tr~QXxml.dom.Node.previousSiblingrQ(jjXJhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.previousSiblingX-trQX inspect.BoundArguments.argumentsrQ(jjXNhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argumentsX-trQXpyclbr.Function.modulerQ(jjXChttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.moduleX-trQXio.TextIOBase.newlinesrQ(jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.newlinesX-trQXos.stat_result.st_moderQ(jjX?http://docs.python.org/3/library/os.html#os.stat_result.st_modeX-trQXdoctest.Example.optionsrQ(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.Example.optionsX-trQXurllib.error.HTTPError.coderQ(jjXNhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.codeX-trQX!ossaudiodev.oss_audio_device.moderQ(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.modeX-trQXUnicodeError.encodingrQ(jjXFhttp://docs.python.org/3/library/exceptions.html#UnicodeError.encodingX-trQX re.match.rerQ(jjX4http://docs.python.org/3/library/re.html#re.match.reX-trQXreprlib.Repr.maxlevelrQ(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxlevelX-trQXdatetime.time.minuterQ(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.minuteX-trQXuuid.UUID.bytesrQ(jjX:http://docs.python.org/3/library/uuid.html#uuid.UUID.bytesX-trQX5http.cookiejar.DefaultCookiePolicy.DomainStrictNoDotsrQ(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNoDotsX-trQX%importlib.machinery.ModuleSpec.parentrQ(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.parentX-trQXmimetypes.MimeTypes.suffix_maprQ(jjXNhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.suffix_mapX-trQX!subprocess.STARTUPINFO.hStdOutputrQ(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdOutputX-trQXfilecmp.dircmp.left_onlyrQ(jjXFhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_onlyX-trQX#email.charset.Charset.body_encodingrQ(jjXWhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.body_encodingX-trQXdatetime.timezone.utcrQ(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.timezone.utcX-trQXdoctest.Example.sourcerQ(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.sourceX-trQX re.match.posrQ(jjX5http://docs.python.org/3/library/re.html#re.match.posX-trQX-importlib.machinery.SourcelessFileLoader.namerQ(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.nameX-trQX&textwrap.TextWrapper.subsequent_indentrQ(jjXUhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.subsequent_indentX-trQXsmtpd.SMTPChannel.rcpttosrQ(jjXEhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.rcpttosX-trQX/http.cookiejar.DefaultCookiePolicy.DomainStrictrQ(jjXdhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictX-trQXnumbers.Rational.numeratorrQ(jjXHhttp://docs.python.org/3/library/numbers.html#numbers.Rational.numeratorX-trQX xml.dom.Document.documentElementrQ(jjXNhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Document.documentElementX-trQXsmtpd.SMTPChannel.mailfromrQ(jjXFhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.mailfromX-trQX9http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiablerQ(jjXnhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiableX-trQXsmtpd.SMTPChannel.smtp_serverrQ(jjXIhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_serverX-trQXunittest.TestCase.outputrQ(jjXGhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.outputX-trQX uuid.UUID.urnrQ(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.urnX-trQXreprlib.Repr.maxarrayrQ(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxarrayX-trQX!ipaddress.IPv6Network.is_reservedrQ(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_reservedX-trQX'wsgiref.handlers.BaseHandler.os_environrQ(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.os_environX-trQX!modulefinder.ModuleFinder.modulesrQ(jjXThttp://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.modulesX-trQX multiprocessing.Process.exitcoderQ(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.exitcodeX-trQXhttp.client.HTTPResponse.msgrQ(jjXNhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.msgX-trQX!urllib.request.BaseHandler.parentrQ(jjXVhttp://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.parentX-trQX*wsgiref.handlers.BaseHandler.error_headersrQ(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_headersX-trQX.email.headerregistry.MIMEVersionHeader.versionrQ(jjXihttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.versionX-trQXctypes._FuncPtr.restyperQ(jjXDhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.restypeX-trQXshlex.shlex.debugrQ(jjX=http://docs.python.org/3/library/shlex.html#shlex.shlex.debugX-trQXmemoryview.readonlyrQ(jjXBhttp://docs.python.org/3/library/stdtypes.html#memoryview.readonlyX-trQXtarfile.TarInfo.linknamerQ(jjXFhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.linknameX-trQX __loader__rQ(jjX9http://docs.python.org/3/reference/import.html#__loader__X-trQXssl.SSLContext.optionsrQ(jjX@http://docs.python.org/3/library/ssl.html#ssl.SSLContext.optionsX-trQX*logging.handlers.BaseRotatingHandler.namerrQ(jjXahttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.namerX-trQXthreading.Thread.identrQ(jjXFhttp://docs.python.org/3/library/threading.html#threading.Thread.identX-trQXoptparse.Option.typerQ(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.typeX-trQXhttp.client.HTTPResponse.closedrQ(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.closedX-trQX!lzma.LZMADecompressor.unused_datarQ(jjXLhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.unused_dataX-trQXzipfile.ZipInfo.create_systemrQ(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_systemX-trQXtypes.ModuleType.__package__rQ(jjXHhttp://docs.python.org/3/library/types.html#types.ModuleType.__package__X-trQXuuid.UUID.bytes_lerQ(jjX=http://docs.python.org/3/library/uuid.html#uuid.UUID.bytes_leX-trQXshlex.shlex.eofrQ(jjX;http://docs.python.org/3/library/shlex.html#shlex.shlex.eofX-trQXzipfile.ZipInfo.compress_typerQ(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_typeX-trQX$ipaddress.IPv6Interface.with_netmaskrQ(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_netmaskX-trQXselect.kevent.identrQ(jjX@http://docs.python.org/3/library/select.html#select.kevent.identX-trQXipaddress.IPv4Address.explodedrQ(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.explodedX-trQXmemoryview.nbytesrQ(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.nbytesX-trQXcmd.Cmd.identcharsrQ(jjX<http://docs.python.org/3/library/cmd.html#cmd.Cmd.identcharsX-trQXxml.dom.Node.nodeNamerQ(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeNameX-trQXbz2.BZ2Decompressor.eofrQ(jjXAhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.eofX-trRXcmd.Cmd.promptrR(jjX8http://docs.python.org/3/library/cmd.html#cmd.Cmd.promptX-trRXos.stat_result.st_sizerR(jjX?http://docs.python.org/3/library/os.html#os.stat_result.st_sizeX-trRXreprlib.Repr.maxstringrR(jjXDhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxstringX-trRXoptparse.Option.STORE_ACTIONSrR(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.STORE_ACTIONSX-trRX%importlib.machinery.BYTECODE_SUFFIXESr R(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.BYTECODE_SUFFIXESX-tr RXshlex.shlex.whitespacer R(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.whitespaceX-tr RXio.TextIOWrapper.line_bufferingr R(jjXHhttp://docs.python.org/3/library/io.html#io.TextIOWrapper.line_bufferingX-trRXre.match.stringrR(jjX8http://docs.python.org/3/library/re.html#re.match.stringX-trRXfunctools.partial.keywordsrR(jjXJhttp://docs.python.org/3/library/functools.html#functools.partial.keywordsX-trRXssl.SSLContext.verify_moderR(jjXDhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_modeX-trRX#xml.parsers.expat.ExpatError.linenorR(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.linenoX-trRXunittest.TestCase.recordsrR(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.recordsX-trRXdatetime.datetime.resolutionrR(jjXKhttp://docs.python.org/3/library/datetime.html#datetime.datetime.resolutionX-trRXre.match.endposrR(jjX8http://docs.python.org/3/library/re.html#re.match.endposX-trRXzlib.Decompress.eofrR(jjX>http://docs.python.org/3/library/zlib.html#zlib.Decompress.eofX-trRX)importlib.machinery.SourceFileLoader.namerR(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.nameX-tr RX#urllib.request.Request.unverifiabler!R(jjXXhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.unverifiableX-tr"RXreprlib.Repr.maxfrozensetr#R(jjXGhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxfrozensetX-tr$RXast.AST.col_offsetr%R(jjX<http://docs.python.org/3/library/ast.html#ast.AST.col_offsetX-tr&RX'wsgiref.handlers.BaseHandler.error_bodyr'R(jjXUhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_bodyX-tr(RXos.stat_result.st_ctime_nsr)R(jjXChttp://docs.python.org/3/library/os.html#os.stat_result.st_ctime_nsX-tr*RX"xmlrpc.client.ProtocolError.errmsgr+R(jjXVhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errmsgX-tr,RX#ipaddress.IPv6Network.is_link_localr-R(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_link_localX-tr.RXfractions.Fraction.numeratorr/R(jjXLhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.numeratorX-tr0RX$ipaddress.IPv4Interface.with_netmaskr1R(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_netmaskX-tr2RXoptparse.Option.choicesr3R(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.choicesX-tr4RXtextwrap.TextWrapper.tabsizer5R(jjXKhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.tabsizeX-tr6RXunittest.mock.Mock.return_valuer7R(jjXShttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.return_valueX-tr8RX smtpd.SMTPChannel.received_linesr9R(jjXLhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_linesX-tr:RXtracemalloc.StatisticDiff.countr;R(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.countX-trhttp://docs.python.org/3/library/stdtypes.html#memoryview.ndimX-tr>RX-asyncio.asyncio.subprocess.Process.returncoder?R(jjXfhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.returncodeX-tr@RXnumbers.Rational.denominatorrAR(jjXJhttp://docs.python.org/3/library/numbers.html#numbers.Rational.denominatorX-trBRX"distutils.cmd.Command.sub_commandsrCR(jjXQhttp://docs.python.org/3/distutils/apiref.html#distutils.cmd.Command.sub_commandsX-trDRXipaddress.IPv4Network.versionrER(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.versionX-trFRX,email.headerregistry.AddressHeader.addressesrGR(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.addressesX-trHRX*wsgiref.handlers.BaseHandler.wsgi_run_oncerIR(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_run_onceX-trJRXos.stat_result.st_gidrKR(jjX>http://docs.python.org/3/library/os.html#os.stat_result.st_gidX-trLRX,multiprocessing.managers.BaseManager.addressrMR(jjXbhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.addressX-trNRX'ipaddress.IPv4Network.broadcast_addressrOR(jjXWhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.broadcast_addressX-trPRX$ipaddress.IPv6Address.is_unspecifiedrQR(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_unspecifiedX-trRRXsched.scheduler.queuerSR(jjXAhttp://docs.python.org/3/library/sched.html#sched.scheduler.queueX-trTRXunittest.TestCase.maxDiffrUR(jjXHhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.maxDiffX-trVRXshlex.shlex.whitespace_splitrWR(jjXHhttp://docs.python.org/3/library/shlex.html#shlex.shlex.whitespace_splitX-trXRX!email.charset.Charset.input_codecrYR(jjXUhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_codecX-trZRXio.BufferedIOBase.rawr[R(jjX>http://docs.python.org/3/library/io.html#io.BufferedIOBase.rawX-tr\RXselect.kevent.filterr]R(jjXAhttp://docs.python.org/3/library/select.html#select.kevent.filterX-tr^RX class.__mro__r_R(jjX<http://docs.python.org/3/library/stdtypes.html#class.__mro__X-tr`RXsmtpd.SMTPChannel.smtp_stateraR(jjXHhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_stateX-trbRXdatetime.datetime.minutercR(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.minuteX-trdRXdatetime.datetime.maxreR(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.maxX-trfRX?http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollarrgR(jjXthttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollarX-trhRX http.client.HTTPResponse.versionriR(jjXRhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.versionX-trjRX#importlib.machinery.ModuleSpec.namerkR(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.nameX-trlRX%importlib.machinery.ModuleSpec.originrmR(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.originX-trnRX textwrap.TextWrapper.expand_tabsroR(jjXOhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.expand_tabsX-trpRXxml.dom.Attr.namerqR(jjX?http://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.nameX-trrRX!http.cookiejar.Cookie.comment_urlrsR(jjXVhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.comment_urlX-trtRXzipfile.ZipFile.commentruR(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.commentX-trvRXipaddress.IPv4Network.prefixlenrwR(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.prefixlenX-trxRX%xml.parsers.expat.xmlparser.ErrorCoderyR(jjXShttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorCodeX-trzRXtextwrap.TextWrapper.widthr{R(jjXIhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.widthX-tr|RXpyclbr.Function.linenor}R(jjXChttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.linenoX-tr~RX(email.headerregistry.DateHeader.datetimerR(jjXchttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeader.datetimeX-trRXdatetime.time.maxrR(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.maxX-trRX#xmlrpc.client.ProtocolError.headersrR(jjXWhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.headersX-trRX multiprocessing.Process.sentinelrR(jjXVhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.sentinelX-trRXdatetime.datetime.microsecondrR(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.datetime.microsecondX-trRX#ossaudiodev.oss_audio_device.closedrR(jjXUhttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.closedX-trRXhttp.cookiejar.Cookie.portrR(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.portX-trRXthreading.Thread.daemonrR(jjXGhttp://docs.python.org/3/library/threading.html#threading.Thread.daemonX-trRX&urllib.request.Request.origin_req_hostrR(jjX[http://docs.python.org/3/library/urllib.request.html#urllib.request.Request.origin_req_hostX-trRXcsv.Dialect.escapecharrR(jjX@http://docs.python.org/3/library/csv.html#csv.Dialect.escapecharX-trRX'collections.defaultdict.default_factoryrR(jjXYhttp://docs.python.org/3/library/collections.html#collections.defaultdict.default_factoryX-trRXio.FileIO.moderR(jjX7http://docs.python.org/3/library/io.html#io.FileIO.modeX-trRX,urllib.request.HTTPCookieProcessor.cookiejarrR(jjXahttp://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessor.cookiejarX-trRX"BlockingIOError.characters_writtenrR(jjXShttp://docs.python.org/3/library/exceptions.html#BlockingIOError.characters_writtenX-trRXssl.SSLError.reasonrR(jjX=http://docs.python.org/3/library/ssl.html#ssl.SSLError.reasonX-trRXzipfile.ZipInfo.commentrR(jjXEhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.commentX-trRXdoctest.DocTest.filenamerR(jjXFhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.filenameX-trRXdatetime.date.minrR(jjX@http://docs.python.org/3/library/datetime.html#datetime.date.minX-trRXipaddress.IPv6Address.is_globalrR(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_globalX-trRX"xml.etree.ElementTree.Element.tailrR(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tailX-trRXformatter.formatter.writerrR(jjXJhttp://docs.python.org/3/library/formatter.html#formatter.formatter.writerX-trRX-xml.parsers.expat.xmlparser.CurrentLineNumberrR(jjX[http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentLineNumberX-trRXfilecmp.dircmp.leftrR(jjXAhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.leftX-trRX,logging.handlers.BaseRotatingHandler.rotatorrR(jjXchttp://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotatorX-trRX*http.server.BaseHTTPRequestHandler.headersrR(jjX\http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.headersX-trRXinspect.Signature.emptyrR(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.Signature.emptyX-trRXhttp.client.HTTPResponse.statusrR(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.statusX-trRXselect.kevent.udatarR(jjX@http://docs.python.org/3/library/select.html#select.kevent.udataX-trRX#http.client.HTTPResponse.debuglevelrR(jjXUhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.debuglevelX-trRXmemoryview.formatrR(jjX@http://docs.python.org/3/library/stdtypes.html#memoryview.formatX-trRXhttp.cookiejar.Cookie.discardrR(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.discardX-trRXsqlite3.Cursor.lastrowidrR(jjXFhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.lastrowidX-trRX/xml.parsers.expat.xmlparser.CurrentColumnNumberrR(jjX]http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentColumnNumberX-trRXzlib.Decompress.unconsumed_tailrR(jjXJhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.unconsumed_tailX-trRXos.stat_result.st_mtime_nsrR(jjXChttp://docs.python.org/3/library/os.html#os.stat_result.st_mtime_nsX-trRXtracemalloc.Trace.sizerR(jjXHhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Trace.sizeX-trRXinspect.Parameter.annotationrR(jjXJhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.annotationX-trRXcollections.UserDict.datarR(jjXKhttp://docs.python.org/3/library/collections.html#collections.UserDict.dataX-trRX cmd.Cmd.introrR(jjX7http://docs.python.org/3/library/cmd.html#cmd.Cmd.introX-trRXunittest.TestResult.errorsrR(jjXIhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.errorsX-trRX$asyncio.IncompleteReadError.expectedrR(jjXYhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadError.expectedX-trRXclass.__qualname__rR(jjXAhttp://docs.python.org/3/library/stdtypes.html#class.__qualname__X-trRXdoctest.Example.exc_msgrR(jjXEhttp://docs.python.org/3/library/doctest.html#doctest.Example.exc_msgX-trRX0email.headerregistry.SingleAddressHeader.addressrR(jjXkhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeader.addressX-trRXemail.message.Message.defectsrR(jjXQhttp://docs.python.org/3/library/email.message.html#email.message.Message.defectsX-trRX uuid.UUID.hexrR(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.hexX-trRXshlex.shlex.sourcerR(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.sourceX-trRXzipfile.ZipInfo.extrarR(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extraX-trRXpyclbr.Function.filerR(jjXAhttp://docs.python.org/3/library/pyclbr.html#pyclbr.Function.fileX-trRXdatetime.timedelta.minrR(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.minX-trRXcollections.deque.maxlenrR(jjXJhttp://docs.python.org/3/library/collections.html#collections.deque.maxlenX-trRXipaddress.IPv4Address.is_globalrR(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_globalX-trRX#ipaddress.IPv6Network.max_prefixlenrR(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.max_prefixlenX-trRXcsv.Dialect.strictrR(jjX<http://docs.python.org/3/library/csv.html#csv.Dialect.strictX-trRX%importlib.machinery.ModuleSpec.loaderrR(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loaderX-trRXcurses.window.encodingrR(jjXChttp://docs.python.org/3/library/curses.html#curses.window.encodingX-trRXipaddress.IPv6Network.explodedrR(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.explodedX-trRX__spec__rR(jjX7http://docs.python.org/3/reference/import.html#__spec__X-trRXoptparse.Option.helprR(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.helpX-trRXsubprocess.Popen.stdoutrR(jjXHhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdoutX-trRXxmlrpc.client.ProtocolError.urlrR(jjXShttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.urlX-trRX cmd.Cmd.rulerrR(jjX7http://docs.python.org/3/library/cmd.html#cmd.Cmd.rulerX-trRXtextwrap.TextWrapper.max_linesrR(jjXMhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.max_linesX-trRXselect.kevent.datarR(jjX?http://docs.python.org/3/library/select.html#select.kevent.dataX-trRXos.stat_result.st_atime_nsrR(jjXChttp://docs.python.org/3/library/os.html#os.stat_result.st_atime_nsX-trSX.email.headerregistry.ContentTypeHeader.subtyperS(jjXihttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.subtypeX-trSXre.regex.patternrS(jjX9http://docs.python.org/3/library/re.html#re.regex.patternX-trSXcsv.csvreader.line_numrS(jjX@http://docs.python.org/3/library/csv.html#csv.csvreader.line_numX-trSX6http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscaperS(jjXkhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscapeX-trSX*http.server.BaseHTTPRequestHandler.commandr S(jjX\http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.commandX-tr SX ipaddress.IPv6Address.compressedr S(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.compressedX-tr SXweakref.finalize.atexitr S(jjXEhttp://docs.python.org/3/library/weakref.html#weakref.finalize.atexitX-trSX+multiprocessing.connection.Listener.addressrS(jjXahttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.addressX-trSXinspect.Parameter.namerS(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.nameX-trSX.wsgiref.handlers.BaseHandler.wsgi_multiprocessrS(jjX\http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multiprocessX-trSXast.AST.linenorS(jjX8http://docs.python.org/3/library/ast.html#ast.AST.linenoX-trSXsmtpd.SMTPChannel.fqdnrS(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.fqdnX-trSX&socketserver.BaseServer.address_familyrS(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.address_familyX-trSXtarfile.TarInfo.unamerS(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.unameX-trSX)importlib.machinery.SourceFileLoader.pathrS(jjXYhttp://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.pathX-trSXhmac.HMAC.digest_sizerS(jjX@http://docs.python.org/3/library/hmac.html#hmac.HMAC.digest_sizeX-tr SXzipfile.ZipInfo.file_sizer!S(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.file_sizeX-tr"SXunittest.mock.Mock.mock_callsr#S(jjXQhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.mock_callsX-tr$SXhttp.cookiejar.Cookie.securer%S(jjXQhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.secureX-tr&SXinspect.Parameter.kindr'S(jjXDhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.kindX-tr(SX+socketserver.BaseServer.RequestHandlerClassr)S(jjX^http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.RequestHandlerClassX-tr*SXhttp.client.HTTPResponse.reasonr+S(jjXQhttp://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.reasonX-tr,SXinspect.BoundArguments.argsr-S(jjXIhttp://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argsX-tr.SXshlex.shlex.tokenr/S(jjX=http://docs.python.org/3/library/shlex.html#shlex.shlex.tokenX-tr0SX'http.server.BaseHTTPRequestHandler.pathr1S(jjXYhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.pathX-tr2SX+importlib.machinery.ModuleSpec.has_locationr3S(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.has_locationX-tr4SXoptparse.Option.TYPE_CHECKERr5S(jjXKhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPE_CHECKERX-tr6SX)wsgiref.handlers.BaseHandler.http_versionr7S(jjXWhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.http_versionX-tr8SXre.regex.groupsr9S(jjX8http://docs.python.org/3/library/re.html#re.regex.groupsX-tr:SXunittest.TestResult.failuresr;S(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.failuresX-trSX!ipaddress.IPv4Network.is_loopbackr?S(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_loopbackX-tr@SXnumbers.Complex.realrAS(jjXBhttp://docs.python.org/3/library/numbers.html#numbers.Complex.realX-trBSXimportlib.abc.FileLoader.namerCS(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.nameX-trDSXxml.dom.DocumentType.namerES(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.nameX-trFSX&ipaddress.IPv4Interface.with_prefixlenrGS(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_prefixlenX-trHSXdatetime.date.monthrIS(jjXBhttp://docs.python.org/3/library/datetime.html#datetime.date.monthX-trJSX+socketserver.BaseServer.allow_reuse_addressrKS(jjX^http://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.allow_reuse_addressX-trLSX,importlib.machinery.ExtensionFileLoader.pathrMS(jjX\http://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.pathX-trNSX$tracemalloc.StatisticDiff.count_diffrOS(jjXVhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.count_diffX-trPSX"xml.etree.ElementTree.Element.textrQS(jjX^http://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.textX-trRSXtracemalloc.Frame.linenorSS(jjXJhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Frame.linenoX-trTSX crypt.methodsrUS(jjX9http://docs.python.org/3/library/crypt.html#crypt.methodsX-trVSX!sqlite3.Connection.in_transactionrWS(jjXOhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.in_transactionX-trXSX1http.server.BaseHTTPRequestHandler.server_versionrYS(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.server_versionX-trZSX"ipaddress.IPv4Address.is_multicastr[S(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_multicastX-tr\SXtracemalloc.Frame.filenamer]S(jjXLhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Frame.filenameX-tr^SXasyncio.Queue.maxsizer_S(jjXHhttp://docs.python.org/3/library/asyncio-sync.html#asyncio.Queue.maxsizeX-tr`SXstruct.Struct.sizeraS(jjX?http://docs.python.org/3/library/struct.html#struct.Struct.sizeX-trbSXzipfile.ZipInfo.create_versionrcS(jjXLhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_versionX-trdSXxml.dom.NodeList.lengthreS(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.NodeList.lengthX-trfSX'email.headerregistry.Group.display_namergS(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.display_nameX-trhSX"ipaddress.IPv6Network.is_multicastriS(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_multicastX-trjSXfilecmp.dircmp.right_listrkS(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_listX-trlSX&tkinter.scrolledtext.ScrolledText.vbarrmS(jjXahttp://docs.python.org/3/library/tkinter.scrolledtext.html#tkinter.scrolledtext.ScrolledText.vbarX-trnSXsmtpd.SMTPChannel.connroS(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.connX-trpSXio.IOBase.closedrqS(jjX9http://docs.python.org/3/library/io.html#io.IOBase.closedX-trrSXctypes.PyDLL._handlersS(jjXAhttp://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._handleX-trtSX"ipaddress.IPv4Network.with_netmaskruS(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_netmaskX-trvSX!ipaddress.IPv6Network.is_loopbackrwS(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_loopbackX-trxSXpyclbr.Class.superryS(jjX?http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.superX-trzSXuuid.UUID.fieldsr{S(jjX;http://docs.python.org/3/library/uuid.html#uuid.UUID.fieldsX-tr|SXarray.array.typecoder}S(jjX@http://docs.python.org/3/library/array.html#array.array.typecodeX-tr~SX!ipaddress.IPv6Address.is_reservedrS(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_reservedX-trSXzipfile.ZipInfo.compress_sizerS(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_sizeX-trSXos.stat_result.st_devrS(jjX>http://docs.python.org/3/library/os.html#os.stat_result.st_devX-trSXsqlite3.Connection.row_factoryrS(jjXLhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.row_factoryX-trSXipaddress.IPv6Network.prefixlenrS(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.prefixlenX-trSXctypes._CData._b_needsfree_rS(jjXHhttp://docs.python.org/3/library/ctypes.html#ctypes._CData._b_needsfree_X-trSX$subprocess.CalledProcessError.outputrS(jjXUhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.outputX-trSX$email.charset.Charset.output_charsetrS(jjXXhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.output_charsetX-trSXtarfile.TarInfo.gnamerS(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gnameX-trSXdatetime.time.hourrS(jjXAhttp://docs.python.org/3/library/datetime.html#datetime.time.hourX-trSX+xml.parsers.expat.xmlparser.ErrorLineNumberrS(jjXYhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorLineNumberX-trSXfilecmp.dircmp.commonrS(jjXChttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.commonX-trSX2http.server.BaseHTTPRequestHandler.request_versionrS(jjXdhttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.request_versionX-trSXnumbers.Complex.imagrS(jjXBhttp://docs.python.org/3/library/numbers.html#numbers.Complex.imagX-trSXoptparse.Option.destrS(jjXChttp://docs.python.org/3/library/optparse.html#optparse.Option.destX-trSX sqlite3.Connection.total_changesrS(jjXNhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.total_changesX-trSX ipaddress.IPv6Address.is_privaterS(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_privateX-trSXxml.dom.Node.prefixrS(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.prefixX-trSX!ipaddress.IPv4Network.is_reservedrS(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_reservedX-trSXdoctest.Example.indentrS(jjXDhttp://docs.python.org/3/library/doctest.html#doctest.Example.indentX-trSX#ipaddress.IPv4Address.max_prefixlenrS(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.max_prefixlenX-trSXoptparse.Option.TYPED_ACTIONSrS(jjXLhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPED_ACTIONSX-trSX!unittest.mock.Mock.call_args_listrS(jjXUhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_args_listX-trSXsmtpd.SMTPChannel.peerrS(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.peerX-trSX#xml.parsers.expat.ExpatError.offsetrS(jjXQhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.offsetX-trSXos.stat_result.st_creatorrS(jjXBhttp://docs.python.org/3/library/os.html#os.stat_result.st_creatorX-trSXcsv.csvreader.dialectrS(jjX?http://docs.python.org/3/library/csv.html#csv.csvreader.dialectX-trSXselect.PIPE_BUFrS(jjX<http://docs.python.org/3/library/select.html#select.PIPE_BUFX-trSX#importlib.machinery.FileFinder.pathrS(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.pathX-trSX$http.cookiejar.Cookie.port_specifiedrS(jjXYhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.port_specifiedX-trSXdatetime.datetime.dayrS(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.dayX-trSX doctest.UnexpectedException.testrS(jjXNhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.testX-trSXre.match.lastgrouprS(jjX;http://docs.python.org/3/library/re.html#re.match.lastgroupX-trSXfilecmp.dircmp.subdirsrS(jjXDhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.subdirsX-trSX&email.policy.EmailPolicy.refold_sourcerS(jjXYhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.refold_sourceX-trSXos.terminal_size.linesrS(jjX?http://docs.python.org/3/library/os.html#os.terminal_size.linesX-trSX3email.headerregistry.ContentTypeHeader.content_typerS(jjXnhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.content_typeX-trSXbz2.BZ2Decompressor.unused_datarS(jjXIhttp://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.unused_dataX-trSXtarfile.TarInfo.moderS(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.modeX-trSXthreading.Barrier.n_waitingrS(jjXKhttp://docs.python.org/3/library/threading.html#threading.Barrier.n_waitingX-trSX%ipaddress.IPv4Network.network_addressrS(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.network_addressX-trSXfilecmp.dircmp.same_filesrS(jjXGhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.same_filesX-trSXcollections.ChainMap.mapsrS(jjXKhttp://docs.python.org/3/library/collections.html#collections.ChainMap.mapsX-trSXctypes._SimpleCData.valuerS(jjXFhttp://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData.valueX-trSXlzma.LZMADecompressor.eofrS(jjXDhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.eofX-trSXctypes._CData._objectsrS(jjXChttp://docs.python.org/3/library/ctypes.html#ctypes._CData._objectsX-trSXhttp.cookies.Morsel.valuerS(jjXLhttp://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.valueX-trSXselectors.SelectorKey.fdrS(jjXHhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.fdX-trSXconfigparser.SECTCRErS(jjXGhttp://docs.python.org/3/library/configparser.html#configparser.SECTCREX-trSX)email.headerregistry.BaseHeader.max_countrS(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.max_countX-trSXio.TextIOBase.encodingrS(jjX?http://docs.python.org/3/library/io.html#io.TextIOBase.encodingX-trSX/importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXESrS(jjX_http://docs.python.org/3/library/importlib.html#importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXESX-trSX __package__rS(jjX:http://docs.python.org/3/reference/import.html#__package__X-trSXshlex.shlex.quotesrS(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.quotesX-trSX&socketserver.BaseServer.server_addressrS(jjXYhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_addressX-trSXobject.__dict__rS(jjX>http://docs.python.org/3/library/stdtypes.html#object.__dict__X-trSXio.FileIO.namerS(jjX7http://docs.python.org/3/library/io.html#io.FileIO.nameX-trSXos.stat_result.st_typerS(jjX?http://docs.python.org/3/library/os.html#os.stat_result.st_typeX-trSXmemoryview.shaperS(jjX?http://docs.python.org/3/library/stdtypes.html#memoryview.shapeX-trSX#tracemalloc.Filter.filename_patternrS(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Filter.filename_patternX-trSXclass.__bases__rS(jjX>http://docs.python.org/3/library/stdtypes.html#class.__bases__X-trSXreprlib.Repr.maxsetrS(jjXAhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxsetX-trSX0http.cookiejar.DefaultCookiePolicy.DomainLiberalrS(jjXehttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainLiberalX-trSXhttp.cookiejar.Cookie.namerS(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.nameX-trSXunittest.TestResult.testsRunrS(jjXKhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.testsRunX-trTX"subprocess.STARTUPINFO.wShowWindowrT(jjXShttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.wShowWindowX-trTXipaddress.IPv4Address.packedrT(jjXLhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.packedX-trTXmemoryview.suboffsetsrT(jjXDhttp://docs.python.org/3/library/stdtypes.html#memoryview.suboffsetsX-trTXzipfile.ZipFile.debugrT(jjXChttp://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.debugX-trTX#ipaddress.IPv4Network.with_hostmaskr T(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_hostmaskX-tr TXurllib.error.HTTPError.headersr T(jjXQhttp://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.headersX-tr TXinstance.__class__r T(jjXAhttp://docs.python.org/3/library/stdtypes.html#instance.__class__X-trTXxml.dom.DocumentType.publicIdrT(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.publicIdX-trTXsocket.socket.familyrT(jjXAhttp://docs.python.org/3/library/socket.html#socket.socket.familyX-trTX'unittest.TestResult.unexpectedSuccessesrT(jjXVhttp://docs.python.org/3/library/unittest.html#unittest.TestResult.unexpectedSuccessesX-trTXssl.SSLContext.check_hostnamerT(jjXGhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.check_hostnameX-trTXxml.dom.Element.tagNamerT(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Element.tagNameX-trTXzipfile.ZipInfo.header_offsetrT(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.header_offsetX-trTXre.regex.groupindexrT(jjX<http://docs.python.org/3/library/re.html#re.regex.groupindexX-trTX#email.policy.Policy.max_line_lengthrT(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.max_line_lengthX-trTXzipimport.zipimporter.prefixrT(jjXLhttp://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.prefixX-tr TXunittest.mock.Mock.side_effectr!T(jjXRhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.side_effectX-tr"TXmemoryview.itemsizer#T(jjXBhttp://docs.python.org/3/library/stdtypes.html#memoryview.itemsizeX-tr$TXxmlrpc.client.Fault.faultStringr%T(jjXShttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultStringX-tr&TX'textwrap.TextWrapper.replace_whitespacer'T(jjXVhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.replace_whitespaceX-tr(TX1http.server.BaseHTTPRequestHandler.client_addressr)T(jjXchttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.client_addressX-tr*TX"unittest.TestCase.failureExceptionr+T(jjXQhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.failureExceptionX-tr,TX!ossaudiodev.oss_audio_device.namer-T(jjXShttp://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.nameX-tr.TX#inspect.Signature.return_annotationr/T(jjXQhttp://docs.python.org/3/library/inspect.html#inspect.Signature.return_annotationX-tr0TX$email.headerregistry.Group.addressesr1T(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.addressesX-tr2TX#ipaddress.IPv4Network.max_prefixlenr3T(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.max_prefixlenX-tr4TXdatetime.timedelta.resolutionr5T(jjXLhttp://docs.python.org/3/library/datetime.html#datetime.timedelta.resolutionX-tr6TXdatetime.time.resolutionr7T(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.time.resolutionX-tr8TXcsv.Dialect.skipinitialspacer9T(jjXFhttp://docs.python.org/3/library/csv.html#csv.Dialect.skipinitialspaceX-tr:TXtarfile.TarInfo.typer;T(jjXBhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.typeX-trTX"ipaddress.IPv4Network.is_multicastr?T(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_multicastX-tr@TX%ipaddress.IPv6Network.network_addressrAT(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.network_addressX-trBTX$unittest.TestLoader.testMethodPrefixrCT(jjXShttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.testMethodPrefixX-trDTXcmd.Cmd.undoc_headerrET(jjX>http://docs.python.org/3/library/cmd.html#cmd.Cmd.undoc_headerX-trFTXoptparse.Option.metavarrGT(jjXFhttp://docs.python.org/3/library/optparse.html#optparse.Option.metavarX-trHTXreprlib.Repr.maxotherrIT(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxotherX-trJTX__path__rKT(jjX7http://docs.python.org/3/reference/import.html#__path__X-trLTXsocket.socket.protorMT(jjX@http://docs.python.org/3/library/socket.html#socket.socket.protoX-trNTXxml.dom.DocumentType.systemIdrOT(jjXKhttp://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.systemIdX-trPTXpickle.Pickler.dispatch_tablerQT(jjXJhttp://docs.python.org/3/library/pickle.html#pickle.Pickler.dispatch_tableX-trRTXmemoryview.objrST(jjX=http://docs.python.org/3/library/stdtypes.html#memoryview.objX-trTTXimaplib.IMAP4.debugrUT(jjXAhttp://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.debugX-trVTXshlex.shlex.instreamrWT(jjX@http://docs.python.org/3/library/shlex.html#shlex.shlex.instreamX-trXTXos.stat_result.st_inorYT(jjX>http://docs.python.org/3/library/os.html#os.stat_result.st_inoX-trZTX1http.server.CGIHTTPRequestHandler.cgi_directoriesr[T(jjXchttp://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.cgi_directoriesX-tr\TXdoctest.DocTest.docstringr]T(jjXGhttp://docs.python.org/3/library/doctest.html#doctest.DocTest.docstringX-tr^TXfunctools.partial.argsr_T(jjXFhttp://docs.python.org/3/library/functools.html#functools.partial.argsX-tr`TXfractions.Fraction.denominatorraT(jjXNhttp://docs.python.org/3/library/fractions.html#fractions.Fraction.denominatorX-trbTX uuid.UUID.intrcT(jjX8http://docs.python.org/3/library/uuid.html#uuid.UUID.intX-trdTXsubprocess.Popen.stdinreT(jjXGhttp://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdinX-trfTXmemoryview.stridesrgT(jjXAhttp://docs.python.org/3/library/stdtypes.html#memoryview.stridesX-trhTXzipfile.ZipInfo.external_attrriT(jjXKhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.external_attrX-trjTXipaddress.IPv4Address.versionrkT(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.versionX-trlTX,email.headerregistry.MIMEVersionHeader.majorrmT(jjXghttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.majorX-trnTXtarfile.TarInfo.mtimeroT(jjXChttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.mtimeX-trpTXinspect.Signature.parametersrqT(jjXJhttp://docs.python.org/3/library/inspect.html#inspect.Signature.parametersX-trrTXzipfile.ZipInfo.date_timersT(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.date_timeX-trtTXhttp.cookiejar.Cookie.pathruT(jjXOhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.pathX-trvTXos.stat_result.st_uidrwT(jjX>http://docs.python.org/3/library/os.html#os.stat_result.st_uidX-trxTX&ipaddress.IPv6Interface.with_prefixlenryT(jjXVhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_prefixlenX-trzTXinspect.Parameter.emptyr{T(jjXEhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.emptyX-tr|TXunittest.mock.Mock.call_argsr}T(jjXPhttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_argsX-tr~TX#ipaddress.IPv4Network.num_addressesrT(jjXShttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.num_addressesX-trTX__file__rT(jjX7http://docs.python.org/3/reference/import.html#__file__X-trTXdoctest.Example.wantrT(jjXBhttp://docs.python.org/3/library/doctest.html#doctest.Example.wantX-trTX __cached__rT(jjX9http://docs.python.org/3/reference/import.html#__cached__X-trTXurllib.request.Request.datarT(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.dataX-trTXxml.dom.Node.childNodesrT(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.childNodesX-trTXfilecmp.dircmp.common_dirsrT(jjXHhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_dirsX-trTX'ipaddress.IPv6Network.broadcast_addressrT(jjXWhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.broadcast_addressX-trTXunittest.mock.Mock.method_callsrT(jjXShttp://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.method_callsX-trTX-importlib.machinery.SourcelessFileLoader.pathrT(jjX]http://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.pathX-trTX%importlib.machinery.ModuleSpec.cachedrT(jjXUhttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.cachedX-trTX ipaddress.IPv4Network.compressedrT(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compressedX-trTXselect.kevent.fflagsrT(jjXAhttp://docs.python.org/3/library/select.html#select.kevent.fflagsX-trTXxml.dom.Node.firstChildrT(jjXEhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.firstChildX-trTXemail.policy.Policy.cte_typerT(jjXOhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.cte_typeX-trTXoptparse.Option.TYPESrT(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.TYPESX-trTXctypes._FuncPtr.argtypesrT(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.argtypesX-trTXinspect.Parameter.defaultrT(jjXGhttp://docs.python.org/3/library/inspect.html#inspect.Parameter.defaultX-trTX#email.policy.Policy.raise_on_defectrT(jjXVhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.raise_on_defectX-trTX#http.cookiejar.CookiePolicy.rfc2965rT(jjXXhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.rfc2965X-trTX&http.cookiejar.Cookie.domain_specifiedrT(jjX[http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_specifiedX-trTXos.stat_result.st_blocksrT(jjXAhttp://docs.python.org/3/library/os.html#os.stat_result.st_blocksX-trTXhttp.cookiejar.Cookie.commentrT(jjXRhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.commentX-trTX!ipaddress.IPv4Address.is_reservedrT(jjXQhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_reservedX-trTXipaddress.IPv4Network.hostmaskrT(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostmaskX-trTXctypes._FuncPtr.errcheckrT(jjXEhttp://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.errcheckX-trTXpyclbr.Class.linenorT(jjX@http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.linenoX-trTXssl.SSLSocket.server_siderT(jjXChttp://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_sideX-trTXoptparse.Option.callbackrT(jjXGhttp://docs.python.org/3/library/optparse.html#optparse.Option.callbackX-trTX subprocess.STARTUPINFO.hStdErrorrT(jjXQhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdErrorX-trTX)textwrap.TextWrapper.fix_sentence_endingsrT(jjXXhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fix_sentence_endingsX-trTXcsv.Dialect.delimiterrT(jjX?http://docs.python.org/3/library/csv.html#csv.Dialect.delimiterX-trTXnetrc.netrc.hostsrT(jjX=http://docs.python.org/3/library/netrc.html#netrc.netrc.hostsX-trTXos.stat_result.st_rsizerT(jjX@http://docs.python.org/3/library/os.html#os.stat_result.st_rsizeX-trTX#email.headerregistry.Address.domainrT(jjX^http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.domainX-trTXdatetime.datetime.yearrT(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.yearX-trTXxml.dom.Attr.prefixrT(jjXAhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.prefixX-trTX-wsgiref.handlers.BaseHandler.wsgi_multithreadrT(jjX[http://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multithreadX-trTX#textwrap.TextWrapper.initial_indentrT(jjXRhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.initial_indentX-trTXssl.SSLContext.protocolrT(jjXAhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.protocolX-trTX"xml.dom.ProcessingInstruction.datarT(jjXPhttp://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.dataX-trTXipaddress.IPv6Network.versionrT(jjXMhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.versionX-trTX#asyncio.IncompleteReadError.partialrT(jjXXhttp://docs.python.org/3/library/asyncio-stream.html#asyncio.IncompleteReadError.partialX-trTXast.AST._fieldsrT(jjX9http://docs.python.org/3/library/ast.html#ast.AST._fieldsX-trTX textwrap.TextWrapper.placeholderrT(jjXOhttp://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.placeholderX-trTX__name__rT(jjX7http://docs.python.org/3/reference/import.html#__name__X-trTXuuid.UUID.versionrT(jjX<http://docs.python.org/3/library/uuid.html#uuid.UUID.versionX-trTX*wsgiref.handlers.BaseHandler.origin_serverrT(jjXXhttp://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.origin_serverX-trTXtracemalloc.Statistic.tracebackrT(jjXQhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.tracebackX-trTX)asyncio.asyncio.subprocess.Process.stdoutrT(jjXbhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stdoutX-trTXdatetime.datetime.hourrT(jjXEhttp://docs.python.org/3/library/datetime.html#datetime.datetime.hourX-trTXemail.policy.Policy.lineseprT(jjXNhttp://docs.python.org/3/library/email.policy.html#email.policy.Policy.linesepX-trTXxml.dom.Node.nodeTyperT(jjXChttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeTypeX-trTXsubprocess.TimeoutExpired.cmdrT(jjXNhttp://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.cmdX-trTX#socketserver.BaseServer.socket_typerT(jjXVhttp://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socket_typeX-trTXipaddress.IPv4Interface.networkrT(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.networkX-trTXunittest.TestCase.longMessagerT(jjXLhttp://docs.python.org/3/library/unittest.html#unittest.TestCase.longMessageX-trTXdatetime.time.minrT(jjX@http://docs.python.org/3/library/datetime.html#datetime.time.minX-trTX3http.server.SimpleHTTPRequestHandler.server_versionrT(jjXehttp://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.server_versionX-trTXsmtpd.SMTPChannel.received_datarT(jjXKhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_dataX-trTXmultiprocessing.Process.authkeyrT(jjXUhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.authkeyX-trTXselectors.SelectorKey.datarT(jjXJhttp://docs.python.org/3/library/selectors.html#selectors.SelectorKey.dataX-trTXUnicodeError.endrT(jjXAhttp://docs.python.org/3/library/exceptions.html#UnicodeError.endX-trTXtracemalloc.Statistic.sizerT(jjXLhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.sizeX-trTX(unittest.TestLoader.sortTestMethodsUsingrT(jjXWhttp://docs.python.org/3/library/unittest.html#unittest.TestLoader.sortTestMethodsUsingX-trUXos.stat_result.st_rdevrU(jjX?http://docs.python.org/3/library/os.html#os.stat_result.st_rdevX-trUXreprlib.Repr.maxtuplerU(jjXChttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxtupleX-trUX#xmlrpc.client.ProtocolError.errcoderU(jjXWhttp://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errcodeX-trUX%email.charset.Charset.header_encodingrU(jjXYhttp://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encodingX-trUXtypes.ModuleType.__loader__r U(jjXGhttp://docs.python.org/3/library/types.html#types.ModuleType.__loader__X-tr UX#importlib.machinery.SOURCE_SUFFIXESr U(jjXShttp://docs.python.org/3/library/importlib.html#importlib.machinery.SOURCE_SUFFIXESX-tr UX3http.cookiejar.DefaultCookiePolicy.strict_ns_domainr U(jjXhhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_domainX-trUXoptparse.Option.nargsrU(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.nargsX-trUXshlex.shlex.infilerU(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.infileX-trUX ipaddress.IPv6Network.is_privaterU(jjXPhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_privateX-trUXxml.dom.Node.namespaceURIrU(jjXGhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.namespaceURIX-trUX#doctest.UnexpectedException.examplerU(jjXQhttp://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.exampleX-trUXsubprocess.STARTUPINFO.dwFlagsrU(jjXOhttp://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.dwFlagsX-trUXoptparse.Option.callback_kwargsrU(jjXNhttp://docs.python.org/3/library/optparse.html#optparse.Option.callback_kwargsX-trUXdatetime.time.secondrU(jjXChttp://docs.python.org/3/library/datetime.html#datetime.time.secondX-trUXxml.dom.Node.lastChildrU(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.lastChildX-tr UXos.stat_result.st_flagsr!U(jjX@http://docs.python.org/3/library/os.html#os.stat_result.st_flagsX-tr"UX*xml.parsers.expat.xmlparser.ErrorByteIndexr#U(jjXXhttp://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorByteIndexX-tr$UXlogging.Logger.propagater%U(jjXFhttp://docs.python.org/3/library/logging.html#logging.Logger.propagateX-tr&UX#tracemalloc.StatisticDiff.tracebackr'U(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.tracebackX-tr(UXmultiprocessing.Process.namer)U(jjXRhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.nameX-tr*UXweakref.finalize.aliver+U(jjXDhttp://docs.python.org/3/library/weakref.html#weakref.finalize.aliveX-tr,UXos.stat_result.st_blksizer-U(jjXBhttp://docs.python.org/3/library/os.html#os.stat_result.st_blksizeX-tr.UXzipfile.ZipInfo.extract_versionr/U(jjXMhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extract_versionX-tr0UX"ipaddress.IPv6Network.with_netmaskr1U(jjXRhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_netmaskX-tr2UXshlex.shlex.commentersr3U(jjXBhttp://docs.python.org/3/library/shlex.html#shlex.shlex.commentersX-tr4UXdatetime.datetime.tzinfor5U(jjXGhttp://docs.python.org/3/library/datetime.html#datetime.datetime.tzinfoX-tr6UXmultiprocessing.Process.pidr7U(jjXQhttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.pidX-tr8UX!subprocess.CalledProcessError.cmdr9U(jjXRhttp://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.cmdX-tr:UXtarfile.TarInfo.uidr;U(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.uidX-trUXfilecmp.dircmp.common_funnyr?U(jjXIhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_funnyX-tr@UXssl.SSLContext.verify_flagsrAU(jjXEhttp://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_flagsX-trBUX9importlib.machinery.ModuleSpec.submodule_search_locationsrCU(jjXihttp://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.submodule_search_locationsX-trDUXcmd.Cmd.doc_headerrEU(jjX<http://docs.python.org/3/library/cmd.html#cmd.Cmd.doc_headerX-trFUXsmtpd.SMTPChannel.addrrGU(jjXBhttp://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.addrX-trHUX%ipaddress.IPv6Interface.with_hostmaskrIU(jjXUhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_hostmaskX-trJUXxml.dom.Node.localNamerKU(jjXDhttp://docs.python.org/3/library/xml.dom.html#xml.dom.Node.localNameX-trLUXfilecmp.dircmp.left_listrMU(jjXFhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_listX-trNUXmultiprocessing.Process.daemonrOU(jjXThttp://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.daemonX-trPUXclass.__name__rQU(jjX=http://docs.python.org/3/library/stdtypes.html#class.__name__X-trRUX(http.cookiejar.Cookie.domain_initial_dotrSU(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_initial_dotX-trTUX'email.policy.EmailPolicy.header_factoryrUU(jjXZhttp://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_factoryX-trVUXdatetime.datetime.minrWU(jjXDhttp://docs.python.org/3/library/datetime.html#datetime.datetime.minX-trXUXreprlib.Repr.maxdictrYU(jjXBhttp://docs.python.org/3/library/reprlib.html#reprlib.Repr.maxdictX-trZUXfilecmp.dircmp.funny_filesr[U(jjXHhttp://docs.python.org/3/library/filecmp.html#filecmp.dircmp.funny_filesX-tr\UX!mimetypes.MimeTypes.types_map_invr]U(jjXQhttp://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_map_invX-tr^UXshlex.shlex.escaper_U(jjX>http://docs.python.org/3/library/shlex.html#shlex.shlex.escapeX-tr`UX'email.headerregistry.BaseHeader.defectsraU(jjXbhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.defectsX-trbUXmemoryview.f_contiguousrcU(jjXFhttp://docs.python.org/3/library/stdtypes.html#memoryview.f_contiguousX-trdUX+importlib.machinery.DEBUG_BYTECODE_SUFFIXESreU(jjX[http://docs.python.org/3/library/importlib.html#importlib.machinery.DEBUG_BYTECODE_SUFFIXESX-trfUX$ipaddress.IPv4Network.with_prefixlenrgU(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_prefixlenX-trhUX(http.cookiejar.CookiePolicy.hide_cookie2riU(jjX]http://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.hide_cookie2X-trjUX0http.cookiejar.DefaultCookiePolicy.strict_domainrkU(jjXehttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_domainX-trlUXthreading.Thread.namermU(jjXEhttp://docs.python.org/3/library/threading.html#threading.Thread.nameX-trnUX nntplib.NNTP.nntp_implementationroU(jjXNhttp://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_implementationX-trpUX$xml.dom.ProcessingInstruction.targetrqU(jjXRhttp://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.targetX-trrUX,http.server.BaseHTTPRequestHandler.responsesrsU(jjX^http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.responsesX-trtUXzipfile.ZipInfo.flag_bitsruU(jjXGhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.flag_bitsX-trvUXdatetime.datetime.monthrwU(jjXFhttp://docs.python.org/3/library/datetime.html#datetime.datetime.monthX-trxUX$ipaddress.IPv4Network.is_unspecifiedryU(jjXThttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_unspecifiedX-trzUXurllib.request.Request.hostr{U(jjXPhttp://docs.python.org/3/library/urllib.request.html#urllib.request.Request.hostX-tr|UX#tracemalloc.StatisticDiff.size_diffr}U(jjXUhttp://docs.python.org/3/library/tracemalloc.html#tracemalloc.StatisticDiff.size_diffX-tr~UXre.match.lastindexrU(jjX;http://docs.python.org/3/library/re.html#re.match.lastindexX-trUX)email.headerregistry.AddressHeader.groupsrU(jjXdhttp://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.groupsX-trUX7http.server.BaseHTTPRequestHandler.error_message_formatrU(jjXihttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_message_formatX-trUX)asyncio.asyncio.subprocess.Process.stderrrU(jjXbhttp://docs.python.org/3/library/asyncio-subprocess.html#asyncio.asyncio.subprocess.Process.stderrX-trUX)http.server.BaseHTTPRequestHandler.serverrU(jjX[http://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.serverX-trUXos.stat_result.st_mtimerU(jjX@http://docs.python.org/3/library/os.html#os.stat_result.st_mtimeX-trUX.xml.parsers.expat.xmlparser.ordered_attributesrU(jjX\http://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ordered_attributesX-trUXselect.kevent.flagsrU(jjX@http://docs.python.org/3/library/select.html#select.kevent.flagsX-trUX3http.server.BaseHTTPRequestHandler.protocol_versionrU(jjXehttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.protocol_versionX-trUXpyclbr.Class.namerU(jjX>http://docs.python.org/3/library/pyclbr.html#pyclbr.Class.nameX-trUXtarfile.TarInfo.gidrU(jjXAhttp://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gidX-trUXipaddress.IPv4Network.explodedrU(jjXNhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.explodedX-trUX5http.cookiejar.DefaultCookiePolicy.strict_ns_set_pathrU(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_pathX-trUXsqlite3.Cursor.rowcountrU(jjXEhttp://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.rowcountX-trUXipaddress.IPv6Address.sixtofourrU(jjXOhttp://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.sixtofourX-trUXconfigparser.BOOLEAN_STATESrU(jjXNhttp://docs.python.org/3/library/configparser.html#configparser.BOOLEAN_STATESX-trUXzlib.Decompress.unused_datarU(jjXFhttp://docs.python.org/3/library/zlib.html#zlib.Decompress.unused_dataX-trUX%xml.etree.ElementTree.ParseError.coderU(jjXahttp://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.codeX-trUX/http.server.BaseHTTPRequestHandler.MessageClassrU(jjXahttp://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.MessageClassX-trUXselect.epoll.closedrU(jjX@http://docs.python.org/3/library/select.html#select.epoll.closedX-trUXoptparse.Option.actionrU(jjXEhttp://docs.python.org/3/library/optparse.html#optparse.Option.actionX-trUXoptparse.Option.constrU(jjXDhttp://docs.python.org/3/library/optparse.html#optparse.Option.constX-trUXimportlib.abc.FileLoader.pathrU(jjXMhttp://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.pathX-trUX"collections.somenamedtuple._sourcerU(jjXThttp://docs.python.org/3/library/collections.html#collections.somenamedtuple._sourceX-trUX5http.cookiejar.DefaultCookiePolicy.DomainRFC2965MatchrU(jjXjhttp://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainRFC2965MatchX-trUX$email.headerregistry.BaseHeader.namerU(jjX_http://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.nameX-trUXdatetime.date.yearrU(jjXAhttp://docs.python.org/3/library/datetime.html#datetime.date.yearX-trUXzipfile.ZipInfo.CRCrU(jjXAhttp://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.CRCX-trUXlzma.LZMADecompressor.checkrU(jjXFhttp://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.checkX-trUuuUsrcdirrUX//var/build/user_builds/simpy/checkouts/3.0/docsrUUconfigrUcsphinx.config Config rU)rU}rU(U html_contextrU}rU(Ubitbucket_versionU3.0rUU using_themeUuser_analytics_codeUU html_themerUUsphinx_rtd_themerUUcurrent_versionjUU canonical_urlUUglobal_analytics_codeU UA-17997319-1U source_suffixrUU.rstrUUPRODUCTION_DOMAINUreadthedocs.orgU github_userUNonerUU new_themeUanalytics_codeUUsingle_versionUdisplay_githubU downloads]rU(UPDFU9https://readthedocs.org/projects/simpy/downloads/pdf/3.0/rUUHTMLU=https://readthedocs.org/projects/simpy/downloads/htmlzip/3.0/rUUEpubU:https://readthedocs.org/projects/simpy/downloads/epub/3.0/rUeU READTHEDOCSU conf_py_pathU/docs/U github_repojUU rtd_languageXenUbitbucket_repoUsimpyrUUslugjUUapi_hostUhttps://readthedocs.orgUbitbucket_userjUUnamerUXSimPyrUUversions]rU(UstableU /en/stable/rUUlatestU /en/latest/rUU3.0.5U /en/3.0.5/rUU3.0.4U /en/3.0.4/rUU3.0.3U /en/3.0.3/rUU3.0.2U /en/3.0.2/rUU3.0.1U /en/3.0.1/rUjUU/en/3.0/rUeUgithub_versionjUUdisplay_bitbucketUcommitU 480c9c2f4e17+U MEDIA_URLrUUhttps://media.readthedocs.org/uU html_sidebarsrU}rUUindexrU]rU(Uindexsidebar.htmlrUUsearchbox.htmlrUesUpygments_stylerUUfriendlyrUUhtmlhelp_basenamerUUSimPydocjUjUUautodoc_member_orderrUUbysourcerUU master_docrUUcontentsrUjUjUU copyrightrUU2002-2012, Team SimPyUexclude_patternsrU]rUU_buildrUajU3.0U man_pagesrU]rU(jUjUXSimPy DocumentationrU]rUU Team SimPyrUaKtrUaU html_stylerUNUhtml_theme_optionsrU}Utemplates_pathrU]rU(UA/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinxrUU _templatesrUeUlatex_documentsrU]rU(jUU SimPy.texjUjUUmanualrUtrUaU html_faviconrUU_static/favicon.icoUhtml_static_pathrU]rU(U_staticrUUI/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_staticrUeUhtml_theme_pathrU]rU(U_themesrVjUeUintersphinx_mappingrV}rVUhttp://docs.python.org/3/rVNsUlanguagerVXenrVUhtml_additional_pagesrV}rVjUU index.htmlsU overridesrV}r VjVjVsUprojectr VjUU html_logor VU_static/simpy-logo-200px.pngU extensionsr V]r V(Usphinx.ext.autodocrVUsphinx.ext.doctestrVUsphinx.ext.intersphinxrVUreadthedocs_ext.readthedocsrVeUreleaserVU3.0rVUsetuprVNubUintersphinx_cacherV}rVjVNJ.vT}rV(j}rV(jjjjjjjjjjjjj0 j1 jjjj j j jjj j jd je jjjjjjj\ j] jjjjjjjjjjjjjjjjjjjjj j!j"j#jjjjjjjjjjjjj j jjjjj&j'j(j)jjjjj*j+j,j-j.j/jjjjj0j1j2j3j4j5j6j7j8j9jjjjj j jjjjjjj>j?j8 j9 jX jY j@jAjBjCjjjDjEjDjEjTjUjj jFjGjjj j jLjMjjjNjOjjjPjQjjjRjSjTjUjjjjjVjWjjj j jjj\j]j^j_jjj`jaj"j#jbjcjjj$j%j&j'j(j)j*j+j,j-j$j%jjjfjgj.j/j0j1j2j3jB jC jljmj6j7j8j9j:j;jnjoj<j=jpjqj>j?jrjsj@jAjtjujvjwjBjCjZj[jxjyjDjEjjjFjGjzj{jHjIj j jJjKj~jjjjNjOjjjPjQjjjRjSjTjUjjjjjVjWjjj`jaj j jXjYjjjZj[jjjjjjjjjjjjj`jajbjcjdjejjj.j/jjjh ji jjjjjfjgjjjjjjjjjjjjjkjjjljmjnjojpjqjrjsjtjujjjvjwjjjjjxjyjjjjjt ju jzj{jjj j jjj~jjjjjjjjx jy jjjjj$j%j j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjljmjjjjj j jjjjjjjjjjj j j|j}jjj*j+jjj j jjjjjjjjjjjjjjjT jU jjjjjjjjjjjjj j jjjjjjjjjjj j jxjyj j j j jjjjjjjjjjj j j j j j j j j j j j jjjjj j j j j j jjjjj j jBjCjjjnjojjjz j{ j" j# jjj$ j% j& j' j8 j9 jjjjjjj( j) j* j+ j, j- j` ja j. j/ jjjjjjjjjjj2 j3 jjjjj j jjj j jjjjj8 j9 jjjjj: j; j< j= jjjjjjj@ jA j j j j jB jC j j jF jG jjjR jS jH jI jjjJ jK j j jjjjj^ j_ jN jO jjjP jQ jjjjjR jS jjjjjjjT jU j"j#jV jW jX jY j&j'jjj*j+jZ j[ j.j/j0j1j\ j] j j j2j3j j jJ jK j` ja jb jc jf jg j8j9j:j;jh ji j<j=jjj@jAj j jj jk jDjEjFjGjp jq jr js jJjKjLjMjNjOjt ju jPjQj<j=jn jo jv jw jx jy jXjYjZj[j\j]j j j| j} j^j_j`jajHjIj~ j j j jfjgj j jjjkjljmj j j j jnjoj j j j j j jjjjjrjsj j j\j]j j j j jtjuj j jvjwjjj j j j j j j j jzj{j j j|j}j~jj j jjj j jjjjj^j_jjjjjjjjj j j j jjjjj j jjj j jjjjj j jjjjjjjjjjj j jjj j j0 j1 jjjNjOjjjjjjj j j j jjjjj j j j jjjjj j j j j j j j jhjijjjjjjj j jjj j j j j j jXjYjjjjjjjd je jjjjjjjZj[jjjjj j j>j?jjj j jjj j j j jv jw jjjdjejjjx jy j j jjj j j j jjjjjjjb jc j j jjj j j j j j j j j j j j j j jjj| j} jjj j jjjjj j jjj j jjj j jjjjjjj j jjj j j j jjjjjjj j j j j j j j! jjj$ j% jjj& j' j( j) jtjujjjjj, j- j. j/ jjjjj0 j1 jjj4 j5 j j j j j j jjj j jjj j jjjLjMj: j; j< j= j> j? j j j< j= jB jC j2 j3 jjjjjjj|j}j j jjjjjJ jK jjjL jM jjj6j7j j jN jO jP jQ jR jS jT jU j|j}jX jY jj j$j%jZ j[ j\ j] j^ j_ j` ja jb jc j j j&j'jjj(j)jh ji jjjjjj jk jjj*j+jl jm j j j,j-j.j/j0j1j2j3j4j5j6j7jD jE j8j9jv jw jhjij:j;jjjz j{ j| j} j<j=j>j?j@jAjBjCjDjEj j j j j j jHjIjjjJjKj j jNjOjPjQjRjSj j j j j j jVjWjXjYj j j j j\j]j^j_j j jbjcj" j# jH jI jdjejfjgj j j j jhjij j j j jjjkj j j j jnjoj j j j jjjtjujvjwj j jzj{j|j}j~jj j jjj j j j j4 j5 j j j j j j jjjjjjjjj j jjjjj j j j j j j j j j j j j j j j j&j'j j jjjjj j j j jjj j j j jjj j j j jjjjjjjjjjj j j j jjjjjjjjjjj j jjj j j j j j j@ jA jjj j j j jjjjjjj j j j jjj j j* j+ j$j%j j j j j j jjj j jjj j jjj j jjjpjqj` ja j j j j j j j j j j jf jg jjj j jjjjjF jG jjjr js j j jjjjj|j}jjjjjjjjjjjjj j j j jjjjjjj j jjjjj j jjj j jjj j jjj> j? jjj4j5jjj4j5j" j# jjjjjjjjj( j) j$ j% jj jLjMj& j' j j j j jjj j j* j+ j, j- j j j. j/ j^ j_ jjj4 j5 jfjgjjjjj j j8 j9 j: j; j j jjjjj< j= jjjjj j!j"j#j@ jA jB jC jD jE j j jjj&j'j j!j(j)jjjL jM j,j-j j jN jO j.j/jjjP jQ j0j1j2j3j6j7jjjT jU j j j:j;j j j<j=j>j?j@jAjBjCjZ j[ jjjFjGjjjjjJjKj j!j j jb jc jd je jPjQjRjSj j jTjUj j jXjYjZj[j\j]jj jk j^j_jjjj j`jajbjcj j jdjejjjl jm jjjjjJjKjjjkjD jE jn jo jp jq jljmjr js jt ju jv jw jjjpjqjrjsjtjuj| j} j~ j j j jvjwjjj j jjjj jk j4j5j j j j jVjWjl jm j j jRjSj~jjjjjjjjjj j j j j j jjjjj j! jjjjj j jjjjjjj j jjj j j j j^j_j j jjjjj j jjjjjjj j jjj j j j j j j,j-jt ju jjj j jjjjj j j j j j jjj j jjj j jjj j jLjMj j jjjjj j j j jrjsjzj{j j j j j j jz j{ j j jjj j jjjjj j j" j# jhjij j jjjjjjj j j j j j j(j)j j j6j7j j j8j9j j jHjIj j jVjWj j jjjjjhjijjjjjjjxjyu(j j jjjjjTjUj j jjj j j j j j jjj j j j jjj j j j j j jjj j jjj( j) j j j j!j j j j j j jrjsj"j#jr js j j j j jjjjjjjjj j jjjjj j jjj j jjj j jjj j jjjjj j jjjjjjjjj j jjj j jjjjj j j j j j jjjjj j! j j j$ j% j2 j3 jjj& j' jjjjj* j+ j, j- jjj. j/ jjj:j;j2 j3 j4 j5 j6 j7 j6 j7 jHjIj: j; j j!j"j#jf jg jjjjj@ jA jjjkj j j j j(j)jD jE j*j+j,j-jjjH jI j0j1jJ jK jjjL jM j2j3jN jO jjjjjP jQ jR jS j8j9jV jW j<j=j>j?j@jAjX jY jZ j[ jjj\ j] jDjEj^ j_ jFjGjHjIjJjKjd je jf jg jLjMjh ji jNjOjPjQjpjqjjjRjSjTjUjn jo jl jm jXjYjljmj j jZj[jjjjj j jp jq j j! j j j`jajbjcj> j? jFjGj j j j jdjejfjgjhjijn jo jz j{ jnjojpjqjjjp jq j~ j j j j j jjj j j j j j jvjwj6 j7 j j j0 j1 jxjyj j jF jG jzj{jV jW j~jj j j j j j jjjjj j jjjjjjjjjjj j j> j? j j jjjjjjjjjjjjjjjjjjj j j j j$j%jjjj jjjjjjj4j5jjj j jH jI jjj j jx jy j j jjj j jjj j jL jM j j jjj j j j j j j j jjjBjCjjjjjxjyjjjjj j jjjV jW jjjjj j j j j j jjj:j;jjj j j j jjj j jbjcjjjjjjjjjjj6 j7 j~ j j j j j jjjjjjjdjejjjjjjjF jG jjj j jjjkjjj j j j jVjWjjj\j]j j j j j j j j j j j j jjjjjjjjjjjjj j jjjjjjjjj j jjjjjjjjj j jjj j j j uj }rV(j j j j j j j j j j j j j j j j j j j j j j j j j j! j$ j% j* j+ j, j- j. j/ j< j= j4 j5 j6 j7 j0 j1 j> j? j@ jA jF jG jH jI jJ jK jL jM jN jO jT jU jV jW jX jY j^ j_ j` ja jd je jf jg jh ji jr js jv jw jz j{ j| j} j~ j j j j j j j j j j j j j j j j& j' j j j j j j j j j j j j j j j j j j j j j j j j j" j# j( j) j j j2 j3 j8 j9 j: j; jB jC jD jE jP jQ jZ j[ j\ j] jb jc j j j j jj jk jn jo jp jq jt ju jR jS jx jy j j j j j j j j j j jl jm uj }rV(j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j^j_j j jjj j j j j j j j j j jjj j j j j j j j j j j j j j j j j j j j jLjMj j jjj j j j j j jFjGj j j j j j jjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjj j j!j"j#j$j%j&j'j(j)jjj*j+j,j-j.j/j0j1j2j3j4j5j6j7jrjsj:j;j>j?j j jBjCjDjEjFjGjHjIjJjKjjjzj{jNjOjPjQjRjSjTjUjVjWjXjYj\j]j j j`jajbjcjdjejfjgjhjijjjkjfjgjljmjnjojpjqj8j9jtjujvjwjxjyjLjMj|j}jjj~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj6j7jjjjjjjjjjjjjjjjjjjjjjjjj&j'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjrjsjjjjjjjjjj j j j j jjjjjjjjjjjjjjj j jjjjj j!j"j#j$j%j&j'j4j5j*j+j,j-j0j1j2j3j4j5j6j7j8j9jjj:j;j<j=j>j?j@jAjBjCjDjEjPjQjHjIjJjKjjjNjOjPjQjRjSjTjUjVjWjjjZj[j\j]j^j_j`jajdjejfjgjDjEjjjXjYjljmjjjnjojpjqjjjtjujvjwjxjyjzj{j|j}jjj~jjZj[jXjYjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkjjjjjjjjjjjjjjjjjjj8j9jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj6j7jjjjjjjjjjjjjjjj j^j_jjjjjjjjjjjjj j jjjjj`jaj"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j4j5jjjjj8j9j~jj<j=jjj@jAjjjDjEjFjGjHjIjJjKjLjMjNjOjjjRjSjTjUjVjWj j jjj\j]j^j_j`jajdjejfjgjhjijjjljmjnjojpjqjrjsjtjujvjwjxjyjzj{jpjqj:j;j>j?jBjCjjjjjjjjjjjjj:j;jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjHjIjjjjjjjjjjjjjjj j jjjPjQjjjjjjjjjjjjjjj j j@jAjjjjjjjjjjjjjjjjjjj j!j"j#j$j%jjj(j)j*j+j,j-j.j/j0j1j2j3j4j5j(j)jZj[j<j=j>j?j@jAjBjCjhjijFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjjjXjYjZj[jjj j j2j3j j!jbjcjdjej j jhjijjjkjljmjnjojjj|j}jrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjhjijjjjjjjjjjjjjjjjjjj\j]jjjjjjjjjjjjjjjjj2j3jjjjjtjujjjjjjjjjkjjjjjjjjjjjjjjjjjjjjjjjjjjjkjjjjjjj.j/jjjjjjj j jjjjjjjjjjjjjjjbjcjjjjjjjjjjj:j;jjjj j j jjjjjjjjjjjjjjj<j=jjj j!jjj$j%j&j'jjj*j+j,j-jbjcj0j1jjjjj6j7j8j9jjj<j=j>j?j@jAjBjCjDjEjFjGjjjJjKjLjMjNjOjjjRjSjTjUjVjWjjjZj[j\j]jjj`jajbjcjdjejfjgjjjjjljmjnjojpjqjrjsjjjvjwjxjyjzj{j|j}j~jjjjjjjjjjjj"j#j(j)j.j/jjjXjYj^j_jjjjjjjjuj}rV(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}rV(jjj<j=jjjjj>j?j@jAjBjCjjjDjEjjjjjFjGjHjIjj jLjMjjj j jjjPjQjjjRjSjTjUjVjWjXjYjjj\j]jjj`jajbjcjjjjjjjjjPjQjjjhjijjjkjljmj j!j"j#j$j%j<j=j&j'jpjqj(j)j*j+j4j5jtjujjjjjvjwj.j/j0j1jxjyj2j3j4j5j6j7j8j9jzj{jFjGj@jAjpjqj:j;jjj~jjnjojjj|j}jBjCjjjDjEjFjGjjjjjjjJjKjjjjjNjOjPjQjRjSjjjjj j jjjjjjjXjYjjjjjjj\j]j^j_jbjcjjjjjJjKjjjdjejfjgj"j#jjjhjijjjHjIjljmjnjojpjqjrjsjjjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjj>j?jjjjjjjjj`jajjjjjjjjjjjjjjjjj^j_jjjjjjjjjXjYjjjjjjjjjjjjjjjjjTjUjjjdjejjjjjjjjjfjgjjjjjjjjjjjjjjjjjVjWjjjjjLjMjjjjjjjjjjjjjjjjjjj^j_jjj j jjjjjjj2j3jjjjjjjjjnjojjjjjjjjjjjjjjjjjjjJjKjVjWjjj j jjjjjjjjjjjjjjjjjjjjjj jjj j jjjjjZj[jjjjjjjjjjj$j%jjjjjjjjjjj"j#jdjejjjNjOjj j&j'jjjjjjj(j)jjjrjsj*j+jjjjj,j-j.j/j0j1jjj,j-jjjjjjjjjjj8j9j:j;j<j=j>j?j@jAjBjCj j!jjjjjjjHjIjjj j jjjjjkjjjjjLjMjNjOjDjEjRjSjTjUjjjjjjjjjjjjjljmjjjjjZj[jjjjjjjjjjj j!j`jaj6j7j$j%j&j'jjj(j)jbjcj*j+jZj[j,j-j.j/j0j1j2j3jfjgj4j5j6j7jhjijjj\j]jjjkj8j9jjj:j;jjjrjsujt}rV(jvjwjxjyj~jjjjjjjjjjjjjjjjjjzj{j|j}jjjjjjjjjjjjjjjjjjuj}rV(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjBjCjjjjjVjWjjjjjjjjj j j j jjjjjjjjj j!j&j'j(j)j,j-j0j1j6j7j:j;j<j=j>j?jjjFjGjHjIjJjKjLjMjNjOjPjQjjjXjYj\j]jbjcjfjgjljmjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj.j/jjjjjjj4j5jjjTjUjj jjj*j+jjjjjjjjj"j#j$j%j2j3j8j9j@jAjDjEj`jajRjSjjjZj[j^j_jhjijjjkjdjejnjoujp}rV(jrjsjjjjjvjwjxjyjzj{j|j}j~jjjjjjtjujjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}r V(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'uj(}r!V(j*j+j<j=j,j-j.j/jHjIj>j?X!j4j5j6j7j8jdjej:j;jjjkj2j3j@jAjRjSjDjEjFjGj0j1jJjKjLjMjNjOjPjQjBjCjTjUjVjWjXjYjZj[j\j]j^j_jbjcXpj9jfjgjhjij`jaujl}r"V(jnjojpjqjjjtjujvjwjxjyjjj|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjrjsjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjzj{jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjTjUjjjjjjjjjjj"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjjjVjWjXjYjZj[j\j]j^j_j`jajbjcjjjkjdjejfjgjhjijjjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjj j!jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}r#V(jjjjjRjSjjjjjjjjjjjjjjjjjjj<j=jXjYjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jJjKjjjjjrjsjjjjjjjjjjjfjgj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/jjj2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjDjEjjjHjIjJjKjLjMjNjOjPjQjTjUjTjUjVjWjXjYjZj[j\j]jjj`jajbjcjdjejjjhjijZj[jnjojpjqjrjsjtjujvjwjxjyj4j5jzj{j~jjjjjjjjdjejjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkjjjjjjjjjjjjjjjjjjjFjGjjj j!jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjxjyjjjjjjjjjjjjj0j1jjjjjjjjjjj&j'jjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjjjj"j#j$j%jjjkjjj(j)j*j+j,j-j.j/j0j1j2j3jljmj6j7j8j9j:j;jjj>j?j@jAjBjCjDjEjFjGjHjIjjjLjMjNjOjPjQjRjSjjjVjWjjjljmj\j]j^j_j`jajbjcjjjfjgjhjijjj|j}jnjojpjqj^j_jtjujvjwjjjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}r$V(jjjjjjuj}r%V(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj uj }r&V(j%j%jjjjjjjjjjj)j)jjjjjjjJ"jK"j"j#j$j%j&j'j#j#j(j)j*j+j,j-j.j/j0j1jjj%j%j6j7j8j9j:j;j*j*j<j=j>j?j@jAjBjCjDjEj)j)jHjIjJjKjN.jO.jLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j1j1j`jajbjcjdjejfjgj%j%jjjkjljmjnjoj`"ja"jrjsjvjwj%j%jzj{j|j}j~jjjjjjjjjjjj%j%jjjjjjj%j%jjj)j)jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjp-jq-jjjjjjjjjjjjjjjjj-j-jjjjjx"jy"jjjjjjjjjjj(j(jjjjjjjjjjjjjt-ju-jjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjjjjjjjj j!j&j'j"j#j$j%jjj*j+j,j-j.j/j0j1j2j3j4j5j"j"j8j9j:j;jjj>j?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjjjPjQjRjSjTjUjjjZj[j\j]j&j&j`jajbjcjdjejfjgjhjij)j)jjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j!j!j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj0j0jjjjjjjjjjjjjjjjjjj"j"jjjjjjjjjjjjjjjjj"j"jjjjj(&j)&jjjjjjjjjjjjjjjjj"j"jjjjjjjjj)j)jjjjjjjjjj j j j j jjjjjjjjj.j.j)j)jjjjjjjjj j!j"j#j)j)j&j'j(j)j*j+j,j-j.j/j0j1j/j/j4j5j6j7j8j9j+j+j:j;j<j=j>j?j@jAjBjCjDjEjFjGjHjIj)j)jLjMjNjOjPjQjjjTjUjVjWjXjYjZj[j\j]j^j_j:&j;&jbjcjdjejfjgjhjijjjkjljmjnjojrjsjp/jq/j-j-jxjyj)j)j|j}j~jjjjjjjjjjjjjj-j-jjjjjjjjjD&jE&jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j jjjjjjjjjjjjj .j .jN&jO&j j!j"j#j*j+j&j'j(j)j0j0j*j+j,j-j-j-j-j-j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j"j"j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOj"j"jRjSjTjUjVjWj2j3jZj[j\j]j^j_jbjcjdjejfjgjhjijjjkjljmjnjojpjqjb&jc&jtjuj8j9jxjyjzj{j|j}j~jjjjjjjjjj j jjjjjjjjjjjjjjj>j?j"j"jjjjjjjjj2j3jjjjjjjjjjjjjjjjjBjCjjjjjjjz!j{!j(*j)*jjjjj-j-j|,j},jjj"j"jjjjjjj(j)jjj<j=jjjXjYjNjOjjjXjYjn&jo&jjjjjjjjj"j"jjjjjjjjjjjjjjjjjjjjj-j-jjjjjjjRjSj,j,jZ,j[,jjjj j8*j9*j j jjjjjjjjjjjjjjjjjjj j!jv&jw&j"j#j.j.jH jI j(j)j$j%j,j-j.j/j0j1jXjYj4j5j6j7jvjwj:j;j<j=jjjjjb(jc(jDjEj@*jA*jJjKj"j"jNjOjPjQj|&j}&jTjUj"j"jZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjJ*jK*jjjjjjjjjjjjj#j#jjjjjjjjjjj#j#jjj%j%jjjjjjj#j #jjjjjjjjjjjjjjjjjjjjjjj +j +jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj*j*jjjjjjjjjjjjjjj j j j jb$jc$j j j j j j j j j j j j j j j j j j j j j j j j j j j j! j" j# j$ j% j& j' j( j) j* j+ j, j- j. j/ j0 j1 j2 j3 j4 j5 j6 j7 j8 j9 j: j; j< j= jV#jW#j> j? j@ jA jB jC jD jE jF jG jJ jK jL jM jN jO j$#j%#jR jS jT jU jV jW jX jY jZ j[ jl*jm*j&j&j^ j_ j` ja jb jc jd je jf jg jh ji j(#j)#j@.jA.jp*jq*jp jq jr js jt ju j&j&jv jw jx jy jz j{ j| j} j~ j j j j j j j j j j j j j j j j j j j j j j j j j j j jv*jw*j j j j jn)jo)j j j j j j j j jH-jI-j*j*j j j j j j j j j j j j j j j j j j j j j&j&j j j j j j j j j'j'j j j j j:-j;-j j j j j j j j j~*j*j j j j j j j.j.j j j j j j j j j j j<(j=(j j j j j j j j j j j j j j j j j j j j j!j!j!j!j!j!j!j!j!j !j !j !j*j*j!j!j!j!j!j!j!j!jd"je"j!j!j!j!j!j!j!j!j!j!j !j!!j"!j#!j$!j%!jH#jI#j&!j'!j(!j)!j*!j+!j,!j-!j.!j/!j0!j1!j2!j3!j4!j5!j6!j7!j8!j9!j:!j;!j!j?!j@!jA!jB!jC!jD!jE!jF!jG!jH!jI!jJ!jK!jL!jM!j&j&jP!jQ!jR!jS!jT!jU!jV!jW!jX!jY!jZ!j[!j\!j]!j^!j_!j`!ja!jb!jc!jd!je!jf!jg!jh!ji!jn!jo!jp!jq!j&j&jt!ju!jv!jw!jx!jy!j,j,j|!j}!j~!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!jZ#j[#j!j!j!j!j!j!j|.j}.j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j+j+j!j!j!j!j/j/j"j"j"j"j"j "j "j "jd)je)j "j "j"j"j"j"j"j"j"j"j"j"j"j"j"j"j$j$j"j"j"j"j "j!"j.j.j$"j%"j&"j'"j("j)"jh#ji#j,"j-"j."j/"j0"j1"j2"j3"j4"j5"j6"j7"j8"j9"j:"j;"j<"j="j>"j?"j@"jA"jB"jC"jj#jk#jF"jG"jH"jI"j j!jL"jM"jN"jO"jP"jQ"jR"jS"jT"jU"jV"jW"jX"jY"jZ"j["j\"j]"j^"j_"jpjqjb"jc"jtjujf"jg"jh"ji"jj"jk"jl"jm"jn"jo"jp"jq"jr"js"jt"ju"j*j*jv"jw"jjjz"j{"j|"j}"j~"j"j"j"j"j"j"j"j6j7j'j'j*j*j|j}j"j"j"j"j"j"jjjjj"j"jjj"j"j"j"j"j"j"j"j"j"j.j.j"j"j"j"j"j"j"j"j"j"j"j"j"j"j&j&j ,j ,j"j"j"j"jx#jy#j"j"j"j"j"j"j"j"j"j"j"j"j"j"u(j~#j#jPjQj'j'j"j"j"j"j#j#jjj"j"j"j"j"j"j"j"j#j#jjj"j"j"j"j#j#j"j"jjj"j"j"j"j"j"j"j"jLjMj"j"j#j#j*j*j#j#j#j#jjj%j%jjj #j #j #j #j j j.j.jjj#j#j.j.j#j#j#j#j#j#j#j#j#j#j#j#j#j#j"#j##jP jQ j&#j'#j,#j-#jj jk j#j#j*j*j.#j/#j0#j1#j2#j3#j4#j5#j6#j7#j8#j9#j:#j;#j<#j=#j'j'j@#jA#jB#jC#jD#jE#jF#jG#j%j%jJ#jK#jL#jM#jN#jO#jP#jQ#jR#jS#jT#jU#jjjX#jY#j!j!jt.ju.j^#j_#j.j.jb#jc#jd#je#jf#jg#j*"j+"jD"jE"jl#jm#jn#jo#jp#jq#jr#js#jt#ju#j/j/jz#j{#j|#j}#j"j"j#j#jD.jE.j#j#j"j"j"j"j#j#j#j#j #j!#j*#j+#j#j#j#j#j*j*j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j.j.j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j2'j3'j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j<'j='j#j#j#j#j /j /j#j#j#j#j#j#j#j#j#j#j$j$j$j$j'j'j$j$j$j$j$j $j $j $j$j$j$j$j$j$j$j$j.j.j$j$j$j$j$j$j$j$j $j!$j"$j#$j+j+j&$j'$j($j)$j*$j+$j,$j-$j.$j/$j0$j1$j2$j3$j4$j5$jB'jC'j8$j9$j:$j;$jD'jE'j>$j?$j@$jA$jB$jC$jD$jE$jF$jG$jH$jI$jJ$jK$jL$jM$jN$jO$jP$jQ$jR$jS$jT$jU$jV$jW$jZ$j[$j\$j]$j^$j_$j`$ja$j+j+jd$je$jf$jg$jh$ji$jj$jk$jl$jm$jn$jo$jp$jq$jr$js$jt$ju$jv$jw$jx$jy$jz$j{$j|$j}$j"+j#+j$j$j$j$j$j$jP'jQ'j$j$j$j$j$j$j$j$j$+j%+j$j$j$j$j$j$j$j$j$j$j$j$j)j)j$j$j'j'j$j$j$j$j$j$j$j$j$0j%0j$j$j$j$j$j$j+j+j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j`'ja'j$j$j'j'j$j$j$j$j.j.j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j.'j/'j&)j')j$j$j$j$j%j%j%j%j%j%j%j%j%j %j,j,j %j %j %j %j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j %j!%j"%j#%j$%j%%j4+j5+j(%j)%j*%j+%j,%j-%j.%j/%j0%j1%j2%j3%j4%j5%j6%j7%jr'js'j:%j;%j<%j=%j>%j?%j@%jA%jB%jC%jD%jE%jF%jG%jJ%jK%jL%jM%jN%jO%jP%jQ%jR%jS%j /j /jV%jW%jX%jY%jZ%j[%j\%j]%j^%j_%j`%ja%jb%jc%jd%je%jf%jg%jh%ji%jj%jk%jl%jm%jn%jo%jp%jq%jr%js%jt%ju%jv%jw%jx%jy%jz%j{%j|%j}%j~%j%j%j%j%j%j%j%j%j%j.j.j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j(j(j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%jN+jO+j%j%j%j%j<$j=$j%j%j%j%j%j%j%j%j%j%j%j%j%j%j j j./j//j%j%j/j/j4j5j%j%j%j%j%j%j.+j/+jhjijvjwj%j%jxjyjjjjj%j%j&j&j&j&j&j&j&j&j&j &j &j &jT'jU'j&j&j&j&j&j&j&j&j^j_j&j&j&j&j*j*j &j!&j"&j#&j$&j%&j&&j'&jjj*&j+&j,&j-&j.&j/&jd+je+jf+jg+j4&j5&j6&j7&j8&j9&j`jaj<&j=&j>&j?&j@&jA&jB&jC&jjjF&jG&jH&jI&jJ&jK&jL&jM&jjjP&jQ&jR&jS&jT&jU&jV&jW&jX&jY&jZ&j[&j\&j]&j^&j_&j`&ja&jrjsjd&je&jf&jg&jh&ji&jj&jk&jl&jm&jjjp&jq&jr&js&jt&ju&j$j$jx&jy&jz&j{&jRjSj~&j&j*j*j&j&j&j&j0j0j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j+j+j&j&j&j&j&j&j*j*j&j&j&j&jZ/j[/j'j'j&j&j&j&j&j&j&j&j&j&j&j&j+j+j&j&j&j&j&j&jd*je*j&j&jN!jO!j`/ja/j&j&j&j&jr!js!j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&(j'(j&j&j&j&j&j&j&j&j&j&j&j&jv-jw-j&j&j"j"j&j&j&j&j'j'j'j'j'j'j"j"j'j 'j 'j 'j 'j 'j'j'j'j'j'j'j'j'j'j'j'j'j>#j?#j'j'j 'j!'jjj"'j#'j$'j%'j&'j''j('j)'j*'j+'j,'j-'j!j!j0'j1'j#j#j4'j5'j6'j7'j8'j9'j:'j;'j#j#j>'j?'j@'jA'j6$j7$jjjF'jG'jH'jI'jJ'jK'jL'jM'jN'jO'jjjR'jS'j$j$jV'jW'jz/j{/jZ'j['j\'j]'j^'j_'j$j$jb'jc'jd'je'jf'jg'jh'ji'jj'jk'jl'jm'jn'jo'jp'jq'j8%j9%jt'ju'jv'jw'jx'jy'jz'j{'j|'j}'j~'j'j'j'jjj'j'j'j'j'j'j'j'j'j'j'j'j'j'j/j/j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j(j(j'j'j'j'j'j'j'j'j'j'j&j&j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'jr(js(j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j*j*j'j'j%j%j'j'j'j'jjj'j'j'j'j'j'j'j'j'j'j(j(j(j(j(j(j(j(j(j (j (j (j (j (j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j (j!(j"(j#(j$(j%(j8)j9)j((j)(j*(j+(j,(j-(j.(j/(j0(j1(j2(j3(j4(j5(j6(j7(j8(j9(j:(j;(j)j)j>(j?(j@(jA(jB(jC(jD(jE(jF(jG(jH(jI(jJ(jK(jL(jM(jN(jO(jP(jQ(jR(jS(jT(jU(jV(jW(jX(jY(jZ(j[(j\(j](j^(j_(j`(ja(j*j*jd(je(j+j+jh(ji(jj(jk(j2j3jl(jm(jn(jo(jp(jq(j#j#jt(ju(jv(jw(jx(jy(jz(j{(j|(j}(j~(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j.j.j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(jJ/jK/j,j,j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j-j-j(j(j(j(j(j(j(j(j(j(j(j(j(j(j)j)j#j#j)j)j)j)j)j )j )j )j )j )j)j)j)j)j)j)j)j)j)j)j)j)j)j)j+j+j)j)j )j!)j")j#)j$)j%)j j j()j))j*)j+)j,)j-)j.)j/)j0)j1)j2)j3)j4)j5)j6)j7)j~,j,j:)j;)j<)j=)j>)j?)j@)jA)jB)jC)jD)jE)jF)jG)jH)jI)jJ)jK)jL)jM)jN)jO)jP)jQ)jR)jS)jT)jU)jV)jW)jX)jY)jZ)j[)j\)j])j^)j_)j`)ja)jb)jc)j@0jA0jf)jg)jh)ji)jj)jk)jl)jm)j^0j_0jp)jq)j/j/jr)js)jt)ju)jv)jw)jx)jy)jz)j{)j|)j})j~)j)j)j)j+j+j)j)j)j)j)j)j)j)j)j)jjjr-js-j)j)j)j)j)j)j)j)jFjGj)j)j)j)j)j)j.j.j)j)j)j)j)j)j)j)j)j)j)j)j0/j1/j)j)j)j)j)j)j)j)j)j)j)j)j)j)j,j,j)j)j)j)j)j)j$j$j)j)j)j)j)j)j,j,j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)jjj)j)j)j)jjj$j%j)j)j)j)jJjKj)j)j)j)jF/jG/j)j)j)j)jzj{j*j*j*j*j*j*j*j*j*j *j *j *j *j *jjj*j*j*j*j`jaj/j/jVjWj*j*j*j*j *j!*j"*j#*j$*j%*j&*j'*jjj**j+*j,*j-*j.*j/*j0*j1*j2*j3*j4*j5*j6*j7*j j j:*j;*j<*j=*j>*j?*jFjGjB*jC*jD*jE*jF*jG*jH*jI*jjj,j,jN*jO*jP*jQ*jR*jS*jT*jU*jV*jW*jX*jY*jZ*j[*j\*j]*j^*j_*j`*ja*jb*jc*j j jf*jg*jh*ji*jj*jk*j\ j] jn*jo*jn jo jr*js*jt*ju*j j jx*jy*jz*j{*j|*j}*j j j*j*j*j*j*j*j !j !j*j*j*j*j*j*u(j*j*j*j*j&.j'.j*j*j*j*j*j*j*j*j*j*j*j*j*j*j!j!j*j*j*j*j*j*j",j#,j*j*j*j*j*j*j*j*j*j*j*j*j*j*j&,j',j-j-j*j*j*j*j*j*j"j"j*j*j*j*j*j*j"j"j*j*j*j*j*j*j*j*j%j%j*j*j*j*j*j*j*j*j*j*j*j*j $j $j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j+j+j+j+j+j+j+j+j+j +j +j +j+j+j+j+j$$j%$j+j+j+j+j+j+j+j+j+j+j+j+j+j+j +j!+j~$j$jH%jI%j&+j'+j(+j)+j*+j++j,+j-+j$j$j0+j1+j2+j3+j&%j'%j6+j7+j8+j9+j:+j;+j<+j=+j>+j?+j@+jA+jB+jC+jD+jE+jF+jG+jJ+jK+jL+jM+j%j%jP+jQ+jR+jS+jT+jU+jV+jW+jX+jY+jZ+j[+j^+j_+j`+ja+jb+jc+j0&j1&j2&j3&jh+ji+jj+jk+jl+jm+jn+jo+jp+jq+jr+js+jt+ju+jv+jw+jx+jy+jz+j{+j|+j}+j~+j+j&j&j+j+j+j+j+j+j&j&j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+jR,jS,j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j,j,j+j+j+j+j+j+j+j+j+j+j+j+j+j+j*0j+0j+j+j,0j-0j+j+j+j+jf(jg(j+j+j+j+j+j+j+j+j+j+j+j+j$j$j+j+j+j+j+j+j,j,j+j+j)j)j+j+j+j+j+j+j+j+j+j+j)j)j+j+j+j+j+j+j+j+j40j50j+j+j+j+j,j,j60j70jh,ji,j,j,j,j ,j ,j ,jB,jC,jL*jM*j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j ,j!,j*j*j$,j%,j*j*j(,j),jl,jm,j,,j-,j.,j/,j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,j:,j;,j<,j=,j>,j?,j@,jA,jD,jE,jF,jG,jH,jI,jJ,jK,jL,jM,jN,jO,jP,jQ,jl!jm!jT,jU,jV,jW,jX,jY,j.j.j\,j],j^,j_,j`,ja,jb,jc,jd,je,jf,jg,j,j,jj,jk,j*,j+,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jz,j{,jx,jy,j,j,j.j.j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,jf-jg-j,j,j,j,j,j,j&j&j,j,j0j0j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j.j.j,j,j,j,j,j,j,j,j,j,j,j,j,j,j j j,j,j,j,j.j.j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j/j/j,j,j,j,j,j,j,j,j,j,j-j-j-j-j-j-j-j-j-j -j -j -j -j -j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j -j!-j"-j#-jV0jW0j&-j'-j(-j)-j*-j+-j,-j--j.-j/-j0-j1-j2-j3-j4-j5-jZ0j[0j8-j9-j0j0j<-j=-j>-j?-j@-jA-jB-jC-jD-jE-jF-jG-jHjIjJ-jK-jL-jM-jN-jO-jP-jQ-jR-jS-jT-jU-jV-jW-jX-jY-jZ-j[-j\-j]-j^-j_-jb-jc-j-j-jd-je-j\#j]#jh-ji-jj-jk-jl-jm-jn-jo-jjj-j-jjjjjx-jy-jz-j{-j|-j}-j~-j-j-j-jjj-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j!j!jjjl0jm0j-j-j-j-jn0jo0j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-jtjuj-j-jjj-j-j-j-j0j 0j-j-j-j-j-j-j-j-j-j-j-j-j(j(j-j-j.j/j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-jjj-j-j-j-j-j-j-j-j-j-jjj.j.j.j.j.j.j$j%j.j.j.j .j .j .j@jAj.j.j`#ja#j!j!j.j.j.j.j.j.j.j.j.j.j.j.j'j'j .j!.j".j#.j$.j%.j(.j).j*.j+.j,.j-.j..j/.j0.j1.j2.j3.j4.j5.j6.j7.j8.j9.j:.j;.j<.j=.j>.j?.jl jm jB.jC.jF.jG.jH.jI.jJ.jK.jL.jM.jjjP.jQ.jR.jS.jT.jU.jV.jW.jX.jY.jZ.j[.j\.j].j^.j_.j`.ja.jb.jc.jd.je.jf.jg.jh.ji.jj.jk.jl.jm.jn.jo.jp.jq.jr.js.j(j(jv.jw.jx.jy.jz.j{.j!j!j~.j.j,j,j.j.j""j#"j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j"j"j"j"j.j.j.j.j.j.j"j"j.j.j.j.j#j#j.j.j.j.j.j.j.j.j.j.j.j.j.j.jjj.j.j.j.j.j.j &j &j.j.j.j.j.j.jr/js/j.j.j.j.j.j.j#j#j.j.j#j#j.j.j0j0j$j$j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j$j$j.j.j.j.j.j.j/j/j/j/j/j/jj!jk!j/j /jT%jU%j"j"j/j/j/j/j/j/j/j/j/j/j'j'j/j/j/j/j/j/j /j!/j"/j#/j$/j%/j&/j'/j(/j)/j*/j+/j,/j-/j%j%j2/j3/j4/j5/j6/j7/j8/j9/j:/j;/j/j?/j@/jA/jB/jC/jD/jE/jH+jI+jH/jI/jL/jM/jN/jO/jP/jQ/jR/jS/j0j0jT/jU/jV/jW/jX/jY/j&j&j\/j]/j^/j_/j&j&jb/jc/jd/je/jf/jg/jh/ji/jj/jk/jl/jm/jn/jo/j'j'jt/ju/j0j0jx/jy/jX'jY'j|/j}/j~/j/jpjqj'j'j/j/j/j/j/j/j/j/j/j/j/j/j/j/j0j0j/j/j/j/j0j0j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/jjj/j/j+j+j/j/j0j0j/j/j/j/j/j/j/j/j/j/j/j/j/j/j0j0j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j*j*j&j&j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j/j0j0j0j0j0j0j0j0j"j"j 0j 0j 0j 0j*j*j0j0j0j0j0j0j0j0j0j0j&j'j0j0j0j0j 0j!0j0j0j(j(j&0j'0j(0j)0j+j+j+j+j.0j/0j00j10j20j30j+j+j,j,j80j90j:0j;0j<0j=0j>0j?0jjjB0jC0jD0jE0jF0jG0jH0jI0jJ0jK0jL0jM0j j jN0jO0jP0jQ0jT0jU0j$-j%-j0j0j6-j7-j\0j]0j`-ja-j`0ja0jb0jc0jd0je0jf0jg0jh0ji0jj0jk0j-j-j-j-j0j0jr0js0jt0ju0jv0jw0jx0jy0jz0j{0j|0j}0j~0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j1j1j0j0j0j0j0j0j0j0j0j0j0j0jp0jq0j\+j]+j0j0j0j0j0j0j0j0j0j0jR0jS0jv/jw/jv#jw#j0j0j/j/j/j/j0j0j0j0j0j0jVjWj0j0j/j/j0j0j0j0j0j0j0j0j0j0j0j0j"0j#0j0j0j0j0j0j0j0j0jX0jY0j0j0j"j"jX$jY$j0j0j0j0j0j0j0j0j0j0jjj1j1uj1}r'V(j1j 1jd1je1jp1jq1j 1j 1jh1ji1X-jx1j1j1jr1js1j1j1jl1jm1j1j1j1j1j1j1j"1j#1j1j1jn1jo1j1j1j1j1jt1ju1j 1j!1jv1jw1j1j1j$1j%1j&1j'1j(1j)1j*1j+1j,1j-1j.1j/1j01j11j21j31j41j51j61j71j81j91j:1j;1j<1j=1jy1jz1j{1j|1j>1j?1j@1jA1jB1jC1jD1jE1jF1jG1jH1jI1jJ1jK1j}1j~1j^1j_1j1j1jf1jg1j1j1j1j1jP1jQ1jR1jS1jT1jU1j1j1j1j1jL1jM1jV1jW1jX1jY1j1j1jj1jk1j1j1j1j1j1j1j1j1j 1j 1j1j1jZ1j[1j1j1j\1j]1j1j1jN1jO1j1j1jb1jc1j1j1j1j1j1j1j`1ja1j1j1uj1}r(V(j1j1j1j1j1j1j1j1j1j1j1j1j4j4j1j1j1j1j1j1j6j6j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j2j2j1j1j6j6j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j5j5j1j1j1j1jE7jF7j1j1j1j1j1j1j1j2j2j2j8j8j2j2j2j2j2j2j 2j 2j 2j 2j 2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j 2j!2j"2j%6j&6j%2j&2j'2j(2j)2j*2j+2j,2j3j3j/2j02j12j22j32j42j52j62j72j82j92j:2j;2j<2j=2j>2j?2j@2jA2jB2jC2jD2jE2jF2jG2jH2jI2jJ2jK2jL2jM2jN2jO2jP2jQ2jR2jS2jT2jU2jV2j/6j06jY2jZ2j[2j\2j]2j^2j_2j`2j3j3jc2jd2je2jf2j3j3ji2jj2jk2jl2j2j2jo2jp2jq2jr2js2jt2ju2jv2jw2jx2jy2jz2j}2j~2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j 4j4j2j2j2j2j2j2j1j1j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j6j6j2j2j2j2j3j3jm2jn2j2j2j2j2j4j4j2j2j2j2j2j2j2j2j2j2j2j2j2j3j2j2j3j3j3j3j3j3j 3j 3j 3j 3j 3j3j3j3j3j3j4j4jK6jL6j3j3j3j3j8j8j3j 3j!3j"3j#3j$3j'3j(3j)3j*3j+3j,3j-3j.3j/3j03j13j23j33j43j53j63j73j83j93j:3j;3j<3j=3j>3j?3j@3jA3jB3j4j4jC3jD3jE3jF3jG3jH3jI3jJ3jK3jL3j[6j\6jM3jN3jO3jP3jQ3jR3jS6jT6jU3jV3jW3jX3jY3jZ3j[3j\3j]3j^3j/5j05ja3jb3jc3jd3je3jf3jy7jz7jg3jh3ji3jj3j+4j,4jm3jn3j]6j^6jo3jp3jq3jr3js3jt3ju3jv3j55j65jy3jz3jc6jd6j}3j~3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j6j6j3j3j3j3j3j3j3j3j3j3ji6jj6j3j3j3j3j3j3j3j3j3j3jk6jl6j3j3j3j3j3j3jA5jB5j3j3j3j3j3j3j3j3j54j64j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3ja6jb6j3j3j3j3j3j3j-2j.2j3j3j3j3j3j3j3j3j3j3j3j3ja2jb2jg2jh2j3j3jS7jT7j3j4j4j4j4j4j4j4j?4j@4j 4j 4j 4j 4j2j2j4j4j4j4j4j4j2j2j4j4j4j4j3j3j4j4jM7jN7j4j 4j!4j"4j#4j$4j%4j&4j'4j(4j)4j*4jk3jl3j-4j.4j4j4j]5j^5j14j24j3j3j74j84j94j:4j;4j<4j6j6j6j6j4j4jA4jB4jC4jD4jE4jF4jG4jH4jI4jJ4jM4jN4jO4jP4jQ4jR4jS4jT4jU4jV4jW4jX4jY4jZ4j[4j\4j]4j^4j_4j`4j!7j"7ja4jb4jc4jd4j4j4je4jf4jg4jh4ji4jj4jk4jl4jm4jn4jo4jp4jq4jr4js4jt4ju4jv4jw4jx4jy4jz4jK7jL7j{4j|4j}4j~4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4ju6jv6j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j_6j`6j4j4j1j1j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j=5j>5j4j4j6j6j5j5j4j4j4j4j7j7j5j5j4j4jC6jD6j4j4j4j4ju5jv5j4j4j4j4j4j4j4j4j4j4j4j4j1j1j4j4j4j4j7j7j4j4j4j5j5j5j7j7j5j5j5j5j 5j 5j 5j 5j 5j5j7j7j5j5j5j5j5j5j6j6j5j5j5j5j5j5j5j 5j!5j"5j#5j$5j%5j&5j)5j*5j+5j,5j-5j.5j_3j`3j15j25j35j45jw3jx3j75j85j95j:5j7j7j'5j(5j?5j@5j3j3jC5jD5jE5jF5jG5jH5jI5jJ5jK5jL5jM5jN5j7j7jQ5jR5jS5jT5jU5jV5j6j6jY5jZ5j[5j\5j/4j04j_5j`5ja5jb5jc5jd5je5jf5jg5jh5j5j5jA7jB7jm5jn5jo5jp5jq5jr5js5jt5j%3j&3jw5jx5j{5j|5j}5j~5j4j4j5j5j5j5j5j5j7j7j5j5j5j5j6j6j5j5j5j5j5j5j5j5j5j5j;5j<5j5j5j5j5j5j5jk5jl5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j7j7j5j5j5j5j5j5j5j5j5j5j5j5j7j7j5j5j5j5j5j5j6j6j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j7j7j5j5j5j5j5j5j5j5j5j5j6j6j5j5j5j5j5j5j5j5j7j7j6j6j5j5j5j6j6j6j6j6j6j6j6j6j 6j 6j 6j 6j 6j6j6j6j6j6j1j1j6j6j1j1j6j6j6j6j6j 6jE6jF6j!6j"6j#6j$6j#2j$2j'6j(6j)6j*6j-6j.6jW2jX2j16j26j36j46j7j7j56j66j8j8j76j86j96j:6j7j7j;6j<6j=6j>6j?6j@6jA6jB6j2j2j3j3jG6jH6jI6jJ6j3j3jM6jN6jO6jP6jQ6jR6j 8j 8jS3jT3jU6jV6jW6jX6jY6jZ6j5j5j5j5j4j4j4j4j6j6j{3j|3je6jf6jg6jh6j+6j,6j3j3jm6jn6jo6jp6jq6jr6js6jt6jw6jx6jy6jz6j{6j|6j}6j~6j4j4j6j6j6j6j=4j>4j7j7j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j8j8j6j6j6j6j4j4j6j6j6j6j5j5j6j6j2j2j6j6j6j6j1j1j6j6j6j6j6j6j6j6j6j6j6j6j5j5j3j3j6j6j6j6j6j6j6j6j6j6j6j6j6j6j5j5j6j6j6j6j5j5jW5jX5j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j7j7j7j7j7j7j7j7j7j'7j(7j 7j 7j 7j 7j7j7j 7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j 7j7j7j#7j$7j%7j&7j7j8j)7j*7j+7j,7j-7j.7j/7j07j17j27j37j47j57j67j97j:7j=7j>7j?7j@7j;7j<7jC7jD7j1j1jG7jH7jI7jJ7jO5jP5j6j6jO7jP7jQ7jR7j34j44jU7jV7jW7jX7jY7jZ7j[7j\7j]7j^7j_7j`7ja7jb7jc7jd7je7jf7jg7jh7ji7jj7jk7jl7jm7jn7jo7jp7jq7jr7js7jt7jw7jx7jy5jz5j{7j|7j}7j~7jG8jH8j7j7j7j7j7j7j7j7j7j7j7j7j7j7j3j3j7j7j7j7jK4jL4j7j7j7j7j7j7j7j7j7j7ji5jj5j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j78j88ju7jv7j7j7j7j7j7j7j5j5j7j7j7j7j7j7j4j4j7j7j7j7j2j2j7j7j77j87j7j7j7j7j5j5j5j5j7j7j7j7j5j5j7j7j7j7j7j7j7j7j8j 8j1j1j7j7j7j7j7j7j7j7j5j5j7j7j6j6j6j6j8j8j8j8j6j6j8j8j 8j 8j{2j|2j 8j8j3j3j8j8j7j7j8j8j8j8j8j8j3j3j8j8j7j7j!8j"8j#8j$8j%8j&8j'8j(8j)8j*8j+8j,8j-8j.8j/8j08j18j28j38j48j58j68j7j7j98j:8j;8j<8j=8j>8jA8jB8jI8jJ8jE8jF8j?8j@8jC8jD8jK8jL8jM8jN8ujO8}r)V(j;j;jS8jT8jU8jV8jY8jZ8j[8j\8j]8j^8j:j:ja8jb8jc8jd8je8jf8jg8jh8jq9jr9jm8jn8jo8jp8jq8jr8js8jt8ju8jv8jw8jx8jy8jz8j{8j|8j}8j~8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j;j;j8j8j+>j,>j8j8j8j8j8j8j8j8j;j;j8j8j8j8j;j;j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j{<j|<j8j8j8j8j:j:j8j8j8j8j8j8j8j8j8j8j;j;j8j8j8j8j8j8j8j8j8j8j8j8j;j;j8j8j1<j2<j9j9j8j8j8j8j8j8jw9jx9j:j:j8j8j8j8je=jf=jI9jJ9j!>j">j8j8j=j=j8j8j8j8j8j8j8j8j8j8j8j8j8j8j9j9j8j8j9j9j8j8j8j8j8j8j8j8j8j9j9j9j9j9j9j9j9j9j:j:j8j8j 9j 9j 9j9j9j9j9j9j9j9j9j9j3<j4<j9j9j9j9j9j9jm>jn>j!9j"9j+=j,=j;j;j)9j*9j-9j.9j9j9j19j29j39j49js>jt>j79j89j99j:9j;9j<9ju>jv>j?9j@9jC9jD9jE9jF9jG9jH9jM>jN>jK9jL9jM9jN9jO9jP9jy>jz>jS9jT9jU9jV9jW9jX9jY9jZ9j[9j\9j]9j^9j_9j`9ja9jb9jc9jd9jm:jn:je9jf9jg9jh9ji9jj9j>j>j9j9jo9jp9ji8jj8js9jt9ju9jv9j?j?j;j;jy9jz9j{9j|9j}9j~9j8j8j9j9j9j9j8j8j9j9j9j9j/9j09j?=j@=je?jf?j9j9j9j9j9j9j9j9jm9jn9j9j9j9j9j9j9j>j>j9j9j9j9j9j9j9j9j9j9jS<jT<j9j9j9j9j9j9j9j9j9j9j9j9j<j<j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j>j>j9j9j9j9j9j9jk<jl<j9j9j9j9j=j=j9j9j?j?j9j9j9j9j9j9j9j9j9j9j;j;j9j9j9j9j9j9jK;jL;j+<j,<j9j9j9j9j-<j.<j9j9j9j9j9j9j9j9j>j>j9j:j:j:j:j:j:j:j:j:j :j :j :j :j :j:j:j:j:j:j:j:j5<j6<ji=jj=j:j:j:j:j:j :j!:j":j#:j$:j%:j&:j':j(:j):j*:j+:j,:j-:j.:j/:j0:j1:j2:j3:j4:j8j8j5:j6:j7:j8:j9:j::j;:j<:j?:j@:j=j=jA:jB:jC:jD:jE:jF:jG:jH:jI:jJ:jK:jL:jM:jN:jO:jP:jQ:jR:jS:jT:jU:jV:jW:jX:jY:jZ:j:j:j[:j\:j]:j^:j_:j`:jq?jr?je:jf:ji:jj:jk:jl:j >j >jo:jp:jq:jr:js:jt:j;j;ju:jv:jw:jx:jy:jz:j{:j|:j}:j~:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j=j=j:j:j:j:jk=jl=j:j:j:j:j:j:j:j:j:j:j9j9j:j:j:j:j>j>j:j:j_8j`8j:j:j:j:j:j:j:j:j:j:j:j:j8j8j:j:j 9j 9j;j;j:j:j=9j>9j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j;j;j:j:j:j:j:j:j;j;j:j:j:j:j>j>j;j;j:j:j:j:j:j:j>j>j:j:j:j:j:j:j#;j$;j:j;j;j;j;j;jg>jh>j ;j ;j;j;j ;j ;j:j:j ;j;j:j:j;j;j;j;j:j:j;j;j:j:j;j;j;j ;j!;j";j'9j(9j%;j&;j';j(;j);j*;j+;j,;j-;j.;j/;j0;j;j;j1;j2;j3;j4;j5;j6;j3>j4>j>j>j;;j<;j=;j>;j?;j@;jA;jB;jC;jD;jE;jF;jG;jH;jI;jJ;j<j<jM;jN;jO;jP;jQ;jR;jS;jT;jU;jV;jW;jX;jY;jZ;j[;j\;j];j^;j_;j`;ja;jb;jc;jd;je;jf;jg;jh;ji;jj;jk;jl;j>j>jo;jp;jq;jr;js;jt;ju;jv;jw;jx;jy;jz;j{;j|;j};j~;j;j;j!=j"=j;j;j;j;j;j;j;j;jI=jJ=j;j;j;j;j;j;j=j=jy=jz=j;j;j;j;j=j=j;j;j;j;j;j;j;j;j;j;j>j>j;j;j9;j:;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j ?j?j;j;j;j;j;j;j;j;j;j;j;j;j;j;jQ8jR8j;j;j;j;j;j;jk8jl8j;j;j;j;j=j=j;j;j8j8j;j;j;j;j;j;j%9j&9j;j<j<j<j<j<j<j<j <j <j <j <j <j<j<j<j<j<j5>j6>j<j<j<j<j<j<j<j<j<j <j!<j"<j#<j$<j%<j&<j'<j(<j)<j*<j9j9j9j9j/<j0<j?j?j;j;j:j:j>j>j9<j:<j<j<j;<j<<j=<j><j<j<j?<j@<jA<jB<j:j:jC<jD<jE<jF<j=j=jk9jl9j>j>jI<jJ<jK<jL<jM<jN<jO<jP<jQ<jR<jo<jp<jU<jV<jw>jx>jW<jX<jY<jZ<j[<j\<j]<j^<j_<j`<ja<jb<jc<jd<je<jf<jg<jh<ji<jj<j8j8jm<jn<jq<jr<js<jt<ju<jv<jw<jx<jy<jz<jW>jX>j}<j~<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j=j=j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j?j?j<j<j<j<j<j<j>j>j<j<j=j=j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<jk>jl>j<j<j<j<j?j?j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j9?j:?j>j>j<j=j=j=j7=j8=j=j=j=j=j =j =j =j =j =j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j =j3?j4?j=j=j%=j&=j8j8j'=j(=j)=j*=j#9j$9j-=j.=j/=j0=j1=j2=j3=j4=j5=j6=j;=j<=j==j>=j9j9jA=jB=jC=jD=jE=jF=jG=jH=j9j9jK=jL=jM=jN=jO=jP=j[>j\>jQ=jR=jU=jV=jY=jZ=j[=j\=j]=j^=j_=j`=ja=jb=jc=jd=j=:j>:jg=jh=jc:jd:j;j;j>j>jo=jp=jq=jr=js=jt=ju=jv=jw=jx=j<j<j>j>j{=j|=j}=j~=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j<j<j=j=jA9jB9j;j;j=j=j=j=j1?j2?j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j9j9j=j=j=j=jg:jh:j=j>j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=?j>?j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j7;j8;j;j;j#=j$=j??j@?j=j=j9j9j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j;j;j>j>jc?jd?j >j >j >j>j<j<j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j >ja:jb:j#>j$>j%>j&>j'>j(>j)>j*>j=j=j->j.>j/>j0>j1>j2>j?j ?j)?j*?j7>j8>j9>j:>j;>j<>j=>j>>j?>j@>jA>jB>jC>jD>jE>jF>jG>jH>jI>jJ>jW8jX8jO>jP>jQ>jR>jS>jT>jU>jV>jm=jn=jY>jZ>j+9j,9j]>j^>j_>j`>ja>jb>jc>jd>je>jf>j}?j~?ji>jj>j;j;j9j 9jo>jp>j]?j^?j59j69j?j?j;j;j_?j`?jQ9jR9j{>j|>j>j>jg?jh?j>j>j>j>j>j>j>j>j>j>ja?jb?j>j>j>j>j>j>j8j8j>j>j:j:j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>jS?jT?j>j>j>j>j:j:j>j>j>j>j:j:j>j>j>j>j>j>jS=jT=j9j9j>j>j>j>j<j<jK>jL>j>j>j>j>j>j>jm;jn;j>j>j>j>j<j<jo?jp?j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j7<j8<j>j>jG<jH<j>j>j>j>j:j:j>j>j>j>j>j?j?j?j?j?j<j<j?j?j ?j ?j ?j ?j}>j~>j?j?j?j?j:j:j?j?j:j:j?j?j?j?j;j;j!?j"?j#?j$?j%?j&?j'?j(?jW=jX=j+?j,?j-?j.?j/?j0?j=j=j5?j6?j7?j8?j=j=j;?jjr>j;j;j>j>j9j9j>j>ji?jj?jk?jl?jm?jn?j>j>j;j;js?jt?ju?jv?jw?jx?jy?jz?j{?j|?j9=j:=j?j?j?j?j?j?j8j8jY?jZ?j?j?j?j?j?j?j?j?j?j?uj?}r*V(j?j?j?j?j@j@j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j!@j"@j?j?j#@j$@j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j@j@j@j @j @j@j@j@j@j@j@j@j @j?j?j?j?j'@j(@j)@j*@j+@j,@j-@j.@j7@j8@j9@j:@j=@j>@j?@j@@jA@jB@jE@jF@jO@jP@jS@jT@jU@jV@jW@jX@j?j?j?j?j?j?j?j?j?j?j@j@j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j5@j6@j@j@j@j@j@j@j @j @j@j@j?j?jI@jJ@j@j@j%@j&@jC@jD@j @j@j/@j0@j1@j2@j3@j4@j?j?j;@j<@jM@jN@jG@jH@j@j@jK@jL@jQ@jR@ujY@}r+V(ji@jj@jk@jl@jo@jp@jq@jr@jy@jz@j}@j~@j@j@j@j@j@j@j@j@jmJjnJjg@jh@j@j@j@j@jKjKj@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@jAjAjAjAjAjAjAj Aj Aj Aj Aj AjAjAjAjAjAjAjAjAjAjAjAjAjAj#Aj$Aj%Aj&Aj1Aj2Aj3Aj4Aj5Aj6AjEjEj=Aj>Aj?Aj@AjAAjBAjCAjDAjEAjFAjKAjLAjSAjTAjUAjVAj[Aj\Aj]Aj^AjaAjbAjgAjhAjmAjnAjoAjpAjqAjrAjuAjvAjyAjzAjAjAjAjAjAjAjAjAjAjAjAjAjoCjpCjAjAjAjAjAjAjEjEj@j@jAjAjAjAjEjEjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjBjBj Bj Bj BjBjBjBjBjBjBjBjBjBjBjBj%Bj&Bj'Bj(Bj)Bj*Bj/Bj0Bj1Bj2Bj3Bj4Bj7Bj8Bj=Bj>BjABjBBjCBjDBjEBjFBjIBjJBjKBjLBjMBjNBjQBjRBjSBjTBjUBjVBj[Bj\BjFjFjaBjbBjqBjrBjsBjtBjuBjvBj{Bj|BjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjBjADjBDjBjBjBjCjCjCjCjCjCjCj Cj CjCjCjCjCjCjCjCjCjCjCjCjCj)Cj*Cj+Cj,Cj-Cj.Cj7Cj8Cj9Cj:Cj=Cj>CjACjBCjCCjDCjICjJCjKCjLCjMCjNCjOCjPCjNjNjWCjXCjYCjZCjJjJjeCjfCjkCjlCjmCjnCj]Dj^DjqCjrCjuCjvCj{Cj|Cj}Cj~CjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjDjDjDjDjDj Dj DjDjDjDjDjEjEjDjDjDj Dj#Dj$DjKjKj'Dj(Dj)Dj*Dj+Dj,Dj/Dj0Dj1Dj2Dj3Dj4Dj?Dj@DjsHjtHjCDjDDjEDjFDjKDjLDjMDjNDjODjPDjQDjRDjSDjTDjWDjXDjYDjZDj[Dj\Dj_Dj`DjaDjbDjeDjfDjgDjhDjiDjjDjuDjvDj{Dj|Dj}Dj~DjDjDj!Kj"KjDjDj#Kj$KjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjFj FjDjEjEjEj Ej Ej EjEj'Fj(FjEjEjEjEj!Ej"Ej#Ej$Ej)Ej*Ej+Ej,Ej-Ej.Ej)Aj*Aj1Ej2Ej3Ej4Ej5Ej6Ej7Ej8Ej9Ej:Ej;EjEj?Ej@EjCEjDEjGEjHEjIEjJEjKEjLEjMEjNEjOEjPEj_Lj`LjUEjVEj[Ej\Ej_Ej`EjaEjbEj9Fj:FjuEjvEjwEjxEjEjEjEjEjEjEjAjAjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEFjFFjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjDjDjEjEjCjCjEjEjEjEjFjFjiKjjKjFjFj FjFjFjFjFjFjFjFjFjFjDjDj!Fj"Fj#Fj$Fj%Fj&Fj1Fj2Fj3Fj4Fj5Fj6FjkEjlEjAFjBFjIFjJFjYFjZFjMFjNFj[Fj\FjWFjXFjKFjLFjQFjRFj]Fj^FjcFjdFjkFjlFjoFjpFj}Fj~FjFjFjFjFj{Kj|KjFjFjJjJjFjFjFjFjFjFjFjFjFjFjKjKjFjFjFjFjFjFjFjFjFjFjFjFjFjFjIjIjFjFjFjFjFjFjFjFjFjFjFjFjKjKjFjFjAjAjFjFjFjGjGjGjGjGj GjGjGjGjGjGjaHjbHjGjGj#Gj$Gj)Gj*Gj+Gj,Gj/Gj0GjKjKj3Gj4Gj5Gj6Gj;GjIj?Ij@IjCIjDIjEIjFIjGIjHIjKIjLIjJjJjMIjNIjOIjPIjUIjVIjWIjXIj[Ij\IjcIjdIjgIjhIjkIjlIjsIjtIjuIjvIjyIjzIj}Ij~IjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjLjLjIjIjFjFjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjJjJjJjJjJjJjJjJj Jj Jj Jj JjJjJjJjJjJjJjJjJjJjJj LjLjNjNjJj Jj!Jj"Jj%Jj&Jj)Jj*Jj+Jj,Jj1Jj2Jj=Jj>Jj?Jj@JjCJjDJjEJjFJjGJjHJjKJjLJjMJjNJjUJjVJj[Jj\JjLjLj_Jj`JjcJjdJjgJjhJjiJjjJjkJjlJj@j@joJjpJjsJjtJjuJjvJjwJjxJj{Jj|Jj}Jj~JjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJj-Lj.LjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjBjBjJjJjJjJjJjJjJjJj[Cj\CjJjJjJjJjJjJjGjGjJjJjEjEjJjKjKjKjKjKjKjKj Kj Kj%Dj&DjKjKjKjKjKjKjKjKjDjDjDjDj%Kj&Kj-Kj.Kj1Kj2Kj5Kj6Kj9Kj:KjCKjDKjEKjFKjGKjHKjOKjPKjSKjTKjUKjVKjWKjXKjYKjZKj]Kj^KjcKjdKjELjFLjgKjhKjmKjnKjoKjpKjqKjrKjuKjvKjFjFjKjKjFjFjKjKjKjKjFjFjKjKjKjKjKjKj1Gj2GjKjKjKjKjGBjHBjGjGj)Ij*IjKjKjKjKjFjFjKjKjKjKjKjKjKjKjKjKjKjKjKjKj]Lj^LjKjKjKjKjKjKjKjKjIjIjLjLjLjLjQGjRGj Lj LjJjJjLjLjLjLjLjLjWBjXBj]Jj^JjLj Lj!Lj"Lj%Lj&Lj)Lj*Lj+Lj,Lj7Lj8Lj9Lj:LjALjBLjCLjDLjeKjfKj_Bj`BjKLjLLjOLjPLjWLjXLjYLjZLjiLjjLjoLjpLjuLjvLjwLjxLj)Nj*NjyLjzLj{Lj|Lj}Lj~LjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjuGjvGjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjMjMjMjMjMj Mj Mj Mj Mj MjMjMjMjMjMjMjMjMjMjMj Mj!Mj"Mj#Mj$Mj)Mj*Mj+Mj,Mj-Mj.Mj1Mj2Mj7Mj8Mj9Mj:Mj=Mj>Mj?Mj@MjCMjDMjEMjFMjGMjHMjMMjNMjUMjVMjWMjXMj]Mj^Mj_Mj`MjaMjbMjGjGjGjGjuMjvMj}Mj~MjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjBjBjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjNjNjNjNj Nj Nj NjNjNjNjNjNjNjNjNjNjBjBj'Nj(NjYHjZHj1Nj2Nj3Nj4Nj5Nj6NjINjJNjKNjLNjSNjTNjUNjVNjYNjZNjaNjbNjEjEjqNjrNj}Nj~NjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNj Gj GjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjNjLjLjNjNjNjNjNjNjOjOjOjOj Oj Oj Oj OjOjOjOjOjOjOj#Oj$Oj%Oj&Oj'Oj(Oj-Oj.Oj[Nj\NjsMjtMj9Oj:Oj;OjFjCFjDFjEjEjGFjHFjOFjPFjSFjTFjUFjVFjeFjfFj_Fj`Fj@j@jgFjhFjiFjjFjFjFjmFjnFjqFjrFjuFjvFjwFjxFj{Fj|FjFjFjEjEj=Dj>DjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjIjIjuHjvHjHjHjFjFjFjFjFjFjFjFjFjFjNjNjFjFjFjFjyFjzFjGjGjMjMjFjFjIjIjFjFjFjFjFjFjIjIjFjFjFjFjFjFj Gj GjGjGjGjGjJjJjGjGjJjJjGj Gj!Gj"Gj%Gj&Gj-Gj.Gj7Gj8Gj9Gj:Gj=Gj>GjGGjHGjKjKjOGjPGj Lj Lj[Gj\Gj;LjNjHjHjDjDjHjHjBjBjHjHjHjHjDjDjHjHjHjHjEjEjHjHjHjHjHjHjHjHjHjHjEjEjHjHjHjHjHjIjIjIj Ij Ij Ij IjHjHjGjGjIjIjIjIjGjGjJjJj-Ij.Ij/Ij0Ij1Ij2Ij Hj Hj/Jj0JjQIjRIjSIjTIjYIjZIjqIjrIjaIjbIjeIjfIjiIjjIjmIjnIjoIjpIjDjDj3Jj4JjwIjxIjGOjHOjIjIjIjIjIjIjIjIjIjIjIjIjQJjRJjIjIjIjIjJjJjJjJjIjIjsFjtFjIjIj;KjKj?Kj@KjAjAj]Ij^IjKKjLKjMKjNKjQKjRKjEjEjaKjbKjEjEjGjGj]Cj^CjkKjlKjsKjtKjwKjxKjBjBjKjKjKjKjKjKjNjNjKjKjKjKjKjKjGjGjKjKjKjKjKjKj/Nj0NjKjKjKjKjKjKjKjKjKjKjKjKj=Hj>HjKjKjDjDjKjKjGjGjyDjzDjKjKjHjHjKjKjHjHjNjNjKjKjKjKjCjCjKjKj_Kj`KjMjMjDjDjKjLjLjLj'Aj(AjDjDjJjJjAJjBJj/Mj0MjOJjPJj'Lj(LjJjJj1Lj2Lj3Lj4Lj5Lj6LjNjNj?Lj@LjLjLjILjJLjQLjRLjSLjTLjULjVLjGjGjKjKjQEjREjaLjbLjNjNjgLjhLj/Lj0LjmLjnLjqLjrLjsLjtLjWJjXJjIjIjLjLjLjLjLjLjLjLjLjLjLjLj!Oj"OjLjLjLjLjLjLjLjLj;MjLjwNjxNjyNjzNj{Nj|NjMOjNOjNjNjNjNjNjNjNjNjNjNjNjNj Kj KjNjNjNjNjNjNjSGjTGjGjGjNjNjKjKjsCjtCjAjAjNjNjNjNjKjKjiEjjEjNjNj#Lj$LjNjNjAj AjEjEjcLjdLjNjNjNjNjNjNjNjNjAjAjNjNjLjLjNjNjEOjFOjNjNjNjOjOjOj OjOjOjOjOjOjOjOjOj OjLjLj+Oj,OjGNjHNj/Oj0Oj_Nj`Nj5Oj6OjLjLjNjNjDjDj=Oj>OjNjNjCOjDOjGjGjIOjJOjOOjPOujSO}r,V(jUOjVOj}Oj~OjWOjXOj[Oj\OjeOjfOjgOjhOjkOjlOjoOjpOjyOjzOjOjOjOjOjYOjZOj_Oj`OjaOjbOjcOjdOjOjOjmOjnOjqOjrOjsOjtOjuOjvOjwOjxOj{Oj|Oj]Oj^OjOjOjOjOjOjOjiOjjOjOjOujO}r-V(jOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjSjSjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjRjRjQjQjOjOjSjSjOjOjPjPjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjPjQjOjOjOjOjOjOjOjOjOjOjOjOjRjRjOjOjOjOjOjOjOjOjOjOjOjOjOjPjPjPjPjPjPjPjPjPj Pj PjPjPj Pj Pj PjPjPjPjRjRjPjPj%Sj&SjIQjJQjSjSjPjPjPjPjPjPjPj Pj!Pj"Pj#Pj$PjSjSj)Pj*Pj-Pj.Pj/Pj0Pj1Pj2Pj3Pj4Pj5Pj6Pj7Pj8Pj9Pj:Pj;PjPjPjPjCPjDPjSjSjGPjHPjIPjJPjKPjLPjMPjNPjOPjPPjQPjRPjSPjTPjUPjVPjWPjXPjYPjZPj[Pj\PjPjPjTjTjaPjbPjSjSjePjfPjgPjhPjiPjjPjkPjlPjmPjnPjoPjpPj Qj QjqPjrPjsPjtPjuPjvPjwPjxPjyPjzPjTjTjSjSj}Pj~PjPjPjPjPjPjPjPjPjOjOjUjUjPjPjQjQj'Rj(RjPjPjPjPjPjPjPjPj?Pj@PjPjPjQjQjPjPj]Pj^PjTjTjPjPjPjPjPjPjPjPjTjTjcTjdTjPjPjPjPjOjOjSjSjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjRjRjSjSjPjPjPjPjPjPjQjQjqUjrUjSjSjPjPjQjQjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjTjTjPjPjPjPjPjPjSjSj{Pj|PjRjRjPjPjPjPjPjPjmRjnRjQjQj}Qj~QjQjQjQjQjQjQj Qj QjRjRj QjQjQjQjQjQjQjQjQjQjQjQjQjQjSjSjQjQjQj Qj!Qj"Qj#Qj$Qj%Qj&Qj'Qj(Qj)Qj*Qj+Qj,Qj-Qj.Qj/Qj0Qj1Qj2Qj3Qj4QjRjRj7Qj8Qj9Qj:QjTjTj;QjQj?Qj@QjAQjBQjCQjDQjEQjFQjGQjHQjIRjJRjUTjVTjRjRjKQjLQjMQjNQjQjQjQjQjQQjRQjSQjTQjUQjVQjPjPjWQjXQjYQjZQj[Qj\QjQjQj_Qj`QjaQjbQjcQjdQjPjPjeQjfQjgQjhQjiQjjQjkQjlQjmQjnQjoQjpQjqQjrQjsQjtQjuQjvQjwQjxQjyQjzQj{Qj|Qj{Rj|RjQjQjQjQjQjQjQjQjQjQjOjOjQjQjQjQjQjQjQjQjPjPjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjQjPjPjQjQjQjQjQjQjQjQjQjQjRjRjQjQjQjQjQjQjQjQjPjPjQjQjQjQjQjQjQjQjQjQj TjTjQjQjQjQjQjQj?Uj@UjOQjPQjOjOj]Qj^QjTjTjQjQjQjQjQjQj;RjRj?Rj@RjARjBRjRjRjERjFRjGRjHRjUSjVSjwTjxTjMRjNRjORjPRjQRjRRjSRjTRjPjPjURjVRjWRjXRjYRjZRj SjSj]Rj^Rj_Rj`RjaRjbRjcRjdRjTjTjgRjhRjSjSjkRjlRj UjUjoRjpRjqRjrRjsRjtRjuRjvRjwRjxRjyRjzRj}Rj~RjRjRjRjRjSjSjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRj9Tj:TjOjOjRjRjRjRjOjOjRjRj-Uj.UjRjRjSj SjRjRjPjPjRjRjPjPjRjRjRjRjRjRjATjBTjRjRjRjRjRjRjRjRjPjPjRjRjRjRjRjRjRjRjTjTjSjSjRjRjRjRjAPjBPjRjRjRjRjRjRj5Qj6QjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjQjQjRjRjRjRjRjRjRjRjRjRjRjRjRjSjSjSjSjSjSjSj Sj Sj Sj Sj[Rj\RjSjSjiRjjRjSjSjRjRjSjSjRjRjSjSjRjRj!Sj"Sj#Sj$SjTjTj'Sj(Sj)Sj*Sj+Sj,Sj-Sj.Sj/Sj0Sj1Sj2Sj3Sj4Sj5Sj6Sj7Sj8Sj1Uj2Uj9Sj:Sj;SjSj?Sj@SjASjBSjESjFSjGSjHSjISjJSjKSjLSjMSjNSjOSjPSjQSjRSj[Tj\TjIUjJUjWSjXSjYSjZSj[Sj\Sj]Sj^Sj_Sj`SjaSjbSjeSjfSjgSjhSjkSjlSjmSjnSjoSjpSjqSjrSjsSjtSjuSjvSjaTjbTjySjzSj{Sj|SjMUjNUjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjWUjXUjSjSjSjSjSjSjSjSjSjSjOUjPUjSjSjSjSjSjSjOjOjSjSj/Rj0RjOjOjSjSjSjSjPjPjSjSjSjSjTjTjSjSjSjSjSjSj%Pj&PjSjSjSjSjSjSjSjSjEPjFPjSSjTSjSjSjOjOjcPjdPjOjOjPjPjSjSjSjSjSjSjSjSjSjSjPjPjPjPjSjSjSjSjQjQjSjSjPjPjSjSjSjSjSjSj_Uj`UjuTjvTjSjSjSjSjSjSjaUjbUjTjTjTjTjTjTjTjTjcUjdUj Tj TjQjQjTjTjQjQjTjTjTjTj%Tj&TjTjTjTjTjOjOjTj Tj!Tj"Tj#Tj$Tj'Tj(TjTjTj)Tj*Tj+Tj,Tj-Tj.Tj/Tj0Tj1Tj2Tj5Tj6Tj7Tj8TjRjRj;TjTj?Tj@TjRjRjCTjDTjETjFTjGTjHTjITjJTjKTjLTjMTjNTjTjTjOTjPTjQTjRTjSTjTTjCSjDSjWTjXTjYTjZTjiSjjSj]Tj^Tj_Tj`TjwSjxSjSjSjeTjfTjgTjhTjiTjjTjkTjlTjmTjnTjoTjpTjqTjrTjsTjtTjSjSjSjSjyTjzTj{Tj|Tj}Tj~TjTjTjTjTjTjTjTjTjTjTjOjOjTjTjTjTjTjTjTjTjTjTjTjTjPjPjTjTjTjTjTjTjTjTjPjPjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjUjUjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjSjSjTjTjTjTj_Pj`PjTjTjTjTjTjTjPjPjPjPjPjPjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjTjUjcSjdSjUjUjUjUjkUjlUj Uj UjUjUjUjUjUjUj Uj UjUjUjUjUjUjUjUjUjUjUjRjRjUj Uj!Uj"Uj#Uj$Uj%Uj&Uj'Uj(Uj)Uj*Uj+Uj,UjOjOj/Uj0UjRjRj3Uj4Uj5Uj6Uj7Uj8Uj9Uj:Uj;UjUj+Pj,PjAUjBUjCUjDUjEUjFUjGUjHUj Rj RjKUjLUj}Sj~SjSjSjUjUjSUjTUjUUjVUjOjOjYUjZUj[Uj\Uj]Uj^UjSjSjSjTj Tj TjeUjfUj3Tj4TjiUjjUjmUjnUjoUjpUj'Pj(PjsUjtUjuUjvUjwUjxUjyUjzUj{Uj|Uj}Uj~UjUjUjUjUjRjRjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjQUjRUjUjUjUjUjUjUjUjUjUjUjPjPjUjUjUjUuusUmetadatar.V}r/V(h}h$}h-}h6}h?}hH}hQ}hZ}hc}hl}h}h}h}h}h}h}h}h}h}h}h}j}j }j}j%}j.}j7}j@}jI}jZ}jc}jt}j}}j}j}j}uUversionchangesr0V}Utoc_num_entriesr1V}r2V(hKh$Kh-Kh6Kh?KhHK%hQKhZKhcKhlKhKhKhKhKhKhKhKhKhKhKhKjKj K jKj%Kj.Kj7Kj@KjIKjZKjcKjtKj}KjKjKjKuUimagesr3Vh)r4Vh]Rr5VbUnumbered_toctreesr6Vh]Rr7VU found_docsr8Vh]r9V(hh$h-h6h?hHhQhZhchlhhhhhhhhhhhjj jj%j.j7j@jIjZjcjtj}jjjeRr:VU longtitlesr;V}rV(hh]r?V(X#examples/code/gas_station_refuel.pyr@VX$examples/code/gas_station_refuel.outrAVeRrBVj.h]rCV(Xexamples/code/machine_shop.outrDVXexamples/code/machine_shop.pyrEVeRrFVhlh]rGVU../simpy/util.pyrHVaRrIVhh]rJV(X&examples/code/process_communication.pyrKVX'examples/code/process_communication.outrLVeRrMVjIh]rNVU../simpy/resources/resource.pyrOVaRrPVhh]rQVU../simpy/resources/container.pyrRVaRrSVjZh]rTV(Xexamples/code/carwash.pyrUVXexamples/code/carwash.outrVVeRrWVhh]rXVU../simpy/core.pyrYVaRrZVjch]r[VU../simpy/resources/store.pyr\VaRr]Vjth]r^V(Xexamples/code/latency.pyr_VXexamples/code/latency.outr`VeRraVj}h]rbVU../simpy/resources/base.pyrcVaRrdVjh]reVU../simpy/resources/__init__.pyrfVaRrgVhh]rhV(Xexamples/code/bank_renege.outriVXexamples/code/bank_renege.pyrjVeRrkVjh]rlVU../simpy/__init__.pyrmVaRrnVh-h]roV(Xexamples/code/movie_renege.pyrpVXexamples/code/movie_renege.outrqVeRrrVhh]rsVU../simpy/monitoring.pyrtVaRruVhh]rvVU../simpy/events.pyrwVaRrxVjh]ryVU../simpy/rt.pyrzVaRr{VuUtoctree_includesr|V}r}V(j]r~VX"topical_guides/porting_from_simpy2rVah$]rV(Xsimpy_intro/installationrVXsimpy_intro/basic_conceptsrVXsimpy_intro/process_interactionrVXsimpy_intro/shared_resourcesrVXsimpy_intro/how_to_proceedrVej ]rV(Xexamples/bank_renegerVXexamples/carwashrVXexamples/machine_shoprVXexamples/movie_renegerVXexamples/gas_station_refuelrVXexamples/process_communicationrVXexamples/latencyrVej7]rV(Xapi_reference/simpyrVXapi_reference/simpy.corerVXapi_reference/simpy.eventsrVXapi_reference/simpy.monitoringrVXapi_reference/simpy.resourcesrVX"api_reference/simpy.resources.baserVX'api_reference/simpy.resources.containerrVX&api_reference/simpy.resources.resourcerVX#api_reference/simpy.resources.storerVXapi_reference/simpy.rtrVXapi_reference/simpy.utilrVeh6]rV(X about/historyrVXabout/acknowledgementsrVXabout/defense_of_designrVXabout/release_processrVX about/licenserVeh?]rV(XindexrVXsimpy_intro/indexrVXtopical_guides/indexrVXexamples/indexrVXapi_reference/indexrVX about/indexrVeuU temp_datarV}UtocsrV}rV(hcdocutils.nodes bullet_list rV)rV}rV(hUh}rV(h]h]h]h]h]uh]rVcdocutils.nodes list_item rV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVcsphinx.addnodes compact_paragraph rV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVcdocutils.nodes reference rV)rV}rV(hUh}rV(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jVh]rVhXHow to ProceedrVrV}rV(hh h!jVubah"U referencerVubah"Ucompact_paragraphrVubah"U list_itemrVubah"U bullet_listrVubh$jV)rV}rV(hUh}rV(h]h]h]h]h]uh]rVjV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rV(jV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVjV)rV}rV(hUh}rV(U anchornameUUrefurih$h]h]h]h]h]Uinternaluh!jVh]rVhXSimPy in 10 MinutesrVrV}rV(hh,h!jVubah"jVubah"jVubjV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVcsphinx.addnodes toctree rV)rV}rV(hUh}rV(UnumberedKUparenth$U titlesonlyUglobh]h]h]h]h]Uentries]rV(NjVrVNjVrVNjVrVNjVrVNjVrVeUhiddenUmaxdepthKU includefiles]rV(jVjVjVjVjVeU includehiddenuh!jVh]h"UtoctreerVubah"jVubeh"jVubah"jVubh-jV)rV}rV(hUh}rV(h]h]h]h]h]uh]rVjV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVjV)rV}rV(hUh}rV(h]h]h]h]h]uh!jVh]rVjV)rV}rV(hUh}rV(U anchornameUUrefurih-h]h]h]h]h]Uinternaluh!jVh]rVhX Movie RenegerVrV}rV(hh5h!jVubah"jVubah"jVubah"jVubah"jVubh6jV)rV}rV(hUh}rV(h]h]h]h]h]uh]rVjV)rV}rW(hUh}rW(h]h]h]h]h]uh!jVh]rW(jV)rW}rW(hUh}rW(h]h]h]h]h]uh!jVh]rWjV)rW}rW(hUh}r W(U anchornameUUrefurih6h]h]h]h]h]Uinternaluh!jWh]r WhX About SimPyr Wr W}r W(hh>h!jWubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jVh]rWjV)rW}rW(hUh}rW(UnumberedKUparenth6U titlesonlyUglobh]h]h]h]h]Uentries]rW(NjVrWNjVrWNjVrWNjVrWNjVrWeUhiddenUmaxdepthKU includefiles]rW(jVjVjVjVjVeU includehiddenuh!jWh]h"jVubah"jVubeh"jVubah"jVubh?jV)rW}rW(hUh}rW(h]h]h]h]h]uh]rWjV)r W}r!W(hUh}r"W(h]h]h]h]h]uh!jWh]r#W(jV)r$W}r%W(hUh}r&W(h]h]h]h]h]uh!j Wh]r'WjV)r(W}r)W(hUh}r*W(U anchornameUUrefurih?h]h]h]h]h]Uinternaluh!j$Wh]r+WhXDocumentation for SimPyr,Wr-W}r.W(hhGh!j(Wubah"jVubah"jVubjV)r/W}r0W(hUh}r1W(h]h]h]h]h]uh!j Wh]r2W(jV)r3W}r4W(hUh}r5W(UnumberedKUparenth?U titlesonlyUglobh]h]h]h]h]Uentries]r6W(X SimPy homejVr7WNjVr8WNjVr9WNjVr:WNjVr;WNjVrW}r?W(hUh}r@W(h]h]h]h]h]uh!j/Wh]rAWjV)rBW}rCW(hUh}rDW(h]h]h]h]h]uh!j>Wh]rEWjV)rFW}rGW(hUh}rHW(U anchornameU#indices-and-tablesUrefurih?h]h]h]h]h]Uinternaluh!jBWh]rIWhXIndices and tablesrJWrKW}rLW(hXIndices and tablesh!jFWubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubhHjV)rMW}rNW(hUh}rOW(h]h]h]h]h]uh]rPWjV)rQW}rRW(hUh}rSW(h]h]h]h]h]uh!jMWh]rTW(jV)rUW}rVW(hUh}rWW(h]h]h]h]h]uh!jQWh]rXWjV)rYW}rZW(hUh}r[W(U anchornameUUrefurihHh]h]h]h]h]Uinternaluh!jUWh]r\WhXSimPy History & Change Logr]Wr^W}r_W(hhPh!jYWubah"jVubah"jVubjV)r`W}raW(hUh}rbW(h]h]h]h]h]uh!jQWh]rcW(jV)rdW}reW(hUh}rfW(h]h]h]h]h]uh!j`Wh]rgWjV)rhW}riW(hUh}rjW(h]h]h]h]h]uh!jdWh]rkWjV)rlW}rmW(hUh}rnW(U anchornameU#id1UrefurihHh]h]h]h]h]Uinternaluh!jhWh]roWhX3.0 – 2013-10-11rpWrqW}rrW(hX3.0 – 2013-10-11h!jlWubah"jVubah"jVubah"jVubjV)rsW}rtW(hUh}ruW(h]h]h]h]h]uh!j`Wh]rvWjV)rwW}rxW(hUh}ryW(h]h]h]h]h]uh!jsWh]rzWjV)r{W}r|W(hUh}r}W(U anchornameU#id6UrefurihHh]h]h]h]h]Uinternaluh!jwWh]r~WhX2.3.1 – 2012-01-28rWrW}rW(hX2.3.1 – 2012-01-28h!j{Wubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#id7UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX2.3 – 2011-12-24rWrW}rW(hX2.3 – 2011-12-24h!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#id8UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX2.2 – 2011-09-27rWrW}rW(hX2.2 – 2011-09-27h!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#id9UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX2.1 – 2010-06-03rWrW}rW(hX2.1 – 2010-06-03h!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#id10UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX2.0.1 – 2009-04-06rWrW}rW(hX2.0.1 – 2009-04-06h!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rW(jV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#id11UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX2.0.0 – 2009-01-26rWrW}rW(hX2.0.0 – 2009-01-26h!jWubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rW(jV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU #api-changesUrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhX API changesrWrW}rW(hX API changesh!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#documentation-format-changesUrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhXDocumentation format changesrWrW}rW(hXDocumentation format changesh!jWubah"jVubah"jVubah"jVubeh"jVubeh"jVubjV)rW}rW(hUh}rW(h]h]h]h]h]uh!j`Wh]rWjV)rW}rW(hUh}rW(h]h]h]h]h]uh!jWh]rWjV)rW}rW(hUh}rW(U anchornameU#march-2008-version-1-9-1UrefurihHh]h]h]h]h]Uinternaluh!jWh]rWhXMarch 2008: Version 1.9.1rWrW}rW(hXMarch 2008: Version 1.9.1h!jWubah"jVubah"jVubah"jVubjV)rW}rW(hUh}rX(h]h]h]h]h]uh!j`Wh]rX(jV)rX}rX(hUh}rX(h]h]h]h]h]uh!jWh]rXjV)rX}rX(hUh}rX(U anchornameU#december-2007-version-1-9UrefurihHh]h]h]h]h]Uinternaluh!jXh]r XhXDecember 2007: Version 1.9r Xr X}r X(hXDecember 2007: Version 1.9h!jXubah"jVubah"jVubjV)r X}rX(hUh}rX(h]h]h]h]h]uh!jWh]rX(jV)rX}rX(hUh}rX(h]h]h]h]h]uh!j Xh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#major-changesUrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX Major changesrXrX}rX(hX Major changesh!jXubah"jVubah"jVubah"jVubjV)r X}r!X(hUh}r"X(h]h]h]h]h]uh!j Xh]r#XjV)r$X}r%X(hUh}r&X(h]h]h]h]h]uh!j Xh]r'XjV)r(X}r)X(hUh}r*X(U anchornameU #bug-fixesUrefurihHh]h]h]h]h]Uinternaluh!j$Xh]r+XhX Bug fixesr,Xr-X}r.X(hX Bug fixesh!j(Xubah"jVubah"jVubah"jVubjV)r/X}r0X(hUh}r1X(h]h]h]h]h]uh!j Xh]r2XjV)r3X}r4X(hUh}r5X(h]h]h]h]h]uh!j/Xh]r6XjV)r7X}r8X(hUh}r9X(U anchornameU #additionsUrefurihHh]h]h]h]h]Uinternaluh!j3Xh]r:XhX Additionsr;XrX}r?X(hUh}r@X(h]h]h]h]h]uh!j`Wh]rAX(jV)rBX}rCX(hUh}rDX(h]h]h]h]h]uh!j>Xh]rEXjV)rFX}rGX(hUh}rHX(U anchornameU#january-2007-version-1-8UrefurihHh]h]h]h]h]Uinternaluh!jBXh]rIXhXJanuary 2007: Version 1.8rJXrKX}rLX(hXJanuary 2007: Version 1.8h!jFXubah"jVubah"jVubjV)rMX}rNX(hUh}rOX(h]h]h]h]h]uh!j>Xh]rPX(jV)rQX}rRX(hUh}rSX(h]h]h]h]h]uh!jMXh]rTXjV)rUX}rVX(hUh}rWX(h]h]h]h]h]uh!jQXh]rXXjV)rYX}rZX(hUh}r[X(U anchornameU#id12UrefurihHh]h]h]h]h]Uinternaluh!jUXh]r\XhX Major Changesr]Xr^X}r_X(hX Major Changesh!jYXubah"jVubah"jVubah"jVubjV)r`X}raX(hUh}rbX(h]h]h]h]h]uh!jMXh]rcXjV)rdX}reX(hUh}rfX(h]h]h]h]h]uh!j`Xh]rgXjV)rhX}riX(hUh}rjX(U anchornameU#id13UrefurihHh]h]h]h]h]Uinternaluh!jdXh]rkXhX Bug fixesrlXrmX}rnX(hX Bug fixesh!jhXubah"jVubah"jVubah"jVubjV)roX}rpX(hUh}rqX(h]h]h]h]h]uh!jMXh]rrXjV)rsX}rtX(hUh}ruX(h]h]h]h]h]uh!joXh]rvXjV)rwX}rxX(hUh}ryX(U anchornameU#id14UrefurihHh]h]h]h]h]Uinternaluh!jsXh]rzXhX Additionsr{Xr|X}r}X(hX Additionsh!jwXubah"jVubah"jVubah"jVubeh"jVubeh"jVubjV)r~X}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j~Xh]rXjV)rX}rX(hUh}rX(U anchornameU#june-2006-version-1-7-1UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhXJune 2006: Version 1.7.1rXrX}rX(hXJune 2006: Version 1.7.1h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#february-2006-version-1-7UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhXFebruary 2006: Version 1.7rXrX}rX(hXFebruary 2006: Version 1.7h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#september-2005-version-1-6-1UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhXSeptember 2005: Version 1.6.1rXrX}rX(hXSeptember 2005: Version 1.6.1h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#june-2005-version-1-6UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX15 June 2005: Version 1.6rXrX}rX(hX15 June 2005: Version 1.6h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#february-2005-version-1-5-1UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX1 February 2005: Version 1.5.1rXrX}rX(hX1 February 2005: Version 1.5.1h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#december-2004-version-1-5UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX1 December 2004: Version 1.5rXrX}rX(hX1 December 2004: Version 1.5h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU #september-2004-version-1-5alphaUrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX#25 September 2004: Version 1.5alpharXrX}rX(hX#25 September 2004: Version 1.5alphah!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rX(U anchornameU#may-2004-version-1-4-2UrefurihHh]h]h]h]h]Uinternaluh!jXh]rXhX19 May 2004: Version 1.4.2rXrX}rX(hX19 May 2004: Version 1.4.2h!jXubah"jVubah"jVubah"jVubjV)rX}rX(hUh}rX(h]h]h]h]h]uh!j`Wh]rXjV)rX}rX(hUh}rX(h]h]h]h]h]uh!jXh]rXjV)rX}rX(hUh}rY(U anchornameU#february-2004-version-1-4-1UrefurihHh]h]h]h]h]Uinternaluh!jXh]rYhX29 February 2004: Version 1.4.1rYrY}rY(hX29 February 2004: Version 1.4.1h!jXubah"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!j`Wh]rYjV)r Y}r Y(hUh}r Y(h]h]h]h]h]uh!jYh]r YjV)r Y}rY(hUh}rY(U anchornameU#february-2004-version-1-4UrefurihHh]h]h]h]h]Uinternaluh!j Yh]rYhX1 February 2004: Version 1.4rYrY}rY(hX1 February 2004: Version 1.4h!j Yubah"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!j`Wh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU #december-2003-version-1-4-alphaUrefurihHh]h]h]h]h]Uinternaluh!jYh]rYhX#22 December 2003: Version 1.4 alphar Yr!Y}r"Y(hX#22 December 2003: Version 1.4 alphah!jYubah"jVubah"jVubah"jVubjV)r#Y}r$Y(hUh}r%Y(h]h]h]h]h]uh!j`Wh]r&YjV)r'Y}r(Y(hUh}r)Y(h]h]h]h]h]uh!j#Yh]r*YjV)r+Y}r,Y(hUh}r-Y(U anchornameU#june-2003-version-1-3UrefurihHh]h]h]h]h]Uinternaluh!j'Yh]r.YhX22 June 2003: Version 1.3r/Yr0Y}r1Y(hX22 June 2003: Version 1.3h!j+Yubah"jVubah"jVubah"jVubjV)r2Y}r3Y(hUh}r4Y(h]h]h]h]h]uh!j`Wh]r5YjV)r6Y}r7Y(hUh}r8Y(h]h]h]h]h]uh!j2Yh]r9YjV)r:Y}r;Y(hUh}rYr?Y}r@Y(hXJune 2003: Version 1.3 alphah!j:Yubah"jVubah"jVubah"jVubjV)rAY}rBY(hUh}rCY(h]h]h]h]h]uh!j`Wh]rDYjV)rEY}rFY(hUh}rGY(h]h]h]h]h]uh!jAYh]rHYjV)rIY}rJY(hUh}rKY(U anchornameU#april-2003-version-1-2UrefurihHh]h]h]h]h]Uinternaluh!jEYh]rLYhX29 April 2003: Version 1.2rMYrNY}rOY(hX29 April 2003: Version 1.2h!jIYubah"jVubah"jVubah"jVubjV)rPY}rQY(hUh}rRY(h]h]h]h]h]uh!j`Wh]rSYjV)rTY}rUY(hUh}rVY(h]h]h]h]h]uh!jPYh]rWYjV)rXY}rYY(hUh}rZY(U anchornameU #october-2002UrefurihHh]h]h]h]h]Uinternaluh!jTYh]r[YhX22 October 2002r\Yr]Y}r^Y(hX22 October 2002h!jXYubah"jVubah"jVubah"jVubjV)r_Y}r`Y(hUh}raY(h]h]h]h]h]uh!j`Wh]rbYjV)rcY}rdY(hUh}reY(h]h]h]h]h]uh!j_Yh]rfYjV)rgY}rhY(hUh}riY(U anchornameU#id15UrefurihHh]h]h]h]h]Uinternaluh!jcYh]rjYhX18 October 2002rkYrlY}rmY(hX18 October 2002h!jgYubah"jVubah"jVubah"jVubjV)rnY}roY(hUh}rpY(h]h]h]h]h]uh!j`Wh]rqYjV)rrY}rsY(hUh}rtY(h]h]h]h]h]uh!jnYh]ruYjV)rvY}rwY(hUh}rxY(U anchornameU#september-2002UrefurihHh]h]h]h]h]Uinternaluh!jrYh]ryYhX27 September 2002rzYr{Y}r|Y(hX27 September 2002h!jvYubah"jVubah"jVubah"jVubjV)r}Y}r~Y(hUh}rY(h]h]h]h]h]uh!j`Wh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!j}Yh]rYjV)rY}rY(hUh}rY(U anchornameU#id16UrefurihHh]h]h]h]h]Uinternaluh!jYh]rYhX17 September 2002rYrY}rY(hX17 September 2002h!jYubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubhQjV)rY}rY(hUh}rY(h]h]h]h]h]uh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(jV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameUUrefurihQh]h]h]h]h]Uinternaluh!jYh]rYhXDefense of DesignrYrY}rY(hhYh!jYubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(jV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU#original-design-of-simpy-1UrefurihQh]h]h]h]h]Uinternaluh!jYh]rYhXOriginal Design of SimPy 1rYrY}rY(hXOriginal Design of SimPy 1h!jYubah"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU#changes-in-simpy-2UrefurihQh]h]h]h]h]Uinternaluh!jYh]rYhXChanges in SimPy 2rYrY}rY(hXChanges in SimPy 2h!jYubah"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(jV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU!#changes-and-decisions-in-simpy-3UrefurihQh]h]h]h]h]Uinternaluh!jYh]rYhX Changes and Decisions in SimPy 3rYrY}rY(hX Changes and Decisions in SimPy 3h!jYubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rY(jV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU #no-more-sub-classing-of-processUrefurihQh]h]h]h]h]Uinternaluh!jYh]rY(hXNo More Sub-classing of rYrY}rY(hXNo More Sub-classing of h!jYubhq)rY}rY(hX ``Process``h}rY(h]h]h]h]h]uh!jYh]rYhXProcessrYrY}rY(hUh!jYubah"hzubeh"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(U anchornameU!#processes-live-in-an-environmentUrefurihQh]h]h]h]h]Uinternaluh!jYh]rYhX Processes Live in an EnvironmentrYrY}rY(hX Processes Live in an Environmenth!jYubah"jVubah"jVubah"jVubjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rYjV)rY}rY(hUh}rY(h]h]h]h]h]uh!jYh]rZjV)rZ}rZ(hUh}rZ(U anchornameU#stronger-focus-on-eventsUrefurihQh]h]h]h]h]Uinternaluh!jYh]rZhXStronger Focus on EventsrZrZ}rZ(hXStronger Focus on Eventsh!jZubah"jVubah"jVubah"jVubjV)rZ}r Z(hUh}r Z(h]h]h]h]h]uh!jYh]r ZjV)r Z}r Z(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameU1#creating-events-via-the-environment-or-resourcesUrefurihQh]h]h]h]h]Uinternaluh!j Zh]rZhX0Creating Events via the Environment or ResourcesrZrZ}rZ(hX0Creating Events via the Environment or Resourcesh!jZubah"jVubah"jVubah"jVubeh"jVubeh"jVubeh"jVubeh"jVubah"jVubhZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}r Z(hUh}r!Z(h]h]h]h]h]uh!jZh]r"ZjV)r#Z}r$Z(hUh}r%Z(U anchornameUUrefurihZh]h]h]h]h]Uinternaluh!jZh]r&ZhX SimPy homer'Zr(Z}r)Z(hhbh!j#Zubah"jVubah"jVubah"jVubah"jVubhcjV)r*Z}r+Z(hUh}r,Z(h]h]h]h]h]uh]r-ZjV)r.Z}r/Z(hUh}r0Z(h]h]h]h]h]uh!j*Zh]r1Z(jV)r2Z}r3Z(hUh}r4Z(h]h]h]h]h]uh!j.Zh]r5ZjV)r6Z}r7Z(hUh}r8Z(U anchornameUUrefurihch]h]h]h]h]Uinternaluh!j2Zh]r9ZhXPorting from SimPy 2 to 3r:Zr;Z}rZ(hUh}r?Z(h]h]h]h]h]uh!j.Zh]r@Z(jV)rAZ}rBZ(hUh}rCZ(h]h]h]h]h]uh!j=Zh]rDZjV)rEZ}rFZ(hUh}rGZ(h]h]h]h]h]uh!jAZh]rHZjV)rIZ}rJZ(hUh}rKZ(U anchornameU#importsUrefurihch]h]h]h]h]Uinternaluh!jEZh]rLZhXImportsrMZrNZ}rOZ(hXImportsrPZh!jIZubah"jVubah"jVubah"jVubjV)rQZ}rRZ(hUh}rSZ(h]h]h]h]h]uh!j=Zh]rTZjV)rUZ}rVZ(hUh}rWZ(h]h]h]h]h]uh!jQZh]rXZjV)rYZ}rZZ(hUh}r[Z(U anchornameU#the-simulation-classesUrefurihch]h]h]h]h]Uinternaluh!jUZh]r\Z(hXThe r]Zr^Z}r_Z(hXThe r`Zh!jYZubhq)raZ}rbZ(hX``Simulation*``rcZh}rdZ(h]h]h]h]h]uh!jYZh]reZhX Simulation*rfZrgZ}rhZ(hUh!jaZubah"hzubhX classesriZrjZ}rkZ(hX classesrlZh!jYZubeh"jVubah"jVubah"jVubjV)rmZ}rnZ(hUh}roZ(h]h]h]h]h]uh!j=Zh]rpZjV)rqZ}rrZ(hUh}rsZ(h]h]h]h]h]uh!jmZh]rtZjV)ruZ}rvZ(hUh}rwZ(U anchornameU#defining-a-processUrefurihch]h]h]h]h]Uinternaluh!jqZh]rxZhXDefining a ProcessryZrzZ}r{Z(hXDefining a Processr|Zh!juZubah"jVubah"jVubah"jVubjV)r}Z}r~Z(hUh}rZ(h]h]h]h]h]uh!j=Zh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!j}Zh]rZjV)rZ}rZ(hUh}rZ(U anchornameU#simpy-keywords-hold-etcUrefurihch]h]h]h]h]Uinternaluh!jZh]rZ(hXSimPy Keywords (rZrZ}rZ(hXSimPy Keywords (rZh!jZubhq)rZ}rZ(hX``hold``rZh}rZ(h]h]h]h]h]uh!jZh]rZhXholdrZrZ}rZ(hUh!jZubah"hzubhX etc.)rZrZ}rZ(hX etc.)rZh!jZubeh"jVubah"jVubah"jVubjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!j=Zh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameU #interruptsUrefurihch]h]h]h]h]Uinternaluh!jZh]rZhX InterruptsrZrZ}rZ(hX InterruptsrZh!jZubah"jVubah"jVubah"jVubjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!j=Zh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameU #conclusionUrefurihch]h]h]h]h]Uinternaluh!jZh]rZhX ConclusionrZrZ}rZ(hX ConclusionrZh!jZubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubhljV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameUUrefurihlh]h]h]h]h]Uinternaluh!jZh]rZ(hq)rZ}rZ(hhth}rZ(h]h]h]h]h]uh!jZh]rZhX simpy.utilrZrZ}rZ(hUh!jZubah"hzubhX --- Utility functions for SimPyrZrZ}rZ(hh~h!jZubeh"jVubah"jVubah"jVubah"jVubhjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXProcess CommunicationrZrZ}rZ(hhh!jZubah"jVubah"jVubah"jVubah"jVubhjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]rZjV)rZ}rZ(hUh}rZ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jZh]rZhXLicenserZrZ}rZ(hhh!jZubah"jVubah"jVubah"jVubah"jVubhjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh]rZjV)rZ}rZ(hUh}rZ(h]h]h]h]h]uh!jZh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!jZh]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[hXAcknowledgmentsr [r [}r [(hhh!j[ubah"jVubah"jVubah"jVubah"jVubhjV)r [}r [(hUh}r[(h]h]h]h]h]uh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j [h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]rX Bank Reneger[r[}r[(hhh!j[ubah"jVubah"jVubah"jVubah"jVubhjV)r[}r [(hUh}r![(h]h]h]h]h]uh]r"[jV)r#[}r$[(hUh}r%[(h]h]h]h]h]uh!j[h]r&[(jV)r'[}r([(hUh}r)[(h]h]h]h]h]uh!j#[h]r*[jV)r+[}r,[(hUh}r-[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j'[h]r.[hXBasic Conceptsr/[r0[}r1[(hhh!j+[ubah"jVubah"jVubjV)r2[}r3[(hUh}r4[(h]h]h]h]h]uh!j#[h]r5[(jV)r6[}r7[(hUh}r8[(h]h]h]h]h]uh!j2[h]r9[jV)r:[}r;[(hUh}r<[(h]h]h]h]h]uh!j6[h]r=[jV)r>[}r?[(hUh}r@[(U anchornameU#our-first-processUrefurihh]h]h]h]h]Uinternaluh!j:[h]rA[hXOur First ProcessrB[rC[}rD[(hXOur First ProcessrE[h!j>[ubah"jVubah"jVubah"jVubjV)rF[}rG[(hUh}rH[(h]h]h]h]h]uh!j2[h]rI[jV)rJ[}rK[(hUh}rL[(h]h]h]h]h]uh!jF[h]rM[jV)rN[}rO[(hUh}rP[(U anchornameU #what-s-nextUrefurihh]h]h]h]h]Uinternaluh!jJ[h]rQ[hX What's Next?rR[rS[}rT[(hX What's Next?rU[h!jN[ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubhjV)rV[}rW[(hUh}rX[(h]h]h]h]h]uh]rY[jV)rZ[}r[[(hUh}r\[(h]h]h]h]h]uh!jV[h]r][jV)r^[}r_[(hUh}r`[(h]h]h]h]h]uh!jZ[h]ra[jV)rb[}rc[(hUh}rd[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j^[h]re[(hq)rf[}rg[(hhh}rh[(h]h]h]h]h]uh!jb[h]ri[hXsimpy.monitoringrj[rk[}rl[(hUh!jf[ubah"hzubhX --- Monitor SimPy simulationsrm[rn[}ro[(hhh!jb[ubeh"jVubah"jVubah"jVubah"jVubhjV)rp[}rq[(hUh}rr[(h]h]h]h]h]uh]rs[jV)rt[}ru[(hUh}rv[(h]h]h]h]h]uh!jp[h]rw[jV)rx[}ry[(hUh}rz[(h]h]h]h]h]uh!jt[h]r{[jV)r|[}r}[(hUh}r~[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!jx[h]r[(hq)r[}r[(hhh}r[(h]h]h]h]h]uh!j|[h]r[hX simpy.eventsr[r[}r[(hUh!j[ubah"hzubhX --- Core event typesr[r[}r[(hhh!j|[ubeh"jVubah"jVubah"jVubah"jVubhjV)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[(jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[hXShared Resourcesr[r[}r[(hhh!j[ubah"jVubah"jVubjV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[(jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameU#basic-resource-usageUrefurihh]h]h]h]h]Uinternaluh!j[h]r[hXBasic Resource Usager[r[}r[(hXBasic Resource Usageh!j[ubah"jVubah"jVubah"jVubjV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameU #what-s-nextUrefurihh]h]h]h]h]Uinternaluh!j[h]r[hX What's Nextr[r[}r[(hX What's Nexth!j[ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubhjV)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[hXGas Station Refuelingr[r[}r[(hhh!j[ubah"jVubah"jVubah"jVubah"jVubhjV)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[(hq)r[}r[(hhh}r[(h]h]h]h]h]uh!j[h]r[hXsimpy.resources.containerr[r[}r[(hUh!j[ubah"hzubhX --- Container type resourcesr[r[}r[(hhh!j[ubeh"jVubah"jVubah"jVubah"jVubhjV)r[}r[(hUh}r[(h]h]h]h]h]uh]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(h]h]h]h]h]uh!j[h]r[jV)r[}r[(hUh}r[(U anchornameUUrefurihh]h]h]h]h]Uinternaluh!j[h]r[(hq)r[}r[(hhh}r[(h]h]h]h]h]uh!j[h]r[hX simpy.corer\r\}r\(hUh!j[ubah"hzubhX --- SimPy's core componentsr\r\}r\(hjh!j[ubeh"jVubah"jVubah"jVubah"jVubjjV)r\}r\(hUh}r\(h]h]h]h]h]uh]r \jV)r \}r \(hUh}r \(h]h]h]h]h]uh!j\h]r \(jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j \h]r\jV)r\}r\(hUh}r\(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j\h]r\hXTopical Guidesr\r\}r\(hj h!j\ubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j \h]r\jV)r\}r\(hUh}r\(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]r \NjVr!\aUhiddenUmaxdepthJU includefiles]r"\jVaU includehiddenuh!j\h]h"jVubah"jVubeh"jVubah"jVubj jV)r#\}r$\(hUh}r%\(h]h]h]h]h]uh]r&\jV)r'\}r(\(hUh}r)\(h]h]h]h]h]uh!j#\h]r*\(jV)r+\}r,\(hUh}r-\(h]h]h]h]h]uh!j'\h]r.\jV)r/\}r0\(hUh}r1\(U anchornameUUrefurij h]h]h]h]h]Uinternaluh!j+\h]r2\hXExamplesr3\r4\}r5\(hjh!j/\ubah"jVubah"jVubjV)r6\}r7\(hUh}r8\(h]h]h]h]h]uh!j'\h]r9\(jV)r:\}r;\(hUh}r<\(h]h]h]h]h]uh!j6\h]r=\jV)r>\}r?\(hUh}r@\(h]h]h]h]h]uh!j:\h]rA\jV)rB\}rC\(hUh}rD\(U anchornameU#condition-eventsUrefurij h]h]h]h]h]Uinternaluh!j>\h]rE\hXCondition eventsrF\rG\}rH\(hXCondition eventsrI\h!jB\ubah"jVubah"jVubah"jVubjV)rJ\}rK\(hUh}rL\(h]h]h]h]h]uh!j6\h]rM\jV)rN\}rO\(hUh}rP\(h]h]h]h]h]uh!jJ\h]rQ\jV)rR\}rS\(hUh}rT\(U anchornameU #interruptsUrefurij h]h]h]h]h]Uinternaluh!jN\h]rU\hX InterruptsrV\rW\}rX\(hX InterruptsrY\h!jR\ubah"jVubah"jVubah"jVubjV)rZ\}r[\(hUh}r\\(h]h]h]h]h]uh!j6\h]r]\jV)r^\}r_\(hUh}r`\(h]h]h]h]h]uh!jZ\h]ra\jV)rb\}rc\(hUh}rd\(U anchornameU #monitoringUrefurij h]h]h]h]h]Uinternaluh!j^\h]re\hX Monitoringrf\rg\}rh\(hX Monitoringri\h!jb\ubah"jVubah"jVubah"jVubjV)rj\}rk\(hUh}rl\(h]h]h]h]h]uh!j6\h]rm\jV)rn\}ro\(hUh}rp\(h]h]h]h]h]uh!jj\h]rq\jV)rr\}rs\(hUh}rt\(U anchornameU#resources-containerUrefurij h]h]h]h]h]Uinternaluh!jn\h]ru\hXResources: Containerrv\rw\}rx\(hXResources: Containerry\h!jr\ubah"jVubah"jVubah"jVubjV)rz\}r{\(hUh}r|\(h]h]h]h]h]uh!j6\h]r}\jV)r~\}r\(hUh}r\(h]h]h]h]h]uh!jz\h]r\jV)r\}r\(hUh}r\(U anchornameU#resources-preemptive-resourceUrefurij h]h]h]h]h]Uinternaluh!j~\h]r\hXResources: Preemptive Resourcer\r\}r\(hXResources: Preemptive Resourcer\h!j\ubah"jVubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j6\h]r\jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameU#resources-resourceUrefurij h]h]h]h]h]Uinternaluh!j\h]r\hXResources: Resourcer\r\}r\(hXResources: Resourcer\h!j\ubah"jVubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j6\h]r\jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameU#resources-storeUrefurij h]h]h]h]h]Uinternaluh!j\h]r\hXResources: Storer\r\}r\(hXResources: Storer\h!j\ubah"jVubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j6\h]r\jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameU#shared-eventsUrefurij h]h]h]h]h]Uinternaluh!j\h]r\hX Shared eventsr\r\}r\(hX Shared eventsr\h!j\ubah"jVubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j6\h]r\jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameU#waiting-for-other-processesUrefurij h]h]h]h]h]Uinternaluh!j\h]r\hXWaiting for other processesr\r\}r\(hXWaiting for other processesr\h!j\ubah"jVubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j6\h]r\(jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameU #all-examplesUrefurij h]h]h]h]h]Uinternaluh!j\h]r\hX All examplesr\r\}r\(hX All examplesr\h!j\ubah"jVubah"jVubjV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(UnumberedKUparentj U titlesonlyUglobh]h]h]h]h]Uentries]r\(NjVr\NjVr\NjVr\NjVr\NjVr\NjVr\NjVr\eUhiddenUmaxdepthJU includefiles]r\(jVjVjVjVjVjVjVeU includehiddenuh!j\h]h"jVubah"jVubeh"jVubeh"jVubeh"jVubah"jVubjjV)r\}r\(hUh}r\(h]h]h]h]h]uh]r\jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\(jV)r\}r\(hUh}r\(h]h]h]h]h]uh!j\h]r\jV)r\}r\(hUh}r\(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j\h]r\(hq)r\}r\(hjh}r\(h]h]h]h]h]uh!j\h]r\hXsimpyr\r\}r](hUh!j\ubah"hzubhX --- The end user APIr]r]}r](hj$h!j\ubeh"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j\h]r](jV)r]}r ](hUh}r ](h]h]h]h]h]uh!j]h]r ]jV)r ]}r ](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameU#core-classes-and-functionsUrefurijh]h]h]h]h]Uinternaluh!j ]h]r]hXCore classes and functionsr]r]}r](hXCore classes and functionsh!j]ubah"jVubah"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r ](hUh}r!](U anchornameU #resourcesUrefurijh]h]h]h]h]Uinternaluh!j]h]r"]hX Resourcesr#]r$]}r%](hX Resourcesh!j]ubah"jVubah"jVubah"jVubjV)r&]}r'](hUh}r(](h]h]h]h]h]uh!j]h]r)]jV)r*]}r+](hUh}r,](h]h]h]h]h]uh!j&]h]r-]jV)r.]}r/](hUh}r0](U anchornameU #monitoringUrefurijh]h]h]h]h]Uinternaluh!j*]h]r1]hX Monitoringr2]r3]}r4](hX Monitoringh!j.]ubah"jVubah"jVubah"jVubjV)r5]}r6](hUh}r7](h]h]h]h]h]uh!j]h]r8]jV)r9]}r:](hUh}r;](h]h]h]h]h]uh!j5]h]r<]jV)r=]}r>](hUh}r?](U anchornameU#otherUrefurijh]h]h]h]h]Uinternaluh!j9]h]r@]hXOtherrA]rB]}rC](hXOtherh!j=]ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubj%jV)rD]}rE](hUh}rF](h]h]h]h]h]uh]rG]jV)rH]}rI](hUh}rJ](h]h]h]h]h]uh!jD]h]rK](jV)rL]}rM](hUh}rN](h]h]h]h]h]uh!jH]h]rO]jV)rP]}rQ](hUh}rR](U anchornameUUrefurij%h]h]h]h]h]Uinternaluh!jL]h]rS]hX InstallationrT]rU]}rV](hj-h!jP]ubah"jVubah"jVubjV)rW]}rX](hUh}rY](h]h]h]h]h]uh!jH]h]rZ](jV)r[]}r\](hUh}r]](h]h]h]h]h]uh!jW]h]r^]jV)r_]}r`](hUh}ra](h]h]h]h]h]uh!j[]h]rb]jV)rc]}rd](hUh}re](U anchornameU#upgrading-from-simpy-2Urefurij%h]h]h]h]h]Uinternaluh!j_]h]rf]hXUpgrading from SimPy 2rg]rh]}ri](hXUpgrading from SimPy 2h!jc]ubah"jVubah"jVubah"jVubjV)rj]}rk](hUh}rl](h]h]h]h]h]uh!jW]h]rm]jV)rn]}ro](hUh}rp](h]h]h]h]h]uh!jj]h]rq]jV)rr]}rs](hUh}rt](U anchornameU #what-s-nextUrefurij%h]h]h]h]h]Uinternaluh!jn]h]ru]hX What's Nextrv]rw]}rx](hX What's Nexth!jr]ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubj.jV)ry]}rz](hUh}r{](h]h]h]h]h]uh]r|]jV)r}]}r~](hUh}r](h]h]h]h]h]uh!jy]h]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j}]h]r]jV)r]}r](hUh}r](U anchornameUUrefurij.h]h]h]h]h]Uinternaluh!j]h]r]hX Machine Shopr]r]}r](hj6h!j]ubah"jVubah"jVubah"jVubah"jVubj7jV)r]}r](hUh}r](h]h]h]h]h]uh]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameUUrefurij7h]h]h]h]h]Uinternaluh!j]h]r]hX API Referencer]r]}r](hj?h!j]ubah"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](UnumberedKUparentj7U titlesonlyUglobh]h]h]h]h]Uentries]r](NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]NjVr]eUhiddenUmaxdepthJU includefiles]r](jVjVjVjVjVjVjVjVjVjVjVeU includehiddenuh!j]h]h"jVubah"jVubeh"jVubah"jVubj@jV)r]}r](hUh}r](h]h]h]h]h]uh]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameUUrefurij@h]h]h]h]h]Uinternaluh!j]h]r]hXRelease Processr]r]}r](hjHh!j]ubah"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r](jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameU #preparationsUrefurij@h]h]h]h]h]Uinternaluh!j]h]r]hX Preparationsr]r]}r](hX Preparationsh!j]ubah"jVubah"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameU#build-and-releaseUrefurij@h]h]h]h]h]Uinternaluh!j]h]r]hXBuild and releaser]r]}r](hXBuild and releaseh!j]ubah"jVubah"jVubah"jVubjV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r](hUh}r](U anchornameU #post-releaseUrefurij@h]h]h]h]h]Uinternaluh!j]h]r]hX Post releaser]r]}r](hX Post releaseh!j]ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubjIjV)r]}r](hUh}r](h]h]h]h]h]uh]r]jV)r]}r](hUh}r](h]h]h]h]h]uh!j]h]r]jV)r]}r^(hUh}r^(h]h]h]h]h]uh!j]h]r^jV)r^}r^(hUh}r^(U anchornameUUrefurijIh]h]h]h]h]Uinternaluh!j]h]r^(hq)r^}r^(hjPh}r ^(h]h]h]h]h]uh!j^h]r ^hXsimpy.resources.resourcer ^r ^}r ^(hUh!j^ubah"hzubhX -- Resource type resourcesr^r^}r^(hjYh!j^ubeh"jVubah"jVubah"jVubah"jVubjZjV)r^}r^(hUh}r^(h]h]h]h]h]uh]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameUUrefurijZh]h]h]h]h]Uinternaluh!j^h]r ^hXCarwashr!^r"^}r#^(hjbh!j^ubah"jVubah"jVubah"jVubah"jVubjcjV)r$^}r%^(hUh}r&^(h]h]h]h]h]uh]r'^jV)r(^}r)^(hUh}r*^(h]h]h]h]h]uh!j$^h]r+^jV)r,^}r-^(hUh}r.^(h]h]h]h]h]uh!j(^h]r/^jV)r0^}r1^(hUh}r2^(U anchornameUUrefurijch]h]h]h]h]Uinternaluh!j,^h]r3^(hq)r4^}r5^(hjjh}r6^(h]h]h]h]h]uh!j0^h]r7^hXsimpy.resources.storer8^r9^}r:^(hUh!j4^ubah"hzubhX --- Store type resourcesr;^r<^}r=^(hjsh!j0^ubeh"jVubah"jVubah"jVubah"jVubjtjV)r>^}r?^(hUh}r@^(h]h]h]h]h]uh]rA^jV)rB^}rC^(hUh}rD^(h]h]h]h]h]uh!j>^h]rE^jV)rF^}rG^(hUh}rH^(h]h]h]h]h]uh!jB^h]rI^jV)rJ^}rK^(hUh}rL^(U anchornameUUrefurijth]h]h]h]h]Uinternaluh!jF^h]rM^hX Event LatencyrN^rO^}rP^(hj|h!jJ^ubah"jVubah"jVubah"jVubah"jVubj}jV)rQ^}rR^(hUh}rS^(h]h]h]h]h]uh]rT^jV)rU^}rV^(hUh}rW^(h]h]h]h]h]uh!jQ^h]rX^jV)rY^}rZ^(hUh}r[^(h]h]h]h]h]uh!jU^h]r\^jV)r]^}r^^(hUh}r_^(U anchornameUUrefurij}h]h]h]h]h]Uinternaluh!jY^h]r`^(hq)ra^}rb^(hjh}rc^(h]h]h]h]h]uh!j]^h]rd^hXsimpy.resources.basere^rf^}rg^(hUh!ja^ubah"hzubhX# --- Base classes for all resourcesrh^ri^}rj^(hjh!j]^ubeh"jVubah"jVubah"jVubah"jVubjjV)rk^}rl^(hUh}rm^(h]h]h]h]h]uh]rn^jV)ro^}rp^(hUh}rq^(h]h]h]h]h]uh!jk^h]rr^jV)rs^}rt^(hUh}ru^(h]h]h]h]h]uh!jo^h]rv^jV)rw^}rx^(hUh}ry^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!js^h]rz^(hq)r{^}r|^(hjh}r}^(h]h]h]h]h]uh!jw^h]r~^hXsimpy.resourcesr^r^}r^(hUh!j{^ubah"hzubhX$ --- SimPy's built-in resource typesr^r^}r^(hjh!jw^ubeh"jVubah"jVubah"jVubah"jVubjjV)r^}r^(hUh}r^(h]h]h]h]h]uh]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^(jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXProcess Interactionr^r^}r^(hjh!j^ubah"jVubah"jVubjV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^(jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameU#waiting-for-a-processUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXWaiting for a Processr^r^}r^(hXWaiting for a Processh!j^ubah"jVubah"jVubah"jVubjV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameU#interrupting-another-processUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hXInterrupting Another Processr^r^}r^(hXInterrupting Another Processh!j^ubah"jVubah"jVubah"jVubjV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameU #what-s-nextUrefurijh]h]h]h]h]Uinternaluh!j^h]r^hX What's Nextr^r^}r^(hX What's Nexth!j^ubah"jVubah"jVubah"jVubeh"jVubeh"jVubah"jVubjjV)r^}r^(hUh}r^(h]h]h]h]h]uh]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(h]h]h]h]h]uh!j^h]r^jV)r^}r^(hUh}r^(U anchornameUUrefurijh]h]h]h]h]Uinternaluh!j^h]r^(hq)r^}r^(hjh}r^(h]h]h]h]h]uh!j^h]r^hXsimpy.rtr^r^}r^(hUh!j^ubah"hzubhX --- Real-time simulationsr^r^}r^(hjh!j^ubeh"jVubah"jVubah"jVubah"jVubuU indexentriesr^}r^(h]h$]h-]h6]h?]hH]hQ]hZ]hc]hl]r^((Usingler^Xsimpy.util (module)Xmodule-simpy.utilUtr^(j^X&start_delayed() (in module simpy.util)jmUtr^(j^X%subscribe_at() (in module simpy.util)j>Utr^eh]h]h]h]h]h]r^(j^Xsimpy.monitoring (module)Xmodule-simpy.monitoringUtr^ah]r^((j^Xsimpy.events (module)Xmodule-simpy.eventsUtr^(j^X PENDING (in module simpy.events)jUtr^(j^XURGENT (in module simpy.events)j3Utr^(j^XNORMAL (in module simpy.events)j$Utr^(j^XEvent (class in simpy.events)j'Utr^(j^X"env (simpy.events.Event attribute)jUtr^(j^X(callbacks (simpy.events.Event attribute)jUtr^(j^X(triggered (simpy.events.Event attribute)jeUtr^(j^X(processed (simpy.events.Event attribute)jUtr^(j^X$value (simpy.events.Event attribute)jUtr^(j^X%trigger() (simpy.events.Event method)jUtr^(j^X%succeed() (simpy.events.Event method)jUtr^(j^X"fail() (simpy.events.Event method)jUtr^(j^XTimeout (class in simpy.events)jNUtr^(j^X"Initialize (class in simpy.events)jZUtr^(j^XProcess (class in simpy.events)jUtr^(j^X'target (simpy.events.Process attribute)jUtr^(j^X)is_alive (simpy.events.Process attribute)j:Utr^(j^X)interrupt() (simpy.events.Process method)j6Utr^(j^X!Condition (class in simpy.events)jUtr_(j^X3all_events() (simpy.events.Condition static method)jUtr_(j^X3any_events() (simpy.events.Condition static method)j=Utr_(j^XAllOf (class in simpy.events)jUtr_(j^XAnyOf (class in simpy.events)jUtr_(j^X InterruptjUtr_(j^X(cause (simpy.events.Interrupt attribute)jUtr_eh]h]h]r_((j^X"simpy.resources.container (module)X module-simpy.resources.containerUtr_(j^X.Container (class in simpy.resources.container)jsUtr _(j^X8capacity (simpy.resources.container.Container attribute)j Utr _(j^X5level (simpy.resources.container.Container attribute)jUtr _(j^X3put (simpy.resources.container.Container attribute)jUtr _(j^X3get (simpy.resources.container.Container attribute)jCUtr _(j^X1ContainerPut (class in simpy.resources.container)jUtr_(j^X9amount (simpy.resources.container.ContainerPut attribute)j-Utr_(j^X1ContainerGet (class in simpy.resources.container)jhUtr_(j^X9amount (simpy.resources.container.ContainerGet attribute)j0Utr_eh]r_((j^Xsimpy.core (module)Xmodule-simpy.coreUtr_(j^X%BaseEnvironment (class in simpy.core)jFUtr_(j^X*now (simpy.core.BaseEnvironment attribute)jUtr_(j^X5active_process (simpy.core.BaseEnvironment attribute)jUtr_(j^X.schedule() (simpy.core.BaseEnvironment method)jAUtr_(j^X*step() (simpy.core.BaseEnvironment method)jkUtr_(j^X)run() (simpy.core.BaseEnvironment method)j]Utr_(j^X!Environment (class in simpy.core)jUtr_(j^X&now (simpy.core.Environment attribute)jUtr_(j^X1active_process (simpy.core.Environment attribute)jUtr_(j^X)process() (simpy.core.Environment method)j Utr_(j^X)timeout() (simpy.core.Environment method)jfUtr_(j^X'event() (simpy.core.Environment method)jUtr_(j^X(all_of() (simpy.core.Environment method)jUtr _(j^X(any_of() (simpy.core.Environment method)j(Utr!_(j^X&exit() (simpy.core.Environment method)jTUtr"_(j^X*schedule() (simpy.core.Environment method)jUtr#_(j^X&peek() (simpy.core.Environment method)j|Utr$_(j^X&step() (simpy.core.Environment method)jJUtr%_(j^X%run() (simpy.core.Environment method)jLUtr&_(j^X BoundClass (class in simpy.core)j8Utr'_(j^X2bind_early() (simpy.core.BoundClass static method)j"Utr(_(j^X#EmptySchedule (class in simpy.core)jqUtr)_(j^XInfinity (in module simpy.core)jVUtr*_ej]j ]j]r+_((j^Xsimpy (module)X module-simpyUtr,_(j^Xtest() (in module simpy)jSUtr-_ej%]j.]j7]j@]jI]r._((j^X!simpy.resources.resource (module)Xmodule-simpy.resources.resourceUtr/_(j^X,Resource (class in simpy.resources.resource)jUtr0_(j^X3users (simpy.resources.resource.Resource attribute)j.Utr1_(j^X3queue (simpy.resources.resource.Resource attribute)j1Utr2_(j^X6capacity (simpy.resources.resource.Resource attribute)jQUtr3_(j^X3count (simpy.resources.resource.Resource attribute)j;Utr4_(j^X5request (simpy.resources.resource.Resource attribute)jUtr5_(j^X5release (simpy.resources.resource.Resource attribute)joUtr6_(j^X4PriorityResource (class in simpy.resources.resource)jOUtr7_(j^X>PutQueue (simpy.resources.resource.PriorityResource attribute)jUtr8_(j^X>GetQueue (simpy.resources.resource.PriorityResource attribute)jUtr9_(j^X=request (simpy.resources.resource.PriorityResource attribute)jaUtr:_(j^X6PreemptiveResource (class in simpy.resources.resource)jXUtr;_(j^X-Preempted (class in simpy.resources.resource)j%Utr<_(j^X1by (simpy.resources.resource.Preempted attribute)jUtr=_(j^X:usage_since (simpy.resources.resource.Preempted attribute)jUtr>_(j^X+Request (class in simpy.resources.resource)jUtr?_(j^X+Release (class in simpy.resources.resource)jUtr@_(j^X4request (simpy.resources.resource.Release attribute)jUtrA_(j^X3PriorityRequest (class in simpy.resources.resource)jUtrB_(j^X=priority (simpy.resources.resource.PriorityRequest attribute)jzUtrC_(j^X<preempt (simpy.resources.resource.PriorityRequest attribute)jUtrD_(j^X9time (simpy.resources.resource.PriorityRequest attribute)jUtrE_(j^X8key (simpy.resources.resource.PriorityRequest attribute)j_UtrF_(j^X/SortedQueue (class in simpy.resources.resource)jUtrG_(j^X7maxlen (simpy.resources.resource.SortedQueue attribute)jDUtrH_(j^X6append() (simpy.resources.resource.SortedQueue method)jUtrI_ejZ]jc]rJ_((j^Xsimpy.resources.store (module)Xmodule-simpy.resources.storeUtrK_(j^X&Store (class in simpy.resources.store)jUtrL_(j^X-items (simpy.resources.store.Store attribute)jUtrM_(j^X0capacity (simpy.resources.store.Store attribute)jUtrN_(j^X+put (simpy.resources.store.Store attribute)jHUtrO_(j^X+get (simpy.resources.store.Store attribute)jUtrP_(j^X,FilterStore (class in simpy.resources.store)j+UtrQ_(j^X6GetQueue (simpy.resources.store.FilterStore attribute)jUtrR_(j^X1get (simpy.resources.store.FilterStore attribute)jUtrS_(j^X)StorePut (class in simpy.resources.store)j4UtrT_(j^X/item (simpy.resources.store.StorePut attribute)j UtrU_(j^X)StoreGet (class in simpy.resources.store)jUtrV_(j^X/FilterStoreGet (class in simpy.resources.store)jUtrW_(j^X7filter (simpy.resources.store.FilterStoreGet attribute)jiUtrX_(j^X,FilterQueue (class in simpy.resources.store)jxUtrY_(j^X8__getitem__() (simpy.resources.store.FilterQueue method)jvUtrZ_(j^X5__bool__() (simpy.resources.store.FilterQueue method)jUtr[_(j^X8__nonzero__() (simpy.resources.store.FilterQueue method)jUtr\_ejt]j}]r]_((j^Xsimpy.resources.base (module)Xmodule-simpy.resources.baseUtr^_(j^X,BaseResource (class in simpy.resources.base)j\Utr__(j^X6PutQueue (simpy.resources.base.BaseResource attribute)jUtr`_(j^X6GetQueue (simpy.resources.base.BaseResource attribute)jUtra_(j^X7put_queue (simpy.resources.base.BaseResource attribute)j7Utrb_(j^X7get_queue (simpy.resources.base.BaseResource attribute)jcUtrc_(j^X1put (simpy.resources.base.BaseResource attribute)jUtrd_(j^X1get (simpy.resources.base.BaseResource attribute)jUtre_(j^X4_do_put() (simpy.resources.base.BaseResource method)jUtrf_(j^X9_trigger_put() (simpy.resources.base.BaseResource method)jUtrg_(j^X4_do_get() (simpy.resources.base.BaseResource method)jUtrh_(j^X9_trigger_get() (simpy.resources.base.BaseResource method)jUtri_(j^X#Put (class in simpy.resources.base)jdUtrj_(j^X*cancel() (simpy.resources.base.Put method)jUtrk_(j^X#Get (class in simpy.resources.base)j Utrl_(j^X*cancel() (simpy.resources.base.Get method)juUtrm_ej]rn_(j^Xsimpy.resources (module)Xmodule-simpy.resourcesUtro_aj]j]rp_((j^Xsimpy.rt (module)Xmodule-simpy.rtUtrq_(j^X'RealtimeEnvironment (class in simpy.rt)jUtrr_(j^X/factor (simpy.rt.RealtimeEnvironment attribute)jUtrs_(j^X/strict (simpy.rt.RealtimeEnvironment attribute)j~Utrt_(j^X,step() (simpy.rt.RealtimeEnvironment method)jUtru_euUall_docsrv_}rw_(hGALi{h$GALh-GALBh6GALËh?GALYhHGAKhQGAKթehZGALHhcGALhlGAL՝hGALhGAL$hhGAKdhGALwhGALhGALT hGALOHhGALɐ hGAL&hGALo| hGAL,VjGAL j GALjGALj%GALØ_j.GALj7GALj+j@GAL *RjIGAL!2jZGAL~jcGAL#jtGALj}GALc(jGALWjGALƧ jGALcAuUsettingsrx_}ry_(Ucloak_email_addressesrz_Utrim_footnote_reference_spacer{_U halt_levelr|_KUsectsubtitle_xformr}_Uembed_stylesheetr~_U pep_base_urlr_Uhttp://www.python.org/dev/peps/r_Udoctitle_xformr_Uwarning_streamr_csphinx.util.nodes WarningStream r_)r_}r_(U_rer_cre _compile r_U+\((DEBUG|INFO|WARNING|ERROR|SEVERE)/[0-4]\)r_KRr_Uwarnfuncr_NubUenvr_hU rfc_base_urlr_Uhttp://tools.ietf.org/html/r_Ufile_insertion_enabledr_Ugettext_compactr_Uinput_encodingr_U utf-8-sigr_uUfiles_to_rebuildr_}r_(jVh]r_h$aRr_jVh]r_h?aRr_jVh]r_j aRr_jVh]r_h?aRr_jVh]r_h$aRr_jVh]r_h6aRr_jVh]r_h6aRr_jVh]r_h?aRr_jVh]r_jaRr_jVh]r_j7aRr_jVh]r_j aRr_jVh]r_h6aRr_jVh]r_h6aRr_jVh]r_j aRr_jVh]r_j7aRr_jVh]r_j7aRr_jVh]r_h$aRr_jVh]r_j aRr_jVh]r_j7aRr_jVh]r_j7aRr_jVh]r_h?aRr_jVh]r_h?aRr_jVh]r_j7aRr_jVh]r_h$aRr_jVh]r_j aRr_jVh]r_h?aRr_jVh]r_h6aRr_jVh]r_j7aRr_jVh]r_j aRr_jVh]r_j7aRr_jVh]r_j aRr_jVh]r_j7aRr_jVh]r_j7aRr_jVh]r_h$aRr_jVh]r_j7aRr_uUtoc_secnumbersr_}U_nitpick_ignorer_h]Rr_ub.PK{E!ϣ !simpy-3.0/.doctrees/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX simpy homeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU simpy-homeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX9/var/build/user_builds/simpy/checkouts/3.0/docs/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX SimPy homeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X SimPy homeq3q4}q5(hh.hh,ubaubcdocutils.nodes comment q6)q7}q8(hX9_templates/index.html contains the content for this page.hhhhhUcommentq9h}q:(U xml:spaceq;Upreserveqq?}q@(hUhh7ubaubeubahUU transformerqANU footnote_refsqB}qCUrefnamesqD}qEUsymbol_footnotesqF]qGUautofootnote_refsqH]qIUsymbol_footnote_refsqJ]qKU citationsqL]qMh)hU current_lineqNNUtransform_messagesqO]qPUreporterqQNUid_startqRKU autofootnotesqS]qTU citation_refsqU}qVUindirect_targetsqW]qXUsettingsqY(cdocutils.frontend Values qZoq[}q\(Ufootnote_backlinksq]KUrecord_dependenciesq^NU rfc_base_urlq_Uhttp://tools.ietf.org/html/q`U tracebackqaUpep_referencesqbNUstrip_commentsqcNU toc_backlinksqdUentryqeU language_codeqfUenqgU datestampqhNU report_levelqiKU _destinationqjNU halt_levelqkKU strip_classesqlNh/NUerror_encoding_error_handlerqmUbackslashreplaceqnUdebugqoNUembed_stylesheetqpUoutput_encoding_error_handlerqqUstrictqrU sectnum_xformqsKUdump_transformsqtNU docinfo_xformquKUwarning_streamqvNUpep_file_url_templateqwUpep-%04dqxUexit_status_levelqyKUconfigqzNUstrict_visitorq{NUcloak_email_addressesq|Utrim_footnote_reference_spaceq}Uenvq~NUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqU9/var/build/user_builds/simpy/checkouts/3.0/docs/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhrUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{Edxnana6simpy-3.0/.doctrees/simpy_intro/basic_concepts.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xbasic_conceptsqX generatorsqX what's next?qNXour first processq NXbasic conceptsq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUbasic-conceptsqhU generatorsqhU what-s-nextqh Uour-first-processqh Uid1quUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _basic_concepts:UparentqhUsourceq cdocutils.nodes reprunicode q!XN/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/basic_concepts.rstq"q#}q$bUtagnameq%Utargetq&U attributesq'}q((Uidsq)]Ubackrefsq*]Udupnamesq+]Uclassesq,]Unamesq-]Urefidq.huUlineq/KUdocumentq0hh]ubcdocutils.nodes section q1)q2}q3(hUhhh h#Uexpect_referenced_by_nameq4}q5hhsh%Usectionq6h'}q7(h+]h,]h*]h)]q8(hheh-]q9(h heuh/Kh0hUexpect_referenced_by_idq:}q;hhsh]q<(cdocutils.nodes title q=)q>}q?(hXBasic Conceptsq@hh2h h#h%UtitleqAh'}qB(h+]h,]h*]h)]h-]uh/Kh0hh]qCcdocutils.nodes Text qDXBasic ConceptsqEqF}qG(hh@hh>ubaubcdocutils.nodes paragraph qH)qI}qJ(hXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled by *processes*. All processes live in an *environment*. They interact with the environment and with each other via *events*.hh2h h#h%U paragraphqKh'}qL(h+]h,]h*]h)]h-]uh/K h0hh]qM(hDXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled by qNqO}qP(hXSimPy is a discrete-event simulation library. The behavior of active components (like vehicles, customers or messages) is modeled by hhIubcdocutils.nodes emphasis qQ)qR}qS(hX *processes*h'}qT(h+]h,]h*]h)]h-]uhhIh]qUhDX processesqVqW}qX(hUhhRubah%UemphasisqYubhDX. All processes live in an qZq[}q\(hX. All processes live in an hhIubhQ)q]}q^(hX *environment*h'}q_(h+]h,]h*]h)]h-]uhhIh]q`hDX environmentqaqb}qc(hUhh]ubah%hYubhDX=. They interact with the environment and with each other via qdqe}qf(hX=. They interact with the environment and with each other via hhIubhQ)qg}qh(hX*events*h'}qi(h+]h,]h*]h)]h-]uhhIh]qjhDXeventsqkql}qm(hUhhgubah%hYubhDX.qn}qo(hX.hhIubeubhH)qp}qq(hX]Processes are described by simple Python `generators `_. You can call them *process function* or *process method*, depending on whether it is a normal function or method of a class. During their life time, they create events and ``yield`` them in order to wait for them to be triggered.hh2h h#h%hKh'}qr(h+]h,]h*]h)]h-]uh/Kh0hh]qs(hDX)Processes are described by simple Python qtqu}qv(hX)Processes are described by simple Python hhpubcdocutils.nodes reference qw)qx}qy(hXM`generators `_h'}qz(UnamehUrefuriq{X=http://docs.python.org/3/reference/expressions.html#yieldexprq|h)]h*]h+]h,]h-]uhhph]q}hDX generatorsq~q}q(hUhhxubah%U referencequbh)q}q(hX@ U referencedqKhhph%h&h'}q(Urefurih|h)]qhah*]h+]h,]h-]qhauh]ubhDX. You can call them qq}q(hX. You can call them hhpubhQ)q}q(hX*process function*h'}q(h+]h,]h*]h)]h-]uhhph]qhDXprocess functionqq}q(hUhhubah%hYubhDX or qq}q(hX or hhpubhQ)q}q(hX*process method*h'}q(h+]h,]h*]h)]h-]uhhph]qhDXprocess methodqq}q(hUhhubah%hYubhDXt, depending on whether it is a normal function or method of a class. During their life time, they create events and qq}q(hXt, depending on whether it is a normal function or method of a class. During their life time, they create events and hhpubcdocutils.nodes literal q)q}q(hX ``yield``h'}q(h+]h,]h*]h)]h-]uhhph]qhDXyieldqq}q(hUhhubah%UliteralqubhDX0 them in order to wait for them to be triggered.qq}q(hX0 them in order to wait for them to be triggered.hhpubeubhH)q}q(hXWhen a process yields an event, the process gets *suspended*. SimPy *resumes* the process, when the event occurs (we say that the event is *triggered*). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.hh2h h#h%hKh'}q(h+]h,]h*]h)]h-]uh/Kh0hh]q(hDX1When a process yields an event, the process gets qq}q(hX1When a process yields an event, the process gets hhubhQ)q}q(hX *suspended*h'}q(h+]h,]h*]h)]h-]uhhh]qhDX suspendedqq}q(hUhhubah%hYubhDX. SimPy qq}q(hX. SimPy hhubhQ)q}q(hX *resumes*h'}q(h+]h,]h*]h)]h-]uhhh]qhDXresumesqq}q(hUhhubah%hYubhDX> the process, when the event occurs (we say that the event is qÅq}q(hX> the process, when the event occurs (we say that the event is hhubhQ)q}q(hX *triggered*h'}q(h+]h,]h*]h)]h-]uhhh]qhDX triggeredqʅq}q(hUhhubah%hYubhDXy). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.qͅq}q(hXy). Multiple processes can wait for the same event. SimPy resumes them in the same order in which they yielded that event.hhubeubhH)q}q(hXAn important event type is the :class:`~simpy.events.Timeout`. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A :class:`~simpy.events.Timeout` and all other events can be created by calling the appropriate method of the :class:`Environment` that the process lives in (:meth:`Environment.timeout()` for example).hh2h h#h%hKh'}q(h+]h,]h*]h)]h-]uh/Kh0hh]q(hDXAn important event type is the qԅq}q(hXAn important event type is the hhubcsphinx.addnodes pending_xref q)q}q(hX:class:`~simpy.events.Timeout`qhhh h#h%U pending_xrefqh'}q(UreftypeXclassUrefwarnq݉U reftargetqXsimpy.events.TimeoutU refdomainXpyqh)]h*]U refexplicith+]h,]h-]UrefdocqXsimpy_intro/basic_conceptsqUpy:classqNU py:moduleqX simpy.corequh/Kh]qh)q}q(hhh'}q(h+]h,]q(UxrefqhXpy-classqeh*]h)]h-]uhhh]qhDXTimeoutq텁q}q(hUhhubah%hubaubhDX. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A qq}q(hX. Events of this type are triggered after a certain amount of (simulated) time has passed. They allow a process to sleep (or hold its state) for the given time. A hhubh)q}q(hX:class:`~simpy.events.Timeout`qhhh h#h%hh'}q(UreftypeXclassh݉hXsimpy.events.TimeoutU refdomainXpyqh)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]qh)q}q(hhh'}q(h+]h,]q(hhXpy-classqeh*]h)]h-]uhhh]qhDXTimeoutqr}r(hUhhubah%hubaubhDXN and all other events can be created by calling the appropriate method of the rr}r(hXN and all other events can be created by calling the appropriate method of the hhubh)r}r(hX:class:`Environment`rhhh h#h%hh'}r(UreftypeXclassh݉hX EnvironmentU refdomainXpyr h)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]r h)r }r (hjh'}r (h+]h,]r(hj Xpy-classreh*]h)]h-]uhjh]rhDX Environmentrr}r(hUhj ubah%hubaubhDX that the process lives in (rr}r(hX that the process lives in (hhubh)r}r(hX:meth:`Environment.timeout()`rhhh h#h%hh'}r(UreftypeXmethh݉hXEnvironment.timeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/Kh]rh)r}r(hjh'}r(h+]h,]r (hjXpy-methr!eh*]h)]h-]uhjh]r"hDXEnvironment.timeout()r#r$}r%(hUhjubah%hubaubhDX for example).r&r'}r((hX for example).hhubeubh1)r)}r*(hUhh2h h#h%h6h'}r+(h+]h,]h*]h)]r,hah-]r-h auh/K"h0hh]r.(h=)r/}r0(hXOur First Processr1hj)h h#h%hAh'}r2(h+]h,]h*]h)]h-]uh/K"h0hh]r3hDXOur First Processr4r5}r6(hj1hj/ubaubhH)r7}r8(hXOur first example will be a *car* process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.hj)h h#h%hKh'}r9(h+]h,]h*]h)]h-]uh/K$h0hh]r:(hDXOur first example will be a r;r<}r=(hXOur first example will be a hj7ubhQ)r>}r?(hX*car*h'}r@(h+]h,]h*]h)]h-]uhj7h]rAhDXcarrBrC}rD(hUhj>ubah%hYubhDX process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.rErF}rG(hX process. The car will alternately drive and park for a while. When it starts driving (or parking), it will print the current simulation time.hj7ubeubhH)rH}rI(hXSo let's start::rJhj)h h#h%hKh'}rK(h+]h,]h*]h)]h-]uh/K(h0hh]rLhDXSo let's start:rMrN}rO(hXSo let's start:hjHubaubcdocutils.nodes literal_block rP)rQ}rR(hX+>>> def car(env): ... while True: ... print('Start parking at %d' % env.now) ... parking_duration = 5 ... yield env.timeout(parking_duration) ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration)hj)h h#h%U literal_blockrSh'}rT(U xml:spacerUUpreserverVh)]h*]h+]h,]h-]uh/K*h0hh]rWhDX+>>> def car(env): ... while True: ... print('Start parking at %d' % env.now) ... parking_duration = 5 ... yield env.timeout(parking_duration) ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration)rXrY}rZ(hUhjQubaubhH)r[}r\(hXOur *car* process requires a reference to an :class:`Environment` (``env``) in order to create new events. The *car*'s behaviour is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a ``yield`` statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.hj)h h#h%hKh'}r](h+]h,]h*]h)]h-]uh/K4h0hh]r^(hDXOur r_r`}ra(hXOur hj[ubhQ)rb}rc(hX*car*h'}rd(h+]h,]h*]h)]h-]uhj[h]rehDXcarrfrg}rh(hUhjbubah%hYubhDX$ process requires a reference to an rirj}rk(hX$ process requires a reference to an hj[ubh)rl}rm(hX:class:`Environment`rnhj[h h#h%hh'}ro(UreftypeXclassh݉hX EnvironmentU refdomainXpyrph)]h*]U refexplicith+]h,]h-]hhhNhhuh/K4h]rqh)rr}rs(hjnh'}rt(h+]h,]ru(hjpXpy-classrveh*]h)]h-]uhjlh]rwhDX Environmentrxry}rz(hUhjrubah%hubaubhDX (r{r|}r}(hX (hj[ubh)r~}r(hX``env``h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXenvrr}r(hUhj~ubah%hubhDX%) in order to create new events. The rr}r(hX%) in order to create new events. The hj[ubhQ)r}r(hX*car*h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXcarrr}r(hUhjubah%hYubhDX's behaviour is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a rr}r(hX's behaviour is described in an infinite loop. Remember, this function is a generator. Though it will never terminate, it will pass the control flow back to the simulation once a hj[ubh)r}r(hX ``yield``h'}r(h+]h,]h*]h)]h-]uhj[h]rhDXyieldrr}r(hUhjubah%hubhDX statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.rr}r(hX statement is reached. Once the yielded event is triggered ("it occurs"), the simulation will resume the function at this statement.hj[ubeubhH)r}r(hXAs I said before, our car switches between the states *parking* and *driving*. It announces its new state by printing a message and the current simulation time (as returned by the :attr:`Environment.now` property). It then calls the :meth:`Environment.timeout()` factory function to create a :class:`~simpy.events.Timeout` event. This event describes the point in time the car is done *parking* (or *driving*, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/K;h0hh]r(hDX6As I said before, our car switches between the states rr}r(hX6As I said before, our car switches between the states hjubhQ)r}r(hX *parking*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXparkingrr}r(hUhjubah%hYubhDX and rr}r(hX and hjubhQ)r}r(hX *driving*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXdrivingrr}r(hUhjubah%hYubhDXg. It announces its new state by printing a message and the current simulation time (as returned by the rr}r(hXg. It announces its new state by printing a message and the current simulation time (as returned by the hjubh)r}r(hX:attr:`Environment.now`rhjh h#h%hh'}r(UreftypeXattrh݉hXEnvironment.nowU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-attrreh*]h)]h-]uhjh]rhDXEnvironment.nowrr}r(hUhjubah%hubaubhDX property). It then calls the rr}r(hX property). It then calls the hjubh)r}r(hX:meth:`Environment.timeout()`rhjh h#h%hh'}r(UreftypeXmethh݉hXEnvironment.timeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-methreh*]h)]h-]uhjh]rhDXEnvironment.timeout()rr}r(hUhjubah%hubaubhDX factory function to create a rr}r(hX factory function to create a hjubh)r}r(hX:class:`~simpy.events.Timeout`rhjh h#h%hh'}r(UreftypeXclassh݉hXsimpy.events.TimeoutU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/K;h]rh)r}r(hjh'}r(h+]h,]r(hjXpy-classreh*]h)]h-]uhjh]rhDXTimeoutrr}r(hUhjubah%hubaubhDX? event. This event describes the point in time the car is done rr}r(hX? event. This event describes the point in time the car is done hjubhQ)r}r(hX *parking*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXparkingrr}r(hUhjubah%hYubhDX (or rr}r(hX (or hjubhQ)r}r(hX *driving*h'}r(h+]h,]h*]h)]h-]uhjh]rhDXdrivingrr}r(hUhjubah%hYubhDXo, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.rr}r(hXo, respectively). By yielding the event, it signals the simulation that it wants to wait for the event to occur.hjubeubhH)r}r(hXkNow that the behaviour of our car has been modelled, lets create an instance of it and see how it behaves::hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/KCh0hh]rhDXjNow that the behaviour of our car has been modelled, lets create an instance of it and see how it behaves:rr}r(hXjNow that the behaviour of our car has been modelled, lets create an instance of it and see how it behaves:hjubaubjP)r}r (hX>>> import simpy >>> env = simpy.Environment() >>> env.process(car(env)) >>> env.run(until=15) Start parking at 0 Start driving at 5 Start parking at 7 Start driving at 12 Start parking at 14hj)h h#h%jSh'}r (jUjVh)]h*]h+]h,]h-]uh/KFh0hh]r hDX>>> import simpy >>> env = simpy.Environment() >>> env.process(car(env)) >>> env.run(until=15) Start parking at 0 Start driving at 5 Start parking at 7 Start driving at 12 Start parking at 14r r }r(hUhjubaubhH)r}r(hX The first thing we need to do is to create an instance of :class:`Environment`. This instance is passed into our *car* process function. Calling it creates a *process generator* that needs to be started and added to the environment via :meth:`Environment.process()`.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/KQh0hh]r(hDX:The first thing we need to do is to create an instance of rr}r(hX:The first thing we need to do is to create an instance of hjubh)r}r(hX:class:`Environment`rhjh h#h%hh'}r(UreftypeXclassh݉hX EnvironmentU refdomainXpyrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/KQh]rh)r}r(hjh'}r(h+]h,]r(hjXpy-classr eh*]h)]h-]uhjh]r!hDX Environmentr"r#}r$(hUhjubah%hubaubhDX#. This instance is passed into our r%r&}r'(hX#. This instance is passed into our hjubhQ)r(}r)(hX*car*h'}r*(h+]h,]h*]h)]h-]uhjh]r+hDXcarr,r-}r.(hUhj(ubah%hYubhDX( process function. Calling it creates a r/r0}r1(hX( process function. Calling it creates a hjubhQ)r2}r3(hX*process generator*h'}r4(h+]h,]h*]h)]h-]uhjh]r5hDXprocess generatorr6r7}r8(hUhj2ubah%hYubhDX; that needs to be started and added to the environment via r9r:}r;(hX; that needs to be started and added to the environment via hjubh)r<}r=(hX:meth:`Environment.process()`r>hjh h#h%hh'}r?(UreftypeXmethh݉hXEnvironment.processU refdomainXpyr@h)]h*]U refexplicith+]h,]h-]hhhNhhuh/KQh]rAh)rB}rC(hj>h'}rD(h+]h,]rE(hj@Xpy-methrFeh*]h)]h-]uhj<h]rGhDXEnvironment.process()rHrI}rJ(hUhjBubah%hubaubhDX.rK}rL(hX.hjubeubhH)rM}rN(hXNote, that at this time, none of the code of our process function is being executed. It's execution is merely scheduled at the current simulation time.rOhj)h h#h%hKh'}rP(h+]h,]h*]h)]h-]uh/KVh0hh]rQhDXNote, that at this time, none of the code of our process function is being executed. It's execution is merely scheduled at the current simulation time.rRrS}rT(hjOhjMubaubhH)rU}rV(hXThe :class:`~simpy.events.Process` returned by :meth:`~Environment.process()` can be used for process interactions (we will cover that in the next section, so we will ignore it for now).hj)h h#h%hKh'}rW(h+]h,]h*]h)]h-]uh/KYh0hh]rX(hDXThe rYrZ}r[(hXThe hjUubh)r\}r](hX:class:`~simpy.events.Process`r^hjUh h#h%hh'}r_(UreftypeXclassh݉hXsimpy.events.ProcessU refdomainXpyr`h)]h*]U refexplicith+]h,]h-]hhhNhhuh/KYh]rah)rb}rc(hj^h'}rd(h+]h,]re(hj`Xpy-classrfeh*]h)]h-]uhj\h]rghDXProcessrhri}rj(hUhjbubah%hubaubhDX returned by rkrl}rm(hX returned by hjUubh)rn}ro(hX:meth:`~Environment.process()`rphjUh h#h%hh'}rq(UreftypeXmethh݉hXEnvironment.processU refdomainXpyrrh)]h*]U refexplicith+]h,]h-]hhhNhhuh/KYh]rsh)rt}ru(hjph'}rv(h+]h,]rw(hjrXpy-methrxeh*]h)]h-]uhjnh]ryhDX process()rzr{}r|(hUhjtubah%hubaubhDXm can be used for process interactions (we will cover that in the next section, so we will ignore it for now).r}r~}r(hXm can be used for process interactions (we will cover that in the next section, so we will ignore it for now).hjUubeubhH)r}r(hXFinally, we start the simulation by calling meth:`Environment.simulate()` and passing the environment as well as an end time to it.hj)h h#h%hKh'}r(h+]h,]h*]h)]h-]uh/K]h0hh]r(hDX1Finally, we start the simulation by calling meth:rr}r(hX1Finally, we start the simulation by calling meth:hjubcdocutils.nodes title_reference r)r}r(hX`Environment.simulate()`h'}r(h+]h,]h*]h)]h-]uhjh]rhDXEnvironment.simulate()rr}r(hUhjubah%Utitle_referencerubhDX: and passing the environment as well as an end time to it.rr}r(hX: and passing the environment as well as an end time to it.hjubeubeubh1)r}r(hUhh2h h#h%h6h'}r(h+]h,]h*]h)]rhah-]rhauh/Kbh0hh]r(h=)r}r(hX What's Next?rhjh h#h%hAh'}r(h+]h,]h*]h)]h-]uh/Kbh0hh]rhDX What's Next?rr}r(hjhjubaubhH)r}r(hXYou should now be familiar with Simpy's terminology and basic concepts. In the :doc:`next section `, we will cover process interaction.hjh h#h%hKh'}r(h+]h,]h*]h)]h-]uh/Kdh0hh]r(hDXOYou should now be familiar with Simpy's terminology and basic concepts. In the rr}r(hXOYou should now be familiar with Simpy's terminology and basic concepts. In the hjubh)r}r(hX):doc:`next section `rhjh h#h%hh'}r(UreftypeXdocrh݈hXprocess_interactionU refdomainUh)]h*]U refexplicith+]h,]h-]hhuh/Kdh]rh)r}r(hjh'}r(h+]h,]r(hjeh*]h)]h-]uhjh]rhDX next sectionrr}r(hUhjubah%hubaubhDX$, we will cover process interaction.rr}r(hX$, we will cover process interaction.hjubeubeubeubehUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh'}r(h+]UlevelKh)]h*]Usourceh#h,]h-]UlineKUtypeUINFOruh]rhH)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rhDX4Hyperlink target "basic-concepts" is not referenced.rr}r(hUhjubah%hKubah%Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUN/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/basic_concepts.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidr Udoctitle_xformr!Ustrip_elements_with_classesr"NU _config_filesr#]Ufile_insertion_enabledr$U raw_enabledr%KU dump_settingsr&NubUsymbol_footnote_startr'KUidsr(}r)(hh2hjhhhj)hh2uUsubstitution_namesr*}r+h%h0h'}r,(h+]h)]h*]Usourceh#h,]h-]uU footnotesr-]r.Urefidsr/}r0h]r1hasub.PK{Evy|qGG8simpy-3.0/.doctrees/simpy_intro/shared_resources.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xshared resourcesqNX what's nextqNXbasic resource usageqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUshared-resourcesqhU what-s-nextqhUbasic-resource-usagequUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXP/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/shared_resources.rstqq}q bUtagnameq!Usectionq"U attributesq#}q$(Udupnamesq%]Uclassesq&]Ubackrefsq']Uidsq(]q)haUnamesq*]q+hauUlineq,KUdocumentq-hh]q.(cdocutils.nodes title q/)q0}q1(hXShared Resourcesq2hhhhh!Utitleq3h#}q4(h%]h&]h']h(]h*]uh,Kh-hh]q5cdocutils.nodes Text q6XShared Resourcesq7q8}q9(hh2hh0ubaubcdocutils.nodes paragraph q:)q;}q<(hXSimPy offers three types of :mod:`~simpy.resources` that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.hhhhh!U paragraphq=h#}q>(h%]h&]h']h(]h*]uh,Kh-hh]q?(h6XSimPy offers three types of q@qA}qB(hXSimPy offers three types of hh;ubcsphinx.addnodes pending_xref qC)qD}qE(hX:mod:`~simpy.resources`qFhh;hhh!U pending_xrefqGh#}qH(UreftypeXmodUrefwarnqIU reftargetqJXsimpy.resourcesU refdomainXpyqKh(]h']U refexplicith%]h&]h*]UrefdocqLXsimpy_intro/shared_resourcesqMUpy:classqNNU py:moduleqONuh,Kh]qPcdocutils.nodes literal qQ)qR}qS(hhFh#}qT(h%]h&]qU(UxrefqVhKXpy-modqWeh']h(]h*]uhhDh]qXh6X resourcesqYqZ}q[(hUhhRubah!Uliteralq\ubaubh6X that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.q]q^}q_(hX that help you modeling problems, where multiple processes want to use a resource of limited capacity (e.g., cars at a fuel station with a limited number of fuel pumps) or classical producer-consumer problems.hh;ubeubh:)q`}qa(hXcIn this section, we'll briefly introduce SimPy's :class:`~simpy.resources.resource.Resource` class.hhhhh!h=h#}qb(h%]h&]h']h(]h*]uh,K h-hh]qc(h6X1In this section, we'll briefly introduce SimPy's qdqe}qf(hX1In this section, we'll briefly introduce SimPy's hh`ubhC)qg}qh(hX+:class:`~simpy.resources.resource.Resource`qihh`hhh!hGh#}qj(UreftypeXclasshIhJX!simpy.resources.resource.ResourceU refdomainXpyqkh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K h]qlhQ)qm}qn(hhih#}qo(h%]h&]qp(hVhkXpy-classqqeh']h(]h*]uhhgh]qrh6XResourceqsqt}qu(hUhhmubah!h\ubaubh6X class.qvqw}qx(hX class.hh`ubeubh)qy}qz(hUhhhhh!h"h#}q{(h%]h&]h']h(]q|hah*]q}hauh,Kh-hh]q~(h/)q}q(hXBasic Resource Usageqhhyhhh!h3h#}q(h%]h&]h']h(]h*]uh,Kh-hh]qh6XBasic Resource Usageqq}q(hhhhubaubh:)q}q(hXcWe'll slightly modify our electric vehicle process ``car`` that we introduced in the last sections.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,Kh-hh]q(h6X3We'll slightly modify our electric vehicle process qq}q(hX3We'll slightly modify our electric vehicle process hhubhQ)q}q(hX``car``h#}q(h%]h&]h']h(]h*]uhhh]qh6Xcarqq}q(hUhhubah!h\ubh6X) that we introduced in the last sections.qq}q(hX) that we introduced in the last sections.hhubeubh:)q}q(hXThe car will now drive to a *battery charging station (BCS)* and request one of its two *charing spots*. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards::hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,Kh-hh]q(h6XThe car will now drive to a qq}q(hXThe car will now drive to a hhubcdocutils.nodes emphasis q)q}q(hX *battery charging station (BCS)*h#}q(h%]h&]h']h(]h*]uhhh]qh6Xbattery charging station (BCS)qq}q(hUhhubah!Uemphasisqubh6X and request one of its two qq}q(hX and request one of its two hhubh)q}q(hX*charing spots*h#}q(h%]h&]h']h(]h*]uhhh]qh6X charing spotsqq}q(hUhhubah!hubh6X. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:qq}q(hX. If both of these spots are currently in use, it waits until one of them becomes available again. It then starts charging its battery and leaves the station afterwards:hhubeubcdocutils.nodes literal_block q)q}q(hX>>> def car(env, name, bcs, driving_time, charge_duration): ... # Simulate driving to the BCS ... yield env.timeout(driving_time) ... ... # Request one of its charging spots ... print('%s arriving at %d' % (name, env.now)) ... with bcs.request() as req: ... yield req ... ... # Charge the battery ... print('%s starting to charge at %s' % (name, env.now)) ... yield env.timeout(charge_duration) ... print('%s leaving the bcs at %s' % (name, env.now))hhyhhh!U literal_blockqh#}q(U xml:spaceqUpreserveqh(]h']h%]h&]h*]uh,Kh-hh]qh6X>>> def car(env, name, bcs, driving_time, charge_duration): ... # Simulate driving to the BCS ... yield env.timeout(driving_time) ... ... # Request one of its charging spots ... print('%s arriving at %d' % (name, env.now)) ... with bcs.request() as req: ... yield req ... ... # Charge the battery ... print('%s starting to charge at %s' % (name, env.now)) ... yield env.timeout(charge_duration) ... print('%s leaving the bcs at %s' % (name, env.now))qq}q(hUhhubaubh:)q}q(hXThe resource's :meth:`~simpy.resources.resource.Resource.request()` method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you *release* it.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,K'h-hh]q(h6XThe resource's qąq}q(hXThe resource's hhubhC)q}q(hX4:meth:`~simpy.resources.resource.Resource.request()`qhhhhh!hGh#}q(UreftypeXmethhIhJX)simpy.resources.resource.Resource.requestU refdomainXpyqh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K'h]qhQ)q}q(hhh#}q(h%]h&]q(hVhXpy-methqeh']h(]h*]uhhh]qh6X request()qӅq}q(hUhhubah!h\ubaubh6X method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you qօq}q(hX method generates an event that lets you wait until the resource becomes available again. If you are resumed, you "own" the resource until you hhubh)q}q(hX *release*h#}q(h%]h&]h']h(]h*]uhhh]qh6Xreleaseq݅q}q(hUhhubah!hubh6X it.qq}q(hX it.hhubeubh:)q}q(hXIf you use the resource with the ``with`` statement as shown above, the resource is automatically being released. If you call ``request()`` without ``with``, you are responsible to call :meth:`~simpy.resources.resource.Resource.release()` once you are done using the resource.hhyhhh!h=h#}q(h%]h&]h']h(]h*]uh,K+h-hh]q(h6X!If you use the resource with the q煁q}q(hX!If you use the resource with the hhubhQ)q}q(hX``with``h#}q(h%]h&]h']h(]h*]uhhh]qh6Xwithqq}q(hUhhubah!h\ubh6XU statement as shown above, the resource is automatically being released. If you call qq}q(hXU statement as shown above, the resource is automatically being released. If you call hhubhQ)q}q(hX ``request()``h#}q(h%]h&]h']h(]h*]uhhh]qh6X request()qq}q(hUhhubah!h\ubh6X without qq}q(hX without hhubhQ)q}q(hX``with``h#}r(h%]h&]h']h(]h*]uhhh]rh6Xwithrr}r(hUhhubah!h\ubh6X, you are responsible to call rr}r(hX, you are responsible to call hhubhC)r}r (hX4:meth:`~simpy.resources.resource.Resource.release()`r hhhhh!hGh#}r (UreftypeXmethhIhJX)simpy.resources.resource.Resource.releaseU refdomainXpyr h(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K+h]r hQ)r}r(hj h#}r(h%]h&]r(hVj Xpy-methreh']h(]h*]uhjh]rh6X release()rr}r(hUhjubah!h\ubaubh6X& once you are done using the resource.rr}r(hX& once you are done using the resource.hhubeubh:)r}r(hXWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic :class:`~simpy.resources.resource.Resource` sorts waiting processes in a *FIFO (first in---first out)* way.hhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,K1h-hh]r(h6XwWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic rr}r (hXwWhen you release a resource, the next waiting process is resumed and now "owns" one of the resource's slots. The basic hjubhC)r!}r"(hX+:class:`~simpy.resources.resource.Resource`r#hjhhh!hGh#}r$(UreftypeXclasshIhJX!simpy.resources.resource.ResourceU refdomainXpyr%h(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K1h]r&hQ)r'}r((hj#h#}r)(h%]h&]r*(hVj%Xpy-classr+eh']h(]h*]uhj!h]r,h6XResourcer-r.}r/(hUhj'ubah!h\ubaubh6X sorts waiting processes in a r0r1}r2(hX sorts waiting processes in a hjubh)r3}r4(hX*FIFO (first in---first out)*h#}r5(h%]h&]h']h(]h*]uhjh]r6h6XFIFO (first in---first out)r7r8}r9(hUhj3ubah!hubh6X way.r:r;}r<(hX way.hjubeubh:)r=}r>(hXiA resource needs a reference to an :class:`~simpy.core.Environment` and a *capacity* when it is created::hhyhhh!h=h#}r?(h%]h&]h']h(]h*]uh,K6h-hh]r@(h6X#A resource needs a reference to an rArB}rC(hX#A resource needs a reference to an hj=ubhC)rD}rE(hX :class:`~simpy.core.Environment`rFhj=hhh!hGh#}rG(UreftypeXclasshIhJXsimpy.core.EnvironmentU refdomainXpyrHh(]h']U refexplicith%]h&]h*]hLhMhNNhONuh,K6h]rIhQ)rJ}rK(hjFh#}rL(h%]h&]rM(hVjHXpy-classrNeh']h(]h*]uhjDh]rOh6X EnvironmentrPrQ}rR(hUhjJubah!h\ubaubh6X and a rSrT}rU(hX and a hj=ubh)rV}rW(hX *capacity*h#}rX(h%]h&]h']h(]h*]uhj=h]rYh6XcapacityrZr[}r\(hUhjVubah!hubh6X when it is created:r]r^}r_(hX when it is created:hj=ubeubh)r`}ra(hXX>>> import simpy >>> env = simpy.Environment() >>> bcs = simpy.Resource(env, capacity=2)hhyhhh!hh#}rb(hhh(]h']h%]h&]h*]uh,K9h-hh]rch6XX>>> import simpy >>> env = simpy.Environment() >>> bcs = simpy.Resource(env, capacity=2)rdre}rf(hUhj`ubaubh:)rg}rh(hX|We can now create the ``car`` processes and pass a reference to our resource as well as some additional parameters to them::hhyhhh!h=h#}ri(h%]h&]h']h(]h*]uh,K=h-hh]rj(h6XWe can now create the rkrl}rm(hXWe can now create the hjgubhQ)rn}ro(hX``car``h#}rp(h%]h&]h']h(]h*]uhjgh]rqh6Xcarrrrs}rt(hUhjnubah!h\ubh6X^ processes and pass a reference to our resource as well as some additional parameters to them:rurv}rw(hX^ processes and pass a reference to our resource as well as some additional parameters to them:hjgubeubh)rx}ry(hX>>> for i in range(4): ... env.process(car(env, 'Car %d' % i, bcs, i*2, 5)) hhyhhh!hh#}rz(hhh(]h']h%]h&]h*]uh,K@h-hh]r{h6X>>> for i in range(4): ... env.process(car(env, 'Car %d' % i, bcs, i*2, 5)) r|r}}r~(hUhjxubaubh:)r}r(hXFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an *until* time---the simulation will automatically stop when there are no more events left::hhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,KGh-hh]r(h6XFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an rr}r(hXFinally, we can start the simulation. Since the car processes all terminate on their own in this simulation, we don't need to specify an hjubh)r}r(hX*until*h#}r(h%]h&]h']h(]h*]uhjh]rh6Xuntilrr}r(hUhjubah!hubh6XR time---the simulation will automatically stop when there are no more events left:rr}r(hXR time---the simulation will automatically stop when there are no more events left:hjubeubh)r}r(hXC>>> env.run() Car 0 arriving at 0 Car 0 starting to charge at 0 Car 1 arriving at 2 Car 1 starting to charge at 2 Car 2 arriving at 4 Car 0 leaving the bcs at 5 Car 2 starting to charge at 5 Car 3 arriving at 6 Car 1 leaving the bcs at 7 Car 3 starting to charge at 7 Car 2 leaving the bcs at 10 Car 3 leaving the bcs at 12hhyhhh!hh#}r(hhh(]h']h%]h&]h*]uh,KKh-hh]rh6XC>>> env.run() Car 0 arriving at 0 Car 0 starting to charge at 0 Car 1 arriving at 2 Car 1 starting to charge at 2 Car 2 arriving at 4 Car 0 leaving the bcs at 5 Car 2 starting to charge at 5 Car 3 arriving at 6 Car 1 leaving the bcs at 7 Car 3 starting to charge at 7 Car 2 leaving the bcs at 10 Car 3 leaving the bcs at 12rr}r(hUhjubaubh:)r}r(hXwNote that the first to cars can start charing immediately after they arrive at the BCS, while cars 2 an 3 have to wait.rhhyhhh!h=h#}r(h%]h&]h']h(]h*]uh,KYh-hh]rh6XwNote that the first to cars can start charing immediately after they arrive at the BCS, while cars 2 an 3 have to wait.rr}r(hjhjubaubeubh)r}r(hUhhhhh!h"h#}r(h%]h&]h']h(]rhah*]rhauh,K^h-hh]r(h/)r}r(hX What's Nextrhjhhh!h3h#}r(h%]h&]h']h(]h*]uh,K^h-hh]rh6X What's Nextrr}r(hjhjubaubcdocutils.nodes comment r)r}r(hXNThe last part of this tutorial will demonstrate, how you can collect data fromhjhhh!Ucommentrh#}r(hhh(]h']h%]h&]h*]uh,K`h-hh]rh6XNThe last part of this tutorial will demonstrate, how you can collect data fromrr}r(hUhjubaubj)r}r(hXyour simulation.hjhhh!jh#}r(hhh(]h']h%]h&]h*]uh,Kbh-hh]rh6Xyour simulation.rr}r(hUhjubaubh:)r}r(hXYou should now be familiar with SimPy's basic concepts. The :doc:`next section ` shows you how you can proceed with using SimPy from here on.hjhhh!h=h#}r(h%]h&]h']h(]h*]uh,Kch-hh]r(h6X<You should now be familiar with SimPy's basic concepts. The rr}r(hX<You should now be familiar with SimPy's basic concepts. The hjubhC)r}r(hX$:doc:`next section `rhjhhh!hGh#}r(UreftypeXdocrhIhJXhow_to_proceedU refdomainUh(]h']U refexplicith%]h&]h*]hLhMuh,Kch]rhQ)r}r(hjh#}r(h%]h&]r(hVjeh']h(]h*]uhjh]rh6X next sectionrr}r(hUhjubah!h\ubaubh6X= shows you how you can proceed with using SimPy from here on.rr}r(hX= shows you how you can proceed with using SimPy from here on.hjubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh-hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh3NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingr Uasciir!U_sourcer"UP/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/shared_resources.rstr#Ugettext_compactr$U generatorr%NUdump_internalsr&NU smart_quotesr'U pep_base_urlr(Uhttp://www.python.org/dev/peps/r)Usyntax_highlightr*Ulongr+Uinput_encoding_error_handlerr,jUauto_id_prefixr-Uidr.Udoctitle_xformr/Ustrip_elements_with_classesr0NU _config_filesr1]Ufile_insertion_enabledr2U raw_enabledr3KU dump_settingsr4NubUsymbol_footnote_startr5KUidsr6}r7(hjhhyhhuUsubstitution_namesr8}r9h!h-h#}r:(h%]h(]h']Usourcehh&]h*]uU footnotesr;]r<Urefidsr=}r>ub.PK{E\\;simpy-3.0/.doctrees/simpy_intro/process_interaction.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xinterrupting another processqNX what's nextqNXprocess interactionqNXwaiting for a processq NuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUinterrupting-another-processqhU what-s-nextqhUprocess-interactionqh Uwaiting-for-a-processquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXS/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/process_interaction.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-hauUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hXProcess Interactionq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8XProcess Interactionq9q:}q;(hh4hh2ubaubcdocutils.nodes paragraph q<)q=}q>(hXThe :class:`~simpy.events.Process` instance that is returned by :meth:`Environment.process()` can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.hhhh!h#U paragraphq?h%}q@(h']h(]h)]h*]h,]uh.Kh/hh]qA(h8XThe qBqC}qD(hXThe hh=ubcsphinx.addnodes pending_xref qE)qF}qG(hX:class:`~simpy.events.Process`qHhh=hh!h#U pending_xrefqIh%}qJ(UreftypeXclassUrefwarnqKU reftargetqLXsimpy.events.ProcessU refdomainXpyqMh*]h)]U refexplicith']h(]h,]UrefdocqNXsimpy_intro/process_interactionqOUpy:classqPNU py:moduleqQX simpy.coreqRuh.Kh]qScdocutils.nodes literal qT)qU}qV(hhHh%}qW(h']h(]qX(UxrefqYhMXpy-classqZeh)]h*]h,]uhhFh]q[h8XProcessq\q]}q^(hUhhUubah#Uliteralq_ubaubh8X instance that is returned by q`qa}qb(hX instance that is returned by hh=ubhE)qc}qd(hX:meth:`Environment.process()`qehh=hh!h#hIh%}qf(UreftypeXmethhKhLXEnvironment.processU refdomainXpyqgh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]qhhT)qi}qj(hheh%}qk(h']h(]ql(hYhgXpy-methqmeh)]h*]h,]uhhch]qnh8XEnvironment.process()qoqp}qq(hUhhiubah#h_ubaubh8X can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.qrqs}qt(hX can be utilized for process interactions. The two most common examples for this are to wait for another process to finish and to interrupt another process while it is waiting for an event.hh=ubeubh)qu}qv(hUhhhh!h#h$h%}qw(h']h(]h)]h*]qxhah,]qyh auh.Kh/hh]qz(h1)q{}q|(hXWaiting for a Processq}hhuhh!h#h5h%}q~(h']h(]h)]h*]h,]uh.Kh/hh]qh8XWaiting for a Processqq}q(hh}hh{ubaubh<)q}q(hXAs it happens, a SimPy :class:`~simpy.events.Process` can be used like an event (technically, a process actually *is* an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XAs it happens, a SimPy qq}q(hXAs it happens, a SimPy hhubhE)q}q(hX:class:`~simpy.events.Process`qhhhh!h#hIh%}q(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyqh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]qhT)q}q(hhh%}q(h']h(]q(hYhXpy-classqeh)]h*]h,]uhhh]qh8XProcessqq}q(hUhhubah#h_ubaubh8X< can be used like an event (technically, a process actually qq}q(hX< can be used like an event (technically, a process actually hhubcdocutils.nodes emphasis q)q}q(hX*is*h%}q(h']h(]h)]h*]h,]uhhh]qh8Xisqq}q(hUhhubah#Uemphasisqubh8X  an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.qq}q(hX  an event). If you yield it, you are resumed once the process has finished. Imagine a car-wash simulation where cars enter the car-wash and wait for the washing process to finish. Or an airport simulation where passengers have to wait until a security check finishes.hhubeubh<)q}q(hXLets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.qhhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8XLets assume that the car from our last example magically became an electric vehicle. Electric vehicles usually take a lot of time charing their batteries after a trip. They have to wait until their battery is charged before they can start driving again.qq}q(hhhhubaubh<)q}q(hXWe can model this with an additional ``charge()`` process for our car. Therefore, we refactor our car to be a class with two process methods: ``run()`` (which is the original ``car()`` process function) and ``charge()``.hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8X%We can model this with an additional qq}q(hX%We can model this with an additional hhubhT)q}q(hX ``charge()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcharge()qq}q(hUhhubah#h_ubh8X] process for our car. Therefore, we refactor our car to be a class with two process methods: qq}q(hX] process for our car. Therefore, we refactor our car to be a class with two process methods: hhubhT)q}q(hX ``run()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xrun()qŅq}q(hUhhubah#h_ubh8X (which is the original qȅq}q(hX (which is the original hhubhT)q}q(hX ``car()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcar()qυq}q(hUhhubah#h_ubh8X process function) and q҅q}q(hX process function) and hhubhT)q}q(hX ``charge()``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xcharge()qمq}q(hUhhubah#h_ubh8X.q}q(hX.hhubeubh<)q}q(hX/The ``run`` process is automatically started when ``Car`` is instantiated. A new ``charge`` process is started every time the vehicle starts parking. By yielding the :class:`~simpy.events.Process` instance that :meth:`Environment.process()` returns, the ``run`` process starts waiting for it to finish::hhuhh!h#h?h%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XThe q⅁q}q(hXThe hhubhT)q}q(hX``run``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xrunq酁q}q(hUhhubah#h_ubh8X' process is automatically started when q셁q}q(hX' process is automatically started when hhubhT)q}q(hX``Car``h%}q(h']h(]h)]h*]h,]uhhh]qh8XCarqq}q(hUhhubah#h_ubh8X is instantiated. A new qq}q(hX is instantiated. A new hhubhT)q}q(hX ``charge``h%}q(h']h(]h)]h*]h,]uhhh]qh8Xchargeqq}q(hUhhubah#h_ubh8XK process is started every time the vehicle starts parking. By yielding the rr}r(hXK process is started every time the vehicle starts parking. By yielding the hhubhE)r}r(hX:class:`~simpy.events.Process`rhhhh!h#hIh%}r(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r }r (hjh%}r (h']h(]r (hYjXpy-classr eh)]h*]h,]uhjh]rh8XProcessrr}r(hUhj ubah#h_ubaubh8X instance that rr}r(hX instance that hhubhE)r}r(hX:meth:`Environment.process()`rhhhh!h#hIh%}r(UreftypeXmethhKhLXEnvironment.processU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r}r(hjh%}r(h']h(]r(hYjXpy-methreh)]h*]h,]uhjh]r h8XEnvironment.process()r!r"}r#(hUhjubah#h_ubaubh8X returns, the r$r%}r&(hX returns, the hhubhT)r'}r((hX``run``h%}r)(h']h(]h)]h*]h,]uhhh]r*h8Xrunr+r,}r-(hUhj'ubah#h_ubh8X) process starts waiting for it to finish:r.r/}r0(hX) process starts waiting for it to finish:hhubeubcdocutils.nodes literal_block r1)r2}r3(hXS>>> class Car(object): ... def __init__(self, env): ... self.env = env ... # Start the run process everytime an instance is created. ... self.proc = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We yield the process that process() returns ... # to wait for it to finish ... yield env.process(self.charge(charge_duration)) ... ... # The charge process has finished and ... # we can start driving again. ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)hhuhh!h#U literal_blockr4h%}r5(U xml:spacer6Upreserver7h*]h)]h']h(]h,]uh.K%h/hh]r8h8XS>>> class Car(object): ... def __init__(self, env): ... self.env = env ... # Start the run process everytime an instance is created. ... self.proc = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We yield the process that process() returns ... # to wait for it to finish ... yield env.process(self.charge(charge_duration)) ... ... # The charge process has finished and ... # we can start driving again. ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)r9r:}r;(hUhj2ubaubh<)r<}r=(hXStarting the simulation is straight forward again: We create an environment, one (or more) cars and finally call meth:`~Environment.simulate()`.hhuhh!h#h?h%}r>(h']h(]h)]h*]h,]uh.K>> import simpy >>> env = simpy.Environment() >>> car = Car(env) >>> env.run(until=15) Start parking and charging at 0 Start driving at 5 Start parking and charging at 7 Start driving at 12 Start parking and charging at 14hhuhh!h#j4h%}rP(j6j7h*]h)]h']h(]h,]uh.KAh/hh]rQh8X>>> import simpy >>> env = simpy.Environment() >>> car = Car(env) >>> env.run(until=15) Start parking and charging at 0 Start driving at 5 Start parking and charging at 7 Start driving at 12 Start parking and charging at 14rRrS}rT(hUhjNubaubeubh)rU}rV(hUhhhh!h#h$h%}rW(h']h(]h)]h*]rXhah,]rYhauh.KMh/hh]rZ(h1)r[}r\(hXInterrupting Another Processr]hjUhh!h#h5h%}r^(h']h(]h)]h*]h,]uh.KMh/hh]r_h8XInterrupting Another Processr`ra}rb(hj]hj[ubaubh<)rc}rd(hXImagine, you don't want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.rehjUhh!h#h?h%}rf(h']h(]h)]h*]h,]uh.KOh/hh]rgh8XImagine, you don't want to wait until your electric vehicle is fully charged but want to interrupt the charging process and just start driving instead.rhri}rj(hjehjcubaubh<)rk}rl(hXqSimPy allows you to interrupt a running process by calling its :meth:`~simpy.events.Process.interrupt()` method::hjUhh!h#h?h%}rm(h']h(]h)]h*]h,]uh.KRh/hh]rn(h8X?SimPy allows you to interrupt a running process by calling its rorp}rq(hX?SimPy allows you to interrupt a running process by calling its hjkubhE)rr}rs(hX):meth:`~simpy.events.Process.interrupt()`rthjkhh!h#hIh%}ru(UreftypeXmethhKhLXsimpy.events.Process.interruptU refdomainXpyrvh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.KRh]rwhT)rx}ry(hjth%}rz(h']h(]r{(hYjvXpy-methr|eh)]h*]h,]uhjrh]r}h8X interrupt()r~r}r(hUhjxubah#h_ubaubh8X method:rr}r(hX method:hjkubeubj1)r}r(hXU>>> def driver(env, car): ... yield env.timeout(3) ... car.action.interrupt()hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.KUh/hh]rh8XU>>> def driver(env, car): ... yield env.timeout(3) ... car.action.interrupt()rr}r(hUhjubaubh<)r}r(hXThe ``driver`` process has a reference to the car's ``run`` process. After waiting for 3 time steps, it interrupts that process.hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.KYh/hh]r(h8XThe rr}r(hXThe hjubhT)r}r(hX ``driver``h%}r(h']h(]h)]h*]h,]uhjh]rh8Xdriverrr}r(hUhjubah#h_ubh8X& process has a reference to the car's rr}r(hX& process has a reference to the car's hjubhT)r}r(hX``run``h%}r(h']h(]h)]h*]h,]uhjh]rh8Xrunrr}r(hUhjubah#h_ubh8XE process. After waiting for 3 time steps, it interrupts that process.rr}r(hXE process. After waiting for 3 time steps, it interrupts that process.hjubeubh<)r}r(hX Interrupts are thrown into process functions as :exc:`~simpy.events.Interrupt` exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event)::hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.K\h/hh]r(h8X0Interrupts are thrown into process functions as rr}r(hX0Interrupts are thrown into process functions as hjubhE)r}r(hX:exc:`~simpy.events.Interrupt`rhjhh!h#hIh%}r(UreftypeXexchKhLXsimpy.events.InterruptU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.K\h]rhT)r}r(hjh%}r(h']h(]r(hYjXpy-excreh)]h*]h,]uhjh]rh8X Interruptrr}r(hUhjubah#h_ubaubh8X exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):rr}r(hX exceptions that can (should) be handled by the interrupted process. The process can than decide what to do next (e.g., continuing to wait for the original event or yielding a new event):hjubeubj1)r}r(hX>>> class Car(object): ... def __init__(self, env): ... self.env = env ... self.action = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We may get interrupted while charging the battery ... try: ... yield env.process(self.charge(charge_duration)) ... except simpy.Interrupt: ... # When we received an interrupt, we stop charing and ... # switch to the "driving" state ... print('Was interrupted. Hope, the battery is full enough ...') ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.Kah/hh]rh8X>>> class Car(object): ... def __init__(self, env): ... self.env = env ... self.action = env.process(self.run()) ... ... def run(self): ... while True: ... print('Start parking and charging at %d' % env.now) ... charge_duration = 5 ... # We may get interrupted while charging the battery ... try: ... yield env.process(self.charge(charge_duration)) ... except simpy.Interrupt: ... # When we received an interrupt, we stop charing and ... # switch to the "driving" state ... print('Was interrupted. Hope, the battery is full enough ...') ... ... print('Start driving at %d' % env.now) ... trip_duration = 2 ... yield env.timeout(trip_duration) ... ... def charge(self, duration): ... yield self.env.timeout(duration)rr}r(hUhjubaubh<)r}r(hXWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time ``3`` instead of ``5``::hjUhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kyh/hh]r(h8XWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time rr}r(hXWhen you compare the output of this simulation with the previous example, you'll notice that the car now starts driving at time hjubhT)r}r(hX``3``h%}r(h']h(]h)]h*]h,]uhjh]rh8X3r}r(hUhjubah#h_ubh8X instead of rr}r(hX instead of hjubhT)r}r(hX``5``h%}r(h']h(]h)]h*]h,]uhjh]rh8X5r}r(hUhjubah#h_ubh8X:r}r(hX:hjubeubj1)r}r(hXH>>> env = simpy.Environment() >>> car = Car(env) >>> env.process(driver(env, car)) >>> env.run(until=15) Start parking and charging at 0 Was interrupted. Hope, the battery is full enough ... Start driving at 3 Start parking and charging at 5 Start driving at 10 Start parking and charging at 12hjUhh!h#j4h%}r(j6j7h*]h)]h']h(]h,]uh.K|h/hh]rh8XH>>> env = simpy.Environment() >>> car = Car(env) >>> env.process(driver(env, car)) >>> env.run(until=15) Start parking and charging at 0 Was interrupted. Hope, the battery is full enough ... Start driving at 3 Start parking and charging at 5 Start driving at 10 Start parking and charging at 12rr}r(hUhjubaubeubh)r}r(hUhhhh!h#h$h%}r(h']h(]h)]h*]rhah,]rhauh.Kh/hh]r(h1)r}r(hX What's Nextrhjhh!h#h5h%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh8X What's Nextrr}r(hjhjubaubh<)r}r(hXWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the :doc:`../topical_guides/index` or the :class:`~simpy.events.Process` API reference for more details.hjhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kh/hh]r(h8XWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the rr}r(hXWe just demonstrated two basic methods for process interactions---waiting for a process and interrupting a process. Take a look at the hjubhE)r}r(hX:doc:`../topical_guides/index`rhjhh!h#hIh%}r(UreftypeXdocrhKhLX../topical_guides/indexU refdomainUh*]h)]U refexplicith']h(]h,]hNhOuh.Kh]rhT)r}r(hjh%}r(h']h(]r(hYjeh)]h*]h,]uhjh]rh8X../topical_guides/indexrr}r(hUhjubah#h_ubaubh8X or the rr }r (hX or the hjubhE)r }r (hX:class:`~simpy.events.Process`r hjhh!h#hIh%}r(UreftypeXclasshKhLXsimpy.events.ProcessU refdomainXpyrh*]h)]U refexplicith']h(]h,]hNhOhPNhQhRuh.Kh]rhT)r}r(hj h%}r(h']h(]r(hYjXpy-classreh)]h*]h,]uhj h]rh8XProcessrr}r(hUhjubah#h_ubaubh8X API reference for more details.rr}r(hX API reference for more details.hjubeubh<)r}r(hX`In the :doc:`next section ` we will cover the basic usage of shared resources.hjhh!h#h?h%}r(h']h(]h)]h*]h,]uh.Kh/hh]r (h8XIn the r!r"}r#(hXIn the hjubhE)r$}r%(hX&:doc:`next section `r&hjhh!h#hIh%}r'(UreftypeXdocr(hKhLXshared_resourcesU refdomainUh*]h)]U refexplicith']h(]h,]hNhOuh.Kh]r)hT)r*}r+(hj&h%}r,(h']h(]r-(hYj(eh)]h*]h,]uhj$h]r.h8X next sectionr/r0}r1(hUhj*ubah#h_ubaubh8X3 we will cover the basic usage of shared resources.r2r3}r4(hX3 we will cover the basic usage of shared resources.hjubeubeubeubahUU transformerr5NU footnote_refsr6}r7Urefnamesr8}r9Usymbol_footnotesr:]r;Uautofootnote_refsr<]r=Usymbol_footnote_refsr>]r?U citationsr@]rAh/hU current_linerBNUtransform_messagesrC]rDUreporterrENUid_startrFKU autofootnotesrG]rHU citation_refsrI}rJUindirect_targetsrK]rLUsettingsrM(cdocutils.frontend Values rNorO}rP(Ufootnote_backlinksrQKUrecord_dependenciesrRNU rfc_base_urlrSUhttp://tools.ietf.org/html/rTU tracebackrUUpep_referencesrVNUstrip_commentsrWNU toc_backlinksrXUentryrYU language_coderZUenr[U datestampr\NU report_levelr]KU _destinationr^NU halt_levelr_KU strip_classesr`Nh5NUerror_encoding_error_handlerraUbackslashreplacerbUdebugrcNUembed_stylesheetrdUoutput_encoding_error_handlerreUstrictrfU sectnum_xformrgKUdump_transformsrhNU docinfo_xformriKUwarning_streamrjNUpep_file_url_templaterkUpep-%04drlUexit_status_levelrmKUconfigrnNUstrict_visitorroNUcloak_email_addressesrpUtrim_footnote_reference_spacerqUenvrrNUdump_pseudo_xmlrsNUexpose_internalsrtNUsectsubtitle_xformruU source_linkrvNUrfc_referencesrwNUoutput_encodingrxUutf-8ryU source_urlrzNUinput_encodingr{U utf-8-sigr|U_disable_configr}NU id_prefixr~UU tab_widthrKUerror_encodingrUasciirU_sourcerUS/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/process_interaction.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjfUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhuhjUhhhjuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PK{Ee d9##4simpy-3.0/.doctrees/simpy_intro/installation.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X installationqNXupgrading from simpy 2qNX what's nextqNXdownload simpyq Xpytestq Xpipq Xmockq uUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU installationqhUupgrading-from-simpy-2qhU what-s-nextqh Udownload-simpyqh Upytestqh Upipqh UmockquUchildrenq]qcdocutils.nodes section q)q }q!(U rawsourceq"UUparentq#hUsourceq$cdocutils.nodes reprunicode q%XL/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/installation.rstq&q'}q(bUtagnameq)Usectionq*U attributesq+}q,(Udupnamesq-]Uclassesq.]Ubackrefsq/]Uidsq0]q1haUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h"X Installationq:h#h h$h'h)Utitleq;h+}q<(h-]h.]h/]h0]h2]uh4Kh5hh]q=cdocutils.nodes Text q>X Installationq?q@}qA(h"h:h#h8ubaubcdocutils.nodes paragraph qB)qC}qD(h"XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have `pip `_ installed, just typeh#h h$h'h)U paragraphqEh+}qF(h-]h.]h/]h0]h2]uh4Kh5hh]qG(h>XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have qHqI}qJ(h"XSimPy is implemented in pure Python and has no dependencies. SimPy runs on Python 2 (>= 2.7) and Python 3 (>= 3.2). PyPy is also supported. If you have h#hCubcdocutils.nodes reference qK)qL}qM(h"X(`pip `_h+}qN(Unameh UrefuriqOXhttp://pypi.python.org/pypi/pipqPh0]h/]h-]h.]h2]uh#hCh]qQh>XpipqRqS}qT(h"Uh#hLubah)U referenceqUubcdocutils.nodes target qV)qW}qX(h"X" U referencedqYKh#hCh)UtargetqZh+}q[(UrefurihPh0]q\hah/]h-]h.]h2]q]h auh]ubh>X installed, just typeq^q_}q`(h"X installed, just typeh#hCubeubcdocutils.nodes literal_block qa)qb}qc(h"X$ pip install simpyh#h h$h'h)U literal_blockqdh+}qe(UlinenosqfUlanguageqgXbashU xml:spaceqhUpreserveqih0]h/]h-]h.]h2]uh4K h5hh]qjh>X$ pip install simpyqkql}qm(h"Uh#hbubaubhB)qn}qo(h"Xand you are done.qph#h h$h'h)hEh+}qq(h-]h.]h/]h0]h2]uh4K h5hh]qrh>Xand you are done.qsqt}qu(h"hph#hnubaubhB)qv}qw(h"XAlternatively, you can `download SimPy `_ and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:h#h h$h'h)hEh+}qx(h-]h.]h/]h0]h2]uh4Kh5hh]qy(h>XAlternatively, you can qzq{}q|(h"XAlternatively, you can h#hvubhK)q}}q~(h"X6`download SimPy `_h+}q(UnameXdownload SimPyhOX"http://pypi.python.org/pypi/SimPy/qh0]h/]h-]h.]h2]uh#hvh]qh>Xdownload SimPyqq}q(h"Uh#h}ubah)hUubhV)q}q(h"X% hYKh#hvh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>Xi and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:qq}q(h"Xi and install it manually. Extract the archive, open a terminal window where you extracted SimPy and type:h#hvubeubha)q}q(h"X$ python setup.py installh#h h$h'h)hdh+}q(hfhgXbashhhhih0]h/]h-]h.]h2]uh4Kh5hh]qh>X$ python setup.py installqq}q(h"Uh#hubaubhB)q}q(h"XYou can now optionally run SimPy's tests to see if everything works fine. You need `pytest `_ and `mock `_ for this:h#h h$h'h)hEh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]q(h>XSYou can now optionally run SimPy's tests to see if everything works fine. You need qq}q(h"XSYou can now optionally run SimPy's tests to see if everything works fine. You need h#hubhK)q}q(h"X`pytest `_h+}q(Unameh hOXhttp://pytest.orgqh0]h/]h-]h.]h2]uh#hh]qh>Xpytestqq}q(h"Uh#hubah)hUubhV)q}q(h"X hYKh#hh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>X and qq}q(h"X and h#hubhK)q}q(h"X2`mock `_h+}q(Unameh hOX(http://www.voidspace.org.uk/python/mock/qh0]h/]h-]h.]h2]uh#hh]qh>Xmockqq}q(h"Uh#hubah)hUubhV)q}q(h"X+ hYKh#hh)hZh+}q(Urefurihh0]qhah/]h-]h.]h2]qh auh]ubh>X for this:qq}q(h"X for this:h#hubeubha)q}q(h"X($ python -c "import simpy; simpy.test()"h#h h$h'h)hdh+}q(hfhgXbashhhhih0]h/]h-]h.]h2]uh4Kh5hh]qh>X($ python -c "import simpy; simpy.test()"qq}q(h"Uh#hubaubh)q}q(h"Uh#h h$h'h)h*h+}q(h-]h.]h/]h0]qhah2]qhauh4K!h5hh]q(h7)q}q(h"XUpgrading from SimPy 2qh#hh$h'h)h;h+}q(h-]h.]h/]h0]h2]uh4K!h5hh]qh>XUpgrading from SimPy 2qͅq}q(h"hh#hubaubhB)q}q(h"X[If you are already familiar with SimPy 2, please read the Guide :ref:`porting_from_simpy2`.h#hh$h'h)hEh+}q(h-]h.]h/]h0]h2]uh4K#h5hh]q(h>X@If you are already familiar with SimPy 2, please read the Guide qԅq}q(h"X@If you are already familiar with SimPy 2, please read the Guide h#hubcsphinx.addnodes pending_xref q)q}q(h"X:ref:`porting_from_simpy2`qh#hh$h'h)U pending_xrefqh+}q(UreftypeXrefUrefwarnq݈U reftargetqXporting_from_simpy2U refdomainXstdqh0]h/]U refexplicith-]h.]h2]UrefdocqXsimpy_intro/installationquh4K#h]qcdocutils.nodes emphasis q)q}q(h"hh+}q(h-]h.]q(UxrefqhXstd-refqeh/]h0]h2]uh#hh]qh>Xporting_from_simpy2q녁q}q(h"Uh#hubah)Uemphasisqubaubh>X.q}q(h"X.h#hubeubeubh)q}q(h"Uh#h h$h'h)h*h+}q(h-]h.]h/]h0]qhah2]qhauh4K(h5hh]q(h7)q}q(h"X What's Nextqh#hh$h'h)h;h+}q(h-]h.]h/]h0]h2]uh4K(h5hh]qh>X What's Nextqq}q(h"hh#hubaubhB)q}r(h"XNow that you've installed SimPy, you probably want to simulate something. The :ref:`next section ` will introduce you to SimPy's basic concepts.h#hh$h'h)hEh+}r(h-]h.]h/]h0]h2]uh4K*h5hh]r(h>XNNow that you've installed SimPy, you probably want to simulate something. The rr}r(h"XNNow that you've installed SimPy, you probably want to simulate something. The h#hubh)r}r(h"X$:ref:`next section `rh#hh$h'h)hh+}r (UreftypeXrefh݈hXbasic_conceptsU refdomainXstdr h0]h/]U refexplicith-]h.]h2]hhuh4K*h]r h)r }r (h"jh+}r(h-]h.]r(hj Xstd-refreh/]h0]h2]uh#jh]rh>X next sectionrr}r(h"Uh#j ubah)hubaubh>X. will introduce you to SimPy's basic concepts.rr}r(h"X. will introduce you to SimPy's basic concepts.h#hubeubeubeubah"UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]r Usymbol_footnote_refsr!]r"U citationsr#]r$h5hU current_liner%NUtransform_messagesr&]r'Ureporterr(NUid_startr)KU autofootnotesr*]r+U citation_refsr,}r-Uindirect_targetsr.]r/Usettingsr0(cdocutils.frontend Values r1or2}r3(Ufootnote_backlinksr4KUrecord_dependenciesr5NU rfc_base_urlr6Uhttp://tools.ietf.org/html/r7U tracebackr8Upep_referencesr9NUstrip_commentsr:NU toc_backlinksr;Uentryr<U language_coder=Uenr>U datestampr?NU report_levelr@KU _destinationrANU halt_levelrBKU strip_classesrCNh;NUerror_encoding_error_handlerrDUbackslashreplacerEUdebugrFNUembed_stylesheetrGUoutput_encoding_error_handlerrHUstrictrIU sectnum_xformrJKUdump_transformsrKNU docinfo_xformrLKUwarning_streamrMNUpep_file_url_templaterNUpep-%04drOUexit_status_levelrPKUconfigrQNUstrict_visitorrRNUcloak_email_addressesrSUtrim_footnote_reference_spacerTUenvrUNUdump_pseudo_xmlrVNUexpose_internalsrWNUsectsubtitle_xformrXU source_linkrYNUrfc_referencesrZNUoutput_encodingr[Uutf-8r\U source_urlr]NUinput_encodingr^U utf-8-sigr_U_disable_configr`NU id_prefixraUU tab_widthrbKUerror_encodingrcUasciirdU_sourcereUL/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/installation.rstrfUgettext_compactrgU generatorrhNUdump_internalsriNU smart_quotesrjU pep_base_urlrkUhttp://www.python.org/dev/peps/rlUsyntax_highlightrmUlongrnUinput_encoding_error_handlerrojIUauto_id_prefixrpUidrqUdoctitle_xformrrUstrip_elements_with_classesrsNU _config_filesrt]Ufile_insertion_enabledruU raw_enabledrvKU dump_settingsrwNubUsymbol_footnote_startrxKUidsry}rz(hh hhhhhhhhWhhhhuUsubstitution_namesr{}r|h)h5h+}r}(h-]h0]h/]Usourceh'h.]h2]uU footnotesr~]rUrefidsr}rub.PK{E5  6simpy-3.0/.doctrees/simpy_intro/how_to_proceed.doctreecdocutils.nodes document q)q}q(U nametypesq}qXhow to proceedqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUhow-to-proceedqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXN/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/how_to_proceed.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXHow to Proceedq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XHow to Proceedq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various :doc:`examples <../examples/index>` we provide.hhhhhU paragraphq9h}q:(h!]h"]h#]h$]h&]uh(Kh)hh]q;(h2XIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various q(hXIf you are not certain yet if SimPy fulfills your requirements or if you want to see more features in action, you should take a look at the various hh7ubcsphinx.addnodes pending_xref q?)q@}qA(hX#:doc:`examples <../examples/index>`qBhh7hhhU pending_xrefqCh}qD(UreftypeXdocqEUrefwarnqFU reftargetqGX../examples/indexU refdomainUh$]h#]U refexplicith!]h"]h&]UrefdocqHXsimpy_intro/how_to_proceedqIuh(Kh]qJcdocutils.nodes literal qK)qL}qM(hhBh}qN(h!]h"]qO(UxrefqPhEeh#]h$]h&]uhh@h]qQh2XexamplesqRqS}qT(hUhhLubahUliteralqUubaubh2X we provide.qVqW}qX(hX we provide.hh7ubeubh6)qY}qZ(hXIf you are looking for a more detailed description of a certain aspect or feature of SimPy, the :doc:`Topical Guides <../topical_guides/index>` section might help you.hhhhhh9h}q[(h!]h"]h#]h$]h&]uh(K h)hh]q\(h2X`If you are looking for a more detailed description of a certain aspect or feature of SimPy, the q]q^}q_(hX`If you are looking for a more detailed description of a certain aspect or feature of SimPy, the hhYubh?)q`}qa(hX/:doc:`Topical Guides <../topical_guides/index>`qbhhYhhhhCh}qc(UreftypeXdocqdhFhGX../topical_guides/indexU refdomainUh$]h#]U refexplicith!]h"]h&]hHhIuh(K h]qehK)qf}qg(hhbh}qh(h!]h"]qi(hPhdeh#]h$]h&]uhh`h]qjh2XTopical Guidesqkql}qm(hUhhfubahhUubaubh2X section might help you.qnqo}qp(hX section might help you.hhYubeubh6)qq}qr(hX{Finally, there is an :doc:`API Reference <../api_reference/index>` that describes all functions and classes in full detail.hhhhhh9h}qs(h!]h"]h#]h$]h&]uh(K h)hh]qt(h2XFinally, there is an quqv}qw(hXFinally, there is an hhqubh?)qx}qy(hX-:doc:`API Reference <../api_reference/index>`qzhhqhhhhCh}q{(UreftypeXdocq|hFhGX../api_reference/indexU refdomainUh$]h#]U refexplicith!]h"]h&]hHhIuh(K h]q}hK)q~}q(hhzh}q(h!]h"]q(hPh|eh#]h$]h&]uhhxh]qh2X API Referenceqq}q(hUhh~ubahhUubaubh2X9 that describes all functions and classes in full detail.qq}q(hX9 that describes all functions and classes in full detail.hhqubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqĈUtrim_footnote_reference_spaceqʼnUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqɉU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUN/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/how_to_proceed.rstqUgettext_compactq؈U generatorqNUdump_internalsqNU smart_quotesqۉU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{E b-simpy-3.0/.doctrees/simpy_intro/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qXsimpy in 10 minutesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUsimpy-in-10-minutesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXE/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXSimPy in 10 Minutesq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XSimPy in 10 Minutesq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hX5In this section, you'll learn the basics of SimPy in just a few minutes. Afterwards, you will be able to implement a simple simulation using SimPy and you'll be able to make an educated decision if SimPy is what you need. We'll also give you some hints on how to proceed to implement more complex simulations.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Nh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXsimpy_intro/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NXsimpy_intro/installationqTqUNXsimpy_intro/basic_conceptsqVqWNXsimpy_intro/process_interactionqXqYNXsimpy_intro/shared_resourcesqZq[NXsimpy_intro/how_to_proceedq\q]eUhiddenq^U includefilesq_]q`(hThVhXhZh\eUmaxdepthqaKuh(K h]ubaubcdocutils.nodes comment qb)qc}qd(hX monitoringhhhhhUcommentqeh}qf(U xml:spaceqgUpreserveqhh$]h#]h!]h"]h&]uh(Kh)hh]qih2X monitoringqjqk}ql(hUhhcubaubeubahUU transformerqmNU footnote_refsqn}qoUrefnamesqp}qqUsymbol_footnotesqr]qsUautofootnote_refsqt]quUsymbol_footnote_refsqv]qwU citationsqx]qyh)hU current_lineqzNUtransform_messagesq{]q|Ureporterq}NUid_startq~KU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUE/var/build/user_builds/simpy/checkouts/3.0/docs/simpy_intro/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqljUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqʈU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{Et\54544simpy-3.0/.doctrees/api_reference/simpy.util.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.util.subscribe_atqX*simpy.util --- utility functions for simpyqNXsimpy.util.start_delayedquUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hhhU&simpy-util-utility-functions-for-simpyqhhuUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXL/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.util.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'(Xmodule-simpy.utilq(heUnamesq)]q*hauUlineq+KUdocumentq,hh]q-(cdocutils.nodes title q.)q/}q0(hX.``simpy.util`` --- Utility functions for SimPyq1hhhhhUtitleq2h!}q3(h#]h$]h%]h&]h)]uh+Kh,hh]q4(cdocutils.nodes literal q5)q6}q7(hX``simpy.util``q8h!}q9(h#]h$]h%]h&]h)]uhh/h]q:cdocutils.nodes Text q;X simpy.utilq(hUhh6ubahUliteralq?ubh;X --- Utility functions for SimPyq@qA}qB(hX --- Utility functions for SimPyqChh/ubeubcsphinx.addnodes index qD)qE}qF(hUhhhU qGhUindexqHh!}qI(h&]h%]h#]h$]h)]Uentries]qJ(UsingleqKXsimpy.util (module)Xmodule-simpy.utilUtqLauh+Kh,hh]ubcdocutils.nodes paragraph qM)qN}qO(hX0This modules contains various utility functions:qPhhhXP/var/build/user_builds/simpy/checkouts/3.0/simpy/util.py:docstring of simpy.utilqQhU paragraphqRh!}qS(h#]h$]h%]h&]h)]uh+Kh,hh]qTh;X0This modules contains various utility functions:qUqV}qW(hhPhhNubaubcdocutils.nodes bullet_list qX)qY}qZ(hUhhhhQhU bullet_listq[h!}q\(Ubulletq]X-h&]h%]h#]h$]h)]uh+Kh,hh]q^(cdocutils.nodes list_item q_)q`}qa(hX<:func:`start_delayed()`: Start a process with a given delay.qbhhYhhQhU list_itemqch!}qd(h#]h$]h%]h&]h)]uh+Nh,hh]qehM)qf}qg(hhbhh`hhQhhRh!}qh(h#]h$]h%]h&]h)]uh+Kh]qi(csphinx.addnodes pending_xref qj)qk}ql(hX:func:`start_delayed()`qmhhfhhhU pending_xrefqnh!}qo(UreftypeXfuncUrefwarnqpU reftargetqqX start_delayedU refdomainXpyqrh&]h%]U refexplicith#]h$]h)]UrefdocqsXapi_reference/simpy.utilqtUpy:classquNU py:moduleqvX simpy.utilqwuh+Kh]qxh5)qy}qz(hhmh!}q{(h#]h$]q|(Uxrefq}hrXpy-funcq~eh%]h&]h)]uhhkh]qh;Xstart_delayed()qq}q(hUhhyubahh?ubaubh;X%: Start a process with a given delay.qq}q(hX%: Start a process with a given delay.hhfubeubaubh_)q}q(hXB:func:`subscribe_at()`: Receive an interrupt if an event occurs. hhYhhGhhch!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qhM)q}q(hX@:func:`subscribe_at()`: Receive an interrupt if an event occurs.hhhhQhhRh!}q(h#]h$]h%]h&]h)]uh+Kh]q(hj)q}q(hX:func:`subscribe_at()`qhhhhhhnh!}q(UreftypeXfunchphqX subscribe_atU refdomainXpyqh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Kh]qh5)q}q(hhh!}q(h#]h$]q(h}hXpy-funcqeh%]h&]h)]uhhh]qh;Xsubscribe_at()qq}q(hUhhubahh?ubaubh;X*: Receive an interrupt if an event occurs.qq}q(hX*: Receive an interrupt if an event occurs.hhubeubaubeubhD)q}q(hUhhhX^/var/build/user_builds/simpy/checkouts/3.0/simpy/util.py:docstring of simpy.util.start_delayedqhhHh!}q(h&]h%]h#]h$]h)]Uentries]q(hKX&start_delayed() (in module simpy.util)hUtqauh+Nh,hh]ubcsphinx.addnodes desc q)q}q(hUhhhhhUdescqh!}q(UnoindexqUdomainqXpyh&]h%]h#]h$]h)]UobjtypeqXfunctionqUdesctypeqhuh+Nh,hh]q(csphinx.addnodes desc_signature q)q}q(hX$start_delayed(env, generator, delay)hhhU qhUdesc_signatureqh!}q(h&]qhaUmoduleqhX simpy.utilqq}qbh%]h#]h$]h)]qhaUfullnameqX start_delayedqUclassqUUfirstquh+Nh,hh]q(csphinx.addnodes desc_addname q)q}q(hX simpy.util.hhhhhU desc_addnameqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qh;X simpy.util.qȅq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhhhhhhU desc_nameqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]qh;X start_delayedqхq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhhhhUdesc_parameterlistqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]q(csphinx.addnodes desc_parameter q)q}q(hXenvh!}q(h#]h$]h%]h&]h)]uhhh]qh;Xenvq߅q}q(hUhhubahUdesc_parameterqubh)q}q(hX generatorh!}q(h#]h$]h%]h&]h)]uhhh]qh;X generatorq煁q}q(hUhhubahhubh)q}q(hXdelayh!}q(h#]h$]h%]h&]h)]uhhh]qh;Xdelayqq}q(hUhhubahhubeubeubcsphinx.addnodes desc_content q)q}q(hUhhhhhU desc_contentqh!}q(h#]h$]h%]h&]h)]uh+Nh,hh]q(hM)q}q(hX\Return a helper process that starts another process for *generator* after a certain *delay*.hhhhhhRh!}q(h#]h$]h%]h&]h)]uh+Kh,hh]q(h;X8Return a helper process that starts another process for qq}q(hX8Return a helper process that starts another process for hhubcdocutils.nodes emphasis q)q}r(hX *generator*h!}r(h#]h$]h%]h&]h)]uhhh]rh;X generatorrr}r(hUhhubahUemphasisrubh;X after a certain rr}r (hX after a certain hhubh)r }r (hX*delay*h!}r (h#]h$]h%]h&]h)]uhhh]r h;Xdelayrr}r(hUhj ubahjubh;X.r}r(hX.hhubeubhM)r}r(hX:meth:`~simpy.core.Environment.process()` starts a process at the current simulation time. This helper allows you to start a process after a delay of *delay* simulation time units::hhhhhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(hj)r}r(hX):meth:`~simpy.core.Environment.process()`rhjhNhhnh!}r(UreftypeXmethhphqXsimpy.core.Environment.processU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r (h}jXpy-methr!eh%]h&]h)]uhjh]r"h;X process()r#r$}r%(hUhjubahh?ubaubh;Xm starts a process at the current simulation time. This helper allows you to start a process after a delay of r&r'}r((hXm starts a process at the current simulation time. This helper allows you to start a process after a delay of hjubh)r)}r*(hX*delay*h!}r+(h#]h$]h%]h&]h)]uhjh]r,h;Xdelayr-r.}r/(hUhj)ubahjubh;X simulation time units:r0r1}r2(hX simulation time units:hjubeubcdocutils.nodes literal_block r3)r4}r5(hX>>> from simpy import Environment >>> from simpy.util import start_delayed >>> def my_process(env, x): ... print('%s, %s' % (env.now, x)) ... yield env.timeout(1) ... >>> env = Environment() >>> proc = start_delayed(env, my_process(env, 3), 5) >>> env.run() 5, 3hhhhhU literal_blockr6h!}r7(U xml:spacer8Upreserver9h&]h%]h#]h$]h)]uh+Kh,hh]r:h;X>>> from simpy import Environment >>> from simpy.util import start_delayed >>> def my_process(env, x): ... print('%s, %s' % (env.now, x)) ... yield env.timeout(1) ... >>> env = Environment() >>> proc = start_delayed(env, my_process(env, 3), 5) >>> env.run() 5, 3r;r<}r=(hUhj4ubaubhM)r>}r?(hX,Raise a :exc:`ValueError` if ``delay <= 0``.hhhhhhRh!}r@(h#]h$]h%]h&]h)]uh+Kh,hh]rA(h;XRaise a rBrC}rD(hXRaise a hj>ubhj)rE}rF(hX:exc:`ValueError`rGhj>hNhhnh!}rH(UreftypeXexchphqX ValueErrorU refdomainXpyrIh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rJh5)rK}rL(hjGh!}rM(h#]h$]rN(h}jIXpy-excrOeh%]h&]h)]uhjEh]rPh;X ValueErrorrQrR}rS(hUhjKubahh?ubaubh;X if rTrU}rV(hX if hj>ubh5)rW}rX(hX``delay <= 0``h!}rY(h#]h$]h%]h&]h)]uhj>h]rZh;X delay <= 0r[r\}r](hUhjWubahh?ubh;X.r^}r_(hX.hj>ubeubeubeubhD)r`}ra(hUhhhX]/var/build/user_builds/simpy/checkouts/3.0/simpy/util.py:docstring of simpy.util.subscribe_atrbhhHh!}rc(h&]h%]h#]h$]h)]Uentries]rd(hKX%subscribe_at() (in module simpy.util)hUtreauh+Nh,hh]ubh)rf}rg(hUhhhjbhhh!}rh(hhXpyh&]h%]h#]h$]h)]hXfunctionrihjiuh+Nh,hh]rj(h)rk}rl(hXsubscribe_at(event)rmhjfhhhhh!}rn(h&]rohahhX simpy.utilrprq}rrbh%]h#]h$]h)]rshahX subscribe_atrthUhuh+Nh,hh]ru(h)rv}rw(hX simpy.util.hjkhhhhh!}rx(h#]h$]h%]h&]h)]uh+Nh,hh]ryh;X simpy.util.rzr{}r|(hUhjvubaubh)r}}r~(hjthjkhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]rh;X subscribe_atrr}r(hUhj}ubaubh)r}r(hUhjkhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]rh)r}r(hXeventh!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahhubaubeubh)r}r(hUhjfhhhhh!}r(h#]h$]h%]h&]h)]uh+Nh,hh]r(hM)r}r(hX?Register at the *event* to receive an interrupt when it occurs.rhjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;XRegister at the rr}r(hXRegister at the hjubh)r}r(hX*event*h!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahjubh;X( to receive an interrupt when it occurs.rr}r(hX( to receive an interrupt when it occurs.hjubeubhM)r}r(hXqThe most common use case for this is to pass a :class:`~simpy.events.Process` to get notified when it terminates.hjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;X/The most common use case for this is to pass a rr}r(hX/The most common use case for this is to pass a hjubhj)r}r(hX:class:`~simpy.events.Process`rhjhNhhnh!}r(UreftypeXclasshphqXsimpy.events.ProcessU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r(h}jXpy-classreh%]h&]h)]uhjh]rh;XProcessrr}r(hUhjubahh?ubaubh;X$ to get notified when it terminates.rr}r(hX$ to get notified when it terminates.hjubeubhM)r}r(hX>Raise a :exc:`RuntimeError` if ``event`` has already occurred.rhjhjbhhRh!}r(h#]h$]h%]h&]h)]uh+Kh,hh]r(h;XRaise a rr}r(hXRaise a hjubhj)r}r(hX:exc:`RuntimeError`rhjhNhhnh!}r(UreftypeXexchphqX RuntimeErrorU refdomainXpyrh&]h%]U refexplicith#]h$]h)]hshthuNhvhwuh+Nh]rh5)r}r(hjh!}r(h#]h$]r(h}jXpy-excreh%]h&]h)]uhjh]rh;X RuntimeErrorrr}r(hUhjubahh?ubaubh;X if rr}r(hX if hjubh5)r}r(hX ``event``h!}r(h#]h$]h%]h&]h)]uhjh]rh;Xeventrr}r(hUhjubahh?ubh;X has already occurred.rr}r(hX has already occurred.hjubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh,hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr Nh2NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlr NUexpose_internalsr!NUsectsubtitle_xformr"U source_linkr#NUrfc_referencesr$NUoutput_encodingr%Uutf-8r&U source_urlr'NUinput_encodingr(U utf-8-sigr)U_disable_configr*NU id_prefixr+UU tab_widthr,KUerror_encodingr-Uasciir.U_sourcer/UL/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.util.rstr0Ugettext_compactr1U generatorr2NUdump_internalsr3NU smart_quotesr4U pep_base_urlr5Uhttp://www.python.org/dev/peps/r6Usyntax_highlightr7Ulongr8Uinput_encoding_error_handlerr9jUauto_id_prefixr:Uidr;Udoctitle_xformr<Ustrip_elements_with_classesr=NU _config_filesr>]Ufile_insertion_enabledr?U raw_enabledr@KU dump_settingsrANubUsymbol_footnote_startrBKUidsrC}rD(hjkhhh(cdocutils.nodes target rE)rF}rG(hUhhhhGhUtargetrHh!}rI(h#]h&]rJh(ah%]Uismodh$]h)]uh+Kh,hh]ubhhuUsubstitution_namesrK}rLhh,h!}rM(h#]h&]h%]Usourcehh$]h)]uU footnotesrN]rOUrefidsrP}rQub.PK{E+^%^%6simpy-3.0/.doctrees/api_reference/simpy.events.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.events.ProcessqXsimpy.events.AnyOfqX!simpy.events.Condition.any_eventsqXsimpy.events.Event.succeedq Xsimpy.events.Interruptq Xsimpy.events.Interrupt.causeq Xsimpy.events.Event.valueq Xsimpy.events.AllOfq Xsimpy.events.Event.envqXsimpy.events.TimeoutqXsimpy.events.Event.callbacksqXsimpy.events.Process.targetqXsimpy.events.NORMALqXsimpy.events.ConditionqXsimpy.events.Event.failqXsimpy.events.EventqXsimpy.events.InitializeqXsimpy.events.Event.processedqXsimpy.events.PENDINGqXsimpy.events.Event.triggeredqX!simpy.events --- core event typesqNXsimpy.events.URGENTqX!simpy.events.Condition.all_eventsqXsimpy.events.Process.interruptqXsimpy.events.Process.is_aliveqXsimpy.events.Event.triggerquUsubstitution_defsq }q!Uparse_messagesq"]q#Ucurrent_sourceq$NU decorationq%NUautofootnote_startq&KUnameidsq'}q((hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhUsimpy-events-core-event-typesq)hhhhhhhhhhuUchildrenq*]q+cdocutils.nodes section q,)q-}q.(U rawsourceq/UUparentq0hUsourceq1cdocutils.nodes reprunicode q2XN/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.events.rstq3q4}q5bUtagnameq6Usectionq7U attributesq8}q9(Udupnamesq:]Uclassesq;]Ubackrefsq<]Uidsq=]q>(Xmodule-simpy.eventsq?h)eUnamesq@]qAhauUlineqBKUdocumentqChh*]qD(cdocutils.nodes title qE)qF}qG(h/X%``simpy.events`` --- Core event typesqHh0h-h1h4h6UtitleqIh8}qJ(h:]h;]h<]h=]h@]uhBKhChh*]qK(cdocutils.nodes literal qL)qM}qN(h/X``simpy.events``qOh8}qP(h:]h;]h<]h=]h@]uh0hFh*]qQcdocutils.nodes Text qRX simpy.eventsqSqT}qU(h/Uh0hMubah6UliteralqVubhRX --- Core event typesqWqX}qY(h/X --- Core event typesqZh0hFubeubcsphinx.addnodes index q[)q\}q](h/Uh0h-h1U q^h6Uindexq_h8}q`(h=]h<]h:]h;]h@]Uentries]qa(UsingleqbXsimpy.events (module)Xmodule-simpy.eventsUtqcauhBKhChh*]ubcdocutils.nodes paragraph qd)qe}qf(h/XLThis *events* module contains the various event type used by the SimPy core.qgh0h-h1XT/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.eventsqhh6U paragraphqih8}qj(h:]h;]h<]h=]h@]uhBKhChh*]qk(hRXThis qlqm}qn(h/XThis h0heubcdocutils.nodes emphasis qo)qp}qq(h/X*events*h8}qr(h:]h;]h<]h=]h@]uh0heh*]qshRXeventsqtqu}qv(h/Uh0hpubah6UemphasisqwubhRX? module contains the various event type used by the SimPy core.qxqy}qz(h/X? module contains the various event type used by the SimPy core.h0heubeubhd)q{}q|(h/XThe base class for all events is :class:`Event`. Though it can be directly used, there are several specialized subclasses of it:h0h-h1hhh6hih8}q}(h:]h;]h<]h=]h@]uhBKhChh*]q~(hRX!The base class for all events is qq}q(h/X!The base class for all events is h0h{ubcsphinx.addnodes pending_xref q)q}q(h/X:class:`Event`qh0h{h1h4h6U pending_xrefqh8}q(UreftypeXclassUrefwarnqU reftargetqXEventU refdomainXpyqh=]h<]U refexplicith:]h;]h@]UrefdocqXapi_reference/simpy.eventsqUpy:classqNU py:moduleqX simpy.eventsquhBKh*]qhL)q}q(h/hh8}q(h:]h;]q(UxrefqhXpy-classqeh<]h=]h@]uh0hh*]qhRXEventqq}q(h/Uh0hubah6hVubaubhRXQ. Though it can be directly used, there are several specialized subclasses of it:qq}q(h/XQ. Though it can be directly used, there are several specialized subclasses of it:h0h{ubeubcdocutils.nodes bullet_list q)q}q(h/Uh0h-h1hhh6U bullet_listqh8}q(UbulletqX-h=]h<]h:]h;]h@]uhBKhChh*]q(cdocutils.nodes list_item q)q}q(h/Xv:class:`Timeout`: is scheduled with a certain delay and lets processes hold their state for a certain amount of time. h0hh1hhh6U list_itemqh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/Xu:class:`Timeout`: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBKh*]q(h)q}q(h/X:class:`Timeout`qh0hh1Nh6hh8}q(UreftypeXclasshhXTimeoutU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXTimeoutqq}q(h/Uh0hubah6hVubaubhRXe: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.qq}q(h/Xe: is scheduled with a certain delay and lets processes hold their state for a certain amount of time.h0hubeubaubh)q}q(h/X9:class:`Initialize`: Initializes a new :class:`Process`. h0hh1hhh6hh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/X8:class:`Initialize`: Initializes a new :class:`Process`.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBK h*]q(h)q}q(h/X:class:`Initialize`qh0hh1Nh6hh8}q(UreftypeXclasshhX InitializeU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRX InitializeqՅq}q(h/Uh0hubah6hVubaubhRX: Initializes a new q؅q}q(h/X: Initializes a new h0hubh)q}q(h/X:class:`Process`qh0hh1Nh6hh8}q(UreftypeXclasshhXProcessU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXProcessq煁q}q(h/Uh0hubah6hVubaubhRX.q}q(h/X.h0hubeubaubh)q}q(h/Xq:class:`Process`: Processes are also modeled as an event so other processes can wait until another one finishes. h0hh1hhh6hh8}q(h:]h;]h<]h=]h@]uhBNhChh*]qhd)q}q(h/Xp:class:`Process`: Processes are also modeled as an event so other processes can wait until another one finishes.h0hh1hhh6hih8}q(h:]h;]h<]h=]h@]uhBK h*]q(h)q}q(h/X:class:`Process`qh0hh1Nh6hh8}q(UreftypeXclasshhXProcessU refdomainXpyqh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]qhL)q}q(h/hh8}q(h:]h;]q(hhXpy-classqeh<]h=]h@]uh0hh*]qhRXProcessrr}r(h/Uh0hubah6hVubaubhRX`: Processes are also modeled as an event so other processes can wait until another one finishes.rr}r(h/X`: Processes are also modeled as an event so other processes can wait until another one finishes.h0hubeubaubh)r}r(h/X:class:`Condition`: Events can be concatenated with ``|`` an ``&`` to either wait until one or both of the events are triggered. h0hh1hhh6hh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X:class:`Condition`: Events can be concatenated with ``|`` an ``&`` to either wait until one or both of the events are triggered.h0jh1hhh6hih8}r (h:]h;]h<]h=]h@]uhBKh*]r (h)r}r(h/X:class:`Condition`rh0j h1Nh6hh8}r(UreftypeXclasshhX ConditionU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRX Conditionrr}r(h/Uh0jubah6hVubaubhRX": Events can be concatenated with rr}r(h/X": Events can be concatenated with h0j ubhL)r }r!(h/X``|``h8}r"(h:]h;]h<]h=]h@]uh0j h*]r#hRX|r$}r%(h/Uh0j ubah6hVubhRX an r&r'}r((h/X an h0j ubhL)r)}r*(h/X``&``h8}r+(h:]h;]h<]h=]h@]uh0j h*]r,hRX&r-}r.(h/Uh0j)ubah6hVubhRX> to either wait until one or both of the events are triggered.r/r0}r1(h/X> to either wait until one or both of the events are triggered.h0j ubeubaubh)r2}r3(h/Xd:class:`AllOf`: Special case of :class:`Condition`; wait until a list of events has been triggered. h0hh1hhh6hh8}r4(h:]h;]h<]h=]h@]uhBNhChh*]r5hd)r6}r7(h/Xc:class:`AllOf`: Special case of :class:`Condition`; wait until a list of events has been triggered.h0j2h1hhh6hih8}r8(h:]h;]h<]h=]h@]uhBKh*]r9(h)r:}r;(h/X:class:`AllOf`r<h0j6h1Nh6hh8}r=(UreftypeXclasshhXAllOfU refdomainXpyr>h=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]r?hL)r@}rA(h/j<h8}rB(h:]h;]rC(hj>Xpy-classrDeh<]h=]h@]uh0j:h*]rEhRXAllOfrFrG}rH(h/Uh0j@ubah6hVubaubhRX: Special case of rIrJ}rK(h/X: Special case of h0j6ubh)rL}rM(h/X:class:`Condition`rNh0j6h1Nh6hh8}rO(UreftypeXclasshhX ConditionU refdomainXpyrPh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rQhL)rR}rS(h/jNh8}rT(h:]h;]rU(hjPXpy-classrVeh<]h=]h@]uh0jLh*]rWhRX ConditionrXrY}rZ(h/Uh0jRubah6hVubaubhRX1; wait until a list of events has been triggered.r[r\}r](h/X1; wait until a list of events has been triggered.h0j6ubeubaubh)r^}r_(h/Xk:class:`AnyOf`: Special case of :class:`Condition`; wait until one of a list of events has been triggered. h0hh1hhh6hh8}r`(h:]h;]h<]h=]h@]uhBNhChh*]rahd)rb}rc(h/Xj:class:`AnyOf`: Special case of :class:`Condition`; wait until one of a list of events has been triggered.h0j^h1hhh6hih8}rd(h:]h;]h<]h=]h@]uhBKh*]re(h)rf}rg(h/X:class:`AnyOf`rhh0jbh1Nh6hh8}ri(UreftypeXclasshhXAnyOfU refdomainXpyrjh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rkhL)rl}rm(h/jhh8}rn(h:]h;]ro(hjjXpy-classrpeh<]h=]h@]uh0jfh*]rqhRXAnyOfrrrs}rt(h/Uh0jlubah6hVubaubhRX: Special case of rurv}rw(h/X: Special case of h0jbubh)rx}ry(h/X:class:`Condition`rzh0jbh1Nh6hh8}r{(UreftypeXclasshhX ConditionU refdomainXpyr|h=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]r}hL)r~}r(h/jzh8}r(h:]h;]r(hj|Xpy-classreh<]h=]h@]uh0jxh*]rhRX Conditionrr}r(h/Uh0j~ubah6hVubaubhRX8; wait until one of a list of events has been triggered.rr}r(h/X8; wait until one of a list of events has been triggered.h0jbubeubaubeubhd)r}r(h/X8This module also defines the :exc:`Interrupt` exception.rh0h-h1hhh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXThis module also defines the rr}r(h/XThis module also defines the h0jubh)r}r(h/X:exc:`Interrupt`rh0jh1Nh6hh8}r(UreftypeXexchhX InterruptU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhNhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX Interruptrr}r(h/Uh0jubah6hVubaubhRX exception.rr}r(h/X exception.h0jubeubh[)r}r(h/Uh0h-h1X\/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.PENDINGrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX PENDING (in module simpy.events)hUtrauhBNhChh*]ubcsphinx.addnodes desc r)r}r(h/Uh0h-h1jh6Udescrh8}r(UnoindexrUdomainrXpyh=]h<]h:]h;]h@]UobjtyperXdatarUdesctyperjuhBNhChh*]r(csphinx.addnodes desc_signature r)r}r(h/XPENDINGrh0jh1U rh6Udesc_signaturerh8}r(h=]rhaUmodulerh2X simpy.eventsrr}rbh<]h:]h;]h@]rhaUfullnamerjUclassrUUfirstruhBNhChh*]r(csphinx.addnodes desc_addname r)r}r(h/X simpy.events.h0jh1jh6U desc_addnamerh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubcsphinx.addnodes desc_name r)r}r(h/jh0jh1jh6U desc_namerh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXPENDINGrr}r(h/Uh0jubaubcsphinx.addnodes desc_annotation r)r}r(h/X$ = h0jh1jh6Udesc_annotationrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX$ = rr}r(h/Uh0jubaubeubcsphinx.addnodes desc_content r)r}r(h/Uh0jh1jh6U desc_contentrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X3Unique object to identify pending values of events.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX3Unique object to identify pending values of events.rr}r(h/jh0jubaubaubeubh[)r}r(h/Uh0h-h1X[/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.URGENTrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbXURGENT (in module simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXdatarjjuhBNhChh*]r(j)r}r(h/XURGENTrh0jh1jh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajjjUjuhBNhChh*]r(j)r}r(h/X simpy.events.h0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr }r (h/Uh0jubaubj)r }r (h/jh0jh1jh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]rhRXURGENTrr}r(h/Uh0j ubaubj)r}r(h/X = 0h0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX = 0rr}r(h/Uh0jubaubeubj)r}r(h/Uh0jh1jh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X9Priority of interrupts and process initialization events.rh0jh1jh6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r!hRX9Priority of interrupts and process initialization events.r"r#}r$(h/jh0jubaubaubeubh[)r%}r&(h/Uh0h-h1X[/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.NORMALr'h6h_h8}r((h=]h<]h:]h;]h@]Uentries]r)(hbXNORMAL (in module simpy.events)hUtr*auhBNhChh*]ubj)r+}r,(h/Uh0h-h1j'h6jh8}r-(jjXpyh=]h<]h:]h;]h@]jXdatar.jj.uhBNhChh*]r/(j)r0}r1(h/XNORMALr2h0j+h1jh6jh8}r3(h=]r4hajh2X simpy.eventsr5r6}r7bh<]h:]h;]h@]r8hajj2jUjuhBNhChh*]r9(j)r:}r;(h/X simpy.events.h0j0h1jh6jh8}r<(h:]h;]h<]h=]h@]uhBNhChh*]r=hRX simpy.events.r>r?}r@(h/Uh0j:ubaubj)rA}rB(h/j2h0j0h1jh6jh8}rC(h:]h;]h<]h=]h@]uhBNhChh*]rDhRXNORMALrErF}rG(h/Uh0jAubaubj)rH}rI(h/X = 1h0j0h1jh6jh8}rJ(h:]h;]h<]h=]h@]uhBNhChh*]rKhRX = 1rLrM}rN(h/Uh0jHubaubeubj)rO}rP(h/Uh0j+h1jh6jh8}rQ(h:]h;]h<]h=]h@]uhBNhChh*]rRhd)rS}rT(h/X Default priority used by events.rUh0jOh1j'h6hih8}rV(h:]h;]h<]h=]h@]uhBKhChh*]rWhRX Default priority used by events.rXrY}rZ(h/jUh0jSubaubaubeubh[)r[}r\(h/Uh0h-h1Nh6h_h8}r](h=]h<]h:]h;]h@]Uentries]r^(hbXEvent (class in simpy.events)hUtr_auhBNhChh*]ubj)r`}ra(h/Uh0h-h1Nh6jh8}rb(jjXpyh=]h<]h:]h;]h@]jXclassrcjjcuhBNhChh*]rd(j)re}rf(h/X Event(env)h0j`h1U rgh6jh8}rh(h=]rihajh2X simpy.eventsrjrk}rlbh<]h:]h;]h@]rmhajXEventrnjUjuhBNhChh*]ro(j)rp}rq(h/Xclass h0jeh1jgh6jh8}rr(h:]h;]h<]h=]h@]uhBNhChh*]rshRXclass rtru}rv(h/Uh0jpubaubj)rw}rx(h/X simpy.events.h0jeh1jgh6jh8}ry(h:]h;]h<]h=]h@]uhBNhChh*]rzhRX simpy.events.r{r|}r}(h/Uh0jwubaubj)r~}r(h/jnh0jeh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXEventrr}r(h/Uh0j~ubaubcsphinx.addnodes desc_parameterlist r)r}r(h/Uh0jeh1jgh6Udesc_parameterlistrh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rcsphinx.addnodes desc_parameter r)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6Udesc_parameterrubaubeubj)r}r(h/Uh0j`h1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XBase class for all events.rh0jh1XZ/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Eventrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXBase class for all events.rr}r(h/jh0jubaubhd)r}r(h/XtEvery event is bound to an environment *env* (see :class:`~simpy.core.BaseEnvironment`) and has an optional *value*.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX'Every event is bound to an environment rr}r(h/X'Every event is bound to an environment h0jubho)r}r(h/X*env*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6hwubhRX (see rr}r(h/X (see h0jubh)r}r(h/X$:class:`~simpy.core.BaseEnvironment`rh0jh1Nh6hh8}r(UreftypeXclasshhXsimpy.core.BaseEnvironmentU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXBaseEnvironmentrr}r(h/Uh0jubah6hVubaubhRX) and has an optional rr}r(h/X) and has an optional h0jubho)r}r(h/X*value*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXvaluerr}r(h/Uh0jubah6hwubhRX.r}r(h/X.h0jubeubhd)r}r(h/XPAn event has a list of :attr:`callbacks`. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXAn event has a list of rr}r(h/XAn event has a list of h0jubh)r}r(h/X:attr:`callbacks`rh0jh1Nh6hh8}r(UreftypeXattrhhX callbacksU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-attrreh<]h=]h@]uh0jh*]rhRX callbacksrr}r(h/Uh0jubah6hVubaubhRX(. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.rr}r(h/X(. A callback can be any callable that accepts a single argument which is the event instances the callback belongs to. This list is not exclusively for SimPy internals---you can also append custom callbacks. All callbacks are executed in the order that they were added when the event is processed.h0jubeubhd)r}r(h/XThis class also implements ``__and__()`` (``&``) and ``__or__()`` (``|``). If you concatenate two events using one of these operators, a :class:`Condition` event is generated that lets you wait for both or one of them.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBK hChh*]r(hRXThis class also implements rr}r(h/XThis class also implements h0jubhL)r}r(h/X ``__and__()``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX __and__()rr}r(h/Uh0jubah6hVubhRX (rr}r(h/X (h0jubhL)r}r(h/X``&``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX&r}r(h/Uh0jubah6hVubhRX) and rr}r(h/X) and h0jubhL)r}r(h/X ``__or__()``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX__or__()rr}r(h/Uh0jubah6hVubhRX (rr}r (h/X (h0jubhL)r }r (h/X``|``h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRX|r}r(h/Uh0j ubah6hVubhRXA). If you concatenate two events using one of these operators, a rr}r(h/XA). If you concatenate two events using one of these operators, a h0jubh)r}r(h/X:class:`Condition`rh0jh1Nh6hh8}r(UreftypeXclasshhX ConditionU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRX Conditionrr }r!(h/Uh0jubah6hVubaubhRX? event is generated that lets you wait for both or one of them.r"r#}r$(h/X? event is generated that lets you wait for both or one of them.h0jubeubh[)r%}r&(h/Uh0jh1X^/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.envr'h6h_h8}r((h=]h<]h:]h;]h@]Uentries]r)(hbX"env (simpy.events.Event attribute)hUtr*auhBNhChh*]ubj)r+}r,(h/Uh0jh1j'h6jh8}r-(jjXpyh=]h<]h:]h;]h@]jX attributer.jj.uhBNhChh*]r/(j)r0}r1(h/X Event.envh0j+h1U r2h6jh8}r3(h=]r4hajh2X simpy.eventsr5r6}r7bh<]h:]h;]h@]r8hajX Event.envjjnjuhBNhChh*]r9(j)r:}r;(h/Xenvh0j0h1j2h6jh8}r<(h:]h;]h<]h=]h@]uhBNhChh*]r=hRXenvr>r?}r@(h/Uh0j:ubaubj)rA}rB(h/X = Noneh0j0h1j2h6jh8}rC(h:]h;]h<]h=]h@]uhBNhChh*]rDhRX = NonerErF}rG(h/Uh0jAubaubeubj)rH}rI(h/Uh0j+h1j2h6jh8}rJ(h:]h;]h<]h=]h@]uhBNhChh*]rKhd)rL}rM(h/X8The :class:`~simpy.core.Environment` the event lives in.h0jHh1j'h6hih8}rN(h:]h;]h<]h=]h@]uhBKhChh*]rO(hRXThe rPrQ}rR(h/XThe h0jLubh)rS}rT(h/X :class:`~simpy.core.Environment`rUh0jLh1Nh6hh8}rV(UreftypeXclasshhXsimpy.core.EnvironmentU refdomainXpyrWh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rXhL)rY}rZ(h/jUh8}r[(h:]h;]r\(hjWXpy-classr]eh<]h=]h@]uh0jSh*]r^hRX Environmentr_r`}ra(h/Uh0jYubah6hVubaubhRX the event lives in.rbrc}rd(h/X the event lives in.h0jLubeubaubeubh[)re}rf(h/Uh0jh1Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.callbacksrgh6h_h8}rh(h=]h<]h:]h;]h@]Uentries]ri(hbX(callbacks (simpy.events.Event attribute)hUtrjauhBNhChh*]ubj)rk}rl(h/Uh0jh1jgh6jh8}rm(jjXpyh=]h<]h:]h;]h@]jX attributernjjnuhBNhChh*]ro(j)rp}rq(h/XEvent.callbacksh0jkh1j2h6jh8}rr(h=]rshajh2X simpy.eventsrtru}rvbh<]h:]h;]h@]rwhajXEvent.callbacksjjnjuhBNhChh*]rx(j)ry}rz(h/X callbacksh0jph1j2h6jh8}r{(h:]h;]h<]h=]h@]uhBNhChh*]r|hRX callbacksr}r~}r(h/Uh0jyubaubj)r}r(h/X = Noneh0jph1j2h6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX = Nonerr}r(h/Uh0jubaubeubj)r}r(h/Uh0jkh1j2h6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X>List of functions that are called when the event is processed.rh0jh1jgh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX>List of functions that are called when the event is processed.rr}r(h/jh0jubaubaubeubh[)r}r(h/Uh0jh1Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.triggeredrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX(triggered (simpy.events.Event attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XEvent.triggeredh0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXEvent.triggeredjjnjuhBNhChh*]rj)r}r(h/X triggeredh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX triggeredrr}r(h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/X[Becomes ``True`` if the event has been triggered and its callbacks are about to be invoked.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXBecomes rr}r(h/XBecomes h0jubhL)r}r(h/X``True``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXTruerr}r(h/Uh0jubah6hVubhRXK if the event has been triggered and its callbacks are about to be invoked.rr}r(h/XK if the event has been triggered and its callbacks are about to be invoked.h0jubeubaubeubh[)r}r(h/Uh0jh1Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.processedrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX(processed (simpy.events.Event attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XEvent.processedh0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXEvent.processedjjnjuhBNhChh*]rj)r}r(h/X processedh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX processedrr}r(h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/XYBecomes ``True`` if the event has been processed (e.g., its callbacks have been invoked).h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXBecomes rr}r(h/XBecomes h0jubhL)r}r(h/X``True``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXTruerr}r(h/Uh0jubah6hVubhRXI if the event has been processed (e.g., its callbacks have been invoked).rr}r(h/XI if the event has been processed (e.g., its callbacks have been invoked).h0jubeubaubeubh[)r}r(h/Uh0jh1X`/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.valuerh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX$value (simpy.events.Event attribute)h UtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/X Event.valueh0jh1jgh6jh8}r(h=]rh ajh2X simpy.eventsrr}rbh<]h:]h;]h@]rh ajX Event.valuejjnjuhBNhChh*]rj)r}r(h/Xvalueh0jh1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXvaluer r }r (h/Uh0jubaubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/X*The value of the event if it is available.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX*The value of the event if it is available.rr}r(h/jh0jubaubhd)r}r(h/X9The value is available when the event has been triggered.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX9The value is available when the event has been triggered.rr }r!(h/jh0jubaubhd)r"}r#(h/X@Raise a :exc:`AttributeError` if the value is not yet available.h0jh1jh6hih8}r$(h:]h;]h<]h=]h@]uhBKhChh*]r%(hRXRaise a r&r'}r((h/XRaise a h0j"ubh)r)}r*(h/X:exc:`AttributeError`r+h0j"h1Nh6hh8}r,(UreftypeXexchhXAttributeErrorU refdomainXpyr-h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r.hL)r/}r0(h/j+h8}r1(h:]h;]r2(hj-Xpy-excr3eh<]h=]h@]uh0j)h*]r4hRXAttributeErrorr5r6}r7(h/Uh0j/ubah6hVubaubhRX# if the value is not yet available.r8r9}r:(h/X# if the value is not yet available.h0j"ubeubeubeubh[)r;}r<(h/Uh0jh1Xb/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.triggerr=h6h_h8}r>(h=]h<]h:]h;]h@]Uentries]r?(hbX%trigger() (simpy.events.Event method)hUtr@auhBNhChh*]ubj)rA}rB(h/Uh0jh1j=h6jh8}rC(jjXpyh=]h<]h:]h;]h@]jXmethodrDjjDuhBNhChh*]rE(j)rF}rG(h/XEvent.trigger(event)h0jAh1jgh6jh8}rH(h=]rIhajh2X simpy.eventsrJrK}rLbh<]h:]h;]h@]rMhajX Event.triggerjjnjuhBNhChh*]rN(j)rO}rP(h/Xtriggerh0jFh1jgh6jh8}rQ(h:]h;]h<]h=]h@]uhBNhChh*]rRhRXtriggerrSrT}rU(h/Uh0jOubaubj)rV}rW(h/Uh0jFh1jgh6jh8}rX(h:]h;]h<]h=]h@]uhBNhChh*]rYj)rZ}r[(h/Xeventh8}r\(h:]h;]h<]h=]h@]uh0jVh*]r]hRXeventr^r_}r`(h/Uh0jZubah6jubaubeubj)ra}rb(h/Uh0jAh1jgh6jh8}rc(h:]h;]h<]h=]h@]uhBNhChh*]rd(hd)re}rf(h/XDTriggers the event with the state and value of the provided *event*.h0jah1j=h6hih8}rg(h:]h;]h<]h=]h@]uhBKhChh*]rh(hRX<Triggers the event with the state and value of the provided rirj}rk(h/X<Triggers the event with the state and value of the provided h0jeubho)rl}rm(h/X*event*h8}rn(h:]h;]h<]h=]h@]uh0jeh*]rohRXeventrprq}rr(h/Uh0jlubah6hwubhRX.rs}rt(h/X.h0jeubeubhd)ru}rv(h/X8This method can be used directly as a callback function.rwh0jah1j=h6hih8}rx(h:]h;]h<]h=]h@]uhBKhChh*]ryhRX8This method can be used directly as a callback function.rzr{}r|(h/jwh0juubaubeubeubh[)r}}r~(h/Uh0jh1Xb/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.succeedrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX%succeed() (simpy.events.Event method)h UtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XEvent.succeed(value=None)h0jh1jgh6jh8}r(h=]rh ajh2X simpy.eventsrr}rbh<]h:]h;]h@]rh ajX Event.succeedjjnjuhBNhChh*]r(j)r}r(h/Xsucceedh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXsucceedrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X value=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX value=Nonerr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XHSchedule the event and mark it as successful. Return the event instance.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXHSchedule the event and mark it as successful. Return the event instance.rr}r(h/jh0jubaubhd)r}r(h/XgYou can optionally pass an arbitrary ``value`` that will be sent into processes waiting for that event.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX%You can optionally pass an arbitrary rr}r(h/X%You can optionally pass an arbitrary h0jubhL)r}r(h/X ``value``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXvaluerr}r(h/Uh0jubah6hVubhRX9 that will be sent into processes waiting for that event.rr}r(h/X9 that will be sent into processes waiting for that event.h0jubeubhd)r}r(h/XERaise a :exc:`RuntimeError` if this event has already been scheduled.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXRaise a rr}r(h/XRaise a h0jubh)r}r(h/X:exc:`RuntimeError`rh0jh1Nh6hh8}r(UreftypeXexchhX RuntimeErrorU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX RuntimeErrorrr}r(h/Uh0jubah6hVubaubhRX* if this event has already been scheduled.rr}r(h/X* if this event has already been scheduled.h0jubeubeubeubh[)r}r(h/Uh0jh1X_/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Event.failrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX"fail() (simpy.events.Event method)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XEvent.fail(exception)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajX Event.failjjnjuhBNhChh*]r(j)r}r(h/Xfailh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXfailrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X exceptionh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX exceptionrr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XDSchedule the event and mark it as failed. Return the event instance.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXDSchedule the event and mark it as failed. Return the event instance.rr }r (h/jh0jubaubhd)r }r (h/XGThe ``exception`` will be thrown into processes waiting for that event.h0jh1jh6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r(hRXThe rr}r(h/XThe h0j ubhL)r}r(h/X ``exception``h8}r(h:]h;]h<]h=]h@]uh0j h*]rhRX exceptionrr}r(h/Uh0jubah6hVubhRX6 will be thrown into processes waiting for that event.rr}r(h/X6 will be thrown into processes waiting for that event.h0j ubeubhd)r}r(h/XFRaise a :exc:`ValueError` if ``exception`` is not an :exc:`Exception`.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXRaise a r r!}r"(h/XRaise a h0jubh)r#}r$(h/X:exc:`ValueError`r%h0jh1Nh6hh8}r&(UreftypeXexchhX ValueErrorU refdomainXpyr'h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r(hL)r)}r*(h/j%h8}r+(h:]h;]r,(hj'Xpy-excr-eh<]h=]h@]uh0j#h*]r.hRX ValueErrorr/r0}r1(h/Uh0j)ubah6hVubaubhRX if r2r3}r4(h/X if h0jubhL)r5}r6(h/X ``exception``h8}r7(h:]h;]h<]h=]h@]uh0jh*]r8hRX exceptionr9r:}r;(h/Uh0j5ubah6hVubhRX is not an r<r=}r>(h/X is not an h0jubh)r?}r@(h/X:exc:`Exception`rAh0jh1Nh6hh8}rB(UreftypeXexchhX ExceptionU refdomainXpyrCh=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]rDhL)rE}rF(h/jAh8}rG(h:]h;]rH(hjCXpy-excrIeh<]h=]h@]uh0j?h*]rJhRX ExceptionrKrL}rM(h/Uh0jEubah6hVubaubhRX.rN}rO(h/X.h0jubeubhd)rP}rQ(h/XERaise a :exc:`RuntimeError` if this event has already been scheduled.h0jh1jh6hih8}rR(h:]h;]h<]h=]h@]uhBKhChh*]rS(hRXRaise a rTrU}rV(h/XRaise a h0jPubh)rW}rX(h/X:exc:`RuntimeError`rYh0jPh1Nh6hh8}rZ(UreftypeXexchhX RuntimeErrorU refdomainXpyr[h=]h<]U refexplicith:]h;]h@]hhhjnhhuhBNh*]r\hL)r]}r^(h/jYh8}r_(h:]h;]r`(hj[Xpy-excraeh<]h=]h@]uh0jWh*]rbhRX RuntimeErrorrcrd}re(h/Uh0j]ubah6hVubaubhRX* if this event has already been scheduled.rfrg}rh(h/X* if this event has already been scheduled.h0jPubeubeubeubeubeubh[)ri}rj(h/Uh0h-h1X\/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Timeoutrkh6h_h8}rl(h=]h<]h:]h;]h@]Uentries]rm(hbXTimeout (class in simpy.events)hUtrnauhBNhChh*]ubj)ro}rp(h/Uh0h-h1jkh6jh8}rq(jjXpyh=]h<]h:]h;]h@]jXclassrrjjruhBNhChh*]rs(j)rt}ru(h/XTimeout(env, delay, value=None)h0joh1jgh6jh8}rv(h=]rwhajh2X simpy.eventsrxry}rzbh<]h:]h;]h@]r{hajXTimeoutr|jUjuhBNhChh*]r}(j)r~}r(h/Xclass h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0j~ubaubj)r}r(h/X simpy.events.h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/j|h0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXTimeoutrr}r(h/Uh0jubaubj)r}r(h/Uh0jth1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/Xdelayh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6jubj)r}r(h/X value=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX value=Nonerr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0joh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XNAn :class:`Event` that is scheduled with a certain *delay* after its creation.h0jh1jkh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXAn rr}r(h/XAn h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj|hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRX" that is scheduled with a certain rr}r(h/X" that is scheduled with a certain h0jubho)r}r(h/X*delay*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6hwubhRX after its creation.rr}r(h/X after its creation.h0jubeubhd)r}r(h/XThis event can be used by processes to wait (or hold their state) for *delay* time steps. It is immediately scheduled at ``env.now + delay`` and has thus (in contrast to :class:`Event`) no *success()* or *fail()* method.h0jh1jkh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXFThis event can be used by processes to wait (or hold their state) for rr}r(h/XFThis event can be used by processes to wait (or hold their state) for h0jubho)r}r(h/X*delay*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXdelayrr}r(h/Uh0jubah6hwubhRX, time steps. It is immediately scheduled at rr}r(h/X, time steps. It is immediately scheduled at h0jubhL)r}r(h/X``env.now + delay``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenv.now + delayrr}r(h/Uh0jubah6hVubhRX and has thus (in contrast to rr}r(h/X and has thus (in contrast to h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj|hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRX) no rr}r(h/X) no h0jubho)r}r(h/X *success()*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX success()rr}r(h/Uh0jubah6hwubhRX or rr}r (h/X or h0jubho)r }r (h/X*fail()*h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXfail()rr}r(h/Uh0j ubah6hwubhRX method.rr}r(h/X method.h0jubeubeubeubh[)r}r(h/Uh0h-h1X_/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Initializerh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX"Initialize (class in simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXclassrjjuhBNhChh*]r(j)r}r (h/XInitialize(env, process)h0jh1jgh6jh8}r!(h=]r"hajh2X simpy.eventsr#r$}r%bh<]h:]h;]h@]r&hajX Initializer'jUjuhBNhChh*]r((j)r)}r*(h/Xclass h0jh1jgh6jh8}r+(h:]h;]h<]h=]h@]uhBNhChh*]r,hRXclass r-r.}r/(h/Uh0j)ubaubj)r0}r1(h/X simpy.events.h0jh1jgh6jh8}r2(h:]h;]h<]h=]h@]uhBNhChh*]r3hRX simpy.events.r4r5}r6(h/Uh0j0ubaubj)r7}r8(h/j'h0jh1jgh6jh8}r9(h:]h;]h<]h=]h@]uhBNhChh*]r:hRX Initializer;r<}r=(h/Uh0j7ubaubj)r>}r?(h/Uh0jh1jgh6jh8}r@(h:]h;]h<]h=]h@]uhBNhChh*]rA(j)rB}rC(h/Xenvh8}rD(h:]h;]h<]h=]h@]uh0j>h*]rEhRXenvrFrG}rH(h/Uh0jBubah6jubj)rI}rJ(h/Xprocessh8}rK(h:]h;]h<]h=]h@]uh0j>h*]rLhRXprocessrMrN}rO(h/Uh0jIubah6jubeubeubj)rP}rQ(h/Uh0jh1jgh6jh8}rR(h:]h;]h<]h=]h@]uhBNhChh*]rShd)rT}rU(h/X@Initializes a process. Only used internally by :class:`Process`.h0jPh1jh6hih8}rV(h:]h;]h<]h=]h@]uhBKhChh*]rW(hRX/Initializes a process. Only used internally by rXrY}rZ(h/X/Initializes a process. Only used internally by h0jTubh)r[}r\(h/X:class:`Process`r]h0jTh1Nh6hh8}r^(UreftypeXclasshhXProcessU refdomainXpyr_h=]h<]U refexplicith:]h;]h@]hhhj'hhuhBNh*]r`hL)ra}rb(h/j]h8}rc(h:]h;]rd(hj_Xpy-classreeh<]h=]h@]uh0j[h*]rfhRXProcessrgrh}ri(h/Uh0jaubah6hVubaubhRX.rj}rk(h/X.h0jTubeubaubeubh[)rl}rm(h/Uh0h-h1Nh6h_h8}rn(h=]h<]h:]h;]h@]Uentries]ro(hbXProcess (class in simpy.events)hUtrpauhBNhChh*]ubj)rq}rr(h/Uh0h-h1Nh6jh8}rs(jjXpyh=]h<]h:]h;]h@]jXclassrtjjtuhBNhChh*]ru(j)rv}rw(h/XProcess(env, generator)h0jqh1jgh6jh8}rx(h=]ryhajh2X simpy.eventsrzr{}r|bh<]h:]h;]h@]r}hajXProcessr~jUjuhBNhChh*]r(j)r}r(h/Xclass h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0jubaubj)r}r(h/X simpy.events.h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/j~h0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXProcessrr}r(h/Uh0jubaubj)r}r(h/Uh0jvh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/X generatorh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX generatorrr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0jqh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XuA *Process* is a wrapper for the process *generator* (that is returned by a *process function*) during its execution.h0jh1X\/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Processrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXA rr}r(h/XA h0jubho)r}r(h/X *Process*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXProcessrr}r(h/Uh0jubah6hwubhRX is a wrapper for the process rr}r(h/X is a wrapper for the process h0jubho)r}r(h/X *generator*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX generatorrr}r(h/Uh0jubah6hwubhRX (that is returned by a rr}r(h/X (that is returned by a h0jubho)r}r(h/X*process function*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXprocess functionrr}r(h/Uh0jubah6hwubhRX) during its execution.rr}r(h/X) during its execution.h0jubeubhd)r}r(h/XtIt also contains internal and external status information and is used for process interaction, e.g., for interrupts.rh0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRXtIt also contains internal and external status information and is used for process interaction, e.g., for interrupts.rr}r(h/jh0jubaubhd)r}r(h/X``Process`` inherits :class:`Event`. You can thus wait for the termination of a process by simply yielding it from your process function.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hL)r}r(h/X ``Process``h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXProcessrr}r(h/Uh0jubah6hVubhRX inherits rr}r(h/X inherits h0jubh)r}r(h/X:class:`Event`rh0jh1Nh6hh8}r(UreftypeXclasshhXEventU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-classreh<]h=]h@]uh0jh*]rhRXEventrr}r(h/Uh0jubah6hVubaubhRXf. You can thus wait for the termination of a process by simply yielding it from your process function.rr}r(h/Xf. You can thus wait for the termination of a process by simply yielding it from your process function.h0jubeubhd)r}r(h/XRAn instance of this class is returned by :meth:`simpy.core.Environment.process()`.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBK hChh*]r(hRX)An instance of this class is returned by rr}r(h/X)An instance of this class is returned by h0jubh)r}r(h/X(:meth:`simpy.core.Environment.process()`rh0jh1Nh6hh8}r(UreftypeXmethhhXsimpy.core.Environment.processU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r (hjXpy-methr eh<]h=]h@]uh0jh*]r hRX simpy.core.Environment.process()r r }r(h/Uh0jubah6hVubaubhRX.r}r(h/X.h0jubeubh[)r}r(h/Uh0jh1Xc/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Process.targetrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX'target (simpy.events.Process attribute)hUtrauhBNhChh*]ubj)r}r(h/Uh0jh1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX attributerjjuhBNhChh*]r(j)r}r(h/XProcess.targeth0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsr r!}r"bh<]h:]h;]h@]r#hajXProcess.targetjj~juhBNhChh*]r$j)r%}r&(h/Xtargeth0jh1jgh6jh8}r'(h:]h;]h<]h=]h@]uhBNhChh*]r(hRXtargetr)r*}r+(h/Uh0j%ubaubaubj)r,}r-(h/Uh0jh1jgh6jh8}r.(h:]h;]h<]h=]h@]uhBNhChh*]r/(hd)r0}r1(h/X4The event that the process is currently waiting for.r2h0j,h1jh6hih8}r3(h:]h;]h<]h=]h@]uhBKhChh*]r4hRX4The event that the process is currently waiting for.r5r6}r7(h/j2h0j0ubaubhd)r8}r9(h/XaMay be ``None`` if the process was just started or interrupted and did not yet yield a new event.h0j,h1jh6hih8}r:(h:]h;]h<]h=]h@]uhBKhChh*]r;(hRXMay be r<r=}r>(h/XMay be h0j8ubhL)r?}r@(h/X``None``h8}rA(h:]h;]h<]h=]h@]uh0j8h*]rBhRXNonerCrD}rE(h/Uh0j?ubah6hVubhRXR if the process was just started or interrupted and did not yet yield a new event.rFrG}rH(h/XR if the process was just started or interrupted and did not yet yield a new event.h0j8ubeubeubeubh[)rI}rJ(h/Uh0jh1Xe/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Process.is_aliverKh6h_h8}rL(h=]h<]h:]h;]h@]Uentries]rM(hbX)is_alive (simpy.events.Process attribute)hUtrNauhBNhChh*]ubj)rO}rP(h/Uh0jh1jKh6jh8}rQ(jjXpyh=]h<]h:]h;]h@]jX attributerRjjRuhBNhChh*]rS(j)rT}rU(h/XProcess.is_aliveh0jOh1jgh6jh8}rV(h=]rWhajh2X simpy.eventsrXrY}rZbh<]h:]h;]h@]r[hajXProcess.is_alivejj~juhBNhChh*]r\j)r]}r^(h/Xis_aliveh0jTh1jgh6jh8}r_(h:]h;]h<]h=]h@]uhBNhChh*]r`hRXis_aliverarb}rc(h/Uh0j]ubaubaubj)rd}re(h/Uh0jOh1jgh6jh8}rf(h:]h;]h<]h=]h@]uhBNhChh*]rghd)rh}ri(h/X+``True`` until the process generator exits.h0jdh1jKh6hih8}rj(h:]h;]h<]h=]h@]uhBKhChh*]rk(hL)rl}rm(h/X``True``h8}rn(h:]h;]h<]h=]h@]uh0jhh*]rohRXTruerprq}rr(h/Uh0jlubah6hVubhRX# until the process generator exits.rsrt}ru(h/X# until the process generator exits.h0jhubeubaubeubh[)rv}rw(h/Uh0jh1Xf/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Process.interruptrxh6h_h8}ry(h=]h<]h:]h;]h@]Uentries]rz(hbX)interrupt() (simpy.events.Process method)hUtr{auhBNhChh*]ubj)r|}r}(h/Uh0jh1jxh6jh8}r~(jjXpyh=]h<]h:]h;]h@]jXmethodrjjuhBNhChh*]r(j)r}r(h/XProcess.interrupt(cause=None)h0j|h1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXProcess.interruptjj~juhBNhChh*]r(j)r}r(h/X interrupth0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX interruptrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rj)r}r(h/X cause=Noneh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX cause=Nonerr}r(h/Uh0jubah6jubaubeubj)r}r(h/Uh0j|h1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/X5Interupt this process optionally providing a *cause*.h0jh1jxh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX-Interupt this process optionally providing a rr}r(h/X-Interupt this process optionally providing a h0jubho)r}r(h/X*cause*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXcauserr}r(h/Uh0jubah6hwubhRX.r}r(h/X.h0jubeubhd)r}r(h/XA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a :exc:`RuntimeError` in these cases.h0jh1jxh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXkA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a rr}r(h/XkA process cannot be interrupted if it already terminated. A process can also not interrupt itself. Raise a h0jubh)r}r(h/X:exc:`RuntimeError`rh0jh1Nh6hh8}r(UreftypeXexchhX RuntimeErrorU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhj~hhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-excreh<]h=]h@]uh0jh*]rhRX RuntimeErrorrr}r(h/Uh0jubah6hVubaubhRX in these cases.rr}r(h/X in these cases.h0jubeubeubeubeubeubh[)r}r(h/Uh0h-h1Nh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX!Condition (class in simpy.events)hUtrauhBNhChh*]ubj)r}r(h/Uh0h-h1Nh6jh8}r(jjXpyh=]h<]h:]h;]h@]jXclassrjjuhBNhChh*]r(j)r}r(h/X Condition(env, evaluate, events)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajX ConditionrjUjuhBNhChh*]r(j)r}r(h/Xclass h0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXclass rr}r(h/Uh0jubaubj)r}r(h/X simpy.events.h0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX simpy.events.rr}r(h/Uh0jubaubj)r}r(h/jh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX Conditionrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xenvh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXenvrr}r(h/Uh0jubah6jubj)r}r(h/Xevaluateh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXevaluaterr}r(h/Uh0jubah6jubj)r}r(h/Xeventsh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXeventsrr }r (h/Uh0jubah6jubeubeubj)r }r (h/Uh0jh1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r(hd)r}r(h/XA *Condition* :class:`Event` groups several *events* and is triggered if a given condition (implemented by the *evaluate* function) becomes true.h0j h1X^/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Conditionrh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRXA rr}r(h/XA h0jubho)r}r(h/X *Condition*h8}r(h:]h;]h<]h=]h@]uh0jh*]rhRX Conditionrr}r(h/Uh0jubah6hwubhRX r}r(h/X h0jubh)r }r!(h/X:class:`Event`r"h0jh1Nh6hh8}r#(UreftypeXclasshhXEventU refdomainXpyr$h=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]r%hL)r&}r'(h/j"h8}r((h:]h;]r)(hj$Xpy-classr*eh<]h=]h@]uh0j h*]r+hRXEventr,r-}r.(h/Uh0j&ubah6hVubaubhRX groups several r/r0}r1(h/X groups several h0jubho)r2}r3(h/X*events*h8}r4(h:]h;]h<]h=]h@]uh0jh*]r5hRXeventsr6r7}r8(h/Uh0j2ubah6hwubhRX; and is triggered if a given condition (implemented by the r9r:}r;(h/X; and is triggered if a given condition (implemented by the h0jubho)r<}r=(h/X *evaluate*h8}r>(h:]h;]h<]h=]h@]uh0jh*]r?hRXevaluater@rA}rB(h/Uh0j<ubah6hwubhRX function) becomes true.rCrD}rE(h/X function) becomes true.h0jubeubhd)rF}rG(h/XThe value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.rHh0j h1jh6hih8}rI(h:]h;]h<]h=]h@]uhBKhChh*]rJhRXThe value of the condition is a dictionary that maps the input events to their respective values. It only contains entries for those events that occurred until the condition was met.rKrL}rM(h/jHh0jFubaubhd)rN}rO(h/XeIf one of the events fails, the condition also fails and forwards the exception of the failing event.rPh0j h1jh6hih8}rQ(h:]h;]h<]h=]h@]uhBKhChh*]rRhRXeIf one of the events fails, the condition also fails and forwards the exception of the failing event.rSrT}rU(h/jPh0jNubaubhd)rV}rW(h/X9The ``evaluate`` function receives the list of target events and the dictionary with all values currently available. If it returns ``True``, the condition is scheduled. The :func:`Condition.all_events()` and :func:`Condition.any_events()` functions are used to implement *and* (``&``) and *or* (``|``) for events.h0j h1jh6hih8}rX(h:]h;]h<]h=]h@]uhBK hChh*]rY(hRXThe rZr[}r\(h/XThe h0jVubhL)r]}r^(h/X ``evaluate``h8}r_(h:]h;]h<]h=]h@]uh0jVh*]r`hRXevaluaterarb}rc(h/Uh0j]ubah6hVubhRXs function receives the list of target events and the dictionary with all values currently available. If it returns rdre}rf(h/Xs function receives the list of target events and the dictionary with all values currently available. If it returns h0jVubhL)rg}rh(h/X``True``h8}ri(h:]h;]h<]h=]h@]uh0jVh*]rjhRXTruerkrl}rm(h/Uh0jgubah6hVubhRX", the condition is scheduled. The rnro}rp(h/X", the condition is scheduled. The h0jVubh)rq}rr(h/X:func:`Condition.all_events()`rsh0jVh1Nh6hh8}rt(UreftypeXfunchhXCondition.all_eventsU refdomainXpyruh=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]rvhL)rw}rx(h/jsh8}ry(h:]h;]rz(hjuXpy-funcr{eh<]h=]h@]uh0jqh*]r|hRXCondition.all_events()r}r~}r(h/Uh0jwubah6hVubaubhRX and rr}r(h/X and h0jVubh)r}r(h/X:func:`Condition.any_events()`rh0jVh1Nh6hh8}r(UreftypeXfunchhXCondition.any_eventsU refdomainXpyrh=]h<]U refexplicith:]h;]h@]hhhjhhuhBNh*]rhL)r}r(h/jh8}r(h:]h;]r(hjXpy-funcreh<]h=]h@]uh0jh*]rhRXCondition.any_events()rr}r(h/Uh0jubah6hVubaubhRX! functions are used to implement rr}r(h/X! functions are used to implement h0jVubho)r}r(h/X*and*h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRXandrr}r(h/Uh0jubah6hwubhRX (rr}r(h/X (h0jVubhL)r}r(h/X``&``h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRX&r}r(h/Uh0jubah6hVubhRX) and rr}r(h/X) and h0jVubho)r}r(h/X*or*h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRXorrr}r(h/Uh0jubah6hwubhRX (rr}r(h/X (h0jVubhL)r}r(h/X``|``h8}r(h:]h;]h<]h=]h@]uh0jVh*]rhRX|r}r(h/Uh0jubah6hVubhRX ) for events.rr}r(h/X ) for events.h0jVubeubhd)r}r(h/X Conditions events can be nested.rh0j h1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]rhRX Conditions events can be nested.rr}r(h/jh0jubaubh[)r}r(h/Uh0j h1Xi/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Condition.all_eventsrh6h_h8}r(h=]h<]h:]h;]h@]Uentries]r(hbX3all_events() (simpy.events.Condition static method)hUtrauhBNhChh*]ubj)r}r(h/Uh0j h1jh6jh8}r(jjXpyh=]h<]h:]h;]h@]jX staticmethodrjjuhBNhChh*]r(j)r}r(h/X$Condition.all_events(events, values)h0jh1jgh6jh8}r(h=]rhajh2X simpy.eventsrr}rbh<]h:]h;]h@]rhajXCondition.all_eventsjjjuhBNhChh*]r(j)r}r(h/Ustatic rh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRXstatic rr}r(h/Uh0jubaubj)r}r(h/X all_eventsh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhRX all_eventsrr}r(h/Uh0jubaubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]r(j)r}r(h/Xeventsh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXeventsrr}r(h/Uh0jubah6jubj)r}r(h/Xvaluesh8}r(h:]h;]h<]h=]h@]uh0jh*]rhRXvaluesrr}r(h/Uh0jubah6jubeubeubj)r}r(h/Uh0jh1jgh6jh8}r(h:]h;]h<]h=]h@]uhBNhChh*]rhd)r}r(h/XOA condition function that returns ``True`` if all *events* have been triggered.h0jh1jh6hih8}r(h:]h;]h<]h=]h@]uhBKhChh*]r(hRX"A condition function that returns r r }r (h/X"A condition function that returns h0jubhL)r }r (h/X``True``h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXTruer r }r (h/Uh0j ubah6hVubhRX if all r r }r (h/X if all h0jubho)r }r (h/X*events*h8}r (h:]h;]h<]h=]h@]uh0jh*]r hRXeventsr r }r (h/Uh0j ubah6hwubhRX have been triggered.r r }r (h/X have been triggered.h0jubeubaubeubh[)r }r (h/Uh0j h1Xi/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Condition.any_eventsr h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbX3any_events() (simpy.events.Condition static method)hUtr auhBNhChh*]ubj)r }r (h/Uh0j h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jX staticmethodr jj uhBNhChh*]r! (j)r" }r# (h/X$Condition.any_events(events, values)h0j h1jgh6jh8}r$ (h=]r% hajh2X simpy.eventsr& r' }r( bh<]h:]h;]h@]r) hajXCondition.any_eventsjjjuhBNhChh*]r* (j)r+ }r, (h/jh0j" h1jgh6jh8}r- (h:]h;]h<]h=]h@]uhBNhChh*]r. hRXstatic r/ r0 }r1 (h/Uh0j+ ubaubj)r2 }r3 (h/X any_eventsh0j" h1jgh6jh8}r4 (h:]h;]h<]h=]h@]uhBNhChh*]r5 hRX any_eventsr6 r7 }r8 (h/Uh0j2 ubaubj)r9 }r: (h/Uh0j" h1jgh6jh8}r; (h:]h;]h<]h=]h@]uhBNhChh*]r< (j)r= }r> (h/Xeventsh8}r? (h:]h;]h<]h=]h@]uh0j9 h*]r@ hRXeventsrA rB }rC (h/Uh0j= ubah6jubj)rD }rE (h/Xvaluesh8}rF (h:]h;]h<]h=]h@]uh0j9 h*]rG hRXvaluesrH rI }rJ (h/Uh0jD ubah6jubeubeubj)rK }rL (h/Uh0j h1jgh6jh8}rM (h:]h;]h<]h=]h@]uhBNhChh*]rN hd)rO }rP (h/XZA condition function that returns ``True`` if at least one of *events* has been triggered.h0jK h1j h6hih8}rQ (h:]h;]h<]h=]h@]uhBKhChh*]rR (hRX"A condition function that returns rS rT }rU (h/X"A condition function that returns h0jO ubhL)rV }rW (h/X``True``h8}rX (h:]h;]h<]h=]h@]uh0jO h*]rY hRXTruerZ r[ }r\ (h/Uh0jV ubah6hVubhRX if at least one of r] r^ }r_ (h/X if at least one of h0jO ubho)r` }ra (h/X*events*h8}rb (h:]h;]h<]h=]h@]uh0jO h*]rc hRXeventsrd re }rf (h/Uh0j` ubah6hwubhRX has been triggered.rg rh }ri (h/X has been triggered.h0jO ubeubaubeubeubeubh[)rj }rk (h/Uh0h-h1XZ/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.AllOfrl h6h_h8}rm (h=]h<]h:]h;]h@]Uentries]rn (hbXAllOf (class in simpy.events)h Utro auhBNhChh*]ubj)rp }rq (h/Uh0h-h1jl h6jh8}rr (jjXpyh=]h<]h:]h;]h@]jXclassrs jjs uhBNhChh*]rt (j)ru }rv (h/XAllOf(env, events)h0jp h1jgh6jh8}rw (h=]rx h ajh2X simpy.eventsry rz }r{ bh<]h:]h;]h@]r| h ajXAllOfr} jUjuhBNhChh*]r~ (j)r }r (h/Xclass h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXclass r r }r (h/Uh0j ubaubj)r }r (h/X simpy.events.h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRX simpy.events.r r }r (h/Uh0j ubaubj)r }r (h/j} h0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXAllOfr r }r (h/Uh0j ubaubj)r }r (h/Uh0ju h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r (j)r }r (h/Xenvh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXenvr r }r (h/Uh0j ubah6jubj)r }r (h/Xeventsh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6jubeubeubj)r }r (h/Uh0jp h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X7A :class:`Condition` event that waits for all *events*.h0j h1jl h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXA r r }r (h/XA h0j ubh)r }r (h/X:class:`Condition`r h0j h1Nh6hh8}r (UreftypeXclasshhX ConditionU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj} hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-classr eh<]h=]h@]uh0j h*]r hRX Conditionr r }r (h/Uh0j ubah6hVubaubhRX event that waits for all r r }r (h/X event that waits for all h0j ubho)r }r (h/X*events*h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6hwubhRX.r }r (h/X.h0j ubeubaubeubh[)r }r (h/Uh0h-h1XZ/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.AnyOfr h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbXAnyOf (class in simpy.events)hUtr auhBNhChh*]ubj)r }r (h/Uh0h-h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jXclassr jj uhBNhChh*]r (j)r }r (h/XAnyOf(env, events)h0j h1jgh6jh8}r (h=]r hajh2X simpy.eventsr r }r bh<]h:]h;]h@]r hajXAnyOfr jUjuhBNhChh*]r (j)r }r (h/Xclass h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXclass r r }r (h/Uh0j ubaubj)r }r (h/X simpy.events.h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRX simpy.events.r r }r (h/Uh0j ubaubj)r }r (h/j h0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXAnyOfr r }r (h/Uh0j ubaubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r (j)r }r (h/Xenvh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXenvr r }r (h/Uh0j ubah6jubj)r }r (h/Xeventsh8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXeventsr r }r (h/Uh0j ubah6jubeubeubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/XOA :class:`Condition` event that waits until the first of *events* is triggered.h0j h1j h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXA r r }r (h/XA h0j ubh)r }r (h/X:class:`Condition`r h0j h1Nh6hh8}r (UreftypeXclasshhX ConditionU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-classr eh<]h=]h@]uh0j h*]r hRX Conditionr r }r! (h/Uh0j ubah6hVubaubhRX% event that waits until the first of r" r# }r$ (h/X% event that waits until the first of h0j ubho)r% }r& (h/X*events*h8}r' (h:]h;]h<]h=]h@]uh0j h*]r( hRXeventsr) r* }r+ (h/Uh0j% ubah6hwubhRX is triggered.r, r- }r. (h/X is triggered.h0j ubeubaubeubh[)r/ }r0 (h/Uh0h-h1Nh6h_h8}r1 (h=]h<]h:]h;]h@]Uentries]r2 (hbX Interruptr3 h Utr4 auhBNhChh*]ubj)r5 }r6 (h/Uh0h-h1Nh6jh8}r7 (jjXpyh=]h<]h:]h;]h@]jX exceptionr8 jj8 uhBNhChh*]r9 (j)r: }r; (h/XInterrupt(cause)r< h0j5 h1jgh6jh8}r= (h=]r> h ajh2X simpy.eventsr? r@ }rA bh<]h:]h;]h@]rB h ajj3 jUjuhBNhChh*]rC (j)rD }rE (h/X exception h0j: h1jgh6jh8}rF (h:]h;]h<]h=]h@]uhBNhChh*]rG hRX exception rH rI }rJ (h/Uh0jD ubaubj)rK }rL (h/X simpy.events.h0j: h1jgh6jh8}rM (h:]h;]h<]h=]h@]uhBNhChh*]rN hRX simpy.events.rO rP }rQ (h/Uh0jK ubaubj)rR }rS (h/j3 h0j: h1jgh6jh8}rT (h:]h;]h<]h=]h@]uhBNhChh*]rU hRX InterruptrV rW }rX (h/Uh0jR ubaubj)rY }rZ (h/Uh0j: h1jgh6jh8}r[ (h:]h;]h<]h=]h@]uhBNhChh*]r\ j)r] }r^ (h/Xcauseh8}r_ (h:]h;]h<]h=]h@]uh0jY h*]r` hRXcausera rb }rc (h/Uh0j] ubah6jubaubeubj)rd }re (h/Uh0j5 h1jgh6jh8}rf (h:]h;]h<]h=]h@]uhBNhChh*]rg (hd)rh }ri (h/XrThis exceptions is sent into a process if it was interrupted by another process (see :func:`Process.interrupt()`).h0jd h1X^/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Interruptrj h6hih8}rk (h:]h;]h<]h=]h@]uhBKhChh*]rl (hRXUThis exceptions is sent into a process if it was interrupted by another process (see rm rn }ro (h/XUThis exceptions is sent into a process if it was interrupted by another process (see h0jh ubh)rp }rq (h/X:func:`Process.interrupt()`rr h0jh h1Nh6hh8}rs (UreftypeXfunchhXProcess.interruptU refdomainXpyrt h=]h<]U refexplicith:]h;]h@]hhhj3 hhuhBNh*]ru hL)rv }rw (h/jr h8}rx (h:]h;]ry (hjt Xpy-funcrz eh<]h=]h@]uh0jp h*]r{ hRXProcess.interrupt()r| r} }r~ (h/Uh0jv ubah6hVubaubhRX).r r }r (h/X).h0jh ubeubhd)r }r (h/XU*cause* may be none if no cause was explicitly passed to :func:`Process.interrupt()`.h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (ho)r }r (h/X*cause*h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXcauser r }r (h/Uh0j ubah6hwubhRX2 may be none if no cause was explicitly passed to r r }r (h/X2 may be none if no cause was explicitly passed to h0j ubh)r }r (h/X:func:`Process.interrupt()`r h0j h1Nh6hh8}r (UreftypeXfunchhXProcess.interruptU refdomainXpyr h=]h<]U refexplicith:]h;]h@]hhhj3 hhuhBNh*]r hL)r }r (h/j h8}r (h:]h;]r (hj Xpy-funcr eh<]h=]h@]uh0j h*]r hRXProcess.interrupt()r r }r (h/Uh0j ubah6hVubaubhRX.r }r (h/X.h0j ubeubhd)r }r (h/XAn interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.r h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r hRXAn interrupt has a higher priority as a normal event. Thus, if a process has a normal event and an interrupt scheduled at the same time, the interrupt will always be thrown into the process first.r r }r (h/j h0j ubaubhd)r }r (h/XIf a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.r h0jd h1jj h6hih8}r (h:]h;]h<]h=]h@]uhBK hChh*]r hRXIf a process is interrupted multiple times at the same time, all interrupts will be thrown into the process in the same order as they occurred.r r }r (h/j h0j ubaubh[)r }r (h/Uh0jd h1Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/events.py:docstring of simpy.events.Interrupt.causer h6h_h8}r (h=]h<]h:]h;]h@]Uentries]r (hbX(cause (simpy.events.Interrupt attribute)h Utr auhBNhChh*]ubj)r }r (h/Uh0jd h1j h6jh8}r (jjXpyh=]h<]h:]h;]h@]jX attributer jj uhBNhChh*]r (j)r }r (h/XInterrupt.causer h0j h1jgh6jh8}r (h=]r h ajh2X simpy.eventsr r }r bh<]h:]h;]h@]r h ajXInterrupt.causejj3 juhBNhChh*]r j)r }r (h/Xcauseh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hRXcauser r }r (h/Uh0j ubaubaubj)r }r (h/Uh0j h1jgh6jh8}r (h:]h;]h<]h=]h@]uhBNhChh*]r hd)r }r (h/X@The cause of the interrupt or ``None`` if no cause was provided.r h0j h1j h6hih8}r (h:]h;]h<]h=]h@]uhBKhChh*]r (hRXThe cause of the interrupt or r r }r (h/XThe cause of the interrupt or h0j ubhL)r }r (h/X``None``h8}r (h:]h;]h<]h=]h@]uh0j h*]r hRXNoner r }r (h/Uh0j ubah6hVubhRX if no cause was provided.r r }r (h/X if no cause was provided.h0j ubeubaubeubeubeubeubah/UU transformerr NU footnote_refsr }r Urefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr ]r U citationsr ]r hChU current_liner NUtransform_messagesr ]r Ureporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhINUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr! NUexpose_internalsr" NUsectsubtitle_xformr# U source_linkr$ NUrfc_referencesr% NUoutput_encodingr& Uutf-8r' U source_urlr( NUinput_encodingr) U utf-8-sigr* U_disable_configr+ NU id_prefixr, UU tab_widthr- KUerror_encodingr. Uasciir/ U_sourcer0 UN/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.events.rstr1 Ugettext_compactr2 U generatorr3 NUdump_internalsr4 NU smart_quotesr5 U pep_base_urlr6 Uhttp://www.python.org/dev/peps/r7 Usyntax_highlightr8 Ulongr9 Uinput_encoding_error_handlerr: j Uauto_id_prefixr; Uidr< Udoctitle_xformr= Ustrip_elements_with_classesr> NU _config_filesr? ]Ufile_insertion_enabledr@ U raw_enabledrA KU dump_settingsrB NubUsymbol_footnote_startrC KUidsrD }rE (hjvhj hj" h jh j: h j h jh)h-h ju hj0hjthjphjhj0hjhjhjeh?cdocutils.nodes target rF )rG }rH (h/Uh0h-h1h^h6UtargetrI h8}rJ (h:]h=]rK h?ah<]Uismodh;]h@]uhBKhChh*]ubhjhjhjhjhjhjhjhjThjFuUsubstitution_namesrL }rM h6hCh8}rN (h:]h=]h<]Usourceh4h;]h@]uU footnotesrO ]rP UrefidsrQ }rR ub.PK{EpB9simpy-3.0/.doctrees/api_reference/simpy.resources.doctreecdocutils.nodes document q)q}q(U nametypesq}qX3simpy.resources --- simpy's built-in resource typesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU/simpy-resources-simpy-s-built-in-resource-typesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXQ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%(Xmodule-simpy.resourcesq&heUnamesq']q(hauUlineq)KUdocumentq*hh]q+(cdocutils.nodes title q,)q-}q.(hX7``simpy.resources`` --- SimPy's built-in resource typesq/hhhhhUtitleq0h}q1(h!]h"]h#]h$]h']uh)Kh*hh]q2(cdocutils.nodes literal q3)q4}q5(hX``simpy.resources``q6h}q7(h!]h"]h#]h$]h']uhh-h]q8cdocutils.nodes Text q9Xsimpy.resourcesq:q;}q<(hUhh4ubahUliteralq=ubh9X$ --- SimPy's built-in resource typesq>q?}q@(hX$ --- SimPy's built-in resource typesqAhh-ubeubcsphinx.addnodes index qB)qC}qD(hUhhhU qEhUindexqFh}qG(h$]h#]h!]h"]h']Uentries]qH(UsingleqIXsimpy.resources (module)Xmodule-simpy.resourcesUtqJauh)Kh*hh]ubcdocutils.nodes paragraph qK)qL}qM(hXUSimPy defines three kinds of resources with one or more concrete resource types each:qNhhhXc/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/__init__.py:docstring of simpy.resourcesqOhU paragraphqPh}qQ(h!]h"]h#]h$]h']uh)Kh*hh]qRh9XUSimPy defines three kinds of resources with one or more concrete resource types each:qSqT}qU(hhNhhLubaubcdocutils.nodes bullet_list qV)qW}qX(hUhhhhOhU bullet_listqYh}qZ(Ubulletq[X-h$]h#]h!]h"]h']uh)Kh*hh]q\(cdocutils.nodes list_item q])q^}q_(hX:mod:`~simpy.resources.resource`: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). hhWhhOhU list_itemq`h}qa(h!]h"]h#]h$]h']uh)Nh*hh]qbhK)qc}qd(hX:mod:`~simpy.resources.resource`: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).hh^hhOhhPh}qe(h!]h"]h#]h$]h']uh)Kh]qf(csphinx.addnodes pending_xref qg)qh}qi(hX :mod:`~simpy.resources.resource`qjhhchNhU pending_xrefqkh}ql(UreftypeXmodUrefwarnqmU reftargetqnXsimpy.resources.resourceU refdomainXpyqoh$]h#]U refexplicith!]h"]h']UrefdocqpXapi_reference/simpy.resourcesqqUpy:classqrNU py:moduleqsXsimpy.resourcesqtuh)Nh]quh3)qv}qw(hhjh}qx(h!]h"]qy(UxrefqzhoXpy-modq{eh#]h$]h']uhhhh]q|h9Xresourceq}q~}q(hUhhvubahh=ubaubh9X: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).qq}q(hX: Resources that can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).hhcubeubaubh])q}q(hX:mod:`~simpy.resources.container`: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples). hhWhhOhh`h}q(h!]h"]h#]h$]h']uh)Nh*hh]qhK)q}q(hX:mod:`~simpy.resources.container`: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).hhhhOhhPh}q(h!]h"]h#]h$]h']uh)Kh]q(hg)q}q(hX!:mod:`~simpy.resources.container`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.containerU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9X containerqq}q(hUhhubahh=ubaubh9X: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hX: Resources that model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).hhubeubaubh])q}q(hXo:mod:`~simpy.resources.store`: Resources that allow the production and consumption of discrete Python objects. hhWhhOhh`h}q(h!]h"]h#]h$]h']uh)Nh*hh]qhK)q}q(hXn:mod:`~simpy.resources.store`: Resources that allow the production and consumption of discrete Python objects.hhhhOhhPh}q(h!]h"]h#]h$]h']uh)K h]q(hg)q}q(hX:mod:`~simpy.resources.store`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.storeU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9Xstoreqq}q(hUhhubahh=ubaubh9XQ: Resources that allow the production and consumption of discrete Python objects.qq}q(hXQ: Resources that allow the production and consumption of discrete Python objects.hhubeubaubeubhK)q}q(hXeThe :mod:`~simpy.resources.base` module defines the base classes that are used by all resource types.hhhhOhhPh}q(h!]h"]h#]h$]h']uh)Kh*hh]q(h9XThe qq}q(hXThe hhubhg)q}q(hX:mod:`~simpy.resources.base`qhhhNhhkh}q(UreftypeXmodhmhnXsimpy.resources.baseU refdomainXpyqh$]h#]U refexplicith!]h"]h']hphqhrNhshtuh)Nh]qh3)q}q(hhh}q(h!]h"]q(hzhXpy-modqeh#]h$]h']uhhh]qh9Xbaseqʅq}q(hUhhubahh=ubaubh9XE module defines the base classes that are used by all resource types.qͅq}q(hXE module defines the base classes that are used by all resource types.hhubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh*hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh0NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUQ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.rstrUgettext_compactrU generatorr NUdump_internalsr!NU smart_quotesr"U pep_base_urlr#Uhttp://www.python.org/dev/peps/r$Usyntax_highlightr%Ulongr&Uinput_encoding_error_handlerr'jUauto_id_prefixr(Uidr)Udoctitle_xformr*Ustrip_elements_with_classesr+NU _config_filesr,]Ufile_insertion_enabledr-U raw_enabledr.KU dump_settingsr/NubUsymbol_footnote_startr0KUidsr1}r2(h&cdocutils.nodes target r3)r4}r5(hUhhhhEhUtargetr6h}r7(h!]h$]r8h&ah#]Uismodh"]h']uh)Kh*hh]ubhhuUsubstitution_namesr9}r:hh*h}r;(h!]h$]h#]Usourcehh"]h']uU footnotesr<]r=Urefidsr>}r?ub.PK{E"0f0fCsimpy-3.0/.doctrees/api_reference/simpy.resources.container.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X)simpy.resources.container.Container.levelqX-simpy.resources.container.ContainerPut.amountqX-simpy.resources.container.ContainerGet.amountqX&simpy.resources.container.ContainerGetq X'simpy.resources.container.Container.getq X&simpy.resources.container.ContainerPutq X,simpy.resources.container.Container.capacityq X6simpy.resources.container --- container type resourcesq NX#simpy.resources.container.ContainerqX'simpy.resources.container.Container.putquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h U2simpy-resources-container-container-type-resourcesqhhhhuUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentq hUsourceq!cdocutils.nodes reprunicode q"X[/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.container.rstq#q$}q%bUtagnameq&Usectionq'U attributesq(}q)(Udupnamesq*]Uclassesq+]Ubackrefsq,]Uidsq-]q.(X module-simpy.resources.containerq/heUnamesq0]q1h auUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(hX:``simpy.resources.container`` --- Container type resourcesq8h hh!h$h&Utitleq9h(}q:(h*]h+]h,]h-]h0]uh2Kh3hh]q;(cdocutils.nodes literal q<)q=}q>(hX``simpy.resources.container``q?h(}q@(h*]h+]h,]h-]h0]uh h6h]qAcdocutils.nodes Text qBXsimpy.resources.containerqCqD}qE(hUh h=ubah&UliteralqFubhBX --- Container type resourcesqGqH}qI(hX --- Container type resourcesqJh h6ubeubcsphinx.addnodes index qK)qL}qM(hUh hh!U qNh&UindexqOh(}qP(h-]h,]h*]h+]h0]Uentries]qQ(UsingleqRX"simpy.resources.container (module)X module-simpy.resources.containerUtqSauh2Kh3hh]ubcdocutils.nodes paragraph qT)qU}qV(hX;This module contains all :class:`Container` like resources.h hh!Xn/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.containerqWh&U paragraphqXh(}qY(h*]h+]h,]h-]h0]uh2Kh3hh]qZ(hBXThis module contains all q[q\}q](hXThis module contains all h hUubcsphinx.addnodes pending_xref q^)q_}q`(hX:class:`Container`qah hUh!h$h&U pending_xrefqbh(}qc(UreftypeXclassUrefwarnqdU reftargetqeX ContainerU refdomainXpyqfh-]h,]U refexplicith*]h+]h0]UrefdocqgX'api_reference/simpy.resources.containerqhUpy:classqiNU py:moduleqjXsimpy.resources.containerqkuh2Kh]qlh<)qm}qn(hhah(}qo(h*]h+]qp(UxrefqqhfXpy-classqreh,]h-]h0]uh h_h]qshBX Containerqtqu}qv(hUh hmubah&hFubaubhBX like resources.qwqx}qy(hX like resources.h hUubeubhT)qz}q{(hXContainers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).q|h hh!hWh&hXh(}q}(h*]h+]h,]h-]h0]uh2Kh3hh]q~hBXContainers model the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hh|h hzubaubhT)q}q(hXFor example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station's storage tanks.qh hh!hWh&hXh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]qhBXFor example, a gasoline station stores gas (petrol) in large tanks. Tankers increase, and refuelled cars decrease, the amount of gas in the station's storage tanks.qq}q(hhh hubaubhK)q}q(hUh hh!Nh&hOh(}q(h-]h,]h*]h+]h0]Uentries]q(hRX.Container (class in simpy.resources.container)hUtqauh2Nh3hh]ubcsphinx.addnodes desc q)q}q(hUh hh!Nh&Udescqh(}q(UnoindexqUdomainqXpyh-]h,]h*]h+]h0]UobjtypeqXclassqUdesctypeqhuh2Nh3hh]q(csphinx.addnodes desc_signature q)q}q(hX Container(env, capacity, init=0)h hh!U qh&Udesc_signatureqh(}q(h-]qhaUmoduleqh"Xsimpy.resources.containerqq}qbh,]h*]h+]h0]qhaUfullnameqX ContainerqUclassqUUfirstquh2Nh3hh]q(csphinx.addnodes desc_annotation q)q}q(hXclass h hh!hh&Udesc_annotationqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBXclass qq}q(hUh hubaubcsphinx.addnodes desc_addname q)q}q(hXsimpy.resources.container.h hh!hh&U desc_addnameqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBXsimpy.resources.container.qq}q(hUh hubaubcsphinx.addnodes desc_name q)q}q(hhh hh!hh&U desc_nameqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]qhBX ContainerqÅq}q(hUh hubaubcsphinx.addnodes desc_parameterlist q)q}q(hUh hh!hh&Udesc_parameterlistqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]q(csphinx.addnodes desc_parameter q)q}q(hXenvh(}q(h*]h+]h,]h-]h0]uh hh]qhBXenvqхq}q(hUh hubah&Udesc_parameterqubh)q}q(hXcapacityh(}q(h*]h+]h,]h-]h0]uh hh]qhBXcapacityqمq}q(hUh hubah&hubh)q}q(hXinit=0h(}q(h*]h+]h,]h-]h0]uh hh]qhBXinit=0qq}q(hUh hubah&hubeubeubcsphinx.addnodes desc_content q)q}q(hUh hh!hh&U desc_contentqh(}q(h*]h+]h,]h-]h0]uh2Nh3hh]q(hT)q}q(hXModels the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qh hh!Xx/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.Containerqh&hXh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]qhBXModels the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).qq}q(hhh hubaubhT)q}q(hX_The *env* parameter is the :class:`~simpy.core.Environment` instance the container is bound to.h hh!hh&hXh(}q(h*]h+]h,]h-]h0]uh2Kh3hh]q(hBXThe qq}q(hXThe h hubcdocutils.nodes emphasis q)q}q(hX*env*h(}q(h*]h+]h,]h-]h0]uh hh]qhBXenvqq}r(hUh hubah&UemphasisrubhBX parameter is the rr}r(hX parameter is the h hubh^)r}r(hX :class:`~simpy.core.Environment`rh hh!h$h&hbh(}r(UreftypeXclasshdheXsimpy.core.EnvironmentU refdomainXpyr h-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Kh]r h<)r }r (hjh(}r (h*]h+]r(hqj Xpy-classreh,]h-]h0]uh jh]rhBX Environmentrr}r(hUh j ubah&hFubaubhBX$ instance the container is bound to.rr}r(hX$ instance the container is bound to.h hubeubhT)r}r(hXThe *capacity* defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via *init*. It must be >= 0 and is 0 by default.h hh!hh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXThe rr}r(hXThe h jubh)r}r(hX *capacity*h(}r (h*]h+]h,]h-]h0]uh jh]r!hBXcapacityr"r#}r$(hUh jubah&jubhBX defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via r%r&}r'(hX defines the size of the container and must be a positive number (> 0). By default, a container is of unlimited size. You can specify the initial level of the container via h jubh)r(}r)(hX*init*h(}r*(h*]h+]h,]h-]h0]uh jh]r+hBXinitr,r-}r.(hUh j(ubah&jubhBX&. It must be >= 0 and is 0 by default.r/r0}r1(hX&. It must be >= 0 and is 0 by default.h jubeubhT)r2}r3(hXTRaise a :exc:`ValueError` if ``capacity <= 0``, ``init < 0`` or ``init > capacity``.h hh!hh&hXh(}r4(h*]h+]h,]h-]h0]uh2K h3hh]r5(hBXRaise a r6r7}r8(hXRaise a h j2ubh^)r9}r:(hX:exc:`ValueError`r;h j2h!Nh&hbh(}r<(UreftypeXexchdheX ValueErrorU refdomainXpyr=h-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Nh]r>h<)r?}r@(hj;h(}rA(h*]h+]rB(hqj=Xpy-excrCeh,]h-]h0]uh j9h]rDhBX ValueErrorrErF}rG(hUh j?ubah&hFubaubhBX if rHrI}rJ(hX if h j2ubh<)rK}rL(hX``capacity <= 0``h(}rM(h*]h+]h,]h-]h0]uh j2h]rNhBX capacity <= 0rOrP}rQ(hUh jKubah&hFubhBX, rRrS}rT(hX, h j2ubh<)rU}rV(hX ``init < 0``h(}rW(h*]h+]h,]h-]h0]uh j2h]rXhBXinit < 0rYrZ}r[(hUh jUubah&hFubhBX or r\r]}r^(hX or h j2ubh<)r_}r`(hX``init > capacity``h(}ra(h*]h+]h,]h-]h0]uh j2h]rbhBXinit > capacityrcrd}re(hUh j_ubah&hFubhBX.rf}rg(hX.h j2ubeubhK)rh}ri(hUh hh!X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.Container.capacityrjh&hOh(}rk(h-]h,]h*]h+]h0]Uentries]rl(hRX8capacity (simpy.resources.container.Container attribute)h Utrmauh2Nh3hh]ubh)rn}ro(hUh hh!jjh&hh(}rp(hhXpyh-]h,]h*]h+]h0]hX attributerqhjquh2Nh3hh]rr(h)rs}rt(hXContainer.capacityh jnh!hh&hh(}ru(h-]rvh ahh"Xsimpy.resources.containerrwrx}rybh,]h*]h+]h0]rzh ahXContainer.capacityhhhuh2Nh3hh]r{h)r|}r}(hXcapacityh jsh!hh&hh(}r~(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXcapacityrr}r(hUh j|ubaubaubh)r}r(hUh jnh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX&The maximum capacity of the container.rh jh!jjh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX&The maximum capacity of the container.rr}r(hjh jubaubaubeubhK)r}r(hUh hh!X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.Container.levelrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX5level (simpy.resources.container.Container attribute)hUtrauh2Nh3hh]ubh)r}r(hUh hh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainer.levelh jh!hh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainer.levelhhhuh2Nh3hh]rh)r}r(hXlevelh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXlevelrr}r(hUh jubaubaubh)r}r(hUh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hXMThe current level of the container (a number between ``0`` and ``capacity``).h jh!jh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBX5The current level of the container (a number between rr}r(hX5The current level of the container (a number between h jubh<)r}r(hX``0``h(}r(h*]h+]h,]h-]h0]uh jh]rhBX0r}r(hUh jubah&hFubhBX and rr}r(hX and h jubh<)r}r(hX ``capacity``h(}r(h*]h+]h,]h-]h0]uh jh]rhBXcapacityrr}r(hUh jubah&hFubhBX).rr}r(hX).h jubeubaubeubhK)r}r(hUh hh!Uh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX3put (simpy.resources.container.Container attribute)hUtrauh2Nh3hh]ubh)r}r(hUh hh!Uh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hX Container.puth jh!hh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahX Container.puthhhuh2Nh3hh]rh)r}r(hXputh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXputrr}r(hUh jubaubaubh)r}r(hUh jh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(hT)r}r(hX*Creates a new :class:`ContainerPut` event.h jh!X|/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.Container.putrh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXCreates a new rr}r(hXCreates a new h jubh^)r}r(hX:class:`ContainerPut`rh jh!Nh&hbh(}r(UreftypeXclasshdheX ContainerPutU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Nh]rh<)r}r(hjh(}r(h*]h+]r(hqjXpy-classreh,]h-]h0]uh jh]rhBX ContainerPutrr}r(hUh jubah&hFubaubhBX event.rr}r(hX event.h jubeubhT)r}r(hXalias of :class:`ContainerPut`h jh!Uh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBX alias of rr}r(hX alias of h jubh^)r}r(hX:class:`ContainerPut`r h jh!Nh&hbh(}r (UreftypeXclasshdheX ContainerPutU refdomainXpyr h-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Nh]r h<)r }r(hj h(}r(h*]h+]r(hqj Xpy-classreh,]h-]h0]uh jh]rhBX ContainerPutrr}r(hUh j ubah&hFubaubeubeubeubhK)r}r(hUh hh!Uh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX3get (simpy.resources.container.Container attribute)h Utrauh2Nh3hh]ubh)r}r(hUh hh!Uh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r }r!(hX Container.geth jh!hh&hh(}r"(h-]r#h ahh"Xsimpy.resources.containerr$r%}r&bh,]h*]h+]h0]r'h ahX Container.gethhhuh2Nh3hh]r(h)r)}r*(hXgeth j h!hh&hh(}r+(h*]h+]h,]h-]h0]uh2Nh3hh]r,hBXgetr-r.}r/(hUh j)ubaubaubh)r0}r1(hUh jh!hh&hh(}r2(h*]h+]h,]h-]h0]uh2Nh3hh]r3(hT)r4}r5(hX*Creates a new :class:`ContainerGet` event.h j0h!X|/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.Container.getr6h&hXh(}r7(h*]h+]h,]h-]h0]uh2Kh3hh]r8(hBXCreates a new r9r:}r;(hXCreates a new h j4ubh^)r<}r=(hX:class:`ContainerGet`r>h j4h!Nh&hbh(}r?(UreftypeXclasshdheX ContainerGetU refdomainXpyr@h-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Nh]rAh<)rB}rC(hj>h(}rD(h*]h+]rE(hqj@Xpy-classrFeh,]h-]h0]uh j<h]rGhBX ContainerGetrHrI}rJ(hUh jBubah&hFubaubhBX event.rKrL}rM(hX event.h j4ubeubhT)rN}rO(hXalias of :class:`ContainerGet`h j0h!Uh&hXh(}rP(h*]h+]h,]h-]h0]uh2Kh3hh]rQ(hBX alias of rRrS}rT(hX alias of h jNubh^)rU}rV(hX:class:`ContainerGet`rWh jNh!Nh&hbh(}rX(UreftypeXclasshdheX ContainerGetU refdomainXpyrYh-]h,]U refexplicith*]h+]h0]hghhhihhjhkuh2Nh]rZh<)r[}r\(hjWh(}r](h*]h+]r^(hqjYXpy-classr_eh,]h-]h0]uh jUh]r`hBX ContainerGetrarb}rc(hUh j[ubah&hFubaubeubeubeubeubeubhK)rd}re(hUh hh!Nh&hOh(}rf(h-]h,]h*]h+]h0]Uentries]rg(hRX1ContainerPut (class in simpy.resources.container)h Utrhauh2Nh3hh]ubh)ri}rj(hUh hh!Nh&hh(}rk(hhXpyh-]h,]h*]h+]h0]hXclassrlhjluh2Nh3hh]rm(h)rn}ro(hXContainerPut(container, amount)h jih!hh&hh(}rp(h-]rqh ahh"Xsimpy.resources.containerrrrs}rtbh,]h*]h+]h0]ruh ahX ContainerPutrvhUhuh2Nh3hh]rw(h)rx}ry(hXclass h jnh!hh&hh(}rz(h*]h+]h,]h-]h0]uh2Nh3hh]r{hBXclass r|r}}r~(hUh jxubaubh)r}r(hXsimpy.resources.container.h jnh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXsimpy.resources.container.rr}r(hUh jubaubh)r}r(hjvh jnh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBX ContainerPutrr}r(hUh jubaubh)r}r(hUh jnh!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(h)r}r(hX containerh(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&hubh)r}r(hXamounth(}r(h*]h+]h,]h-]h0]uh jh]rhBXamountrr}r(hUh jubah&hubeubeubh)r}r(hUh jih!hh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r(hT)r}r(hX|An event that puts *amount* into the *container*. The event is triggered as soon as there's enough space in the *container*.h jh!X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.ContainerPutrh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXAn event that puts rr}r(hXAn event that puts h jubh)r}r(hX*amount*h(}r(h*]h+]h,]h-]h0]uh jh]rhBXamountrr}r(hUh jubah&jubhBX into the rr}r(hX into the h jubh)r}r(hX *container*h(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&jubhBX@. The event is triggered as soon as there's enough space in the rr}r(hX@. The event is triggered as soon as there's enough space in the h jubh)r}r(hX *container*h(}r(h*]h+]h,]h-]h0]uh jh]rhBX containerrr}r(hUh jubah&jubhBX.r}r(hX.h jubeubhT)r}r(hX-Raise a :exc:`ValueError` if ``amount <= 0``.h jh!jh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXRaise a rr}r(hXRaise a h jubh^)r}r(hX:exc:`ValueError`rh jh!h$h&hbh(}r(UreftypeXexchdheX ValueErrorU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hghhhijvhjhkuh2Kh]rh<)r}r(hjh(}r(h*]h+]r(hqjXpy-excreh,]h-]h0]uh jh]rhBX ValueErrorrr}r(hUh jubah&hFubaubhBX if rr}r(hX if h jubh<)r}r(hX``amount <= 0``h(}r(h*]h+]h,]h-]h0]uh jh]rhBX amount <= 0rr}r(hUh jubah&hFubhBX.r}r(hX.h jubeubhK)r}r(hUh jh!X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.ContainerPut.amountrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX9amount (simpy.resources.container.ContainerPut attribute)hUtrauh2Nh3hh]ubh)r}r(hUh jh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainerPut.amounth jh!U rh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainerPut.amounthjvhuh2Nh3hh]r(h)r}r(hXamounth jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXamountrr}r(hUh jubaubh)r}r(hX = Noneh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]r hBX = Noner r }r (hUh jubaubeubh)r }r(hUh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX(The amount to be put into the container.rh j h!jh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX(The amount to be put into the container.rr}r(hjh jubaubaubeubeubeubhK)r}r(hUh hh!Nh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX1ContainerGet (class in simpy.resources.container)h Utrauh2Nh3hh]ubh)r}r(hUh hh!Nh&hh(}r (hhXpyh-]h,]h*]h+]h0]hXclassr!hj!uh2Nh3hh]r"(h)r#}r$(hXContainerGet(resource, amount)h jh!hh&hh(}r%(h-]r&h ahh"Xsimpy.resources.containerr'r(}r)bh,]h*]h+]h0]r*h ahX ContainerGetr+hUhuh2Nh3hh]r,(h)r-}r.(hXclass h j#h!hh&hh(}r/(h*]h+]h,]h-]h0]uh2Nh3hh]r0hBXclass r1r2}r3(hUh j-ubaubh)r4}r5(hXsimpy.resources.container.h j#h!hh&hh(}r6(h*]h+]h,]h-]h0]uh2Nh3hh]r7hBXsimpy.resources.container.r8r9}r:(hUh j4ubaubh)r;}r<(hj+h j#h!hh&hh(}r=(h*]h+]h,]h-]h0]uh2Nh3hh]r>hBX ContainerGetr?r@}rA(hUh j;ubaubh)rB}rC(hUh j#h!hh&hh(}rD(h*]h+]h,]h-]h0]uh2Nh3hh]rE(h)rF}rG(hXresourceh(}rH(h*]h+]h,]h-]h0]uh jBh]rIhBXresourcerJrK}rL(hUh jFubah&hubh)rM}rN(hXamounth(}rO(h*]h+]h,]h-]h0]uh jBh]rPhBXamountrQrR}rS(hUh jMubah&hubeubeubh)rT}rU(hUh jh!hh&hh(}rV(h*]h+]h,]h-]h0]uh2Nh3hh]rW(hT)rX}rY(hXAn event that gets *amount* from the *container*. The event is triggered as soon as there's enough content available in the *container*.h jTh!X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.ContainerGetrZh&hXh(}r[(h*]h+]h,]h-]h0]uh2Kh3hh]r\(hBXAn event that gets r]r^}r_(hXAn event that gets h jXubh)r`}ra(hX*amount*h(}rb(h*]h+]h,]h-]h0]uh jXh]rchBXamountrdre}rf(hUh j`ubah&jubhBX from the rgrh}ri(hX from the h jXubh)rj}rk(hX *container*h(}rl(h*]h+]h,]h-]h0]uh jXh]rmhBX containerrnro}rp(hUh jjubah&jubhBXL. The event is triggered as soon as there's enough content available in the rqrr}rs(hXL. The event is triggered as soon as there's enough content available in the h jXubh)rt}ru(hX *container*h(}rv(h*]h+]h,]h-]h0]uh jXh]rwhBX containerrxry}rz(hUh jtubah&jubhBX.r{}r|(hX.h jXubeubhT)r}}r~(hX-Raise a :exc:`ValueError` if ``amount <= 0``.rh jTh!jZh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]r(hBXRaise a rr}r(hXRaise a h j}ubh^)r}r(hX:exc:`ValueError`rh j}h!h$h&hbh(}r(UreftypeXexchdheX ValueErrorU refdomainXpyrh-]h,]U refexplicith*]h+]h0]hghhhij+hjhkuh2Kh]rh<)r}r(hjh(}r(h*]h+]r(hqjXpy-excreh,]h-]h0]uh jh]rhBX ValueErrorrr}r(hUh jubah&hFubaubhBX if rr}r(hX if h j}ubh<)r}r(hX``amount <= 0``h(}r(h*]h+]h,]h-]h0]uh j}h]rhBX amount <= 0rr}r(hUh jubah&hFubhBX.r}r(hX.h j}ubeubhK)r}r(hUh jTh!X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/container.py:docstring of simpy.resources.container.ContainerGet.amountrh&hOh(}r(h-]h,]h*]h+]h0]Uentries]r(hRX9amount (simpy.resources.container.ContainerGet attribute)hUtrauh2Nh3hh]ubh)r}r(hUh jTh!jh&hh(}r(hhXpyh-]h,]h*]h+]h0]hX attributerhjuh2Nh3hh]r(h)r}r(hXContainerGet.amountrh jh!jh&hh(}r(h-]rhahh"Xsimpy.resources.containerrr}rbh,]h*]h+]h0]rhahXContainerGet.amounthj+huh2Nh3hh]r(h)r}r(hXamounth jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBXamountrr}r(hUh jubaubh)r}r(hX = Noneh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhBX = Nonerr}r(hUh jubaubeubh)r}r(hUh jh!jh&hh(}r(h*]h+]h,]h-]h0]uh2Nh3hh]rhT)r}r(hX,The amount to be taken out of the container.rh jh!jh&hXh(}r(h*]h+]h,]h-]h0]uh2Kh3hh]rhBX,The amount to be taken out of the container.rr}r(hjh jubaubaubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh3hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh9NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerU[/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.container.rstrUgettext_compactrU generatorrNUdump_internalsr NU smart_quotesr!U pep_base_urlr"Uhttp://www.python.org/dev/peps/r#Usyntax_highlightr$Ulongr%Uinput_encoding_error_handlerr&jUauto_id_prefixr'Uidr(Udoctitle_xformr)Ustrip_elements_with_classesr*NU _config_filesr+]Ufile_insertion_enabledr,U raw_enabledr-KU dump_settingsr.NubUsymbol_footnote_startr/KUidsr0}r1(hjhjhjh j#h j h jnh jsh/cdocutils.nodes target r2)r3}r4(hUh hh!hNh&Utargetr5h(}r6(h*]h-]r7h/ah,]Uismodh+]h0]uh2Kh3hh]ubhhhhhjuUsubstitution_namesr8}r9h&h3h(}r:(h*]h-]h,]Usourceh$h+]h0]uU footnotesr;]r<Urefidsr=}r>ub.PK{E@ :simpy-3.0/.doctrees/api_reference/simpy.monitoring.doctreecdocutils.nodes document q)q}q(U nametypesq}qX.simpy.monitoring --- monitor simpy simulationsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU*simpy-monitoring-monitor-simpy-simulationsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXR/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.monitoring.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%(Xmodule-simpy.monitoringq&heUnamesq']q(hauUlineq)KUdocumentq*hh]q+(cdocutils.nodes title q,)q-}q.(hX2``simpy.monitoring`` --- Monitor SimPy simulationsq/hhhhhUtitleq0h}q1(h!]h"]h#]h$]h']uh)Kh*hh]q2(cdocutils.nodes literal q3)q4}q5(hX``simpy.monitoring``q6h}q7(h!]h"]h#]h$]h']uhh-h]q8cdocutils.nodes Text q9Xsimpy.monitoringq:q;}q<(hUhh4ubahUliteralq=ubh9X --- Monitor SimPy simulationsq>q?}q@(hX --- Monitor SimPy simulationsqAhh-ubeubcsphinx.addnodes index qB)qC}qD(hUhhhU qEhUindexqFh}qG(h$]h#]h!]h"]h']Uentries]qH(UsingleqIXsimpy.monitoring (module)Xmodule-simpy.monitoringUtqJauh)Kh*hh]ubcdocutils.nodes paragraph qK)qL}qM(hX=SimPy's monitoring capabilities will be added in version 3.1.qNhhhX\/var/build/user_builds/simpy/checkouts/3.0/simpy/monitoring.py:docstring of simpy.monitoringqOhU paragraphqPh}qQ(h!]h"]h#]h$]h']uh)Kh*hh]qRh9X=SimPy's monitoring capabilities will be added in version 3.1.qSqT}qU(hhNhhLubaubeubahUU transformerqVNU footnote_refsqW}qXUrefnamesqY}qZUsymbol_footnotesq[]q\Uautofootnote_refsq]]q^Usymbol_footnote_refsq_]q`U citationsqa]qbh*hU current_lineqcNUtransform_messagesqd]qeUreporterqfNUid_startqgKU autofootnotesqh]qiU citation_refsqj}qkUindirect_targetsql]qmUsettingsqn(cdocutils.frontend Values qooqp}qq(Ufootnote_backlinksqrKUrecord_dependenciesqsNU rfc_base_urlqtUhttp://tools.ietf.org/html/quU tracebackqvUpep_referencesqwNUstrip_commentsqxNU toc_backlinksqyUentryqzU language_codeq{Uenq|U datestampq}NU report_levelq~KU _destinationqNU halt_levelqKU strip_classesqNh0NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUR/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.monitoring.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}q(h&cdocutils.nodes target q)q}q(hUhhhhEhUtargetqh}q(h!]h$]qh&ah#]Uismodh"]h']uh)Kh*hh]ubhhuUsubstitution_namesq}qhh*h}q(h!]h$]h#]Usourcehh"]h']uU footnotesq]qUrefidsq}qub.PK{Ed}#m2 2 Bsimpy-3.0/.doctrees/api_reference/simpy.resources.resource.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X'simpy.resources.resource.Resource.countqX3simpy.resources.resource -- resource type resourcesqNX%simpy.resources.resource.Preempted.byqX+simpy.resources.resource.SortedQueue.maxlenq X simpy.resources.resource.Releaseq X1simpy.resources.resource.PriorityRequest.priorityq X+simpy.resources.resource.SortedQueue.appendq X$simpy.resources.resource.SortedQueueq X)simpy.resources.resource.Resource.requestqX simpy.resources.resource.RequestqX*simpy.resources.resource.Resource.capacityqX)simpy.resources.resource.PriorityResourceqX"simpy.resources.resource.PreemptedqX(simpy.resources.resource.PriorityRequestqX+simpy.resources.resource.PreemptiveResourceqX2simpy.resources.resource.PriorityResource.PutQueueqX-simpy.resources.resource.PriorityRequest.timeqX'simpy.resources.resource.Resource.queueqX.simpy.resources.resource.Preempted.usage_sinceqX(simpy.resources.resource.Release.requestqX0simpy.resources.resource.PriorityRequest.preemptqX,simpy.resources.resource.PriorityRequest.keyqX1simpy.resources.resource.PriorityResource.requestqX'simpy.resources.resource.Resource.usersqX)simpy.resources.resource.Resource.releaseqX!simpy.resources.resource.ResourceqX2simpy.resources.resource.PriorityResource.GetQueueq uUsubstitution_defsq!}q"Uparse_messagesq#]q$Ucurrent_sourceq%NU decorationq&NUautofootnote_startq'KUnameidsq(}q)(hhhU0simpy-resources-resource-resource-type-resourcesq*hhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h uUchildrenq+]q,cdocutils.nodes section q-)q.}q/(U rawsourceq0UUparentq1hUsourceq2cdocutils.nodes reprunicode q3XZ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.resource.rstq4q5}q6bUtagnameq7Usectionq8U attributesq9}q:(Udupnamesq;]Uclassesq<]Ubackrefsq=]Uidsq>]q?(Xmodule-simpy.resources.resourceq@h*eUnamesqA]qBhauUlineqCKUdocumentqDhh+]qE(cdocutils.nodes title qF)qG}qH(h0X7``simpy.resources.resource`` -- Resource type resourcesqIh1h.h2h5h7UtitleqJh9}qK(h;]h<]h=]h>]hA]uhCKhDhh+]qL(cdocutils.nodes literal qM)qN}qO(h0X``simpy.resources.resource``qPh9}qQ(h;]h<]h=]h>]hA]uh1hGh+]qRcdocutils.nodes Text qSXsimpy.resources.resourceqTqU}qV(h0Uh1hNubah7UliteralqWubhSX -- Resource type resourcesqXqY}qZ(h0X -- Resource type resourcesq[h1hGubeubcsphinx.addnodes index q\)q]}q^(h0Uh1h.h2U q_h7Uindexq`h9}qa(h>]h=]h;]h<]hA]Uentries]qb(UsingleqcX!simpy.resources.resource (module)Xmodule-simpy.resources.resourceUtqdauhCKhDhh+]ubcdocutils.nodes paragraph qe)qf}qg(h0X:This module contains all :class:`Resource` like resources.h1h.h2Xl/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resourceqhh7U paragraphqih9}qj(h;]h<]h=]h>]hA]uhCKhDhh+]qk(hSXThis module contains all qlqm}qn(h0XThis module contains all h1hfubcsphinx.addnodes pending_xref qo)qp}qq(h0X:class:`Resource`qrh1hfh2h5h7U pending_xrefqsh9}qt(UreftypeXclassUrefwarnquU reftargetqvXResourceU refdomainXpyqwh>]h=]U refexplicith;]h<]hA]UrefdocqxX&api_reference/simpy.resources.resourceqyUpy:classqzNU py:moduleq{Xsimpy.resources.resourceq|uhCKh+]q}hM)q~}q(h0hrh9}q(h;]h<]q(UxrefqhwXpy-classqeh=]h>]hA]uh1hph+]qhSXResourceqq}q(h0Uh1h~ubah7hWubaubhSX like resources.qq}q(h0X like resources.h1hfubeubhe)q}q(h0XeThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes *request* these resources to become a user (or to own them) and have to *release* them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCKhDhh+]q(hSXThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes qq}q(h0XThese resources can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). Processes h1hubcdocutils.nodes emphasis q)q}q(h0X *request*h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXrequestqq}q(h0Uh1hubah7UemphasisqubhSX? these resources to become a user (or to own them) and have to qq}q(h0X? these resources to become a user (or to own them) and have to h1hubh)q}q(h0X *release*h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXreleaseqq}q(h0Uh1hubah7hubhSX them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).qq}q(h0X them once they are done (e.g., vehicles arrive at the gas station, use a fuel-pump, if one is available, and leave when they are done).h1hubeubhe)q}q(h0XRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling ``request()``/``release()`` is equivalent to calling ``put()``/``get()``. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCK hDhh+]q(hSXRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling qq}q(h0XRequesting a resources is modeled as "putting a process' token into the resources" and releasing a resources correspondingly as "getting a process' token out of the resource". Thus, calling h1hubhM)q}q(h0X ``request()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSX request()qq}q(h0Uh1hubah7hWubhSX/q}q(h0X/h1hubhM)q}q(h0X ``release()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSX release()qq}q(h0Uh1hubah7hWubhSX is equivalent to calling qq}q(h0X is equivalent to calling h1hubhM)q}q(h0X ``put()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXput()qƅq}q(h0Uh1hubah7hWubhSX/q}q(h0X/h1hubhM)q}q(h0X ``get()``h9}q(h;]h<]h=]h>]hA]uh1hh+]qhSXget()qυq}q(h0Uh1hubah7hWubhSX~. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.q҅q}q(h0X~. Note, that releasing a resource will always succeed immediately, no matter if a process is actually using a resource or not.h1hubeubhe)q}q(h0XBeside :class:`Resource`, there are a :class:`PriorityResource`, were processes can define a request priority, and a :class:`PreemptiveResource` whose resource users can be preempted by other processes with a higher priority.h1h.h2hhh7hih9}q(h;]h<]h=]h>]hA]uhCKhDhh+]q(hSXBeside qمq}q(h0XBeside h1hubho)q}q(h0X:class:`Resource`qh1hh2h5h7hsh9}q(UreftypeXclasshuhvXResourceU refdomainXpyqh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]qhM)q}q(h0hh9}q(h;]h<]q(hhXpy-classqeh=]h>]hA]uh1hh+]qhSXResourceq腁q}q(h0Uh1hubah7hWubaubhSX, there are a q녁q}q(h0X, there are a h1hubho)q}q(h0X:class:`PriorityResource`qh1hh2h5h7hsh9}q(UreftypeXclasshuhvXPriorityResourceU refdomainXpyqh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]qhM)q}q(h0hh9}q(h;]h<]q(hhXpy-classqeh=]h>]hA]uh1hh+]qhSXPriorityResourceqq}q(h0Uh1hubah7hWubaubhSX6, were processes can define a request priority, and a qq}q(h0X6, were processes can define a request priority, and a h1hubho)r}r(h0X:class:`PreemptiveResource`rh1hh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzNh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r (hjXpy-classr eh=]h>]hA]uh1jh+]r hSXPreemptiveResourcer r }r(h0Uh1jubah7hWubaubhSXQ whose resource users can be preempted by other processes with a higher priority.rr}r(h0XQ whose resource users can be preempted by other processes with a higher priority.h1hubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX,Resource (class in simpy.resources.resource)hUtrauhCNhDhh+]ubcsphinx.addnodes desc r)r}r(h0Uh1h.h2Nh7Udescrh9}r(UnoindexrUdomainrXpyh>]h=]h;]h<]hA]UobjtyperXclassrUdesctyper juhCNhDhh+]r!(csphinx.addnodes desc_signature r")r#}r$(h0XResource(env, capacity=1)h1jh2U r%h7Udesc_signaturer&h9}r'(h>]r(haUmoduler)h3Xsimpy.resources.resourcer*r+}r,bh=]h;]h<]hA]r-haUfullnamer.XResourcer/Uclassr0UUfirstr1uhCNhDhh+]r2(csphinx.addnodes desc_annotation r3)r4}r5(h0Xclass h1j#h2j%h7Udesc_annotationr6h9}r7(h;]h<]h=]h>]hA]uhCNhDhh+]r8hSXclass r9r:}r;(h0Uh1j4ubaubcsphinx.addnodes desc_addname r<)r=}r>(h0Xsimpy.resources.resource.h1j#h2j%h7U desc_addnamer?h9}r@(h;]h<]h=]h>]hA]uhCNhDhh+]rAhSXsimpy.resources.resource.rBrC}rD(h0Uh1j=ubaubcsphinx.addnodes desc_name rE)rF}rG(h0j/h1j#h2j%h7U desc_namerHh9}rI(h;]h<]h=]h>]hA]uhCNhDhh+]rJhSXResourcerKrL}rM(h0Uh1jFubaubcsphinx.addnodes desc_parameterlist rN)rO}rP(h0Uh1j#h2j%h7Udesc_parameterlistrQh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rS(csphinx.addnodes desc_parameter rT)rU}rV(h0Xenvh9}rW(h;]h<]h=]h>]hA]uh1jOh+]rXhSXenvrYrZ}r[(h0Uh1jUubah7Udesc_parameterr\ubjT)r]}r^(h0X capacity=1h9}r_(h;]h<]h=]h>]hA]uh1jOh+]r`hSX capacity=1rarb}rc(h0Uh1j]ubah7j\ubeubeubcsphinx.addnodes desc_content rd)re}rf(h0Uh1jh2j%h7U desc_contentrgh9}rh(h;]h<]h=]h>]hA]uhCNhDhh+]ri(he)rj}rk(h0XLA resource has a limited number of slots that can be requested by a process.rlh1jeh2Xu/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resourcermh7hih9}rn(h;]h<]h=]h>]hA]uhCKhDhh+]rohSXLA resource has a limited number of slots that can be requested by a process.rprq}rr(h0jlh1jjubaubhe)rs}rt(h0XIf all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.ruh1jeh2jmh7hih9}rv(h;]h<]h=]h>]hA]uhCKhDhh+]rwhSXIf all slots are taken, requesters are put into a queue. If a process releases a slot, the next process is popped from the queue and gets one slot.rxry}rz(h0juh1jsubaubhe)r{}r|(h0X^The *env* parameter is the :class:`~simpy.core.Environment` instance the resource is bound to.h1jeh2jmh7hih9}r}(h;]h<]h=]h>]hA]uhCKhDhh+]r~(hSXThe rr}r(h0XThe h1j{ubh)r}r(h0X*env*h9}r(h;]h<]h=]h>]hA]uh1j{h+]rhSXenvrr}r(h0Uh1jubah7hubhSX parameter is the rr}r(h0X parameter is the h1j{ubho)r}r(h0X :class:`~simpy.core.Environment`rh1j{h2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.core.EnvironmentU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX Environmentrr}r(h0Uh1jubah7hWubaubhSX# instance the resource is bound to.rr}r(h0X# instance the resource is bound to.h1j{ubeubhe)r}r(h0XJThe *capacity* defines the number of slots and must be a positive integer.h1jeh2jmh7hih9}r(h;]h<]h=]h>]hA]uhCK hDhh+]r(hSXThe rr}r(h0XThe h1jubh)r}r(h0X *capacity*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXcapacityrr}r(h0Uh1jubah7hubhSX< defines the number of slots and must be a positive integer.rr}r(h0X< defines the number of slots and must be a positive integer.h1jubeubh\)r}r(h0Uh1jeh2X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.usersrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3users (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.usersh1jh2U rh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.usersj0j/j1uhCNhDhh+]r(jE)r}r(h0Xusersh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXusersrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XXList of :class:`Request` events for the processes that are currently using the resource.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXList of rr}r(h0XList of h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX@ events for the processes that are currently using the resource.rr}r(h0X@ events for the processes that are currently using the resource.h1jubeubaubeubh\)r}r(h0Uh1jeh2X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.queuerh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3queue (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.queueh1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.queuej0j/j1uhCNhDhh+]r(jE)r}r(h0Xqueueh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXqueuerr}r (h0Uh1jubaubj3)r }r (h0X = Noneh1jh2jh7j6h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSX = Nonerr}r(h0Uh1j ubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XcQueue/list of pending :class:`Request` events that represent processes waiting to use the resource.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXQueue/list of pending rr}r(h0XQueue/list of pending h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyr h>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCKh+]r!hM)r"}r#(h0jh9}r$(h;]h<]r%(hj Xpy-classr&eh=]h>]hA]uh1jh+]r'hSXRequestr(r)}r*(h0Uh1j"ubah7hWubaubhSX= events that represent processes waiting to use the resource.r+r,}r-(h0X= events that represent processes waiting to use the resource.h1jubeubaubeubh\)r.}r/(h0Uh1jeh2X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.capacityr0h7h`h9}r1(h>]h=]h;]h<]hA]Uentries]r2(hcX6capacity (simpy.resources.resource.Resource attribute)hUtr3auhCNhDhh+]ubj)r4}r5(h0Uh1jeh2j0h7jh9}r6(jjXpyh>]h=]h;]h<]hA]jX attributer7j j7uhCNhDhh+]r8(j")r9}r:(h0XResource.capacityh1j4h2j%h7j&h9}r;(h>]r<haj)h3Xsimpy.resources.resourcer=r>}r?bh=]h;]h<]hA]r@haj.XResource.capacityj0j/j1uhCNhDhh+]rAjE)rB}rC(h0Xcapacityh1j9h2j%h7jHh9}rD(h;]h<]h=]h>]hA]uhCNhDhh+]rEhSXcapacityrFrG}rH(h0Uh1jBubaubaubjd)rI}rJ(h0Uh1j4h2j%h7jgh9}rK(h;]h<]h=]h>]hA]uhCNhDhh+]rLhe)rM}rN(h0X!Maximum capacity of the resource.rOh1jIh2j0h7hih9}rP(h;]h<]h=]h>]hA]uhCKhDhh+]rQhSX!Maximum capacity of the resource.rRrS}rT(h0jOh1jMubaubaubeubh\)rU}rV(h0Uh1jeh2X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.countrWh7h`h9}rX(h>]h=]h;]h<]hA]Uentries]rY(hcX3count (simpy.resources.resource.Resource attribute)hUtrZauhCNhDhh+]ubj)r[}r\(h0Uh1jeh2jWh7jh9}r](jjXpyh>]h=]h;]h<]hA]jX attributer^j j^uhCNhDhh+]r_(j")r`}ra(h0XResource.counth1j[h2j%h7j&h9}rb(h>]rchaj)h3Xsimpy.resources.resourcerdre}rfbh=]h;]h<]hA]rghaj.XResource.countj0j/j1uhCNhDhh+]rhjE)ri}rj(h0Xcounth1j`h2j%h7jHh9}rk(h;]h<]h=]h>]hA]uhCNhDhh+]rlhSXcountrmrn}ro(h0Uh1jiubaubaubjd)rp}rq(h0Uh1j[h2j%h7jgh9}rr(h;]h<]h=]h>]hA]uhCNhDhh+]rshe)rt}ru(h0X-Number of users currently using the resource.rvh1jph2jWh7hih9}rw(h;]h<]h=]h>]hA]uhCKhDhh+]rxhSX-Number of users currently using the resource.ryrz}r{(h0jvh1jtubaubaubeubh\)r|}r}(h0Uh1jeh2Uh7h`h9}r~(h>]h=]h;]h<]hA]Uentries]r(hcX5request (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.requesth1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.requestj0j/j1uhCNhDhh+]rjE)r}r(h0Xrequesth1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXrequestrr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0X$Create a new :class:`Request` event.h1jh2X}/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.requesth7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX Create a new rr}r(h0X Create a new h1jubho)r}r(h0X:class:`Request`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX event.rr}r(h0X event.h1jubeubhe)r}r(h0Xalias of :class:`Request`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`Request`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubeubeubeubh\)r}r(h0Uh1jeh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX5release (simpy.resources.resource.Resource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jeh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XResource.releaseh1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XResource.releasej0j/j1uhCNhDhh+]rjE)r}r(h0Xreleaseh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXreleaserr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0X$Create a new :class:`Release` event.h1jh2X}/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Resource.releaseh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX Create a new rr}r(h0X Create a new h1jubho)r}r(h0X:class:`Release`rh1jh2Nh7hsh9}r(UreftypeXclasshuhvXReleaseU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXReleaserr}r(h0Uh1jubah7hWubaubhSX event.rr}r(h0X event.h1jubeubhe)r}r(h0Xalias of :class:`Release`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`Release`r h1jh2Nh7hsh9}r (UreftypeXclasshuhvXReleaseU refdomainXpyr h>]h=]U refexplicith;]h<]hA]hxhyhzj/h{h|uhCNh+]r hM)r }r(h0j h9}r(h;]h<]r(hj Xpy-classreh=]h>]hA]uh1jh+]rhSXReleaserr}r(h0Uh1j ubah7hWubaubeubeubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX4PriorityResource (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r }r!(h0X!PriorityResource(env, capacity=1)h1jh2j%h7j&h9}r"(h>]r#haj)h3Xsimpy.resources.resourcer$r%}r&bh=]h;]h<]hA]r'haj.XPriorityResourcer(j0Uj1uhCNhDhh+]r)(j3)r*}r+(h0Xclass h1j h2j%h7j6h9}r,(h;]h<]h=]h>]hA]uhCNhDhh+]r-hSXclass r.r/}r0(h0Uh1j*ubaubj<)r1}r2(h0Xsimpy.resources.resource.h1j h2j%h7j?h9}r3(h;]h<]h=]h>]hA]uhCNhDhh+]r4hSXsimpy.resources.resource.r5r6}r7(h0Uh1j1ubaubjE)r8}r9(h0j(h1j h2j%h7jHh9}r:(h;]h<]h=]h>]hA]uhCNhDhh+]r;hSXPriorityResourcer<r=}r>(h0Uh1j8ubaubjN)r?}r@(h0Uh1j h2j%h7jQh9}rA(h;]h<]h=]h>]hA]uhCNhDhh+]rB(jT)rC}rD(h0Xenvh9}rE(h;]h<]h=]h>]hA]uh1j?h+]rFhSXenvrGrH}rI(h0Uh1jCubah7j\ubjT)rJ}rK(h0X capacity=1h9}rL(h;]h<]h=]h>]hA]uh1j?h+]rMhSX capacity=1rNrO}rP(h0Uh1jJubah7j\ubeubeubjd)rQ}rR(h0Uh1jh2j%h7jgh9}rS(h;]h<]h=]h>]hA]uhCNhDhh+]rT(he)rU}rV(h0XMThis class works like :class:`Resource`, but requests are sorted by priority.h1jQh2X}/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResourcerWh7hih9}rX(h;]h<]h=]h>]hA]uhCKhDhh+]rY(hSXThis class works like rZr[}r\(h0XThis class works like h1jUubho)r]}r^(h0X:class:`Resource`r_h1jUh2h5h7hsh9}r`(UreftypeXclasshuhvXResourceU refdomainXpyrah>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rbhM)rc}rd(h0j_h9}re(h;]h<]rf(hjaXpy-classrgeh=]h>]hA]uh1j]h+]rhhSXResourcerirj}rk(h0Uh1jcubah7hWubaubhSX&, but requests are sorted by priority.rlrm}rn(h0X&, but requests are sorted by priority.h1jUubeubhe)ro}rp(h0XThe :attr:`~Resource.queue` is kept sorted by priority in ascending order (a lower value for *priority* results in a higher priority), so more important request will get the resource earlier.h1jQh2jWh7hih9}rq(h;]h<]h=]h>]hA]uhCKhDhh+]rr(hSXThe rsrt}ru(h0XThe h1joubho)rv}rw(h0X:attr:`~Resource.queue`rxh1joh2h5h7hsh9}ry(UreftypeXattrhuhvXResource.queueU refdomainXpyrzh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]r{hM)r|}r}(h0jxh9}r~(h;]h<]r(hjzXpy-attrreh=]h>]hA]uh1jvh+]rhSXqueuerr}r(h0Uh1j|ubah7hWubaubhSXB is kept sorted by priority in ascending order (a lower value for rr}r(h0XB is kept sorted by priority in ascending order (a lower value for h1joubh)r}r(h0X *priority*h9}r(h;]h<]h=]h>]hA]uh1joh+]rhSXpriorityrr}r(h0Uh1jubah7hubhSXX results in a higher priority), so more important request will get the resource earlier.rr}r(h0XX results in a higher priority), so more important request will get the resource earlier.h1joubeubh\)r}r(h0Uh1jQh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX>PutQueue (simpy.resources.resource.PriorityResource attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jQh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityResource.PutQueueh1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPriorityResource.PutQueuej0j(j1uhCNhDhh+]rjE)r}r(h0XPutQueueh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXPutQueuerr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.put_queue`.h1jh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.PutQueueh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThe type to be used for the rr}r(h0XThe type to be used for the h1jubho)r}r(h0X4:attr:`~simpy.resources.base.BaseResource.put_queue`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvX+simpy.resources.base.BaseResource.put_queueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-attrreh=]h>]hA]uh1jh+]rhSX put_queuerr}r(h0Uh1jubah7hWubaubhSX.r}r(h0X.h1jubeubhe)r}r(h0Xalias of :class:`SortedQueue`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X:class:`SortedQueue`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvX SortedQueueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX SortedQueuerr}r(h0Uh1jubah7hWubaubeubeubeubh\)r}r(h0Uh1jQh2Uh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX>GetQueue (simpy.resources.resource.PriorityResource attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jQh2Uh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityResource.GetQueueh1jh2j%h7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XPriorityResource.GetQueuej0j(j1uhCNhDhh+]rjE)r}r(h0XGetQueueh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXGetQueuerr}r(h0Uh1jubaubaubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.get_queue`.h1jh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.GetQueueh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThe type to be used for the rr}r(h0XThe type to be used for the h1jubho)r}r(h0X4:attr:`~simpy.resources.base.BaseResource.get_queue`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvX+simpy.resources.base.BaseResource.get_queueU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]rhM)r }r (h0jh9}r (h;]h<]r (hjXpy-attrr eh=]h>]hA]uh1jh+]rhSX get_queuerr}r(h0Uh1j ubah7hWubaubhSX.r}r(h0X.h1jubeubhe)r}r(h0Xalias of :class:`list`h1jh2Uh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX alias of rr}r(h0X alias of h1jubho)r}r(h0X :class:`list`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXlistU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCKh+]r hM)r!}r"(h0jh9}r#(h;]h<]r$(hjXpy-classr%eh=]h>]hA]uh1jh+]r&hSXlistr'r(}r)(h0Uh1j!ubah7hWubaubeubeubeubh\)r*}r+(h0Uh1jQh2Uh7h`h9}r,(h>]h=]h;]h<]hA]Uentries]r-(hcX=request (simpy.resources.resource.PriorityResource attribute)hUtr.auhCNhDhh+]ubj)r/}r0(h0Uh1jQh2Uh7jh9}r1(jjXpyh>]h=]h;]h<]hA]jX attributer2j j2uhCNhDhh+]r3(j")r4}r5(h0XPriorityResource.requesth1j/h2j%h7j&h9}r6(h>]r7haj)h3Xsimpy.resources.resourcer8r9}r:bh=]h;]h<]hA]r;haj.XPriorityResource.requestj0j(j1uhCNhDhh+]r<jE)r=}r>(h0Xrequesth1j4h2j%h7jHh9}r?(h;]h<]h=]h>]hA]uhCNhDhh+]r@hSXrequestrArB}rC(h0Uh1j=ubaubaubjd)rD}rE(h0Uh1j/h2j%h7jgh9}rF(h;]h<]h=]h>]hA]uhCNhDhh+]rG(he)rH}rI(h0X,Create a new :class:`PriorityRequest` event.h1jDh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityResource.requesth7hih9}rJ(h;]h<]h=]h>]hA]uhCKhDhh+]rK(hSX Create a new rLrM}rN(h0X Create a new h1jHubho)rO}rP(h0X:class:`PriorityRequest`rQh1jHh2Nh7hsh9}rR(UreftypeXclasshuhvXPriorityRequestU refdomainXpyrSh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCNh+]rThM)rU}rV(h0jQh9}rW(h;]h<]rX(hjSXpy-classrYeh=]h>]hA]uh1jOh+]rZhSXPriorityRequestr[r\}r](h0Uh1jUubah7hWubaubhSX event.r^r_}r`(h0X event.h1jHubeubhe)ra}rb(h0X!alias of :class:`PriorityRequest`h1jDh2Uh7hih9}rc(h;]h<]h=]h>]hA]uhCKhDhh+]rd(hSX alias of rerf}rg(h0X alias of h1jaubho)rh}ri(h0X:class:`PriorityRequest`rjh1jah2Nh7hsh9}rk(UreftypeXclasshuhvXPriorityRequestU refdomainXpyrlh>]h=]U refexplicith;]h<]hA]hxhyhzj(h{h|uhCNh+]rmhM)rn}ro(h0jjh9}rp(h;]h<]rq(hjlXpy-classrreh=]h>]hA]uh1jhh+]rshSXPriorityRequestrtru}rv(h0Uh1jnubah7hWubaubeubeubeubeubeubh\)rw}rx(h0Uh1h.h2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PreemptiveResourceryh7h`h9}rz(h>]h=]h;]h<]hA]Uentries]r{(hcX6PreemptiveResource (class in simpy.resources.resource)hUtr|auhCNhDhh+]ubj)r}}r~(h0Uh1h.h2jyh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0X#PreemptiveResource(env, capacity=1)h1j}h2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPreemptiveResourcerj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXPreemptiveResourcerr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(jT)r}r(h0Xenvh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXenvrr}r(h0Uh1jubah7j\ubjT)r}r(h0X capacity=1h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX capacity=1rr}r(h0Uh1jubah7j\ubeubeubjd)r}r(h0Uh1j}h2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XThis resource mostly works like :class:`Resource`, but users of the resource can be *preempted* by higher prioritized requests.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX This resource mostly works like rr}r(h0X This resource mostly works like h1jubho)r}r(h0X:class:`Resource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXResourcerr}r(h0Uh1jubah7hWubaubhSX#, but users of the resource can be rr}r(h0X#, but users of the resource can be h1jubh)r}r(h0X *preempted*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX preemptedrr}r(h0Uh1jubah7hubhSX by higher prioritized requests.rr}r(h0X by higher prioritized requests.h1jubeubhe)r}r(h0X@Furthermore, the queue of requests is also sorted by *priority*.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX5Furthermore, the queue of requests is also sorted by rr}r(h0X5Furthermore, the queue of requests is also sorted by h1jubh)r}r(h0X *priority*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXpriorityrr}r(h0Uh1jubah7hubhSX.r}r(h0X.h1jubeubhe)r}r(h0XIf a less important request is preempted, the process of that request will receive an :class:`~simpy.events.Interrupt` with a :class:`Preempted` instance as cause.h1jh2jyh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXVIf a less important request is preempted, the process of that request will receive an rr}r(h0XVIf a less important request is preempted, the process of that request will receive an h1jubho)r}r(h0X :class:`~simpy.events.Interrupt`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.events.InterruptU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSX Interruptrr}r(h0Uh1jubah7hWubaubhSX with a rr}r(h0X with a h1jubho)r}r(h0X:class:`Preempted`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvX PreemptedU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r }r (h0jh9}r (h;]h<]r (hjXpy-classr eh=]h>]hA]uh1jh+]rhSX Preemptedrr}r(h0Uh1j ubah7hWubaubhSX instance as cause.rr}r(h0X instance as cause.h1jubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX-Preempted (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r (h0XPreempted(by, usage_since)h1jh2j%h7j&h9}r!(h>]r"haj)h3Xsimpy.resources.resourcer#r$}r%bh=]h;]h<]hA]r&haj.X Preemptedr'j0Uj1uhCNhDhh+]r((j3)r)}r*(h0Xclass h1jh2j%h7j6h9}r+(h;]h<]h=]h>]hA]uhCNhDhh+]r,hSXclass r-r.}r/(h0Uh1j)ubaubj<)r0}r1(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r2(h;]h<]h=]h>]hA]uhCNhDhh+]r3hSXsimpy.resources.resource.r4r5}r6(h0Uh1j0ubaubjE)r7}r8(h0j'h1jh2j%h7jHh9}r9(h;]h<]h=]h>]hA]uhCNhDhh+]r:hSX Preemptedr;r<}r=(h0Uh1j7ubaubjN)r>}r?(h0Uh1jh2j%h7jQh9}r@(h;]h<]h=]h>]hA]uhCNhDhh+]rA(jT)rB}rC(h0Xbyh9}rD(h;]h<]h=]h>]hA]uh1j>h+]rEhSXbyrFrG}rH(h0Uh1jBubah7j\ubjT)rI}rJ(h0X usage_sinceh9}rK(h;]h<]h=]h>]hA]uh1j>h+]rLhSX usage_sincerMrN}rO(h0Uh1jIubah7j\ubeubeubjd)rP}rQ(h0Uh1jh2j%h7jgh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rS(h\)rT}rU(h0Uh1jPh2Xy/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Preempted.byrVh7h`h9}rW(h>]h=]h;]h<]hA]Uentries]rX(hcX1by (simpy.resources.resource.Preempted attribute)hUtrYauhCNhDhh+]ubj)rZ}r[(h0Uh1jPh2jVh7jh9}r\(jjXpyh>]h=]h;]h<]hA]jX attributer]j j]uhCNhDhh+]r^(j")r_}r`(h0X Preempted.byh1jZh2jh7j&h9}ra(h>]rbhaj)h3Xsimpy.resources.resourcercrd}rebh=]h;]h<]hA]rfhaj.X Preempted.byj0j'j1uhCNhDhh+]rg(jE)rh}ri(h0Xbyh1j_h2jh7jHh9}rj(h;]h<]h=]h>]hA]uhCNhDhh+]rkhSXbyrlrm}rn(h0Uh1jhubaubj3)ro}rp(h0X = Noneh1j_h2jh7j6h9}rq(h;]h<]h=]h>]hA]uhCNhDhh+]rrhSX = Nonersrt}ru(h0Uh1joubaubeubjd)rv}rw(h0Uh1jZh2jh7jgh9}rx(h;]h<]h=]h>]hA]uhCNhDhh+]ryhe)rz}r{(h0X-The preempting :class:`simpy.events.Process`.h1jvh2jVh7hih9}r|(h;]h<]h=]h>]hA]uhCKhDhh+]r}(hSXThe preempting r~r}r(h0XThe preempting h1jzubho)r}r(h0X:class:`simpy.events.Process`rh1jzh2h5h7hsh9}r(UreftypeXclasshuhvXsimpy.events.ProcessU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj'h{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXsimpy.events.Processrr}r(h0Uh1jubah7hWubaubhSX.r}r(h0X.h1jzubeubaubeubh\)r}r(h0Uh1jPh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Preempted.usage_sincerh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX:usage_since (simpy.resources.resource.Preempted attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jPh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPreempted.usage_sinceh1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPreempted.usage_sincej0j'j1uhCNhDhh+]r(jE)r}r(h0X usage_sinceh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX usage_sincerr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XOThe simulation time at which the preempted process started to use the resource.rh1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXOThe simulation time at which the preempted process started to use the resource.rr}r(h0jh1jubaubaubeubeubeubh\)r}r(h0Uh1h.h2Xt/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Requestrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX+Request (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0XRequest(resource)h1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XRequestrj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXRequestrr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rjT)r}r(h0Xresourceh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7j\ubaubeubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XPRequest access on the *resource*. The event is triggered once access is granted.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXRequest access on the rr}r(h0XRequest access on the h1jubh)r}r(h0X *resource*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7hubhSX0. The event is triggered once access is granted.rr}r (h0X0. The event is triggered once access is granted.h1jubeubhe)r }r (h0XIf the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.r h1jh2jh7hih9}r (h;]h<]h=]h>]hA]uhCKhDhh+]rhSXIf the maximum capacity of users is not reached, the requesting process obtains the resource immediately. If the maximum capacity is reached, the requesting process waits until another process releases the resource.rr}r(h0j h1j ubaubhe)r}r(h0XfThe request is automatically released when the request was created within a :keyword:`with` statement.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXLThe request is automatically released when the request was created within a rr}r(h0XLThe request is automatically released when the request was created within a h1jubho)r}r(h0X:keyword:`with`rh1jh2h5h7hsh9}r(UreftypeXkeywordhuhvXwithU refdomainXstdrh>]h=]U refexplicith;]h<]hA]hxhyuhCK h+]rhM)r}r (h0jh9}r!(h;]h<]r"(hjX std-keywordr#eh=]h>]hA]uh1jh+]r$hSXwithr%r&}r'(h0Uh1jubah7hWubaubhSX statement.r(r)}r*(h0X statement.h1jubeubeubeubh\)r+}r,(h0Uh1h.h2Nh7h`h9}r-(h>]h=]h;]h<]hA]Uentries]r.(hcX+Release (class in simpy.resources.resource)h Utr/auhCNhDhh+]ubj)r0}r1(h0Uh1h.h2Nh7jh9}r2(jjXpyh>]h=]h;]h<]hA]jXclassr3j j3uhCNhDhh+]r4(j")r5}r6(h0XRelease(resource, request)h1j0h2j%h7j&h9}r7(h>]r8h aj)h3Xsimpy.resources.resourcer9r:}r;bh=]h;]h<]hA]r<h aj.XReleaser=j0Uj1uhCNhDhh+]r>(j3)r?}r@(h0Xclass h1j5h2j%h7j6h9}rA(h;]h<]h=]h>]hA]uhCNhDhh+]rBhSXclass rCrD}rE(h0Uh1j?ubaubj<)rF}rG(h0Xsimpy.resources.resource.h1j5h2j%h7j?h9}rH(h;]h<]h=]h>]hA]uhCNhDhh+]rIhSXsimpy.resources.resource.rJrK}rL(h0Uh1jFubaubjE)rM}rN(h0j=h1j5h2j%h7jHh9}rO(h;]h<]h=]h>]hA]uhCNhDhh+]rPhSXReleaserQrR}rS(h0Uh1jMubaubjN)rT}rU(h0Uh1j5h2j%h7jQh9}rV(h;]h<]h=]h>]hA]uhCNhDhh+]rW(jT)rX}rY(h0Xresourceh9}rZ(h;]h<]h=]h>]hA]uh1jTh+]r[hSXresourcer\r]}r^(h0Uh1jXubah7j\ubjT)r_}r`(h0Xrequesth9}ra(h;]h<]h=]h>]hA]uh1jTh+]rbhSXrequestrcrd}re(h0Uh1j_ubah7j\ubeubeubjd)rf}rg(h0Uh1j0h2j%h7jgh9}rh(h;]h<]h=]h>]hA]uhCNhDhh+]ri(he)rj}rk(h0XfReleases the access privilege to *resource* granted by *request*. This event is triggered immediately.h1jfh2Xt/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Releaserlh7hih9}rm(h;]h<]h=]h>]hA]uhCKhDhh+]rn(hSX!Releases the access privilege to rorp}rq(h0X!Releases the access privilege to h1jjubh)rr}rs(h0X *resource*h9}rt(h;]h<]h=]h>]hA]uh1jjh+]ruhSXresourcervrw}rx(h0Uh1jrubah7hubhSX granted by ryrz}r{(h0X granted by h1jjubh)r|}r}(h0X *request*h9}r~(h;]h<]h=]h>]hA]uh1jjh+]rhSXrequestrr}r(h0Uh1j|ubah7hubhSX&. This event is triggered immediately.rr}r(h0X&. This event is triggered immediately.h1jjubeubhe)r}r(h0XAIf there's another process waiting for the *resource*, resume it.h1jfh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX+If there's another process waiting for the rr}r(h0X+If there's another process waiting for the h1jubh)r}r(h0X *resource*h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXresourcerr}r(h0Uh1jubah7hubhSX , resume it.rr}r(h0X , resume it.h1jubeubhe)r}r(h0XIf the request was made in a :keyword:`with` statement (e.g., ``with res.request() as req:``), this method is automatically called when the ``with`` block is left.h1jfh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXIf the request was made in a rr}r(h0XIf the request was made in a h1jubho)r}r(h0X:keyword:`with`rh1jh2h5h7hsh9}r(UreftypeXkeywordhuhvXwithU refdomainXstdrh>]h=]U refexplicith;]h<]hA]hxhyuhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjX std-keywordreh=]h>]hA]uh1jh+]rhSXwithrr}r(h0Uh1jubah7hWubaubhSX statement (e.g., rr}r(h0X statement (e.g., h1jubhM)r}r(h0X``with res.request() as req:``h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXwith res.request() as req:rr}r(h0Uh1jubah7hWubhSX0), this method is automatically called when the rr}r(h0X0), this method is automatically called when the h1jubhM)r}r(h0X``with``h9}r(h;]h<]h=]h>]hA]uh1jh+]rhSXwithrr}r(h0Uh1jubah7hWubhSX block is left.rr}r(h0X block is left.h1jubeubh\)r}r(h0Uh1jfh2X|/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.Release.requestrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX4request (simpy.resources.resource.Release attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jfh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XRelease.requesth1jh2jh7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XRelease.requestj0j=j1uhCNhDhh+]r(jE)r}r(h0Xrequesth1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXrequestrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0X6The request (:class:`Request`) that is to be released.h1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX The request (rr}r(h0X The request (h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzj=h{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX) that is to be released.rr}r(h0X) that is to be released.h1jubeubaubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX3PriorityRequest (class in simpy.resources.resource)hUtrauhCNhDhh+]ubj)r}r (h0Uh1h.h2Nh7jh9}r (jjXpyh>]h=]h;]h<]hA]jXclassr j j uhCNhDhh+]r (j")r }r(h0X3PriorityRequest(resource, priority=0, preempt=True)h1jh2j%h7j&h9}r(h>]rhaj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rhaj.XPriorityRequestrj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1j h2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1j h2j%h7j?h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r!hSXsimpy.resources.resource.r"r#}r$(h0Uh1jubaubjE)r%}r&(h0jh1j h2j%h7jHh9}r'(h;]h<]h=]h>]hA]uhCNhDhh+]r(hSXPriorityRequestr)r*}r+(h0Uh1j%ubaubjN)r,}r-(h0Uh1j h2j%h7jQh9}r.(h;]h<]h=]h>]hA]uhCNhDhh+]r/(jT)r0}r1(h0Xresourceh9}r2(h;]h<]h=]h>]hA]uh1j,h+]r3hSXresourcer4r5}r6(h0Uh1j0ubah7j\ubjT)r7}r8(h0X priority=0h9}r9(h;]h<]h=]h>]hA]uh1j,h+]r:hSX priority=0r;r<}r=(h0Uh1j7ubah7j\ubjT)r>}r?(h0X preempt=Trueh9}r@(h;]h<]h=]h>]hA]uh1j,h+]rAhSX preempt=TruerBrC}rD(h0Uh1j>ubah7j\ubeubeubjd)rE}rF(h0Uh1jh2j%h7jgh9}rG(h;]h<]h=]h>]hA]uhCNhDhh+]rH(he)rI}rJ(h0XRequest the *resource* with a given *priority*. If the *resource* supports preemption and *preempted* is true other processes with access to the *resource* may be preempted (see :class:`PreemptiveResource` for details).h1jEh2X|/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequestrKh7hih9}rL(h;]h<]h=]h>]hA]uhCKhDhh+]rM(hSX Request the rNrO}rP(h0X Request the h1jIubh)rQ}rR(h0X *resource*h9}rS(h;]h<]h=]h>]hA]uh1jIh+]rThSXresourcerUrV}rW(h0Uh1jQubah7hubhSX with a given rXrY}rZ(h0X with a given h1jIubh)r[}r\(h0X *priority*h9}r](h;]h<]h=]h>]hA]uh1jIh+]r^hSXpriorityr_r`}ra(h0Uh1j[ubah7hubhSX . If the rbrc}rd(h0X . If the h1jIubh)re}rf(h0X *resource*h9}rg(h;]h<]h=]h>]hA]uh1jIh+]rhhSXresourcerirj}rk(h0Uh1jeubah7hubhSX supports preemption and rlrm}rn(h0X supports preemption and h1jIubh)ro}rp(h0X *preempted*h9}rq(h;]h<]h=]h>]hA]uh1jIh+]rrhSX preemptedrsrt}ru(h0Uh1joubah7hubhSX, is true other processes with access to the rvrw}rx(h0X, is true other processes with access to the h1jIubh)ry}rz(h0X *resource*h9}r{(h;]h<]h=]h>]hA]uh1jIh+]r|hSXresourcer}r~}r(h0Uh1jyubah7hubhSX may be preempted (see rr}r(h0X may be preempted (see h1jIubho)r}r(h0X:class:`PreemptiveResource`rh1jIh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPreemptiveResourcerr}r(h0Uh1jubah7hWubaubhSX for details).rr}r(h0X for details).h1jIubeubhe)r}r(h0XThis event type inherits :class:`Request` and adds some additional attributes needed by :class:`PriorityResource` and :class:`PreemptiveResource`h1jEh2jKh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSXThis event type inherits rr}r(h0XThis event type inherits h1jubho)r}r(h0X:class:`Request`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXRequestU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXRequestrr}r(h0Uh1jubah7hWubaubhSX/ and adds some additional attributes needed by rr}r(h0X/ and adds some additional attributes needed by h1jubho)r}r(h0X:class:`PriorityResource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXPriorityResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPriorityResourcerr}r(h0Uh1jubah7hWubaubhSX and rr}r(h0X and h1jubho)r}r(h0X:class:`PreemptiveResource`rh1jh2h5h7hsh9}r(UreftypeXclasshuhvXPreemptiveResourceU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCK h+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-classreh=]h>]hA]uh1jh+]rhSXPreemptiveResourcerr}r(h0Uh1jubah7hWubaubeubh\)r}r(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.priorityrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX=priority (simpy.resources.resource.PriorityRequest attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jEh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XPriorityRequest.priorityh1jh2jh7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XPriorityRequest.priorityj0jj1uhCNhDhh+]r(jE)r}r(h0Xpriorityh1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXpriorityrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jh2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XEThe priority of this request. A smaller number means higher priority.rh1jh2jh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXEThe priority of this request. A smaller number means higher priority.rr}r(h0jh1jubaubaubeubh\)r}r(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.preemptrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX<preempt (simpy.resources.resource.PriorityRequest attribute)hUtrauhCNhDhh+]ubj)r}r(h0Uh1jEh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r (h0XPriorityRequest.preempth1jh2jh7j&h9}r (h>]r haj)h3Xsimpy.resources.resourcer r }rbh=]h;]h<]hA]rhaj.XPriorityRequest.preemptj0jj1uhCNhDhh+]r(jE)r}r(h0Xpreempth1jh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXpreemptrr}r(h0Uh1jubaubj3)r}r(h0X = Noneh1jh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r (h0Uh1jh2jh7jgh9}r!(h;]h<]h=]h>]hA]uhCNhDhh+]r"he)r#}r$(h0XIndicates whether the request should preempt a resource user or not (this flag is not taken into account by :class:`PriorityResource`).h1jh2jh7hih9}r%(h;]h<]h=]h>]hA]uhCKhDhh+]r&(hSXlIndicates whether the request should preempt a resource user or not (this flag is not taken into account by r'r(}r)(h0XlIndicates whether the request should preempt a resource user or not (this flag is not taken into account by h1j#ubho)r*}r+(h0X:class:`PriorityResource`r,h1j#h2h5h7hsh9}r-(UreftypeXclasshuhvXPriorityResourceU refdomainXpyr.h>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]r/hM)r0}r1(h0j,h9}r2(h;]h<]r3(hj.Xpy-classr4eh=]h>]hA]uh1j*h+]r5hSXPriorityResourcer6r7}r8(h0Uh1j0ubah7hWubaubhSX).r9r:}r;(h0X).h1j#ubeubaubeubh\)r<}r=(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.timer>h7h`h9}r?(h>]h=]h;]h<]hA]Uentries]r@(hcX9time (simpy.resources.resource.PriorityRequest attribute)hUtrAauhCNhDhh+]ubj)rB}rC(h0Uh1jEh2j>h7jh9}rD(jjXpyh>]h=]h;]h<]hA]jX attributerEj jEuhCNhDhh+]rF(j")rG}rH(h0XPriorityRequest.timeh1jBh2jh7j&h9}rI(h>]rJhaj)h3Xsimpy.resources.resourcerKrL}rMbh=]h;]h<]hA]rNhaj.XPriorityRequest.timej0jj1uhCNhDhh+]rO(jE)rP}rQ(h0Xtimeh1jGh2jh7jHh9}rR(h;]h<]h=]h>]hA]uhCNhDhh+]rShSXtimerTrU}rV(h0Uh1jPubaubj3)rW}rX(h0X = Noneh1jGh2jh7j6h9}rY(h;]h<]h=]h>]hA]uhCNhDhh+]rZhSX = Noner[r\}r](h0Uh1jWubaubeubjd)r^}r_(h0Uh1jBh2jh7jgh9}r`(h;]h<]h=]h>]hA]uhCNhDhh+]rahe)rb}rc(h0X'The time at which the request was made.rdh1j^h2j>h7hih9}re(h;]h<]h=]h>]hA]uhCKhDhh+]rfhSX'The time at which the request was made.rgrh}ri(h0jdh1jbubaubaubeubh\)rj}rk(h0Uh1jEh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.PriorityRequest.keyrlh7h`h9}rm(h>]h=]h;]h<]hA]Uentries]rn(hcX8key (simpy.resources.resource.PriorityRequest attribute)hUtroauhCNhDhh+]ubj)rp}rq(h0Uh1jEh2jlh7jh9}rr(jjXpyh>]h=]h;]h<]hA]jX attributersj jsuhCNhDhh+]rt(j")ru}rv(h0XPriorityRequest.keyh1jph2jh7j&h9}rw(h>]rxhaj)h3Xsimpy.resources.resourceryrz}r{bh=]h;]h<]hA]r|haj.XPriorityRequest.keyj0jj1uhCNhDhh+]r}(jE)r~}r(h0Xkeyh1juh2jh7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXkeyrr}r(h0Uh1j~ubaubj3)r}r(h0X = Noneh1juh2jh7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX = Nonerr}r(h0Uh1jubaubeubjd)r}r(h0Uh1jph2jh7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhe)r}r(h0XKey for sorting events. Consists of the priority (lower value is more important) and the time at witch the request was made (earlier requests are more important).rh1jh2jlh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]rhSXKey for sorting events. Consists of the priority (lower value is more important) and the time at witch the request was made (earlier requests are more important).rr}r(h0jh1jubaubaubeubeubeubh\)r}r(h0Uh1h.h2Nh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX/SortedQueue (class in simpy.resources.resource)h UtrauhCNhDhh+]ubj)r}r(h0Uh1h.h2Nh7jh9}r(jjXpyh>]h=]h;]h<]hA]jXclassrj juhCNhDhh+]r(j")r}r(h0XSortedQueue(maxlen=None)rh1jh2j%h7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.X SortedQueuerj0Uj1uhCNhDhh+]r(j3)r}r(h0Xclass h1jh2j%h7j6h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXclass rr}r(h0Uh1jubaubj<)r}r(h0Xsimpy.resources.resource.h1jh2j%h7j?h9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSXsimpy.resources.resource.rr}r(h0Uh1jubaubjE)r}r(h0jh1jh2j%h7jHh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rhSX SortedQueuerr}r(h0Uh1jubaubjN)r}r(h0Uh1jh2j%h7jQh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]rjT)r}r(h0X maxlen=Noneh9}r(h;]h<]h=]h>]hA]uh1jh+]rhSX maxlen=Nonerr}r(h0Uh1jubah7j\ubaubeubjd)r}r(h0Uh1jh2j%h7jgh9}r(h;]h<]h=]h>]hA]uhCNhDhh+]r(he)r}r(h0XHQueue that sorts events by their :attr:`~PriorityRequest.key` attribute.h1jh2Xx/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueuerh7hih9}r(h;]h<]h=]h>]hA]uhCKhDhh+]r(hSX!Queue that sorts events by their rr}r(h0X!Queue that sorts events by their h1jubho)r}r(h0X:attr:`~PriorityRequest.key`rh1jh2h5h7hsh9}r(UreftypeXattrhuhvXPriorityRequest.keyU refdomainXpyrh>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rhM)r}r(h0jh9}r(h;]h<]r(hjXpy-attrreh=]h>]hA]uh1jh+]rhSXkeyrr}r(h0Uh1jubah7hWubaubhSX attribute.rr}r(h0X attribute.h1jubeubh\)r}r(h0Uh1jh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueue.maxlenrh7h`h9}r(h>]h=]h;]h<]hA]Uentries]r(hcX7maxlen (simpy.resources.resource.SortedQueue attribute)h UtrauhCNhDhh+]ubj)r}r(h0Uh1jh2jh7jh9}r(jjXpyh>]h=]h;]h<]hA]jX attributerj juhCNhDhh+]r(j")r}r(h0XSortedQueue.maxlenh1jh2jh7j&h9}r(h>]rh aj)h3Xsimpy.resources.resourcerr}rbh=]h;]h<]hA]rh aj.XSortedQueue.maxlenj0jj1uhCNhDhh+]r(jE)r}r (h0Xmaxlenh1jh2jh7jHh9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSXmaxlenr r }r (h0Uh1jubaubj3)r }r (h0X = Noneh1jh2jh7j6h9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r hSX = Noner r }r (h0Uh1j ubaubeubjd)r }r (h0Uh1jh2jh7jgh9}r (h;]h<]h=]h>]hA]uhCNhDhh+]r he)r }r (h0XMaximum length of the queue.r h1j h2jh7hih9}r (h;]h<]h=]h>]hA]uhCKhDhh+]r hSXMaximum length of the queue.r r }r (h0j h1j ubaubaubeubh\)r }r (h0Uh1jh2X/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/resource.py:docstring of simpy.resources.resource.SortedQueue.appendr h7h`h9}r (h>]h=]h;]h<]hA]Uentries]r (hcX6append() (simpy.resources.resource.SortedQueue method)h Utr auhCNhDhh+]ubj)r }r (h0Uh1jh2j h7jh9}r! (jjXpyh>]h=]h;]h<]hA]jXmethodr" j j" uhCNhDhh+]r# (j")r$ }r% (h0XSortedQueue.append(item)r& h1j h2j%h7j&h9}r' (h>]r( h aj)h3Xsimpy.resources.resourcer) r* }r+ bh=]h;]h<]hA]r, h aj.XSortedQueue.appendj0jj1uhCNhDhh+]r- (jE)r. }r/ (h0Xappendh1j$ h2j%h7jHh9}r0 (h;]h<]h=]h>]hA]uhCNhDhh+]r1 hSXappendr2 r3 }r4 (h0Uh1j. ubaubjN)r5 }r6 (h0Uh1j$ h2j%h7jQh9}r7 (h;]h<]h=]h>]hA]uhCNhDhh+]r8 jT)r9 }r: (h0Xitemh9}r; (h;]h<]h=]h>]hA]uh1j5 h+]r< hSXitemr= r> }r? (h0Uh1j9 ubah7j\ubaubeubjd)r@ }rA (h0Uh1j h2j%h7jgh9}rB (h;]h<]h=]h>]hA]uhCNhDhh+]rC (he)rD }rE (h0X5Append *item* to the queue and keep the queue sorted.rF h1j@ h2j h7hih9}rG (h;]h<]h=]h>]hA]uhCKhDhh+]rH (hSXAppend rI rJ }rK (h0XAppend h1jD ubh)rL }rM (h0X*item*h9}rN (h;]h<]h=]h>]hA]uh1jD h+]rO hSXitemrP rQ }rR (h0Uh1jL ubah7hubhSX( to the queue and keep the queue sorted.rS rT }rU (h0X( to the queue and keep the queue sorted.h1jD ubeubhe)rV }rW (h0X1Raise a :exc:`RuntimeError` if the queue is full.rX h1j@ h2j h7hih9}rY (h;]h<]h=]h>]hA]uhCKhDhh+]rZ (hSXRaise a r[ r\ }r] (h0XRaise a h1jV ubho)r^ }r_ (h0X:exc:`RuntimeError`r` h1jV h2h5h7hsh9}ra (UreftypeXexchuhvX RuntimeErrorU refdomainXpyrb h>]h=]U refexplicith;]h<]hA]hxhyhzjh{h|uhCKh+]rc hM)rd }re (h0j` h9}rf (h;]h<]rg (hjb Xpy-excrh eh=]h>]hA]uh1j^ h+]ri hSX RuntimeErrorrj rk }rl (h0Uh1jd ubah7hWubaubhSX if the queue is full.rm rn }ro (h0X if the queue is full.h1jV ubeubeubeubeubeubeubah0UU transformerrp NU footnote_refsrq }rr Urefnamesrs }rt Usymbol_footnotesru ]rv Uautofootnote_refsrw ]rx Usymbol_footnote_refsry ]rz U citationsr{ ]r| hDhU current_liner} NUtransform_messagesr~ ]r Ureporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhJNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr Uasciir U_sourcer UZ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.resource.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj`hj_hjh jh j5h jh j$ h jh@cdocutils.nodes target r )r }r (h0Uh1h.h2h_h7Utargetr h9}r (h;]h>]r h@ah=]Uismodh<]hA]uhCKhDhh+]ubhjhjhj9hj hjhj hjhjhjGhjhjhjhj#hjuhj4hjhjh*h.h juUsubstitution_namesr }r h7hDh9}r (h;]h>]h=]Usourceh5h<]hA]uU footnotesr ]r Urefidsr }r ub.PK{E@+HGAGA2simpy-3.0/.doctrees/api_reference/simpy.rt.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.rt.RealtimeEnvironmentqX#simpy.rt.RealtimeEnvironment.factorqX!simpy.rt.RealtimeEnvironment.stepqX#simpy.rt.RealtimeEnvironment.strictq X"simpy.rt --- real-time simulationsq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h Usimpy-rt-real-time-simulationsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXJ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.rt.rstqq}q bUtagnameq!Usectionq"U attributesq#}q$(Udupnamesq%]Uclassesq&]Ubackrefsq']Uidsq(]q)(Xmodule-simpy.rtq*heUnamesq+]q,h auUlineq-KUdocumentq.hh]q/(cdocutils.nodes title q0)q1}q2(hX&``simpy.rt`` --- Real-time simulationsq3hhhhh!Utitleq4h#}q5(h%]h&]h']h(]h+]uh-Kh.hh]q6(cdocutils.nodes literal q7)q8}q9(hX ``simpy.rt``q:h#}q;(h%]h&]h']h(]h+]uhh1h]qq?}q@(hUhh8ubah!UliteralqAubh=X --- Real-time simulationsqBqC}qD(hX --- Real-time simulationsqEhh1ubeubcsphinx.addnodes index qF)qG}qH(hUhhhU qIh!UindexqJh#}qK(h(]h']h%]h&]h+]Uentries]qL(UsingleqMXsimpy.rt (module)Xmodule-simpy.rtUtqNauh-Kh.hh]ubcdocutils.nodes paragraph qO)qP}qQ(hXeProvides an environment whose time passes according to the (scaled) real-time (aka *wallclock time*).hhhXL/var/build/user_builds/simpy/checkouts/3.0/simpy/rt.py:docstring of simpy.rth!U paragraphqRh#}qS(h%]h&]h']h(]h+]uh-Kh.hh]qT(h=XSProvides an environment whose time passes according to the (scaled) real-time (aka qUqV}qW(hXSProvides an environment whose time passes according to the (scaled) real-time (aka hhPubcdocutils.nodes emphasis qX)qY}qZ(hX*wallclock time*h#}q[(h%]h&]h']h(]h+]uhhPh]q\h=Xwallclock timeq]q^}q_(hUhhYubah!Uemphasisq`ubh=X).qaqb}qc(hX).hhPubeubhF)qd}qe(hUhhhNh!hJh#}qf(h(]h']h%]h&]h+]Uentries]qg(hMX'RealtimeEnvironment (class in simpy.rt)hUtqhauh-Nh.hh]ubcsphinx.addnodes desc qi)qj}qk(hUhhhNh!Udescqlh#}qm(UnoindexqnUdomainqoXpyh(]h']h%]h&]h+]UobjtypeqpXclassqqUdesctypeqrhquh-Nh.hh]qs(csphinx.addnodes desc_signature qt)qu}qv(hX<RealtimeEnvironment(initial_time=0, factor=1.0, strict=True)hhjhU qwh!Udesc_signatureqxh#}qy(h(]qzhaUmoduleq{hXsimpy.rtq|q}}q~bh']h%]h&]h+]qhaUfullnameqXRealtimeEnvironmentqUclassqUUfirstquh-Nh.hh]q(csphinx.addnodes desc_annotation q)q}q(hXclass hhuhhwh!Udesc_annotationqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=Xclass qq}q(hUhhubaubcsphinx.addnodes desc_addname q)q}q(hX simpy.rt.hhuhhwh!U desc_addnameqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=X simpy.rt.qq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhhhuhhwh!U desc_nameqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]qh=XRealtimeEnvironmentqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhuhhwh!Udesc_parameterlistqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]q(csphinx.addnodes desc_parameter q)q}q(hXinitial_time=0h#}q(h%]h&]h']h(]h+]uhhh]qh=Xinitial_time=0qq}q(hUhhubah!Udesc_parameterqubh)q}q(hX factor=1.0h#}q(h%]h&]h']h(]h+]uhhh]qh=X factor=1.0qq}q(hUhhubah!hubh)q}q(hX strict=Trueh#}q(h%]h&]h']h(]h+]uhhh]qh=X strict=Trueqq}q(hUhhubah!hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhjhhwh!U desc_contentqh#}q(h%]h&]h']h(]h+]uh-Nh.hh]q(hO)q}q(hXNAn :class:`~simpy.core.Environment` which uses the real (e.g. wallclock) time.hhhX`/var/build/user_builds/simpy/checkouts/3.0/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironmentqh!hRh#}q(h%]h&]h']h(]h+]uh-Kh.hh]q(h=XAn qȅq}q(hXAn hhubcsphinx.addnodes pending_xref q)q}q(hX :class:`~simpy.core.Environment`qhhhhh!U pending_xrefqh#}q(UreftypeXclassUrefwarnqщU reftargetqXsimpy.core.EnvironmentU refdomainXpyqh(]h']U refexplicith%]h&]h+]UrefdocqXapi_reference/simpy.rtqUpy:classqhU py:moduleqXsimpy.rtquh-Kh]qh7)q}q(hhh#}q(h%]h&]q(UxrefqhXpy-classqeh']h(]h+]uhhh]qh=X Environmentqᅁq}q(hUhhubah!hAubaubh=X+ which uses the real (e.g. wallclock) time.q䅁q}q(hX+ which uses the real (e.g. wallclock) time.hhubeubhO)q}q(hXA time step will take *factor* seconds of real time (one second by default); e.g., if you step from ``0`` until ``3`` with ``factor=0.5``, the :meth:`simpy.core.BaseEnvironment.run()` call will take at least 1.5 seconds.hhhhh!hRh#}q(h%]h&]h']h(]h+]uh-Kh.hh]q(h=XA time step will take q녁q}q(hXA time step will take hhubhX)q}q(hX*factor*h#}q(h%]h&]h']h(]h+]uhhh]qh=Xfactorqq}q(hUhhubah!h`ubh=XF seconds of real time (one second by default); e.g., if you step from qq}q(hXF seconds of real time (one second by default); e.g., if you step from hhubh7)q}q(hX``0``h#}q(h%]h&]h']h(]h+]uhhh]qh=X0q}q(hUhhubah!hAubh=X until qq}r(hX until hhubh7)r}r(hX``3``h#}r(h%]h&]h']h(]h+]uhhh]rh=X3r}r(hUhjubah!hAubh=X with rr}r (hX with hhubh7)r }r (hX``factor=0.5``h#}r (h%]h&]h']h(]h+]uhhh]r h=X factor=0.5rr}r(hUhj ubah!hAubh=X, the rr}r(hX, the hhubh)r}r(hX(:meth:`simpy.core.BaseEnvironment.run()`rhhhhh!hh#}r(UreftypeXmethhщhXsimpy.core.BaseEnvironment.runU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Kh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-methreh']h(]h+]uhjh]rh=X simpy.core.BaseEnvironment.run()r r!}r"(hUhjubah!hAubaubh=X% call will take at least 1.5 seconds.r#r$}r%(hX% call will take at least 1.5 seconds.hhubeubhO)r&}r'(hXIf the processing of the events for a time step takes too long, a :exc:`RuntimeError` is raised in :meth:`step()`. You can disable this behavior by setting *strict* to ``False``.hhhhh!hRh#}r((h%]h&]h']h(]h+]uh-K h.hh]r)(h=XBIf the processing of the events for a time step takes too long, a r*r+}r,(hXBIf the processing of the events for a time step takes too long, a hj&ubh)r-}r.(hX:exc:`RuntimeError`r/hj&hNh!hh#}r0(UreftypeXexchщhX RuntimeErrorU refdomainXpyr1h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r2h7)r3}r4(hj/h#}r5(h%]h&]r6(hj1Xpy-excr7eh']h(]h+]uhj-h]r8h=X RuntimeErrorr9r:}r;(hUhj3ubah!hAubaubh=X is raised in r<r=}r>(hX is raised in hj&ubh)r?}r@(hX:meth:`step()`rAhj&hNh!hh#}rB(UreftypeXmethhщhXstepU refdomainXpyrCh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rDh7)rE}rF(hjAh#}rG(h%]h&]rH(hjCXpy-methrIeh']h(]h+]uhj?h]rJh=Xstep()rKrL}rM(hUhjEubah!hAubaubh=X+. You can disable this behavior by setting rNrO}rP(hX+. You can disable this behavior by setting hj&ubhX)rQ}rR(hX*strict*h#}rS(h%]h&]h']h(]h+]uhj&h]rTh=XstrictrUrV}rW(hUhjQubah!h`ubh=X to rXrY}rZ(hX to hj&ubh7)r[}r\(hX ``False``h#}r](h%]h&]h']h(]h+]uhj&h]r^h=XFalser_r`}ra(hUhj[ubah!hAubh=X.rb}rc(hX.hj&ubeubhF)rd}re(hUhhhXg/var/build/user_builds/simpy/checkouts/3.0/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.factorrfh!hJh#}rg(h(]h']h%]h&]h+]Uentries]rh(hMX/factor (simpy.rt.RealtimeEnvironment attribute)hUtriauh-Nh.hh]ubhi)rj}rk(hUhhhjfh!hlh#}rl(hnhoXpyh(]h']h%]h&]h+]hpX attributermhrjmuh-Nh.hh]rn(ht)ro}rp(hXRealtimeEnvironment.factorhjjhU rqh!hxh#}rr(h(]rshah{hXsimpy.rtrtru}rvbh']h%]h&]h+]rwhahXRealtimeEnvironment.factorhhhuh-Nh.hh]rx(h)ry}rz(hXfactorhjohjqh!hh#}r{(h%]h&]h']h(]h+]uh-Nh.hh]r|h=Xfactorr}r~}r(hUhjyubaubh)r}r(hX = Nonehjohjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=X = Nonerr}r(hUhjubaubeubh)r}r(hUhjjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rhO)r}r(hX Scaling factor of the real-time.rhjhjfh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]rh=X Scaling factor of the real-time.rr}r(hjhjubaubaubeubhF)r}r(hUhhhXg/var/build/user_builds/simpy/checkouts/3.0/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.strictrh!hJh#}r(h(]h']h%]h&]h+]Uentries]r(hMX/strict (simpy.rt.RealtimeEnvironment attribute)h Utrauh-Nh.hh]ubhi)r}r(hUhhhjh!hlh#}r(hnhoXpyh(]h']h%]h&]h+]hpX attributerhrjuh-Nh.hh]r(ht)r}r(hXRealtimeEnvironment.stricthjhjqh!hxh#}r(h(]rh ah{hXsimpy.rtrr}rbh']h%]h&]h+]rh ahXRealtimeEnvironment.stricthhhuh-Nh.hh]r(h)r}r(hXstricthjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=Xstrictrr}r(hUhjubaubh)r}r(hX = Nonehjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=X = Nonerr}r(hUhjubaubeubh)r}r(hUhjhjqh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rhO)r}r(hXRunning mode of the environment. :meth:`step()` will raise a :exc:`RuntimeError` if this is set to ``True`` and the processing of events takes too long.hjhjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]r(h=X!Running mode of the environment. rr}r(hX!Running mode of the environment. hjubh)r}r(hX:meth:`step()`rhjhNh!hh#}r(UreftypeXmethhщhXstepU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-methreh']h(]h+]uhjh]rh=Xstep()rr}r(hUhjubah!hAubaubh=X will raise a rr}r(hX will raise a hjubh)r}r(hX:exc:`RuntimeError`rhjhNh!hh#}r(UreftypeXexchщhX RuntimeErrorU refdomainXpyrh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rh7)r}r(hjh#}r(h%]h&]r(hjXpy-excreh']h(]h+]uhjh]rh=X RuntimeErrorrr}r(hUhjubah!hAubaubh=X if this is set to rr}r(hX if this is set to hjubh7)r}r(hX``True``h#}r(h%]h&]h']h(]h+]uhjh]rh=XTruerr}r(hUhjubah!hAubh=X- and the processing of events takes too long.rr}r(hX- and the processing of events takes too long.hjubeubaubeubhF)r}r(hUhhhXe/var/build/user_builds/simpy/checkouts/3.0/simpy/rt.py:docstring of simpy.rt.RealtimeEnvironment.steprh!hJh#}r(h(]h']h%]h&]h+]Uentries]r(hMX,step() (simpy.rt.RealtimeEnvironment method)hUtrauh-Nh.hh]ubhi)r}r(hUhhhjh!hlh#}r(hnhoXpyh(]h']h%]h&]h+]hpXmethodrhrjuh-Nh.hh]r(ht)r}r(hXRealtimeEnvironment.step()rhjhhwh!hxh#}r(h(]rhah{hXsimpy.rtrr}rbh']h%]h&]h+]rhahXRealtimeEnvironment.stephhhuh-Nh.hh]r(h)r}r(hXstephjhhwh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]rh=Xsteprr}r (hUhjubaubh)r }r (hUhjhhwh!hh#}r (h%]h&]h']h(]h+]uh-Nh.hh]ubeubh)r }r(hUhjhhwh!hh#}r(h%]h&]h']h(]h+]uh-Nh.hh]r(hO)r}r(hXEWaits until enough real-time has passed for the next event to happen.rhj hjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]rh=XEWaits until enough real-time has passed for the next event to happen.rr}r(hjhjubaubhO)r}r(hXThe delay is scaled according to the real-time :attr:`factor`. If the events of a time step are processed too slowly for the given :attr:`factor` and if :attr:`strict` is enabled, a :exc:`RuntimeError` is raised.hj hjh!hRh#}r(h%]h&]h']h(]h+]uh-Kh.hh]r(h=X/The delay is scaled according to the real-time rr}r(hX/The delay is scaled according to the real-time hjubh)r }r!(hX:attr:`factor`r"hjhNh!hh#}r#(UreftypeXattrhщhXfactorU refdomainXpyr$h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r%h7)r&}r'(hj"h#}r((h%]h&]r)(hj$Xpy-attrr*eh']h(]h+]uhj h]r+h=Xfactorr,r-}r.(hUhj&ubah!hAubaubh=XF. If the events of a time step are processed too slowly for the given r/r0}r1(hXF. If the events of a time step are processed too slowly for the given hjubh)r2}r3(hX:attr:`factor`r4hjhNh!hh#}r5(UreftypeXattrhщhXfactorU refdomainXpyr6h(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r7h7)r8}r9(hj4h#}r:(h%]h&]r;(hj6Xpy-attrr<eh']h(]h+]uhj2h]r=h=Xfactorr>r?}r@(hUhj8ubah!hAubaubh=X and if rArB}rC(hX and if hjubh)rD}rE(hX:attr:`strict`rFhjhNh!hh#}rG(UreftypeXattrhщhXstrictU refdomainXpyrHh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]rIh7)rJ}rK(hjFh#}rL(h%]h&]rM(hjHXpy-attrrNeh']h(]h+]uhjDh]rOh=XstrictrPrQ}rR(hUhjJubah!hAubaubh=X is enabled, a rSrT}rU(hX is enabled, a hjubh)rV}rW(hX:exc:`RuntimeError`rXhjhNh!hh#}rY(UreftypeXexchщhX RuntimeErrorU refdomainXpyrZh(]h']U refexplicith%]h&]h+]hhhhhhuh-Nh]r[h7)r\}r](hjXh#}r^(h%]h&]r_(hjZXpy-excr`eh']h(]h+]uhjVh]rah=X RuntimeErrorrbrc}rd(hUhj\ubah!hAubaubh=X is raised.rerf}rg(hX is raised.hjubeubeubeubeubeubeubahUU transformerrhNU footnote_refsri}rjUrefnamesrk}rlUsymbol_footnotesrm]rnUautofootnote_refsro]rpUsymbol_footnote_refsrq]rrU citationsrs]rth.hU current_lineruNUtransform_messagesrv]rwUreporterrxNUid_startryKU autofootnotesrz]r{U citation_refsr|}r}Uindirect_targetsr~]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh4NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUJ/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.rt.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjohjh jhhuhhh*cdocutils.nodes target r)r}r(hUhhhhIh!Utargetrh#}r(h%]h(]rh*ah']Uismodh&]h+]uh-Kh.hh]ubuUsubstitution_namesr}rh!h.h#}r(h%]h(]h']Usourcehh&]h+]uU footnotesr]rUrefidsr}rub.PK{Eēx/simpy-3.0/.doctrees/api_reference/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX api referenceqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU api-referenceqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXG/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX API Referenceq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X API Referenceq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThe API reference provides detailed descriptions of SimPy's classes and functions. It should be helpful if you plan to extend Simpy with custom components.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Kh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXapi_reference/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NXapi_reference/simpyqTqUNXapi_reference/simpy.coreqVqWNXapi_reference/simpy.eventsqXqYNXapi_reference/simpy.monitoringqZq[NXapi_reference/simpy.resourcesq\q]NX"api_reference/simpy.resources.baseq^q_NX'api_reference/simpy.resources.containerq`qaNX&api_reference/simpy.resources.resourceqbqcNX#api_reference/simpy.resources.storeqdqeNXapi_reference/simpy.rtqfqgNXapi_reference/simpy.utilqhqieUhiddenqjU includefilesqk]ql(hThVhXhZh\h^h`hbhdhfhheUmaxdepthqmJuh(K h]ubaubeubahUU transformerqnNU footnote_refsqo}qpUrefnamesqq}qrUsymbol_footnotesqs]qtUautofootnote_refsqu]qvUsymbol_footnote_refsqw]qxU citationsqy]qzh)hU current_lineq{NUtransform_messagesq|]q}Ureporterq~NUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUG/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqȉUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqˈU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{E||?simpy-3.0/.doctrees/api_reference/simpy.resources.store.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X.simpy.resources.store --- store type resourcesqNX+simpy.resources.store.FilterStoreGet.filterqX$simpy.resources.store.FilterStoreGetqXsimpy.resources.store.Storeq Xsimpy.resources.store.Store.putq Xsimpy.resources.store.Store.getq Xsimpy.resources.store.StorePutq X-simpy.resources.store.FilterQueue.__nonzero__q X!simpy.resources.store.Store.itemsqX*simpy.resources.store.FilterQueue.__bool__qX%simpy.resources.store.FilterStore.getqX$simpy.resources.store.Store.capacityqX-simpy.resources.store.FilterQueue.__getitem__qX#simpy.resources.store.StorePut.itemqXsimpy.resources.store.StoreGetqX*simpy.resources.store.FilterStore.GetQueueqX!simpy.resources.store.FilterQueueqX!simpy.resources.store.FilterStorequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hU*simpy-resources-store-store-type-resourcesq!hhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhuUchildrenq"]q#cdocutils.nodes section q$)q%}q&(U rawsourceq'UUparentq(hUsourceq)cdocutils.nodes reprunicode q*XW/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.store.rstq+q,}q-bUtagnameq.Usectionq/U attributesq0}q1(Udupnamesq2]Uclassesq3]Ubackrefsq4]Uidsq5]q6(Xmodule-simpy.resources.storeq7h!eUnamesq8]q9hauUlineq:KUdocumentq;hh"]q<(cdocutils.nodes title q=)q>}q?(h'X2``simpy.resources.store`` --- Store type resourcesq@h(h%h)h,h.UtitleqAh0}qB(h2]h3]h4]h5]h8]uh:Kh;hh"]qC(cdocutils.nodes literal qD)qE}qF(h'X``simpy.resources.store``qGh0}qH(h2]h3]h4]h5]h8]uh(h>h"]qIcdocutils.nodes Text qJXsimpy.resources.storeqKqL}qM(h'Uh(hEubah.UliteralqNubhJX --- Store type resourcesqOqP}qQ(h'X --- Store type resourcesqRh(h>ubeubcsphinx.addnodes index qS)qT}qU(h'Uh(h%h)U qVh.UindexqWh0}qX(h5]h4]h2]h3]h8]Uentries]qY(UsingleqZXsimpy.resources.store (module)Xmodule-simpy.resources.storeUtq[auh:Kh;hh"]ubcdocutils.nodes paragraph q\)q]}q^(h'X7This module contains all :class:`Store` like resources.h(h%h)Xf/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.storeq_h.U paragraphq`h0}qa(h2]h3]h4]h5]h8]uh:Kh;hh"]qb(hJXThis module contains all qcqd}qe(h'XThis module contains all h(h]ubcsphinx.addnodes pending_xref qf)qg}qh(h'X:class:`Store`qih(h]h)h,h.U pending_xrefqjh0}qk(UreftypeXclassUrefwarnqlU reftargetqmXStoreU refdomainXpyqnh5]h4]U refexplicith2]h3]h8]UrefdocqoX#api_reference/simpy.resources.storeqpUpy:classqqNU py:moduleqrXsimpy.resources.storeqsuh:Kh"]qthD)qu}qv(h'hih0}qw(h2]h3]qx(UxrefqyhnXpy-classqzeh4]h5]h8]uh(hgh"]q{hJXStoreq|q}}q~(h'Uh(huubah.hNubaubhJX like resources.qq}q(h'X like resources.h(h]ubeubh\)q}q(h'XStores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.qh(h%h)h_h.h`h0}q(h2]h3]h4]h5]h8]uh:Kh;hh"]qhJXStores model the production and consumption of concrete objects. The object type is, by default, not restricted. A single Store can even contain multiple types of objects.qq}q(h'hh(hubaubh\)q}q(h'XBeside :class:`Store`, there is a :class:`FilterStore` that lets you use a custom function to filter the objects you get out of the store.h(h%h)h_h.h`h0}q(h2]h3]h4]h5]h8]uh:Kh;hh"]q(hJXBeside qq}q(h'XBeside h(hubhf)q}q(h'X:class:`Store`qh(hh)h,h.hjh0}q(UreftypeXclasshlhmXStoreU refdomainXpyqh5]h4]U refexplicith2]h3]h8]hohphqNhrhsuh:K h"]qhD)q}q(h'hh0}q(h2]h3]q(hyhXpy-classqeh4]h5]h8]uh(hh"]qhJXStoreqq}q(h'Uh(hubah.hNubaubhJX , there is a qq}q(h'X , there is a h(hubhf)q}q(h'X:class:`FilterStore`qh(hh)h,h.hjh0}q(UreftypeXclasshlhmX FilterStoreU refdomainXpyqh5]h4]U refexplicith2]h3]h8]hohphqNhrhsuh:K h"]qhD)q}q(h'hh0}q(h2]h3]q(hyhXpy-classqeh4]h5]h8]uh(hh"]qhJX FilterStoreqq}q(h'Uh(hubah.hNubaubhJXT that lets you use a custom function to filter the objects you get out of the store.qq}q(h'XT that lets you use a custom function to filter the objects you get out of the store.h(hubeubhS)q}q(h'Uh(h%h)Nh.hWh0}q(h5]h4]h2]h3]h8]Uentries]q(hZX&Store (class in simpy.resources.store)h Utqauh:Nh;hh"]ubcsphinx.addnodes desc q)q}q(h'Uh(h%h)Nh.Udescqh0}q(UnoindexqUdomainqXpyh5]h4]h2]h3]h8]UobjtypeqXclassqUdesctypeqhuh:Nh;hh"]q(csphinx.addnodes desc_signature q)q}q(h'XStore(env, capacity=1)h(hh)U qh.Udesc_signatureqh0}q(h5]qh aUmoduleqh*Xsimpy.resources.storeqͅq}qbh4]h2]h3]h8]qh aUfullnameqXStoreqUclassqUUfirstqԉuh:Nh;hh"]q(csphinx.addnodes desc_annotation q)q}q(h'Xclass h(hh)hh.Udesc_annotationqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXclass q܅q}q(h'Uh(hubaubcsphinx.addnodes desc_addname q)q}q(h'Xsimpy.resources.store.h(hh)hh.U desc_addnameqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXsimpy.resources.store.q允q}q(h'Uh(hubaubcsphinx.addnodes desc_name q)q}q(h'hh(hh)hh.U desc_nameqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]qhJXStoreqq}q(h'Uh(hubaubcsphinx.addnodes desc_parameterlist q)q}q(h'Uh(hh)hh.Udesc_parameterlistqh0}q(h2]h3]h4]h5]h8]uh:Nh;hh"]q(csphinx.addnodes desc_parameter q)q}q(h'Xenvh0}q(h2]h3]h4]h5]h8]uh(hh"]qhJXenvqq}q(h'Uh(hubah.Udesc_parameterqubh)r}r(h'X capacity=1h0}r(h2]h3]h4]h5]h8]uh(hh"]rhJX capacity=1rr}r(h'Uh(jubah.hubeubeubcsphinx.addnodes desc_content r)r}r (h'Uh(hh)hh.U desc_contentr h0}r (h2]h3]h4]h5]h8]uh:Nh;hh"]r (h\)r }r(h'XAModels the production and consumption of concrete Python objects.rh(jh)Xl/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.Storerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXAModels the production and consumption of concrete Python objects.rr}r(h'jh(j ubaubh\)r}r(h'XItems put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXItems put into the store can be of any type. By default, they are put and retrieved from the store in a first-in first-out order.rr}r(h'jh(jubaubh\)r}r(h'X_The *env* parameter is the :class:`~simpy.core.Environment` instance the container is bound to.h(jh)jh.h`h0}r (h2]h3]h4]h5]h8]uh:Kh;hh"]r!(hJXThe r"r#}r$(h'XThe h(jubcdocutils.nodes emphasis r%)r&}r'(h'X*env*h0}r((h2]h3]h4]h5]h8]uh(jh"]r)hJXenvr*r+}r,(h'Uh(j&ubah.Uemphasisr-ubhJX parameter is the r.r/}r0(h'X parameter is the h(jubhf)r1}r2(h'X :class:`~simpy.core.Environment`r3h(jh)h,h.hjh0}r4(UreftypeXclasshlhmXsimpy.core.EnvironmentU refdomainXpyr5h5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:K h"]r6hD)r7}r8(h'j3h0}r9(h2]h3]r:(hyj5Xpy-classr;eh4]h5]h8]uh(j1h"]r<hJX Environmentr=r>}r?(h'Uh(j7ubah.hNubaubhJX$ instance the container is bound to.r@rA}rB(h'X$ instance the container is bound to.h(jubeubh\)rC}rD(h'XThe *capacity* defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A :exc:`ValueError` is raised if the value is negative.h(jh)jh.h`h0}rE(h2]h3]h4]h5]h8]uh:K h;hh"]rF(hJXThe rGrH}rI(h'XThe h(jCubj%)rJ}rK(h'X *capacity*h0}rL(h2]h3]h4]h5]h8]uh(jCh"]rMhJXcapacityrNrO}rP(h'Uh(jJubah.j-ubhJXp defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A rQrR}rS(h'Xp defines the size of the Store and must be a positive number (> 0). By default, a Store is of unlimited size. A h(jCubhf)rT}rU(h'X:exc:`ValueError`rVh(jCh)h,h.hjh0}rW(UreftypeXexchlhmX ValueErrorU refdomainXpyrXh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:K h"]rYhD)rZ}r[(h'jVh0}r\(h2]h3]r](hyjXXpy-excr^eh4]h5]h8]uh(jTh"]r_hJX ValueErrorr`ra}rb(h'Uh(jZubah.hNubaubhJX$ is raised if the value is negative.rcrd}re(h'X$ is raised if the value is negative.h(jCubeubhS)rf}rg(h'Uh(jh)Xr/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.Store.itemsrhh.hWh0}ri(h5]h4]h2]h3]h8]Uentries]rj(hZX-items (simpy.resources.store.Store attribute)hUtrkauh:Nh;hh"]ubh)rl}rm(h'Uh(jh)jhh.hh0}rn(hhXpyh5]h4]h2]h3]h8]hX attributerohjouh:Nh;hh"]rp(h)rq}rr(h'X Store.itemsh(jlh)U rsh.hh0}rt(h5]ruhahh*Xsimpy.resources.storervrw}rxbh4]h2]h3]h8]ryhahX Store.itemshhhԉuh:Nh;hh"]rz(h)r{}r|(h'Xitemsh(jqh)jsh.hh0}r}(h2]h3]h4]h5]h8]uh:Nh;hh"]r~hJXitemsrr}r(h'Uh(j{ubaubh)r}r(h'X = Noneh(jqh)jsh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX = Nonerr}r(h'Uh(jubaubeubj)r}r(h'Uh(jlh)jsh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X#List of the items within the store.rh(jh)jhh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX#List of the items within the store.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(jh)Xu/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.Store.capacityrh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX0capacity (simpy.resources.store.Store attribute)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XStore.capacityh(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXStore.capacityhhhԉuh:Nh;hh"]rh)r}r(h'Xcapacityh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXcapacityrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X"The maximum capacity of the store.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX"The maximum capacity of the store.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(jh)Uh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX+put (simpy.resources.store.Store attribute)h Utrauh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'X Store.puth(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rh ahX Store.puthhhԉuh:Nh;hh"]rh)r}r(h'Xputh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXputrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'X%Create a new :class:`StorePut` event.h(jh)Xp/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.Store.puth.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX Create a new rr}r(h'X Create a new h(jubhf)r}r(h'X:class:`StorePut`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXStorePutU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorePutrr}r(h'Uh(jubah.hNubaubhJX event.rr}r(h'X event.h(jubeubh\)r}r(h'Xalias of :class:`StorePut`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`StorePut`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXStorePutU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorePutrr}r(h'Uh(jubah.hNubaubeubeubeubhS)r }r (h'Uh(jh)Uh.hWh0}r (h5]h4]h2]h3]h8]Uentries]r (hZX+get (simpy.resources.store.Store attribute)h Utr auh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'X Store.geth(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rh ahX Store.gethhhԉuh:Nh;hh"]rh)r}r(h'Xgeth(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXgetr r!}r"(h'Uh(jubaubaubj)r#}r$(h'Uh(jh)hh.j h0}r%(h2]h3]h4]h5]h8]uh:Nh;hh"]r&(h\)r'}r((h'X%Create a new :class:`StoreGet` event.h(j#h)Xp/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.Store.geth.h`h0}r)(h2]h3]h4]h5]h8]uh:Kh;hh"]r*(hJX Create a new r+r,}r-(h'X Create a new h(j'ubhf)r.}r/(h'X:class:`StoreGet`r0h(j'h)Nh.hjh0}r1(UreftypeXclasshlhmXStoreGetU refdomainXpyr2h5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]r3hD)r4}r5(h'j0h0}r6(h2]h3]r7(hyj2Xpy-classr8eh4]h5]h8]uh(j.h"]r9hJXStoreGetr:r;}r<(h'Uh(j4ubah.hNubaubhJX event.r=r>}r?(h'X event.h(j'ubeubh\)r@}rA(h'Xalias of :class:`StoreGet`h(j#h)Uh.h`h0}rB(h2]h3]h4]h5]h8]uh:Kh;hh"]rC(hJX alias of rDrE}rF(h'X alias of h(j@ubhf)rG}rH(h'X:class:`StoreGet`rIh(j@h)Nh.hjh0}rJ(UreftypeXclasshlhmXStoreGetU refdomainXpyrKh5]h4]U refexplicith2]h3]h8]hohphqhhrhsuh:Nh"]rLhD)rM}rN(h'jIh0}rO(h2]h3]rP(hyjKXpy-classrQeh4]h5]h8]uh(jGh"]rRhJXStoreGetrSrT}rU(h'Uh(jMubah.hNubaubeubeubeubeubeubhS)rV}rW(h'Uh(h%h)Nh.hWh0}rX(h5]h4]h2]h3]h8]Uentries]rY(hZX,FilterStore (class in simpy.resources.store)hUtrZauh:Nh;hh"]ubh)r[}r\(h'Uh(h%h)Nh.hh0}r](hhXpyh5]h4]h2]h3]h8]hXclassr^hj^uh:Nh;hh"]r_(h)r`}ra(h'XFilterStore(env, capacity=1)h(j[h)hh.hh0}rb(h5]rchahh*Xsimpy.resources.storerdre}rfbh4]h2]h3]h8]rghahX FilterStorerhhUhԉuh:Nh;hh"]ri(h)rj}rk(h'Xclass h(j`h)hh.hh0}rl(h2]h3]h4]h5]h8]uh:Nh;hh"]rmhJXclass rnro}rp(h'Uh(jjubaubh)rq}rr(h'Xsimpy.resources.store.h(j`h)hh.hh0}rs(h2]h3]h4]h5]h8]uh:Nh;hh"]rthJXsimpy.resources.store.rurv}rw(h'Uh(jqubaubh)rx}ry(h'jhh(j`h)hh.hh0}rz(h2]h3]h4]h5]h8]uh:Nh;hh"]r{hJX FilterStorer|r}}r~(h'Uh(jxubaubh)r}r(h'Uh(j`h)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h)r}r(h'Xenvh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXenvrr}r(h'Uh(jubah.hubh)r}r(h'X capacity=1h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJX capacity=1rr}r(h'Uh(jubah.hubeubeubj)r}r(h'Uh(j[h)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XpThe *FilterStore* subclasses :class:`Store` and allows you to only get items that match a user-defined criteria.h(jh)Xr/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterStorerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe rr}r(h'XThe h(jubj%)r}r(h'X *FilterStore*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJX FilterStorerr}r(h'Uh(jubah.j-ubhJX subclasses rr}r(h'X subclasses h(jubhf)r}r(h'X:class:`Store`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorerr}r(h'Uh(jubah.hNubaubhJXE and allows you to only get items that match a user-defined criteria.rr}r(h'XE and allows you to only get items that match a user-defined criteria.h(jubeubh\)r}r(h'XThis criteria is defined via a filter function that is passed to :meth:`get()`. :meth:`get()` only considers items for which this function returns ``True``.h(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXAThis criteria is defined via a filter function that is passed to rr}r(h'XAThis criteria is defined via a filter function that is passed to h(jubhf)r}r(h'X :meth:`get()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmXgetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJXget()rr}r(h'Uh(jubah.hNubaubhJX. rr}r(h'X. h(jubhf)r}r(h'X :meth:`get()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmXgetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJXget()rr}r(h'Uh(jubah.hNubaubhJX6 only considers items for which this function returns rr}r(h'X6 only considers items for which this function returns h(jubhD)r}r(h'X``True``h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXTruerr}r(h'Uh(jubah.hNubhJX.r}r(h'X.h(jubeubcdocutils.nodes note r)r}r(h'XIn contrast to :class:`Store`, processes trying to get an item from :class:`FilterStore` won't necessarily be processed in the same order that they made the request. *Example:* The store is empty. *Process 1* tries to get an item of type *a*, *Process 2* an item of type *b*. Another process puts one item of type *b* into the store. Though *Process 2* made his request after *Process 1*, it will receive that new item because *Process 1* doesn't want it.h(jh)jh.Unoterh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XIn contrast to :class:`Store`, processes trying to get an item from :class:`FilterStore` won't necessarily be processed in the same order that they made the request.h(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:K h"]r(hJXIn contrast to rr}r(h'XIn contrast to h(jubhf)r}r(h'X:class:`Store`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXStorerr}r(h'Uh(jubah.hNubaubhJX', processes trying to get an item from r r }r (h'X', processes trying to get an item from h(jubhf)r }r (h'X:class:`FilterStore`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmX FilterStoreU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(j h"]rhJX FilterStorerr}r(h'Uh(jubah.hNubaubhJXM won't necessarily be processed in the same order that they made the request.rr}r(h'XM won't necessarily be processed in the same order that they made the request.h(jubeubh\)r}r(h'X!*Example:* The store is empty. *Process 1* tries to get an item of type *a*, *Process 2* an item of type *b*. Another process puts one item of type *b* into the store. Though *Process 2* made his request after *Process 1*, it will receive that new item because *Process 1* doesn't want it.h(jh)jh.h`h0}r (h2]h3]h4]h5]h8]uh:Kh"]r!(j%)r"}r#(h'X *Example:*h0}r$(h2]h3]h4]h5]h8]uh(jh"]r%hJXExample:r&r'}r((h'Uh(j"ubah.j-ubhJX The store is empty. r)r*}r+(h'X The store is empty. h(jubj%)r,}r-(h'X *Process 1*h0}r.(h2]h3]h4]h5]h8]uh(jh"]r/hJX Process 1r0r1}r2(h'Uh(j,ubah.j-ubhJX tries to get an item of type r3r4}r5(h'X tries to get an item of type h(jubj%)r6}r7(h'X*a*h0}r8(h2]h3]h4]h5]h8]uh(jh"]r9hJXar:}r;(h'Uh(j6ubah.j-ubhJX, r<r=}r>(h'X, h(jubj%)r?}r@(h'X *Process 2*h0}rA(h2]h3]h4]h5]h8]uh(jh"]rBhJX Process 2rCrD}rE(h'Uh(j?ubah.j-ubhJX an item of type rFrG}rH(h'X an item of type h(jubj%)rI}rJ(h'X*b*h0}rK(h2]h3]h4]h5]h8]uh(jh"]rLhJXbrM}rN(h'Uh(jIubah.j-ubhJX(. Another process puts one item of type rOrP}rQ(h'X(. Another process puts one item of type h(jubj%)rR}rS(h'X*b*h0}rT(h2]h3]h4]h5]h8]uh(jh"]rUhJXbrV}rW(h'Uh(jRubah.j-ubhJX into the store. Though rXrY}rZ(h'X into the store. Though h(jubj%)r[}r\(h'X *Process 2*h0}r](h2]h3]h4]h5]h8]uh(jh"]r^hJX Process 2r_r`}ra(h'Uh(j[ubah.j-ubhJX made his request after rbrc}rd(h'X made his request after h(jubj%)re}rf(h'X *Process 1*h0}rg(h2]h3]h4]h5]h8]uh(jh"]rhhJX Process 1rirj}rk(h'Uh(jeubah.j-ubhJX(, it will receive that new item because rlrm}rn(h'X(, it will receive that new item because h(jubj%)ro}rp(h'X *Process 1*h0}rq(h2]h3]h4]h5]h8]uh(jh"]rrhJX Process 1rsrt}ru(h'Uh(joubah.j-ubhJX doesn't want it.rvrw}rx(h'X doesn't want it.h(jubeubeubhS)ry}rz(h'Uh(jh)Uh.hWh0}r{(h5]h4]h2]h3]h8]Uentries]r|(hZX6GetQueue (simpy.resources.store.FilterStore attribute)hUtr}auh:Nh;hh"]ubh)r~}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XFilterStore.GetQueueh(j~h)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStore.GetQueuehjhhԉuh:Nh;hh"]rh)r}r(h'XGetQueueh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXGetQueuerr}r(h'Uh(jubaubaubj)r}r(h'Uh(j~h)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XQThe type to be used for the :attr:`~simpy.resources.base.BaseResource.get_queue`.h(jh)X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterStore.GetQueueh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe type to be used for the rr}r(h'XThe type to be used for the h(jubhf)r}r(h'X4:attr:`~simpy.resources.base.BaseResource.get_queue`rh(jh)Nh.hjh0}r(UreftypeXattrhlhmX+simpy.resources.base.BaseResource.get_queueU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-attrreh4]h5]h8]uh(jh"]rhJX get_queuerr}r(h'Uh(jubah.hNubaubhJX.r}r(h'X.h(jubeubh\)r}r(h'Xalias of :class:`FilterQueue`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`FilterQueue`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmX FilterQueueU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJX FilterQueuerr}r(h'Uh(jubah.hNubaubeubeubeubhS)r}r(h'Uh(jh)Uh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX1get (simpy.resources.store.FilterStore attribute)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)Uh.hh0}r(hhXpyh5]h4]h2]h3]h8]hX attributerhjuh:Nh;hh"]r(h)r}r(h'XFilterStore.geth(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStore.gethjhhԉuh:Nh;hh"]rh)r}r(h'Xgeth(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXgetrr}r(h'Uh(jubaubaubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'X+Create a new :class:`FilterStoreGet` event.h(jh)Xv/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterStore.geth.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX Create a new rr}r(h'X Create a new h(jubhf)r}r(h'X:class:`FilterStoreGet`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXFilterStoreGetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXFilterStoreGetrr}r(h'Uh(jubah.hNubaubhJX event.rr}r(h'X event.h(jubeubh\)r}r(h'X alias of :class:`FilterStoreGet`h(jh)Uh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX alias of rr}r(h'X alias of h(jubhf)r}r(h'X:class:`FilterStoreGet`rh(jh)Nh.hjh0}r(UreftypeXclasshlhmXFilterStoreGetU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhhrhsuh:Nh"]rhD)r }r (h'jh0}r (h2]h3]r (hyjXpy-classr eh4]h5]h8]uh(jh"]rhJXFilterStoreGetrr}r(h'Uh(j ubah.hNubaubeubeubeubeubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX)StorePut (class in simpy.resources.store)h Utrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'XStorePut(resource, item)h(jh)hh.hh0}r(h5]rh ahh*Xsimpy.resources.storer r!}r"bh4]h2]h3]h8]r#h ahXStorePutr$hUhԉuh:Nh;hh"]r%(h)r&}r'(h'Xclass h(jh)hh.hh0}r((h2]h3]h4]h5]h8]uh:Nh;hh"]r)hJXclass r*r+}r,(h'Uh(j&ubaubh)r-}r.(h'Xsimpy.resources.store.h(jh)hh.hh0}r/(h2]h3]h4]h5]h8]uh:Nh;hh"]r0hJXsimpy.resources.store.r1r2}r3(h'Uh(j-ubaubh)r4}r5(h'j$h(jh)hh.hh0}r6(h2]h3]h4]h5]h8]uh:Nh;hh"]r7hJXStorePutr8r9}r:(h'Uh(j4ubaubh)r;}r<(h'Uh(jh)hh.hh0}r=(h2]h3]h4]h5]h8]uh:Nh;hh"]r>(h)r?}r@(h'Xresourceh0}rA(h2]h3]h4]h5]h8]uh(j;h"]rBhJXresourcerCrD}rE(h'Uh(j?ubah.hubh)rF}rG(h'Xitemh0}rH(h2]h3]h4]h5]h8]uh(j;h"]rIhJXitemrJrK}rL(h'Uh(jFubah.hubeubeubj)rM}rN(h'Uh(jh)hh.j h0}rO(h2]h3]h4]h5]h8]uh:Nh;hh"]rP(h\)rQ}rR(h'X:Put *item* into the store if possible or wait until it is.h(jMh)Xo/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.StorePuth.h`h0}rS(h2]h3]h4]h5]h8]uh:Kh;hh"]rT(hJXPut rUrV}rW(h'XPut h(jQubj%)rX}rY(h'X*item*h0}rZ(h2]h3]h4]h5]h8]uh(jQh"]r[hJXitemr\r]}r^(h'Uh(jXubah.j-ubhJX0 into the store if possible or wait until it is.r_r`}ra(h'X0 into the store if possible or wait until it is.h(jQubeubhS)rb}rc(h'Uh(jMh)Xt/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.StorePut.itemrdh.hWh0}re(h5]h4]h2]h3]h8]Uentries]rf(hZX/item (simpy.resources.store.StorePut attribute)hUtrgauh:Nh;hh"]ubh)rh}ri(h'Uh(jMh)jdh.hh0}rj(hhXpyh5]h4]h2]h3]h8]hX attributerkhjkuh:Nh;hh"]rl(h)rm}rn(h'X StorePut.itemh(jhh)jsh.hh0}ro(h5]rphahh*Xsimpy.resources.storerqrr}rsbh4]h2]h3]h8]rthahX StorePut.itemhj$hԉuh:Nh;hh"]ru(h)rv}rw(h'Xitemh(jmh)jsh.hh0}rx(h2]h3]h4]h5]h8]uh:Nh;hh"]ryhJXitemrzr{}r|(h'Uh(jvubaubh)r}}r~(h'X = Noneh(jmh)jsh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX = Nonerr}r(h'Uh(j}ubaubeubj)r}r(h'Uh(jhh)jsh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'XThe item to put into the store.rh(jh)jdh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXThe item to put into the store.rr}r(h'jh(jubaubaubeubeubeubhS)r}r(h'Uh(h%h)Xo/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.StoreGetrh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX)StoreGet (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'XStoreGet(resource)h(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXStoreGetrhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXStoreGetrr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh)r}r(h'Xresourceh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXresourcerr}r(h'Uh(jubah.hubaubeubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X:Get an item from the store or wait until one is available.rh(jh)jh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJX:Get an item from the store or wait until one is available.rr}r(h'jh(jubaubaubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX/FilterStoreGet (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'X2FilterStoreGet(resource, filter=lambda item: True)h(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahXFilterStoreGetrhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXFilterStoreGetrr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h)r}r(h'Xresourceh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXresourcerr}r(h'Uh(jubah.hubh)r}r(h'Xfilter=lambda item: Trueh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXfilter=lambda item: Truer r }r (h'Uh(jubah.hubeubeubj)r }r (h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XyGet an item from the store for which *filter* returns ``True``. This event is triggered once such an event is available.h(j h)Xu/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterStoreGetrh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX%Get an item from the store for which rr}r(h'X%Get an item from the store for which h(jubj%)r}r(h'X*filter*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXfilterrr}r(h'Uh(jubah.j-ubhJX returns rr }r!(h'X returns h(jubhD)r"}r#(h'X``True``h0}r$(h2]h3]h4]h5]h8]uh(jh"]r%hJXTruer&r'}r((h'Uh(j"ubah.hNubhJX;. This event is triggered once such an event is available.r)r*}r+(h'X;. This event is triggered once such an event is available.h(jubeubh\)r,}r-(h'XyThe default *filter* function returns ``True`` for all items, and thus this event exactly behaves like :class:`StoreGet`.h(j h)jh.h`h0}r.(h2]h3]h4]h5]h8]uh:Kh;hh"]r/(hJX The default r0r1}r2(h'X The default h(j,ubj%)r3}r4(h'X*filter*h0}r5(h2]h3]h4]h5]h8]uh(j,h"]r6hJXfilterr7r8}r9(h'Uh(j3ubah.j-ubhJX function returns r:r;}r<(h'X function returns h(j,ubhD)r=}r>(h'X``True``h0}r?(h2]h3]h4]h5]h8]uh(j,h"]r@hJXTruerArB}rC(h'Uh(j=ubah.hNubhJX9 for all items, and thus this event exactly behaves like rDrE}rF(h'X9 for all items, and thus this event exactly behaves like h(j,ubhf)rG}rH(h'X:class:`StoreGet`rIh(j,h)h,h.hjh0}rJ(UreftypeXclasshlhmXStoreGetU refdomainXpyrKh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rLhD)rM}rN(h'jIh0}rO(h2]h3]rP(hyjKXpy-classrQeh4]h5]h8]uh(jGh"]rRhJXStoreGetrSrT}rU(h'Uh(jMubah.hNubaubhJX.rV}rW(h'X.h(j,ubeubhS)rX}rY(h'Uh(j h)X|/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterStoreGet.filterrZh.hWh0}r[(h5]h4]h2]h3]h8]Uentries]r\(hZX7filter (simpy.resources.store.FilterStoreGet attribute)hUtr]auh:Nh;hh"]ubh)r^}r_(h'Uh(j h)jZh.hh0}r`(hhXpyh5]h4]h2]h3]h8]hX attributerahjauh:Nh;hh"]rb(h)rc}rd(h'XFilterStoreGet.filterh(j^h)jsh.hh0}re(h5]rfhahh*Xsimpy.resources.storergrh}ribh4]h2]h3]h8]rjhahXFilterStoreGet.filterhjhԉuh:Nh;hh"]rk(h)rl}rm(h'Xfilterh(jch)jsh.hh0}rn(h2]h3]h4]h5]h8]uh:Nh;hh"]rohJXfilterrprq}rr(h'Uh(jlubaubh)rs}rt(h'X = Noneh(jch)jsh.hh0}ru(h2]h3]h4]h5]h8]uh:Nh;hh"]rvhJX = Nonerwrx}ry(h'Uh(jsubaubeubj)rz}r{(h'Uh(j^h)jsh.j h0}r|(h2]h3]h4]h5]h8]uh:Nh;hh"]r}h\)r~}r(h'XThe filter function to use.rh(jzh)jZh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]rhJXThe filter function to use.rr}r(h'jh(j~ubaubaubeubeubeubhS)r}r(h'Uh(h%h)Nh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX,FilterQueue (class in simpy.resources.store)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(h%h)Nh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXclassrhjuh:Nh;hh"]r(h)r}r(h'X FilterQueue()rh(jh)hh.hh0}r(h5]rhahh*Xsimpy.resources.storerr}rbh4]h2]h3]h8]rhahX FilterQueuerhUhԉuh:Nh;hh"]r(h)r}r(h'Xclass h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXclass rr}r(h'Uh(jubaubh)r}r(h'Xsimpy.resources.store.h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJXsimpy.resources.store.rr}r(h'Uh(jubaubh)r}r(h'jh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX FilterQueuerr}r(h'Uh(jubaubeubj)r}r(h'Uh(jh)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]r(h\)r}r(h'XThe queue inherits :class:`list` and modifies :meth:`__getitem__()` and :meth:`__bool__` to appears to only contain events for which the *store*\ 's item queue contains proper item.h(jh)Xr/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueuerh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJXThe queue inherits rr}r(h'XThe queue inherits h(jubhf)r}r(h'X :class:`list`rh(jh)h,h.hjh0}r(UreftypeXclasshlhmXlistU refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-classreh4]h5]h8]uh(jh"]rhJXlistrr}r(h'Uh(jubah.hNubaubhJX and modifies rr}r(h'X and modifies h(jubhf)r}r(h'X:meth:`__getitem__()`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmX __getitem__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __getitem__()rr}r(h'Uh(jubah.hNubaubhJX and rr}r(h'X and h(jubhf)r}r(h'X:meth:`__bool__`rh(jh)h,h.hjh0}r(UreftypeXmethhlhmX__bool__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Kh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __bool__()rr}r(h'Uh(jubah.hNubaubhJX1 to appears to only contain events for which the rr}r(h'X1 to appears to only contain events for which the h(jubj%)r}r(h'X*store*h0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXstorerr}r(h'Uh(jubah.j-ubhJX#'s item queue contains proper item.rr}r(h'X%\ 's item queue contains proper item.h(jubeubhS)r}r(h'Uh(jh)X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__getitem__rh.hWh0}r(h5]h4]h2]h3]h8]Uentries]r(hZX8__getitem__() (simpy.resources.store.FilterQueue method)hUtrauh:Nh;hh"]ubh)r}r(h'Uh(jh)jh.hh0}r(hhXpyh5]h4]h2]h3]h8]hXmethodrhjuh:Nh;hh"]r(h)r}r(h'XFilterQueue.__getitem__(key)h(jh)hh.hh0}r (h5]r hahh*Xsimpy.resources.storer r }r bh4]h2]h3]h8]rhahXFilterQueue.__getitem__hjhԉuh:Nh;hh"]r(h)r}r(h'X __getitem__h(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX __getitem__rr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh)r}r(h'Xkeyh0}r(h2]h3]h4]h5]h8]uh(jh"]rhJXkeyrr }r!(h'Uh(jubah.hubaubeubj)r"}r#(h'Uh(jh)hh.j h0}r$(h2]h3]h4]h5]h8]uh:Nh;hh"]r%h\)r&}r'(h'XlGet the *key*\ th event from all events that have an item available in the corresponding store's item queue.h(j"h)jh.h`h0}r((h2]h3]h4]h5]h8]uh:Kh;hh"]r)(hJXGet the r*r+}r,(h'XGet the h(j&ubj%)r-}r.(h'X*key*h0}r/(h2]h3]h4]h5]h8]uh(j&h"]r0hJXkeyr1r2}r3(h'Uh(j-ubah.j-ubhJX]th event from all events that have an item available in the corresponding store's item queue.r4r5}r6(h'X_\ th event from all events that have an item available in the corresponding store's item queue.h(j&ubeubaubeubhS)r7}r8(h'Uh(jh)X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__bool__r9h.hWh0}r:(h5]h4]h2]h3]h8]Uentries]r;(hZX5__bool__() (simpy.resources.store.FilterQueue method)hUtr<auh:Nh;hh"]ubh)r=}r>(h'Uh(jh)j9h.hh0}r?(hhXpyh5]h4]h2]h3]h8]hXmethodr@hj@uh:Nh;hh"]rA(h)rB}rC(h'XFilterQueue.__bool__()h(j=h)hh.hh0}rD(h5]rEhahh*Xsimpy.resources.storerFrG}rHbh4]h2]h3]h8]rIhahXFilterQueue.__bool__hjhԉuh:Nh;hh"]rJ(h)rK}rL(h'X__bool__h(jBh)hh.hh0}rM(h2]h3]h4]h5]h8]uh:Nh;hh"]rNhJX__bool__rOrP}rQ(h'Uh(jKubaubh)rR}rS(h'Uh(jBh)hh.hh0}rT(h2]h3]h4]h5]h8]uh:Nh;hh"]ubeubj)rU}rV(h'Uh(j=h)hh.j h0}rW(h2]h3]h4]h5]h8]uh:Nh;hh"]rXh\)rY}rZ(h'XvReturn ``True`` if the queue contains an event for which an item is available in the corresponding store's item queue.h(jUh)j9h.h`h0}r[(h2]h3]h4]h5]h8]uh:Kh;hh"]r\(hJXReturn r]r^}r_(h'XReturn h(jYubhD)r`}ra(h'X``True``h0}rb(h2]h3]h4]h5]h8]uh(jYh"]rchJXTruerdre}rf(h'Uh(j`ubah.hNubhJXg if the queue contains an event for which an item is available in the corresponding store's item queue.rgrh}ri(h'Xg if the queue contains an event for which an item is available in the corresponding store's item queue.h(jYubeubaubeubhS)rj}rk(h'Uh(jh)X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/store.py:docstring of simpy.resources.store.FilterQueue.__nonzero__rlh.hWh0}rm(h5]h4]h2]h3]h8]Uentries]rn(hZX8__nonzero__() (simpy.resources.store.FilterQueue method)h Utroauh:Nh;hh"]ubh)rp}rq(h'Uh(jh)jlh.hh0}rr(hhXpyh5]h4]h2]h3]h8]hXmethodrshjsuh:Nh;hh"]rt(h)ru}rv(h'XFilterQueue.__nonzero__()rwh(jph)hh.hh0}rx(h5]ryh ahh*Xsimpy.resources.storerzr{}r|bh4]h2]h3]h8]r}h ahXFilterQueue.__nonzero__hjhԉuh:Nh;hh"]r~(h)r}r(h'X __nonzero__h(juh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rhJX __nonzero__rr}r(h'Uh(jubaubh)r}r(h'Uh(juh)hh.hh0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]ubeubj)r}r(h'Uh(jph)hh.j h0}r(h2]h3]h4]h5]h8]uh:Nh;hh"]rh\)r}r(h'X\Provided for backwards compatability: :meth:`__bool__()` is only used from Python 3 onwards.h(jh)jlh.h`h0}r(h2]h3]h4]h5]h8]uh:Kh;hh"]r(hJX&Provided for backwards compatability: rr}r(h'X&Provided for backwards compatability: h(jubhf)r}r(h'X:meth:`__bool__()`rh(jh)Nh.hjh0}r(UreftypeXmethhlhmX__bool__U refdomainXpyrh5]h4]U refexplicith2]h3]h8]hohphqjhrhsuh:Nh"]rhD)r}r(h'jh0}r(h2]h3]r(hyjXpy-methreh4]h5]h8]uh(jh"]rhJX __bool__()rr}r(h'Uh(jubah.hNubaubhJX$ is only used from Python 3 onwards.rr}r(h'X$ is only used from Python 3 onwards.h(jubeubaubeubeubeubeubah'UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh;hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUW/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.store.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjchjh hh jh jh jh7cdocutils.nodes target r )r }r (h'Uh(h%h)hVh.Utargetr h0}r (h2]h5]rh7ah4]Uismodh3]h8]uh:Kh;hh"]ubhjh juhjqhjBhjhjh!h%hjmhjhjhjhj`uUsubstitution_namesr}rh.h;h0}r(h2]h5]h4]Usourceh,h3]h8]uU footnotesr]rUrefidsr}rub.PK{EBB/simpy-3.0/.doctrees/api_reference/simpy.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy --- the end user apiqNX monitoringqNXpy.testqXotherq NXcore classes and functionsq NX simpy.testq X resourcesq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUsimpy-the-end-user-apiqhU monitoringqhUpy-testqh Uotherqh Ucore-classes-and-functionsqh h h U resourcesquUchildrenq]qcdocutils.nodes section q)q}q (U rawsourceq!UUparentq"hUsourceq#cdocutils.nodes reprunicode q$XG/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.rstq%q&}q'bUtagnameq(Usectionq)U attributesq*}q+(Udupnamesq,]Uclassesq-]Ubackrefsq.]Uidsq/]q0(X module-simpyq1heUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h!X``simpy`` --- The end user APIq:h"hh#h&h(Utitleq;h*}q<(h,]h-]h.]h/]h2]uh4Kh5hh]q=(cdocutils.nodes literal q>)q?}q@(h!X ``simpy``qAh*}qB(h,]h-]h.]h/]h2]uh"h8h]qCcdocutils.nodes Text qDXsimpyqEqF}qG(h!Uh"h?ubah(UliteralqHubhDX --- The end user APIqIqJ}qK(h!X --- The end user APIqLh"h8ubeubcsphinx.addnodes index qM)qN}qO(h!Uh"hh#U qPh(UindexqQh*}qR(h/]h.]h,]h-]h2]Uentries]qS(UsingleqTXsimpy (module)X module-simpyUtqUauh4Kh5hh]ubcdocutils.nodes paragraph qV)qW}qX(h!XThe ``simpy`` module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.h"hh#XO/var/build/user_builds/simpy/checkouts/3.0/simpy/__init__.py:docstring of simpyqYh(U paragraphqZh*}q[(h,]h-]h.]h/]h2]uh4Kh5hh]q\(hDXThe q]q^}q_(h!XThe h"hWubh>)q`}qa(h!X ``simpy``h*}qb(h,]h-]h.]h/]h2]uh"hWh]qchDXsimpyqdqe}qf(h!Uh"h`ubah(hHubhDX module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.qgqh}qi(h!X module provides SimPy's end-user API. It aggregates Simpy's most important classes and methods. This is purely for your convenience. You can of course also access everything (and more!) via their actual submodules.h"hWubeubh)qj}qk(h!Uh"hh#hYh(h)h*}ql(h,]h-]h.]h/]qmhah2]qnh auh4Kh5hh]qo(h7)qp}qq(h!XCore classes and functionsqrh"hjh#hYh(h;h*}qs(h,]h-]h.]h/]h2]uh4Kh5hh]qthDXCore classes and functionsquqv}qw(h!hrh"hpubaubcdocutils.nodes bullet_list qx)qy}qz(h!Uh"hjh#hYh(U bullet_listq{h*}q|(Ubulletq}X-h/]h.]h,]h-]h2]uh4K h5hh]q~cdocutils.nodes list_item q)q}q(h!X:class:`Environment`: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events). h"hyh#hYh(U list_itemqh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X:class:`Environment`: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4K h]q(csphinx.addnodes pending_xref q)q}q(h!X:class:`Environment`qh"hh#Nh(U pending_xrefqh*}q(UreftypeXclassUrefwarnqU reftargetqX EnvironmentU refdomainXpyqh/]h.]U refexplicith,]h-]h2]UrefdocqXapi_reference/simpyqUpy:classqNU py:moduleqX simpy.coreuh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(UxrefqhXpy-classqeh.]h/]h2]uh"hh]qhDX Environmentqq}q(h!Uh"hubah(hHubaubhDXw: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).qq}q(h!Xw: SimPy's central class. It contains the simulation's state and lets the PEMs interact with it (i.e., schedule events).h"hubeubaubaubhx)q}q(h!Uh"hjh#hYh(h{h*}q(h}X-h/]h.]h,]h-]h2]uh4Kh5hh]qh)q}q(h!Xd:class:`Interrupt`: This exception is thrown into a process if it gets interrupted by another one. h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!Xb:class:`Interrupt`: This exception is thrown into a process if it gets interrupted by another one.h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`Interrupt`qh"hh#Nh(hh*}q(UreftypeXclasshhX InterruptU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhX simpy.eventsuh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(hhXpy-classqeh.]h/]h2]uh"hh]qhDX Interruptqq}q(h!Uh"hubah(hHubaubhDXP: This exception is thrown into a process if it gets interrupted by another one.qq}q(h!XP: This exception is thrown into a process if it gets interrupted by another one.h"hubeubaubaubeubh)q}q(h!Uh"hh#hYh(h)h*}q(h,]h-]h.]h/]qhah2]qh auh4Kh5hh]q(h7)q}q(h!X Resourcesqh"hh#hYh(h;h*}q(h,]h-]h.]h/]h2]uh4Kh5hh]qhDX Resourcesqͅq}q(h!hh"hubaubhx)q}q(h!Uh"hh#hYh(h{h*}q(h}X-h/]h.]h,]h-]h2]uh4Kh5hh]q(h)q}q(h!X:class:`Resource`: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps). h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X:class:`Resource`: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`Resource`qh"hh#Nh(hh*}q(UreftypeXclasshhXResourceU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.resourcequh4Nh]qh>)q}q(h!hh*}q(h,]h-]q(hhXpy-classqeh.]h/]h2]uh"hh]qhDXResourceq酁q}q(h!Uh"hubah(hHubaubhDXs: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).q셁q}q(h!Xs: Can be used by a limited number of processes at a time (e.g., a gas station with a limited number of fuel pumps).h"hubeubaubh)q}q(h!Xa:class:`PriorityResource`: Like :class:`Resource`, but waiting processes are sorted by priority. h"hh#hYh(hh*}q(h,]h-]h.]h/]h2]uh4Nh5hh]qhV)q}q(h!X`:class:`PriorityResource`: Like :class:`Resource`, but waiting processes are sorted by priority.h"hh#hYh(hZh*}q(h,]h-]h.]h/]h2]uh4Kh]q(h)q}q(h!X:class:`PriorityResource`qh"hh#Nh(hh*}q(UreftypeXclasshhXPriorityResourceU refdomainXpyqh/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]qh>)q}q(h!hh*}q(h,]h-]r(hhXpy-classreh.]h/]h2]uh"hh]rhDXPriorityResourcerr}r(h!Uh"hubah(hHubaubhDX: Like rr}r(h!X: Like h"hubh)r }r (h!X:class:`Resource`r h"hh#Nh(hh*}r (UreftypeXclasshhXResourceU refdomainXpyr h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]rh>)r}r(h!j h*}r(h,]h-]r(hj Xpy-classreh.]h/]h2]uh"j h]rhDXResourcerr}r(h!Uh"jubah(hHubaubhDX/, but waiting processes are sorted by priority.rr}r(h!X/, but waiting processes are sorted by priority.h"hubeubaubh)r}r(h!XK:class:`PreemptiveResource`: Version of :class:`Resource` with preemption. h"hh#hYh(hh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r (h!XJ:class:`PreemptiveResource`: Version of :class:`Resource` with preemption.h"jh#hYh(hZh*}r!(h,]h-]h.]h/]h2]uh4K h]r"(h)r#}r$(h!X:class:`PreemptiveResource`r%h"jh#Nh(hh*}r&(UreftypeXclasshhXPreemptiveResourceU refdomainXpyr'h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]r(h>)r)}r*(h!j%h*}r+(h,]h-]r,(hj'Xpy-classr-eh.]h/]h2]uh"j#h]r.hDXPreemptiveResourcer/r0}r1(h!Uh"j)ubah(hHubaubhDX : Version of r2r3}r4(h!X : Version of h"jubh)r5}r6(h!X:class:`Resource`r7h"jh#Nh(hh*}r8(UreftypeXclasshhXResourceU refdomainXpyr9h/]h.]U refexplicith,]h-]h2]hhhNhhuh4Nh]r:h>)r;}r<(h!j7h*}r=(h,]h-]r>(hj9Xpy-classr?eh.]h/]h2]uh"j5h]r@hDXResourcerArB}rC(h!Uh"j;ubah(hHubaubhDX with preemption.rDrE}rF(h!X with preemption.h"jubeubaubeubhx)rG}rH(h!Uh"hh#hYh(h{h*}rI(h}X-h/]h.]h,]h-]h2]uh4K%h5hh]rJh)rK}rL(h!X:class:`Container`: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples). h"jGh#hYh(hh*}rM(h,]h-]h.]h/]h2]uh4Nh5hh]rNhV)rO}rP(h!X:class:`Container`: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).h"jKh#hYh(hZh*}rQ(h,]h-]h.]h/]h2]uh4K%h]rR(h)rS}rT(h!X:class:`Container`rUh"jOh#Nh(hh*}rV(UreftypeXclasshhX ContainerU refdomainXpyrWh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.containeruh4Nh]rXh>)rY}rZ(h!jUh*}r[(h,]h-]r\(hjWXpy-classr]eh.]h/]h2]uh"jSh]r^hDX Containerr_r`}ra(h!Uh"jYubah(hHubaubhDX: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).rbrc}rd(h!X: Models the production and consumption of a homogeneous, undifferentiated bulk. It may either be continuous (like water) or discrete (like apples).h"jOubeubaubaubhx)re}rf(h!Uh"hh#hYh(h{h*}rg(h}X-h/]h.]h,]h-]h2]uh4K+h5hh]rh(h)ri}rj(h!XR:class:`Store`: Allows the production and consumption of discrete Python objects. h"jeh#hYh(hh*}rk(h,]h-]h.]h/]h2]uh4Nh5hh]rlhV)rm}rn(h!XQ:class:`Store`: Allows the production and consumption of discrete Python objects.h"jih#hYh(hZh*}ro(h,]h-]h.]h/]h2]uh4K+h]rp(h)rq}rr(h!X:class:`Store`rsh"jmh#Nh(hh*}rt(UreftypeXclasshhXStoreU refdomainXpyruh/]h.]U refexplicith,]h-]h2]hhhNhXsimpy.resources.storervuh4Nh]rwh>)rx}ry(h!jsh*}rz(h,]h-]r{(hjuXpy-classr|eh.]h/]h2]uh"jqh]r}hDXStorer~r}r(h!Uh"jxubah(hHubaubhDXC: Allows the production and consumption of discrete Python objects.rr}r(h!XC: Allows the production and consumption of discrete Python objects.h"jmubeubaubh)r}r(h!Xt:class:`FilterStore`: Like :class:`Store`, but items taken out of it can be filtered with a user-defined function. h"jeh#hYh(hh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r(h!Xr:class:`FilterStore`: Like :class:`Store`, but items taken out of it can be filtered with a user-defined function.h"jh#hYh(hZh*}r(h,]h-]h.]h/]h2]uh4K.h]r(h)r}r(h!X:class:`FilterStore`rh"jh#Nh(hh*}r(UreftypeXclasshhX FilterStoreU refdomainXpyrh/]h.]U refexplicith,]h-]h2]hhhNhjvuh4Nh]rh>)r}r(h!jh*}r(h,]h-]r(hjXpy-classreh.]h/]h2]uh"jh]rhDX FilterStorerr}r(h!Uh"jubah(hHubaubhDX: Like rr}r(h!X: Like h"jubh)r}r(h!X:class:`Store`rh"jh#Nh(hh*}r(UreftypeXclasshhXStoreU refdomainXpyrh/]h.]U refexplicith,]h-]h2]hhhNhjvuh4Nh]rh>)r}r(h!jh*}r(h,]h-]r(hjXpy-classreh.]h/]h2]uh"jh]rhDXStorerr}r(h!Uh"jubah(hHubaubhDXI, but items taken out of it can be filtered with a user-defined function.rr}r(h!XI, but items taken out of it can be filtered with a user-defined function.h"jubeubaubeubeubh)r}r(h!Uh"hh#hYh(h)h*}r(h,]h-]h.]h/]rhah2]rhauh4K3h5hh]r(h7)r}r(h!X Monitoringrh"jh#hYh(h;h*}r(h,]h-]h.]h/]h2]uh4K3h5hh]rhDX Monitoringrr}r(h!jh"jubaubhV)r}r(h!X*[Not yet implemented]*rh"jh#hYh(hZh*}r(h,]h-]h.]h/]h2]uh4K7h5hh]rcdocutils.nodes emphasis r)r}r(h!jh*}r(h,]h-]h.]h/]h2]uh"jh]rhDX[Not yet implemented]rr}r(h!Uh"jubah(Uemphasisrubaubeubh)r}r(h!Uh"hh#hYh(h)h*}r(h,]h-]h.]h/]rhah2]rh auh4K;h5hh]r(h7)r}r(h!XOtherrh"jh#hYh(h;h*}r(h,]h-]h.]h/]h2]uh4K;h5hh]rhDXOtherrr}r(h!jh"jubaubhM)r}r(h!Uh"jh#XT/var/build/user_builds/simpy/checkouts/3.0/simpy/__init__.py:docstring of simpy.testrh(hQh*}r(h/]h.]h,]h-]h2]Uentries]r(hTXtest() (in module simpy)h Utrauh4Nh5hh]ubcsphinx.addnodes desc r)r}r(h!Uh"jh#jh(Udescrh*}r(UnoindexrUdomainrXpyh/]h.]h,]h-]h2]UobjtyperXfunctionrUdesctyperjuh4Nh5hh]r(csphinx.addnodes desc_signature r)r}r(h!Xtest()rh"jh#U rh(Udesc_signaturerh*}r(h/]rh aUmodulerh$Xsimpyrr}rbh.]h,]h-]h2]rh aUfullnamerXtestrUclassrUUfirstruh4Nh5hh]r(csphinx.addnodes desc_addname r)r}r(h!Xsimpy.h"jh#jh(U desc_addnamerh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhDXsimpy.rr}r(h!Uh"jubaubcsphinx.addnodes desc_name r)r}r(h!jh"jh#jh(U desc_namer h*}r (h,]h-]h.]h/]h2]uh4Nh5hh]r hDXtestr r }r(h!Uh"jubaubcsphinx.addnodes desc_parameterlist r)r}r(h!Uh"jh#jh(Udesc_parameterlistrh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]ubeubcsphinx.addnodes desc_content r)r}r(h!Uh"jh#jh(U desc_contentrh*}r(h,]h-]h.]h/]h2]uh4Nh5hh]rhV)r}r(h!XCRuns SimPy's test suite via `py.test `_.rh"jh#jh(hZh*}r(h,]h-]h.]h/]h2]uh4Kh5hh]r(hDXRuns SimPy's test suite via rr }r!(h!XRuns SimPy's test suite via h"jubcdocutils.nodes reference r")r#}r$(h!X&`py.test `_h*}r%(UnamehUrefurir&Xhttp://pytest.org/latest/r'h/]h.]h,]h-]h2]uh"jh]r(hDXpy.testr)r*}r+(h!Uh"j#ubah(U referencer,ubcdocutils.nodes target r-)r.}r/(h!X U referencedr0Kh"jh(Utargetr1h*}r2(Urefurij'h/]r3hah.]h,]h-]h2]r4hauh]ubhDX.r5}r6(h!X.h"jubeubaubeubcdocutils.nodes comment r7)r8}r9(h!XB- :func:`test`: Run the test suite on the installed copy of Simpy.h"jh#hYh(Ucommentr:h*}r;(U xml:spacer<Upreserver=h/]h.]h,]h-]h2]uh4KBh5hh]r>hDXB- :func:`test`: Run the test suite on the installed copy of Simpy.r?r@}rA(h!Uh"j8ubaubeubeubah!UU transformerrBNU footnote_refsrC}rDUrefnamesrE}rFUsymbol_footnotesrG]rHUautofootnote_refsrI]rJUsymbol_footnote_refsrK]rLU citationsrM]rNh5hU current_linerONUtransform_messagesrP]rQUreporterrRNUid_startrSKU autofootnotesrT]rUU citation_refsrV}rWUindirect_targetsrX]rYUsettingsrZ(cdocutils.frontend Values r[or\}r](Ufootnote_backlinksr^KUrecord_dependenciesr_NU rfc_base_urlr`Uhttp://tools.ietf.org/html/raU tracebackrbUpep_referencesrcNUstrip_commentsrdNU toc_backlinksreUentryrfU language_codergUenrhU datestampriNU report_levelrjKU _destinationrkNU halt_levelrlKU strip_classesrmNh;NUerror_encoding_error_handlerrnUbackslashreplaceroUdebugrpNUembed_stylesheetrqUoutput_encoding_error_handlerrrUstrictrsU sectnum_xformrtKUdump_transformsruNU docinfo_xformrvKUwarning_streamrwNUpep_file_url_templaterxUpep-%04dryUexit_status_levelrzKUconfigr{NUstrict_visitorr|NUcloak_email_addressesr}Utrim_footnote_reference_spacer~UenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUG/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjsUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hj.hjhhjhjh jhhhhh1j-)r}r(h!Uh"hh#hPh(j1h*}r(h,]h/]rh1ah.]Uismodh-]h2]uh4Kh5hh]ubuUsubstitution_namesr}rh(h5h*}r(h,]h/]h.]Usourceh&h-]h2]uU footnotesr]rUrefidsr}rub.PK{Ez3ޕvv4simpy-3.0/.doctrees/api_reference/simpy.core.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xsimpy.core.EnvironmentqX#simpy.core.BaseEnvironment.scheduleqXsimpy.core.Environment.peekqXsimpy.core.Environment.nowq Xsimpy.core.BaseEnvironmentq Xsimpy.core.Environment.stepq Xsimpy.core.BaseEnvironment.stepq Xsimpy.core.Infinityq Xsimpy.core.Environment.runqX simpy.core.BoundClass.bind_earlyqXsimpy.core.Environment.scheduleqXsimpy.core.Environment.all_ofqXsimpy.core.Environment.exitqXsimpy.core.Environment.eventqXsimpy.core.BaseEnvironment.nowqX)simpy.core.BaseEnvironment.active_processqXsimpy.core.Environment.any_ofqXsimpy.core.BaseEnvironment.runqXsimpy.core.Environment.timeoutqX&simpy.core --- simpy's core componentsqNXsimpy.core.BoundClassqX%simpy.core.Environment.active_processqXsimpy.core.EmptyScheduleqXsimpy.core.Environment.processquUsubstitution_defsq}qUparse_messagesq ]q!Ucurrent_sourceq"NU decorationq#NUautofootnote_startq$KUnameidsq%}q&(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhU"simpy-core-simpy-s-core-componentsq'hhhhhhhhuUchildrenq(]q)cdocutils.nodes section q*)q+}q,(U rawsourceq-UUparentq.hUsourceq/cdocutils.nodes reprunicode q0XL/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.core.rstq1q2}q3bUtagnameq4Usectionq5U attributesq6}q7(Udupnamesq8]Uclassesq9]Ubackrefsq:]Uidsq;]q<(Xmodule-simpy.coreq=h'eUnamesq>]q?hauUlineq@KUdocumentqAhh(]qB(cdocutils.nodes title qC)qD}qE(h-X*``simpy.core`` --- SimPy's core componentsqFh.h+h/h2h4UtitleqGh6}qH(h8]h9]h:]h;]h>]uh@KhAhh(]qI(cdocutils.nodes literal qJ)qK}qL(h-X``simpy.core``qMh6}qN(h8]h9]h:]h;]h>]uh.hDh(]qOcdocutils.nodes Text qPX simpy.coreqQqR}qS(h-Uh.hKubah4UliteralqTubhPX --- SimPy's core componentsqUqV}qW(h-X --- SimPy's core componentsqXh.hDubeubcsphinx.addnodes index qY)qZ}q[(h-Uh.h+h/U q\h4Uindexq]h6}q^(h;]h:]h8]h9]h>]Uentries]q_(Usingleq`Xsimpy.core (module)Xmodule-simpy.coreUtqaauh@KhAhh(]ubcdocutils.nodes paragraph qb)qc}qd(h-XThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via :mod:`simpy`.h.h+h/XP/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.coreh4U paragraphqeh6}qf(h8]h9]h:]h;]h>]uh@KhAhh(]qg(hPXuThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via qhqi}qj(h-XuThis module contains the implementation of SimPy's core classes. The most important ones are directly importable via h.hcubcsphinx.addnodes pending_xref qk)ql}qm(h-X :mod:`simpy`qnh.hch/h2h4U pending_xrefqoh6}qp(UreftypeXmodUrefwarnqqU reftargetqrXsimpyU refdomainXpyqsh;]h:]U refexplicith8]h9]h>]UrefdocqtXapi_reference/simpy.corequUpy:classqvNU py:moduleqwX simpy.coreqxuh@Kh(]qyhJ)qz}q{(h-hnh6}q|(h8]h9]q}(Uxrefq~hsXpy-modqeh:]h;]h>]uh.hlh(]qhPXsimpyqq}q(h-Uh.hzubah4hTubaubhPX.q}q(h-X.h.hcubeubhY)q}q(h-Uh.h+h/Nh4h]h6}q(h;]h:]h8]h9]h>]Uentries]q(h`X%BaseEnvironment (class in simpy.core)h Utqauh@NhAhh(]ubcsphinx.addnodes desc q)q}q(h-Uh.h+h/Nh4Udescqh6}q(UnoindexqUdomainqXpyh;]h:]h8]h9]h>]UobjtypeqXclassqUdesctypeqhuh@NhAhh(]q(csphinx.addnodes desc_signature q)q}q(h-XBaseEnvironmentqh.hh/U qh4Udesc_signatureqh6}q(h;]qh aUmoduleqh0X simpy.coreqq}qbh:]h8]h9]h>]qh aUfullnameqhUclassqUUfirstquh@NhAhh(]q(csphinx.addnodes desc_annotation q)q}q(h-Xclass h.hh/hh4Udesc_annotationqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPXclass qq}q(h-Uh.hubaubcsphinx.addnodes desc_addname q)q}q(h-X simpy.core.h.hh/hh4U desc_addnameqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPX simpy.core.qq}q(h-Uh.hubaubcsphinx.addnodes desc_name q)q}q(h-hh.hh/hh4U desc_nameqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]qhPXBaseEnvironmentqq}q(h-Uh.hubaubeubcsphinx.addnodes desc_content q)q}q(h-Uh.hh/hh4U desc_contentqh6}q(h8]h9]h:]h;]h>]uh@NhAhh(]q(hb)q}q(h-X*The abstract definition of an environment.qh.hh/X`/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironmentqh4heh6}q(h8]h9]h:]h;]h>]uh@KhAhh(]qhPX*The abstract definition of an environment.q΅q}q(h-hh.hubaubhb)q}q(h-XAn implementation must at least provide the means to access the current time of the environment (see :attr:`now`) and to schedule (see :meth:`schedule()`) as well as execute (see :meth:`step()` and :meth:`run()`) events.h.hh/hh4heh6}q(h8]h9]h:]h;]h>]uh@KhAhh(]q(hPXeAn implementation must at least provide the means to access the current time of the environment (see qՅq}q(h-XeAn implementation must at least provide the means to access the current time of the environment (see h.hubhk)q}q(h-X :attr:`now`qh.hh/h2h4hoh6}q(UreftypeXattrhqhrXnowU refdomainXpyqh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]qhJ)q}q(h-hh6}q(h8]h9]q(h~hXpy-attrqeh:]h;]h>]uh.hh(]qhPXnowq䅁q}q(h-Uh.hubah4hTubaubhPX) and to schedule (see q煁q}q(h-X) and to schedule (see h.hubhk)q}q(h-X:meth:`schedule()`qh.hh/h2h4hoh6}q(UreftypeXmethhqhrXscheduleU refdomainXpyqh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]qhJ)q}q(h-hh6}q(h8]h9]q(h~hXpy-methqeh:]h;]h>]uh.hh(]qhPX schedule()qq}q(h-Uh.hubah4hTubaubhPX) as well as execute (see qq}q(h-X) as well as execute (see h.hubhk)q}q(h-X:meth:`step()`qh.hh/h2h4hoh6}q(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]rhJ)r}r(h-hh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.hh(]rhPXstep()rr }r (h-Uh.jubah4hTubaubhPX and r r }r (h-X and h.hubhk)r}r(h-X :meth:`run()`rh.hh/h2h4hoh6}r(UreftypeXmethhqhrXrunU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXrun()rr}r(h-Uh.jubah4hTubaubhPX ) events.rr}r(h-X ) events.h.hubeubhb)r }r!(h-XThe class is meant to be subclassed for different execution environments. For example, SimPy defines a :class:`Environment` for simulations with a virtual time and and a :class:`~simpy.rt.RealtimeEnvironment` that schedules and executes events in real (e.g., wallclock) time.h.hh/hh4heh6}r"(h8]h9]h:]h;]h>]uh@KhAhh(]r#(hPXgThe class is meant to be subclassed for different execution environments. For example, SimPy defines a r$r%}r&(h-XgThe class is meant to be subclassed for different execution environments. For example, SimPy defines a h.j ubhk)r'}r((h-X:class:`Environment`r)h.j h/h2h4hoh6}r*(UreftypeXclasshqhrX EnvironmentU refdomainXpyr+h;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K h(]r,hJ)r-}r.(h-j)h6}r/(h8]h9]r0(h~j+Xpy-classr1eh:]h;]h>]uh.j'h(]r2hPX Environmentr3r4}r5(h-Uh.j-ubah4hTubaubhPX/ for simulations with a virtual time and and a r6r7}r8(h-X/ for simulations with a virtual time and and a h.j ubhk)r9}r:(h-X&:class:`~simpy.rt.RealtimeEnvironment`r;h.j h/h2h4hoh6}r<(UreftypeXclasshqhrXsimpy.rt.RealtimeEnvironmentU refdomainXpyr=h;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K h(]r>hJ)r?}r@(h-j;h6}rA(h8]h9]rB(h~j=Xpy-classrCeh:]h;]h>]uh.j9h(]rDhPXRealtimeEnvironmentrErF}rG(h-Uh.j?ubah4hTubaubhPXC that schedules and executes events in real (e.g., wallclock) time.rHrI}rJ(h-XC that schedules and executes events in real (e.g., wallclock) time.h.j ubeubhY)rK}rL(h-Uh.hh/Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironment.nowrMh4h]h6}rN(h;]h:]h8]h9]h>]Uentries]rO(h`X*now (simpy.core.BaseEnvironment attribute)hUtrPauh@NhAhh(]ubh)rQ}rR(h-Uh.hh/jMh4hh6}rS(hhXpyh;]h:]h8]h9]h>]hX attributerThjTuh@NhAhh(]rU(h)rV}rW(h-XBaseEnvironment.nowh.jQh/hh4hh6}rX(h;]rYhahh0X simpy.corerZr[}r\bh:]h8]h9]h>]r]hahXBaseEnvironment.nowhhhuh@NhAhh(]r^h)r_}r`(h-Xnowh.jVh/hh4hh6}ra(h8]h9]h:]h;]h>]uh@NhAhh(]rbhPXnowrcrd}re(h-Uh.j_ubaubaubh)rf}rg(h-Uh.jQh/hh4hh6}rh(h8]h9]h:]h;]h>]uh@NhAhh(]rihb)rj}rk(h-X$The current time of the environment.rlh.jfh/jMh4heh6}rm(h8]h9]h:]h;]h>]uh@KhAhh(]rnhPX$The current time of the environment.rorp}rq(h-jlh.jjubaubaubeubhY)rr}rs(h-Uh.hh/Xo/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironment.active_processrth4h]h6}ru(h;]h:]h8]h9]h>]Uentries]rv(h`X5active_process (simpy.core.BaseEnvironment attribute)hUtrwauh@NhAhh(]ubh)rx}ry(h-Uh.hh/jth4hh6}rz(hhXpyh;]h:]h8]h9]h>]hX attributer{hj{uh@NhAhh(]r|(h)r}}r~(h-XBaseEnvironment.active_processh.jxh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBaseEnvironment.active_processhhhuh@NhAhh(]rh)r}r(h-Xactive_processh.j}h/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXactive_processrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jxh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X0The currently active process of the environment.rh.jh/jth4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPX0The currently active process of the environment.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.hh/Xi/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironment.schedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X.schedule() (simpy.core.BaseEnvironment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.hh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-X4BaseEnvironment.schedule(event, priority=1, delay=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBaseEnvironment.schedulehhhuh@NhAhh(]r(h)r}r(h-Xscheduleh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXschedulerr}r(h-Uh.jubaubcsphinx.addnodes desc_parameterlist r)r}r(h-Uh.jh/hh4Udesc_parameterlistrh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(csphinx.addnodes desc_parameter r)r}r(h-Xeventh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4Udesc_parameterrubj)r}r(h-X priority=1h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX priority=1rr}r(h-Uh.jubah4jubj)r}r(h-Xdelay=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelay=0rr}r(h-Uh.jubah4jubeubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(hb)r}r(h-X:Schedule an *event* with a given *priority* and a *delay*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Schedule an rr}r(h-X Schedule an h.jubcdocutils.nodes emphasis r)r}r(h-X*event*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4UemphasisrubhPX with a given rr}r(h-X with a given h.jubj)r}r(h-X *priority*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXpriorityrr}r(h-Uh.jubah4jubhPX and a rr}r(h-X and a h.jubj)r}r(h-X*delay*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelayrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubhb)r}r(h-XeThere are two default priority values, :data:`~simpy.events.URGENT` and :data:`~simpy.events.NORMAL`.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX'There are two default priority values, rr}r(h-X'There are two default priority values, h.jubhk)r}r(h-X:data:`~simpy.events.URGENT`rh.jh/h2h4hoh6}r(UreftypeXdatahqhrXsimpy.events.URGENTU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K$h(]rhJ)r}r (h-jh6}r (h8]h9]r (h~jXpy-datar eh:]h;]h>]uh.jh(]r hPXURGENTrr}r(h-Uh.jubah4hTubaubhPX and rr}r(h-X and h.jubhk)r}r(h-X:data:`~simpy.events.NORMAL`rh.jh/h2h4hoh6}r(UreftypeXdatahqhrXsimpy.events.NORMALU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K$h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-datareh:]h;]h>]uh.jh(]rhPXNORMALr r!}r"(h-Uh.jubah4hTubaubhPX.r#}r$(h-X.h.jubeubeubeubhY)r%}r&(h-Uh.hh/Xe/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironment.stepr'h4h]h6}r((h;]h:]h8]h9]h>]Uentries]r)(h`X*step() (simpy.core.BaseEnvironment method)h Utr*auh@NhAhh(]ubh)r+}r,(h-Uh.hh/j'h4hh6}r-(hhXpyh;]h:]h8]h9]h>]hXmethodr.hj.uh@NhAhh(]r/(h)r0}r1(h-XBaseEnvironment.step()h.j+h/hh4hh6}r2(h;]r3h ahh0X simpy.corer4r5}r6bh:]h8]h9]h>]r7h ahXBaseEnvironment.stephhhuh@NhAhh(]r8(h)r9}r:(h-Xsteph.j0h/hh4hh6}r;(h8]h9]h:]h;]h>]uh@NhAhh(]r<hPXstepr=r>}r?(h-Uh.j9ubaubj)r@}rA(h-Uh.j0h/hh4jh6}rB(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)rC}rD(h-Uh.j+h/hh4hh6}rE(h8]h9]h:]h;]h>]uh@NhAhh(]rFhb)rG}rH(h-XProcess the next event.rIh.jCh/j'h4heh6}rJ(h8]h9]h:]h;]h>]uh@KhAhh(]rKhPXProcess the next event.rLrM}rN(h-jIh.jGubaubaubeubhY)rO}rP(h-Uh.hh/Nh4h]h6}rQ(h;]h:]h8]h9]h>]Uentries]rR(h`X)run() (simpy.core.BaseEnvironment method)hUtrSauh@NhAhh(]ubh)rT}rU(h-Uh.hh/Nh4hh6}rV(hhXpyh;]h:]h8]h9]h>]hXmethodrWhjWuh@NhAhh(]rX(h)rY}rZ(h-XBaseEnvironment.run(until=None)h.jTh/hh4hh6}r[(h;]r\hahh0X simpy.corer]r^}r_bh:]h8]h9]h>]r`hahXBaseEnvironment.runhhhuh@NhAhh(]ra(h)rb}rc(h-Xrunh.jYh/hh4hh6}rd(h8]h9]h:]h;]h>]uh@NhAhh(]rehPXrunrfrg}rh(h-Uh.jbubaubj)ri}rj(h-Uh.jYh/hh4jh6}rk(h8]h9]h:]h;]h>]uh@NhAhh(]rlj)rm}rn(h-X until=Noneh6}ro(h8]h9]h:]h;]h>]uh.jih(]rphPX until=Nonerqrr}rs(h-Uh.jmubah4jubaubeubh)rt}ru(h-Uh.jTh/hh4hh6}rv(h8]h9]h:]h;]h>]uh@NhAhh(]rw(hb)rx}ry(h-XAExecutes :meth:`step()` until the given criterion *until* is met.h.jth/Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BaseEnvironment.runrzh4heh6}r{(h8]h9]h:]h;]h>]uh@KhAhh(]r|(hPX Executes r}r~}r(h-X Executes h.jxubhk)r}r(h-X:meth:`step()`rh.jxh/h2h4hoh6}r(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@K1h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXstep()rr}r(h-Uh.jubah4hTubaubhPX until the given criterion rr}r(h-X until the given criterion h.jxubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jxh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX is met.rr}r(h-X is met.h.jxubeubcdocutils.nodes bullet_list r)r}r(h-Uh.jth/jzh4U bullet_listrh6}r(UbulletrX-h;]h:]h8]h9]h>]uh@KhAhh(]r(cdocutils.nodes list_item r)r}r(h-XqIf it is ``None`` (which is the default) this method will return if there are no further events to be processed. h.jh/jzh4U list_itemrh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XpIf it is ``None`` (which is the default) this method will return if there are no further events to be processed.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is rr}r(h-X If it is h.jubhJ)r}r(h-X``None``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXNonerr}r(h-Uh.jubah4hTubhPX_ (which is the default) this method will return if there are no further events to be processed.rr}r(h-X_ (which is the default) this method will return if there are no further events to be processed.h.jubeubaubj)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value. h.jh/jzh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is an rr}r(h-X If it is an h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/Nh4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvhhwhxuh@Nh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPXa the method will continue stepping until this event has been triggered and will return its value.rr}r(h-Xa the method will continue stepping until this event has been triggered and will return its value.h.jubeubaubj)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jzh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jzh4heh6}r(h8]h9]h:]h;]h>]uh@K h(]r(hPXjIf it can be converted to a number the method will continue stepping until the environment's time reaches rr}r(h-XjIf it can be converted to a number the method will continue stepping until the environment's time reaches h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubeubeubeubeubhY)r}r(h-Uh.h+h/Nh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X!Environment (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/Nh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-XEnvironment(initial_time=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahX EnvironmentrhUhuh@NhAhh(]r(h)r}r(h-Xclass h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXclass rr}r(h-Uh.jubaubh)r}r(h-X simpy.core.h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r hPX simpy.core.r r }r (h-Uh.jubaubh)r }r(h-jh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX Environmentrr}r(h-Uh.j ubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-Xinitial_time=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXinitial_time=0rr}r(h-Uh.jubah4jubaubeubh)r}r (h-Uh.jh/hh4hh6}r!(h8]h9]h:]h;]h>]uh@NhAhh(]r"(hb)r#}r$(h-XInherits :class:`BaseEnvironment` and implements a simulation environment which simulates the passing of time by stepping from event to event.h.jh/X\/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environmentr%h4heh6}r&(h8]h9]h:]h;]h>]uh@KhAhh(]r'(hPX Inherits r(r)}r*(h-X Inherits h.j#ubhk)r+}r,(h-X:class:`BaseEnvironment`r-h.j#h/h2h4hoh6}r.(UreftypeXclasshqhrXBaseEnvironmentU refdomainXpyr/h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]r0hJ)r1}r2(h-j-h6}r3(h8]h9]r4(h~j/Xpy-classr5eh:]h;]h>]uh.j+h(]r6hPXBaseEnvironmentr7r8}r9(h-Uh.j1ubah4hTubaubhPXm and implements a simulation environment which simulates the passing of time by stepping from event to event.r:r;}r<(h-Xm and implements a simulation environment which simulates the passing of time by stepping from event to event.h.j#ubeubhb)r=}r>(h-XWYou can provide an *initial_time* for the environment. By defaults, it starts at ``0``.h.jh/j%h4heh6}r?(h8]h9]h:]h;]h>]uh@KhAhh(]r@(hPXYou can provide an rArB}rC(h-XYou can provide an h.j=ubj)rD}rE(h-X*initial_time*h6}rF(h8]h9]h:]h;]h>]uh.j=h(]rGhPX initial_timerHrI}rJ(h-Uh.jDubah4jubhPX0 for the environment. By defaults, it starts at rKrL}rM(h-X0 for the environment. By defaults, it starts at h.j=ubhJ)rN}rO(h-X``0``h6}rP(h8]h9]h:]h;]h>]uh.j=h(]rQhPX0rR}rS(h-Uh.jNubah4hTubhPX.rT}rU(h-X.h.j=ubeubhb)rV}rW(h-XxThis class also provides aliases for common event types, for example :attr:`process`, :attr:`timeout` and :attr:`event`.h.jh/j%h4heh6}rX(h8]h9]h:]h;]h>]uh@KhAhh(]rY(hPXEThis class also provides aliases for common event types, for example rZr[}r\(h-XEThis class also provides aliases for common event types, for example h.jVubhk)r]}r^(h-X:attr:`process`r_h.jVh/h2h4hoh6}r`(UreftypeXattrhqhrXprocessU refdomainXpyrah;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rbhJ)rc}rd(h-j_h6}re(h8]h9]rf(h~jaXpy-attrrgeh:]h;]h>]uh.j]h(]rhhPXprocessrirj}rk(h-Uh.jcubah4hTubaubhPX, rlrm}rn(h-X, h.jVubhk)ro}rp(h-X:attr:`timeout`rqh.jVh/h2h4hoh6}rr(UreftypeXattrhqhrXtimeoutU refdomainXpyrsh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rthJ)ru}rv(h-jqh6}rw(h8]h9]rx(h~jsXpy-attrryeh:]h;]h>]uh.joh(]rzhPXtimeoutr{r|}r}(h-Uh.juubah4hTubaubhPX and r~r}r(h-X and h.jVubhk)r}r(h-X :attr:`event`rh.jVh/h2h4hoh6}r(UreftypeXattrhqhrXeventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-attrreh:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4hTubaubhPX.r}r(h-X.h.jVubeubhY)r}r(h-Uh.jh/X`/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.nowrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X&now (simpy.core.Environment attribute)h Utrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hX attributerhjuh@NhAhh(]r(h)r}r(h-XEnvironment.nowh.jh/hh4hh6}r(h;]rh ahh0X simpy.corerr}rbh:]h8]h9]h>]rh ahXEnvironment.nowhjhuh@NhAhh(]rh)r}r(h-Xnowh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXnowrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XThe current simulation time.rh.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXThe current simulation time.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.jh/Xk/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.active_processrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X1active_process (simpy.core.Environment attribute)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hX attributerhjuh@NhAhh(]r(h)r}r(h-XEnvironment.active_processh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.active_processhjhuh@NhAhh(]rh)r}r(h-Xactive_processh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXactive_processrr}r(h-Uh.jubaubaubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X0The currently active process of the environment.rh.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPX0The currently active process of the environment.rr}r(h-jh.jubaubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X)process() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xprocess(generator)h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.processhjhuh@KhAhh(]r(h)r}r(h-Xprocessh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXprocessrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rj)r}r(h-X generatorh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX generatorrr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhb)r}r(h-XECreate a new :class:`~simpy.events.Process` instance for *generator*.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r (hPX Create a new r r }r (h-X Create a new h.jubhk)r }r(h-X:class:`~simpy.events.Process`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.ProcessU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.j h(]rhPXProcessrr}r(h-Uh.jubah4hTubaubhPX instance for rr}r(h-X instance for h.jubj)r}r (h-X *generator*h6}r!(h8]h9]h:]h;]h>]uh.jh(]r"hPX generatorr#r$}r%(h-Uh.jubah4jubhPX.r&}r'(h-X.h.jubeubaubeubhY)r(}r)(h-Uh.jh/h2h4h]h6}r*(h;]h:]h8]h9]h>]Uentries]r+(h`X)timeout() (simpy.core.Environment method)hUtr,auh@NhAhh(]ubh)r-}r.(h-Uh.jh/h2h4hh6}r/(hhXpyh;]h:]h8]h9]h>]hXmethodr0hj0uh@NhAhh(]r1(h)r2}r3(h-Xtimeout(delay, value=None)h.j-h/h2h4hh6}r4(h;]r5hahhxh:]h8]h9]h>]r6hahXEnvironment.timeouthjhuh@KhAhh(]r7(h)r8}r9(h-Xtimeouth.j2h/h2h4hh6}r:(h8]h9]h:]h;]h>]uh@KhAhh(]r;hPXtimeoutr<r=}r>(h-Uh.j8ubaubj)r?}r@(h-Uh.j2h/h2h4jh6}rA(h8]h9]h:]h;]h>]uh@KhAhh(]rB(j)rC}rD(h-Xdelayh6}rE(h8]h9]h:]h;]h>]uh.j?h(]rFhPXdelayrGrH}rI(h-Uh.jCubah4jubj)rJ}rK(h-X value=Noneh6}rL(h8]h9]h:]h;]h>]uh.j?h(]rMhPX value=NonerNrO}rP(h-Uh.jJubah4jubeubeubh)rQ}rR(h-Uh.j-h/h2h4hh6}rS(h8]h9]h:]h;]h>]uh@KhAhh(]rThb)rU}rV(h-X\Return a new :class:`~simpy.events.Timeout` event with a *delay* and, optionally, a *value*.h.jQh/h2h4heh6}rW(h8]h9]h:]h;]h>]uh@KhAhh(]rX(hPX Return a new rYrZ}r[(h-X Return a new h.jUubhk)r\}r](h-X:class:`~simpy.events.Timeout`r^h.jUh/h2h4hoh6}r_(UreftypeXclasshqhrXsimpy.events.TimeoutU refdomainXpyr`h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rahJ)rb}rc(h-j^h6}rd(h8]h9]re(h~j`Xpy-classrfeh:]h;]h>]uh.j\h(]rghPXTimeoutrhri}rj(h-Uh.jbubah4hTubaubhPX event with a rkrl}rm(h-X event with a h.jUubj)rn}ro(h-X*delay*h6}rp(h8]h9]h:]h;]h>]uh.jUh(]rqhPXdelayrrrs}rt(h-Uh.jnubah4jubhPX and, optionally, a rurv}rw(h-X and, optionally, a h.jUubj)rx}ry(h-X*value*h6}rz(h8]h9]h:]h;]h>]uh.jUh(]r{hPXvaluer|r}}r~(h-Uh.jxubah4jubhPX.r}r(h-X.h.jUubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X'event() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xevent()h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.eventhjhuh@KhAhh(]r(h)r}r(h-Xeventh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhPXeventrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]ubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]rhb)r}r(h-XReturn a new :class:`~simpy.events.Event` instance. Yielding this event suspends a process until another process triggers the event.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Return a new rr}r(h-X Return a new h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPX[ instance. Yielding this event suspends a process until another process triggers the event.rr}r(h-X[ instance. Yielding this event suspends a process until another process triggers the event.h.jubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X(all_of() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-Xall_of(events)h.jh/h2h4hh6}r(h;]rhahhxh:]h8]h9]h>]rhahXEnvironment.all_ofhjhuh@K!hAhh(]r(h)r}r(h-Xall_ofh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rhPXall_ofrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/h2h4jh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rj)r}r(h-Xeventsh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jh/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K!hAhh(]rhb)r}r(h-XKReturn a new :class:`~simpy.events.AllOf` condition for a list of *events*.h.jh/h2h4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Return a new rr}r(h-X Return a new h.jubhk)r}r(h-X:class:`~simpy.events.AllOf`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.AllOfU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K#h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXAllOfrr}r(h-Uh.jubah4hTubaubhPX condition for a list of rr}r(h-X condition for a list of h.jubj)r}r(h-X*events*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubhY)r}r(h-Uh.jh/h2h4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X(any_of() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/h2h4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r (h)r }r (h-Xany_of(events)h.jh/h2h4hh6}r (h;]r hahhxh:]h8]h9]h>]rhahXEnvironment.any_ofhjhuh@K&hAhh(]r(h)r}r(h-Xany_ofh.j h/h2h4hh6}r(h8]h9]h:]h;]h>]uh@K&hAhh(]rhPXany_ofrr}r(h-Uh.jubaubj)r}r(h-Uh.j h/h2h4jh6}r(h8]h9]h:]h;]h>]uh@K&hAhh(]rj)r}r(h-Xeventsh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventsrr }r!(h-Uh.jubah4jubaubeubh)r"}r#(h-Uh.jh/h2h4hh6}r$(h8]h9]h:]h;]h>]uh@K&hAhh(]r%hb)r&}r'(h-XKReturn a new :class:`~simpy.events.AnyOf` condition for a list of *events*.h.j"h/h2h4heh6}r((h8]h9]h:]h;]h>]uh@K$hAhh(]r)(hPX Return a new r*r+}r,(h-X Return a new h.j&ubhk)r-}r.(h-X:class:`~simpy.events.AnyOf`r/h.j&h/h2h4hoh6}r0(UreftypeXclasshqhrXsimpy.events.AnyOfU refdomainXpyr1h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K(h(]r2hJ)r3}r4(h-j/h6}r5(h8]h9]r6(h~j1Xpy-classr7eh:]h;]h>]uh.j-h(]r8hPXAnyOfr9r:}r;(h-Uh.j3ubah4hTubaubhPX condition for a list of r<r=}r>(h-X condition for a list of h.j&ubj)r?}r@(h-X*events*h6}rA(h8]h9]h:]h;]h>]uh.j&h(]rBhPXeventsrCrD}rE(h-Uh.j?ubah4jubhPX.rF}rG(h-X.h.j&ubeubaubeubhY)rH}rI(h-Uh.jh/Nh4h]h6}rJ(h;]h:]h8]h9]h>]Uentries]rK(h`X&exit() (simpy.core.Environment method)hUtrLauh@NhAhh(]ubh)rM}rN(h-Uh.jh/Nh4hh6}rO(hhXpyh;]h:]h8]h9]h>]hXmethodrPhjPuh@NhAhh(]rQ(h)rR}rS(h-XEnvironment.exit(value=None)h.jMh/hh4hh6}rT(h;]rUhahh0X simpy.corerVrW}rXbh:]h8]h9]h>]rYhahXEnvironment.exithjhuh@NhAhh(]rZ(h)r[}r\(h-Xexith.jRh/hh4hh6}r](h8]h9]h:]h;]h>]uh@NhAhh(]r^hPXexitr_r`}ra(h-Uh.j[ubaubj)rb}rc(h-Uh.jRh/hh4jh6}rd(h8]h9]h:]h;]h>]uh@NhAhh(]rej)rf}rg(h-X value=Noneh6}rh(h8]h9]h:]h;]h>]uh.jbh(]rihPX value=Nonerjrk}rl(h-Uh.jfubah4jubaubeubh)rm}rn(h-Uh.jMh/hh4hh6}ro(h8]h9]h:]h;]h>]uh@NhAhh(]rp(hb)rq}rr(h-X{Convenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a ``value``.h.jmh/Xa/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.exitrsh4heh6}rt(h8]h9]h:]h;]h>]uh@KhAhh(]ru(hPXqConvenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a rvrw}rx(h-XqConvenience function provided for Python versions prior to 3.3. Stop the current process, optionally providing a h.jqubhJ)ry}rz(h-X ``value``h6}r{(h8]h9]h:]h;]h>]uh.jqh(]r|hPXvaluer}r~}r(h-Uh.jyubah4hTubhPX.r}r(h-X.h.jqubeubcdocutils.nodes note r)r}r(h-X6From Python 3.3, you can use ``return value`` instead.rh.jmh/jsh4Unoterh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-jh.jh/jsh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPXFrom Python 3.3, you can use rr}r(h-XFrom Python 3.3, you can use h.jubhJ)r}r(h-X``return value``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX return valuerr}r(h-Uh.jubah4hTubhPX instead.rr}r(h-X instead.h.jubeubaubeubeubhY)r}r(h-Uh.jh/Xe/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.schedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X*schedule() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-X0Environment.schedule(event, priority=1, delay=0)h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.schedulehjhuh@NhAhh(]r(h)r}r(h-Xscheduleh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXschedulerr}r(h-Uh.jubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(j)r}r(h-Xeventh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4jubj)r}r(h-X priority=1h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX priority=1rr}r(h-Uh.jubah4jubj)r}r(h-Xdelay=0h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelay=0rr}r(h-Uh.jubah4jubeubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X:Schedule an *event* with a given *priority* and a *delay*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Schedule an rr}r(h-X Schedule an h.jubj)r}r(h-X*event*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXeventrr}r(h-Uh.jubah4jubhPX with a given rr}r(h-X with a given h.jubj)r}r(h-X *priority*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXpriorityrr}r(h-Uh.jubah4jubhPX and a rr}r(h-X and a h.jubj)r}r(h-X*delay*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXdelayrr}r(h-Uh.jubah4jubhPX.r}r(h-X.h.jubeubaubeubhY)r}r(h-Uh.jh/Xa/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.peekrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X&peek() (simpy.core.Environment method)hUtrauh@NhAhh(]ubh)r}r(h-Uh.jh/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXmethodrhjuh@NhAhh(]r(h)r}r(h-XEnvironment.peek()h.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.peekhjhuh@NhAhh(]r (h)r }r (h-Xpeekh.jh/hh4hh6}r (h8]h9]h:]h;]h>]uh@NhAhh(]r hPXpeekrr}r(h-Uh.j ubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-X_Get the time of the next scheduled event. Return :data:`Infinity` if there is no further event.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX1Get the time of the next scheduled event. Return rr}r(h-X1Get the time of the next scheduled event. Return h.jubhk)r}r (h-X:data:`Infinity`r!h.jh/h2h4hoh6}r"(UreftypeXdatahqhrXInfinityU refdomainXpyr#h;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]r$hJ)r%}r&(h-j!h6}r'(h8]h9]r((h~j#Xpy-datar)eh:]h;]h>]uh.jh(]r*hPXInfinityr+r,}r-(h-Uh.j%ubah4hTubaubhPX if there is no further event.r.r/}r0(h-X if there is no further event.h.jubeubaubeubhY)r1}r2(h-Uh.jh/Xa/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.stepr3h4h]h6}r4(h;]h:]h8]h9]h>]Uentries]r5(h`X&step() (simpy.core.Environment method)h Utr6auh@NhAhh(]ubh)r7}r8(h-Uh.jh/j3h4hh6}r9(hhXpyh;]h:]h8]h9]h>]hXmethodr:hj:uh@NhAhh(]r;(h)r<}r=(h-XEnvironment.step()h.j7h/hh4hh6}r>(h;]r?h ahh0X simpy.corer@rA}rBbh:]h8]h9]h>]rCh ahXEnvironment.stephjhuh@NhAhh(]rD(h)rE}rF(h-Xsteph.j<h/hh4hh6}rG(h8]h9]h:]h;]h>]uh@NhAhh(]rHhPXsteprIrJ}rK(h-Uh.jEubaubj)rL}rM(h-Uh.j<h/hh4jh6}rN(h8]h9]h:]h;]h>]uh@NhAhh(]ubeubh)rO}rP(h-Uh.j7h/hh4hh6}rQ(h8]h9]h:]h;]h>]uh@NhAhh(]rR(hb)rS}rT(h-XProcess the next event.rUh.jOh/j3h4heh6}rV(h8]h9]h:]h;]h>]uh@KhAhh(]rWhPXProcess the next event.rXrY}rZ(h-jUh.jSubaubhb)r[}r\(h-XARaise an :exc:`EmptySchedule` if no further events are available.h.jOh/j3h4heh6}r](h8]h9]h:]h;]h>]uh@KhAhh(]r^(hPX Raise an r_r`}ra(h-X Raise an h.j[ubhk)rb}rc(h-X:exc:`EmptySchedule`rdh.j[h/h2h4hoh6}re(UreftypeXexchqhrX EmptyScheduleU refdomainXpyrfh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rghJ)rh}ri(h-jdh6}rj(h8]h9]rk(h~jfXpy-excrleh:]h;]h>]uh.jbh(]rmhPX EmptySchedulernro}rp(h-Uh.jhubah4hTubaubhPX$ if no further events are available.rqrr}rs(h-X$ if no further events are available.h.j[ubeubeubeubhY)rt}ru(h-Uh.jh/Nh4h]h6}rv(h;]h:]h8]h9]h>]Uentries]rw(h`X%run() (simpy.core.Environment method)hUtrxauh@NhAhh(]ubh)ry}rz(h-Uh.jh/Nh4hh6}r{(hhXpyh;]h:]h8]h9]h>]hXmethodr|hj|uh@NhAhh(]r}(h)r~}r(h-XEnvironment.run(until=None)rh.jyh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXEnvironment.runhjhuh@NhAhh(]r(h)r}r(h-Xrunh.j~h/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXrunrr}r(h-Uh.jubaubj)r}r(h-Uh.j~h/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-X until=Noneh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX until=Nonerr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jyh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]r(hb)r}r(h-XAExecutes :meth:`step()` until the given criterion *until* is met.rh.jh/X`/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Environment.runrh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Executes rr}r(h-X Executes h.jubhk)r}r(h-X:meth:`step()`rh.jh/h2h4hoh6}r(UreftypeXmethhqhrXstepU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-methreh:]h;]h>]uh.jh(]rhPXstep()rr}r(h-Uh.jubah4hTubaubhPX until the given criterion rr}r(h-X until the given criterion h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr}r(h-Uh.jubah4jubhPX is met.rr}r(h-X is met.h.jubeubj)r}r(h-Uh.jh/jh4jh6}r(jX-h;]h:]h8]h9]h>]uh@KhAhh(]r(j)r}r(h-XqIf it is ``None`` (which is the default) this method will return if there are no further events to be processed. h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XpIf it is ``None`` (which is the default) this method will return if there are no further events to be processed.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is rr}r(h-X If it is h.jubhJ)r}r(h-X``None``h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXNonerr}r(h-Uh.jubah4hTubhPX_ (which is the default) this method will return if there are no further events to be processed.rr}r(h-X_ (which is the default) this method will return if there are no further events to be processed.h.jubeubaubj)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value. h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XIf it is an :class:`~simpy.events.Event` the method will continue stepping until this event has been triggered and will return its value.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@Kh(]r(hPX If it is an rr}r(h-X If it is an h.jubhk)r}r(h-X:class:`~simpy.events.Event`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrXsimpy.events.EventU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@K h(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPXEventrr}r(h-Uh.jubah4hTubaubhPXa the method will continue stepping until this event has been triggered and will return its value.rr}r(h-Xa the method will continue stepping until this event has been triggered and will return its value.h.jubeubaubj)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XrIf it can be converted to a number the method will continue stepping until the environment's time reaches *until*.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@K h(]r(hPXjIf it can be converted to a number the method will continue stepping until the environment's time reaches rr}r(h-XjIf it can be converted to a number the method will continue stepping until the environment's time reaches h.jubj)r}r(h-X*until*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXuntilrr }r (h-Uh.jubah4jubhPX.r }r (h-X.h.jubeubaubeubeubeubeubeubhY)r }r(h-Uh.h+h/Nh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X BoundClass (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/Nh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-XBoundClass(cls)rh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahX BoundClassr hUhuh@NhAhh(]r!(h)r"}r#(h-Xclass h.jh/hh4hh6}r$(h8]h9]h:]h;]h>]uh@NhAhh(]r%hPXclass r&r'}r((h-Uh.j"ubaubh)r)}r*(h-X simpy.core.h.jh/hh4hh6}r+(h8]h9]h:]h;]h>]uh@NhAhh(]r,hPX simpy.core.r-r.}r/(h-Uh.j)ubaubh)r0}r1(h-j h.jh/hh4hh6}r2(h8]h9]h:]h;]h>]uh@NhAhh(]r3hPX BoundClassr4r5}r6(h-Uh.j0ubaubj)r7}r8(h-Uh.jh/hh4jh6}r9(h8]h9]h:]h;]h>]uh@NhAhh(]r:j)r;}r<(h-Xclsh6}r=(h8]h9]h:]h;]h>]uh.j7h(]r>hPXclsr?r@}rA(h-Uh.j;ubah4jubaubeubh)rB}rC(h-Uh.jh/hh4hh6}rD(h8]h9]h:]h;]h>]uh@NhAhh(]rE(hb)rF}rG(h-X&Allows classes to behave like methods.rHh.jBh/X[/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BoundClassrIh4heh6}rJ(h8]h9]h:]h;]h>]uh@KhAhh(]rKhPX&Allows classes to behave like methods.rLrM}rN(h-jHh.jFubaubhb)rO}rP(h-XThe ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance.h.jBh/jIh4heh6}rQ(h8]h9]h:]h;]h>]uh@KhAhh(]rR(hPXThe rSrT}rU(h-XThe h.jOubhJ)rV}rW(h-X ``__get__()``h6}rX(h8]h9]h:]h;]h>]uh.jOh(]rYhPX __get__()rZr[}r\(h-Uh.jVubah4hTubhPX& descriptor is basically identical to r]r^}r_(h-X& descriptor is basically identical to h.jOubhJ)r`}ra(h-X``function.__get__()``h6}rb(h8]h9]h:]h;]h>]uh.jOh(]rchPXfunction.__get__()rdre}rf(h-Uh.j`ubah4hTubhPX% and binds the first argument of the rgrh}ri(h-X% and binds the first argument of the h.jOubhJ)rj}rk(h-X``cls``h6}rl(h8]h9]h:]h;]h>]uh.jOh(]rmhPXclsrnro}rp(h-Uh.jjubah4hTubhPX to the descriptor instance.rqrr}rs(h-X to the descriptor instance.h.jOubeubhY)rt}ru(h-Uh.jBh/Xf/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.BoundClass.bind_earlyrvh4h]h6}rw(h;]h:]h8]h9]h>]Uentries]rx(h`X2bind_early() (simpy.core.BoundClass static method)hUtryauh@NhAhh(]ubh)rz}r{(h-Uh.jBh/jvh4hh6}r|(hhXpyh;]h:]h8]h9]h>]hX staticmethodr}hj}uh@NhAhh(]r~(h)r}r(h-XBoundClass.bind_early(instance)rh.jzh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahXBoundClass.bind_earlyhj huh@NhAhh(]r(h)r}r(h-Ustatic rh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXstatic rr}r(h-Uh.jubaubh)r}r(h-X bind_earlyh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX bind_earlyrr}r(h-Uh.jubaubj)r}r(h-Uh.jh/hh4jh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rj)r}r(h-Xinstanceh6}r(h8]h9]h:]h;]h>]uh.jh(]rhPXinstancerr}r(h-Uh.jubah4jubaubeubh)r}r(h-Uh.jzh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XqBind all :class:`BoundClass` attributes of the *instance's* class to the instance itself to increase performance.h.jh/jvh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPX Bind all rr}r(h-X Bind all h.jubhk)r}r(h-X:class:`BoundClass`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrX BoundClassU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvj hwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classreh:]h;]h>]uh.jh(]rhPX BoundClassrr}r(h-Uh.jubah4hTubaubhPX attributes of the rr}r(h-X attributes of the h.jubj)r}r(h-X *instance's*h6}r(h8]h9]h:]h;]h>]uh.jh(]rhPX instance'srr}r(h-Uh.jubah4jubhPX6 class to the instance itself to increase performance.rr}r(h-X6 class to the instance itself to increase performance.h.jubeubaubeubeubeubhY)r}r(h-Uh.h+h/X^/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.EmptySchedulerh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`X#EmptySchedule (class in simpy.core)hUtrauh@NhAhh(]ubh)r}r(h-Uh.h+h/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXclassrhjuh@NhAhh(]r(h)r}r(h-X EmptySchedulerh.jh/hh4hh6}r(h;]rhahh0X simpy.corerr}rbh:]h8]h9]h>]rhahjhUhuh@NhAhh(]r(h)r}r(h-Xclass h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPXclass rr}r(h-Uh.jubaubh)r}r(h-X simpy.core.h.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX simpy.core.rr}r(h-Uh.jubaubh)r}r(h-jh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhPX EmptySchedulerr}r(h-Uh.jubaubeubh)r}r(h-Uh.jh/hh4hh6}r(h8]h9]h:]h;]h>]uh@NhAhh(]rhb)r}r(h-XRThrown by the :class:`Environment` if there are no further events to be processed.h.jh/jh4heh6}r(h8]h9]h:]h;]h>]uh@KhAhh(]r(hPXThrown by the rr}r(h-XThrown by the h.jubhk)r}r(h-X:class:`Environment`rh.jh/h2h4hoh6}r(UreftypeXclasshqhrX EnvironmentU refdomainXpyrh;]h:]U refexplicith8]h9]h>]hthuhvjhwhxuh@Kh(]rhJ)r}r(h-jh6}r(h8]h9]r(h~jXpy-classr eh:]h;]h>]uh.jh(]r hPX Environmentr r }r (h-Uh.jubah4hTubaubhPX0 if there are no further events to be processed.rr}r(h-X0 if there are no further events to be processed.h.jubeubaubeubhY)r}r(h-Uh.h+h/XY/var/build/user_builds/simpy/checkouts/3.0/simpy/core.py:docstring of simpy.core.Infinityrh4h]h6}r(h;]h:]h8]h9]h>]Uentries]r(h`XInfinity (in module simpy.core)h Utrauh@NhAhh(]ubh)r}r(h-Uh.h+h/jh4hh6}r(hhXpyh;]h:]h8]h9]h>]hXdatarhjuh@NhAhh(]r(h)r}r(h-XInfinityrh.jh/U rh4hh6}r (h;]r!h ahh0X simpy.corer"r#}r$bh:]h8]h9]h>]r%h ahjhUhuh@NhAhh(]r&(h)r'}r((h-X simpy.core.h.jh/jh4hh6}r)(h8]h9]h:]h;]h>]uh@NhAhh(]r*hPX simpy.core.r+r,}r-(h-Uh.j'ubaubh)r.}r/(h-jh.jh/jh4hh6}r0(h8]h9]h:]h;]h>]uh@NhAhh(]r1hPXInfinityr2r3}r4(h-Uh.j.ubaubh)r5}r6(h-X = infh.jh/jh4hh6}r7(h8]h9]h:]h;]h>]uh@NhAhh(]r8hPX = infr9r:}r;(h-Uh.j5ubaubeubh)r<}r=(h-Uh.jh/jh4hh6}r>(h8]h9]h:]h;]h>]uh@NhAhh(]r?hb)r@}rA(h-XConvenience alias for infinityrBh.j<h/jh4heh6}rC(h8]h9]h:]h;]h>]uh@KhAhh(]rDhPXConvenience alias for infinityrErF}rG(h-jBh.j@ubaubaubeubeubah-UU transformerrHNU footnote_refsrI}rJUrefnamesrK}rLUsymbol_footnotesrM]rNUautofootnote_refsrO]rPUsymbol_footnote_refsrQ]rRU citationsrS]rThAhU current_linerUNUtransform_messagesrV]rWUreporterrXNUid_startrYKU autofootnotesrZ]r[U citation_refsr\}r]Uindirect_targetsr^]r_Usettingsr`(cdocutils.frontend Values raorb}rc(Ufootnote_backlinksrdKUrecord_dependenciesreNU rfc_base_urlrfUhttp://tools.ietf.org/html/rgU tracebackrhUpep_referencesriNUstrip_commentsrjNU toc_backlinksrkUentryrlU language_codermUenrnU datestamproNU report_levelrpKU _destinationrqNU halt_levelrrKU strip_classesrsNhGNUerror_encoding_error_handlerrtUbackslashreplaceruUdebugrvNUembed_stylesheetrwUoutput_encoding_error_handlerrxUstrictryU sectnum_xformrzKUdump_transformsr{NU docinfo_xformr|KUwarning_streamr}NUpep_file_url_templater~Upep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUL/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.core.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjyUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhjh=cdocutils.nodes target r)r}r(h-Uh.h+h/h\h4Utargetrh6}r(h8]h;]rh=ah:]Uismodh9]h>]uh@KhAhh(]ubh jh hh j<h j0h jhj~hjhjhjhjRhjhjVhj}hj hjYhj2hjhjhjh'h+hjuUsubstitution_namesr}rh4hAh6}r(h8]h;]h:]Usourceh2h9]h>]uU footnotesr]rUrefidsr}rub.PK{ED}::>simpy-3.0/.doctrees/api_reference/simpy.resources.base.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X+simpy.resources.base.BaseResource.get_queueqX%simpy.resources.base.BaseResource.putqX.simpy.resources.base.BaseResource._trigger_getqXsimpy.resources.base.Get.cancelq X*simpy.resources.base.BaseResource.GetQueueq X.simpy.resources.base.BaseResource._trigger_putq Xsimpy.resources.base.Put.cancelq X)simpy.resources.base.BaseResource._do_getq X+simpy.resources.base.BaseResource.put_queueqX)simpy.resources.base.BaseResource._do_putqXsimpy.resources.base.PutqX%simpy.resources.base.BaseResource.getqX!simpy.resources.base.BaseResourceqX7simpy.resources.base --- base classes for all resourcesqNXsimpy.resources.base.GetqX*simpy.resources.base.BaseResource.PutQueuequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhhhhhhhhhU3simpy-resources-base-base-classes-for-all-resourcesqhhhhuUchildrenq ]q!cdocutils.nodes section q")q#}q$(U rawsourceq%UUparentq&hUsourceq'cdocutils.nodes reprunicode q(XV/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.base.rstq)q*}q+bUtagnameq,Usectionq-U attributesq.}q/(Udupnamesq0]Uclassesq1]Ubackrefsq2]Uidsq3]q4(Xmodule-simpy.resources.baseq5heUnamesq6]q7hauUlineq8KUdocumentq9hh ]q:(cdocutils.nodes title q;)q<}q=(h%X;``simpy.resources.base`` --- Base classes for all resourcesq>h&h#h'h*h,Utitleq?h.}q@(h0]h1]h2]h3]h6]uh8Kh9hh ]qA(cdocutils.nodes literal qB)qC}qD(h%X``simpy.resources.base``qEh.}qF(h0]h1]h2]h3]h6]uh&hqTh,UindexqUh.}qV(h3]h2]h0]h1]h6]Uentries]qW(UsingleqXXsimpy.resources.base (module)Xmodule-simpy.resources.baseUtqYauh8Kh9hh ]ubcdocutils.nodes paragraph qZ)q[}q\(h%XBThis module contains the base classes for Simpy's resource system.q]h&h#h'Xd/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.baseq^h,U paragraphq_h.}q`(h0]h1]h2]h3]h6]uh8Kh9hh ]qahHXBThis module contains the base classes for Simpy's resource system.qbqc}qd(h%h]h&h[ubaubhZ)qe}qf(h%X:class:`BaseResource` defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. :class:`Put` and :class:`Get` are the base event types for this.h&h#h'h^h,h_h.}qg(h0]h1]h2]h3]h6]uh8Kh9hh ]qh(csphinx.addnodes pending_xref qi)qj}qk(h%X:class:`BaseResource`qlh&heh'h*h,U pending_xrefqmh.}qn(UreftypeXclassUrefwarnqoU reftargetqpX BaseResourceU refdomainXpyqqh3]h2]U refexplicith0]h1]h6]UrefdocqrX"api_reference/simpy.resources.baseqsUpy:classqtNU py:modulequXsimpy.resources.baseqvuh8Kh ]qwhB)qx}qy(h%hlh.}qz(h0]h1]q{(Uxrefq|hqXpy-classq}eh2]h3]h6]uh&hjh ]q~hHX BaseResourceqq}q(h%Uh&hxubah,hLubaubhHX defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. qq}q(h%X defines the abstract base resource. The request for putting something into or getting something out of a resource is modeled as an event that has to be yielded by the requesting process. h&heubhi)q}q(h%X :class:`Put`qh&heh'h*h,hmh.}q(UreftypeXclasshohpXPutU refdomainXpyqh3]h2]U refexplicith0]h1]h6]hrhshtNhuhvuh8Kh ]qhB)q}q(h%hh.}q(h0]h1]q(h|hXpy-classqeh2]h3]h6]uh&hh ]qhHXPutqq}q(h%Uh&hubah,hLubaubhHX and qq}q(h%X and h&heubhi)q}q(h%X :class:`Get`qh&heh'h*h,hmh.}q(UreftypeXclasshohpXGetU refdomainXpyqh3]h2]U refexplicith0]h1]h6]hrhshtNhuhvuh8Kh ]qhB)q}q(h%hh.}q(h0]h1]q(h|hXpy-classqeh2]h3]h6]uh&hh ]qhHXGetqq}q(h%Uh&hubah,hLubaubhHX# are the base event types for this.qq}q(h%X# are the base event types for this.h&heubeubhQ)q}q(h%Uh&h#h'Nh,hUh.}q(h3]h2]h0]h1]h6]Uentries]q(hXX,BaseResource (class in simpy.resources.base)hUtqauh8Nh9hh ]ubcsphinx.addnodes desc q)q}q(h%Uh&h#h'Nh,Udescqh.}q(UnoindexqUdomainqXpyh3]h2]h0]h1]h6]UobjtypeqXclassqUdesctypeqhuh8Nh9hh ]q(csphinx.addnodes desc_signature q)q}q(h%XBaseResource(env)h&hh'U qh,Udesc_signatureqh.}q(h3]qhaUmoduleqh(Xsimpy.resources.baseqq}qbh2]h0]h1]h6]qhaUfullnameqX BaseResourceqUclassqUUfirstqȉuh8Nh9hh ]q(csphinx.addnodes desc_annotation q)q}q(h%Xclass h&hh'hh,Udesc_annotationqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHXclass qЅq}q(h%Uh&hubaubcsphinx.addnodes desc_addname q)q}q(h%Xsimpy.resources.base.h&hh'hh,U desc_addnameqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHXsimpy.resources.base.qمq}q(h%Uh&hubaubcsphinx.addnodes desc_name q)q}q(h%hh&hh'hh,U desc_nameqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qhHX BaseResourceq⅁q}q(h%Uh&hubaubcsphinx.addnodes desc_parameterlist q)q}q(h%Uh&hh'hh,Udesc_parameterlistqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]qcsphinx.addnodes desc_parameter q)q}q(h%Xenvh.}q(h0]h1]h2]h3]h6]uh&hh ]qhHXenvqq}q(h%Uh&hubah,Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h%Uh&hh'hh,U desc_contentqh.}q(h0]h1]h2]h3]h6]uh8Nh9hh ]q(hZ)q}q(h%X8This is the abstract base class for all SimPy resources.qh&hh'Xq/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResourceqh,h_h.}q(h0]h1]h2]h3]h6]uh8Kh9hh ]qhHX8This is the abstract base class for all SimPy resources.rr}r(h%hh&hubaubhZ)r}r(h%XMAll resources are bound to a specific :class:`~simpy.core.Environment` *env*.h&hh'hh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX&All resources are bound to a specific rr}r (h%X&All resources are bound to a specific h&jubhi)r }r (h%X :class:`~simpy.core.Environment`r h&jh'h*h,hmh.}r (UreftypeXclasshohpXsimpy.core.EnvironmentU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Kh ]rhB)r}r(h%j h.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&j h ]rhHX Environmentrr}r(h%Uh&jubah,hLubaubhHX r}r(h%X h&jubcdocutils.nodes emphasis r)r}r(h%X*env*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXenvr r!}r"(h%Uh&jubah,Uemphasisr#ubhHX.r$}r%(h%X.h&jubeubhZ)r&}r'(h%XYou can :meth:`put()` something into the resources or :meth:`get()` something out of it. Both methods return an event that the requesting process has to ``yield``.h&hh'hh,h_h.}r((h0]h1]h2]h3]h6]uh8Kh9hh ]r)(hHXYou can r*r+}r,(h%XYou can h&j&ubhi)r-}r.(h%X :meth:`put()`r/h&j&h'h*h,hmh.}r0(UreftypeXmethhohpXputU refdomainXpyr1h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8K h ]r2hB)r3}r4(h%j/h.}r5(h0]h1]r6(h|j1Xpy-methr7eh2]h3]h6]uh&j-h ]r8hHXput()r9r:}r;(h%Uh&j3ubah,hLubaubhHX! something into the resources or r<r=}r>(h%X! something into the resources or h&j&ubhi)r?}r@(h%X :meth:`get()`rAh&j&h'h*h,hmh.}rB(UreftypeXmethhohpXgetU refdomainXpyrCh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8K h ]rDhB)rE}rF(h%jAh.}rG(h0]h1]rH(h|jCXpy-methrIeh2]h3]h6]uh&j?h ]rJhHXget()rKrL}rM(h%Uh&jEubah,hLubaubhHXV something out of it. Both methods return an event that the requesting process has to rNrO}rP(h%XV something out of it. Both methods return an event that the requesting process has to h&j&ubhB)rQ}rR(h%X ``yield``h.}rS(h0]h1]h2]h3]h6]uh&j&h ]rThHXyieldrUrV}rW(h%Uh&jQubah,hLubhHX.rX}rY(h%X.h&j&ubeubhZ)rZ}r[(h%XIf a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.r\h&hh'hh,h_h.}r](h0]h1]h2]h3]h6]uh8K h9hh ]r^hHXIf a put or get operation can be performed immediately (because the resource is not full (put) or not empty (get)), that event is triggered immediately.r_r`}ra(h%j\h&jZubaubhZ)rb}rc(h%XIf a resources is too full or too empty to perform a put or get request, the event is pushed to the *put_queue* or *get_queue*. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.h&hh'hh,h_h.}rd(h0]h1]h2]h3]h6]uh8Kh9hh ]re(hHXdIf a resources is too full or too empty to perform a put or get request, the event is pushed to the rfrg}rh(h%XdIf a resources is too full or too empty to perform a put or get request, the event is pushed to the h&jbubj)ri}rj(h%X *put_queue*h.}rk(h0]h1]h2]h3]h6]uh&jbh ]rlhHX put_queuermrn}ro(h%Uh&jiubah,j#ubhHX or rprq}rr(h%X or h&jbubj)rs}rt(h%X *get_queue*h.}ru(h0]h1]h2]h3]h6]uh&jbh ]rvhHX get_queuerwrx}ry(h%Uh&jsubah,j#ubhHXo. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.rzr{}r|(h%Xo. An event is popped from one of these queues and triggered as soon as the corresponding operation is possible.h&jbubeubhZ)r}}r~(h%X:meth:`put()` and :meth:`get()` only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in :meth:`_do_put()` and :meth:`_do_get()`.h&hh'hh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hi)r}r(h%X :meth:`put()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpXputU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHXput()rr}r(h%Uh&jubah,hLubaubhHX and rr}r(h%X and h&j}ubhi)r}r(h%X :meth:`get()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpXgetU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHXget()rr}r(h%Uh&jubah,hLubaubhHX only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in rr}r(h%X only provide the user API and the general framework and should not be overridden in subclasses. The actual behavior for what happens when a put/get succeeds should rather be implemented in h&j}ubhi)r}r(h%X:meth:`_do_put()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpX_do_putU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHX _do_put()rr}r(h%Uh&jubah,hLubaubhHX and rr}r(h%X and h&j}ubhi)r}r(h%X:meth:`_do_get()`rh&j}h'Nh,hmh.}r(UreftypeXmethhohpX_do_getU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-methreh2]h3]h6]uh&jh ]rhHX _do_get()rr}r(h%Uh&jubah,hLubaubhHX.r}r(h%X.h&j}ubeubhQ)r}r(h%Uh&hh'Uh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX6PutQueue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'Uh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.PutQueueh&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.PutQueuehhhȉuh8Nh9hh ]rh)r}r(h%XPutQueueh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXPutQueuerr}r(h%Uh&jubaubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%XvThe type to be used for the :attr:`put_queue`. This can either be a plain :class:`list` (default) or a subclass of it.h&jh'Xz/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.PutQueuerh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXThe type to be used for the rr}r(h%XThe type to be used for the h&jubhi)r}r(h%X:attr:`put_queue`rh&jh'Nh,hmh.}r(UreftypeXattrhohpX put_queueU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-attrreh2]h3]h6]uh&jh ]rhHX put_queuerr}r(h%Uh&jubah,hLubaubhHX. This can either be a plain rr}r(h%X. This can either be a plain h&jubhi)r}r(h%X :class:`list`rh&jh'Nh,hmh.}r(UreftypeXclasshohpXlistU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%jh.}r(h0]h1]r (h|jXpy-classr eh2]h3]h6]uh&jh ]r hHXlistr r }r(h%Uh&jubah,hLubaubhHX (default) or a subclass of it.rr}r(h%X (default) or a subclass of it.h&jubeubhZ)r}r(h%Xalias of :class:`list`h&jh'Uh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX alias of rr}r(h%X alias of h&jubhi)r}r(h%X :class:`list`rh&jh'Nh,hmh.}r(UreftypeXclasshohpXlistU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r (h%jh.}r!(h0]h1]r"(h|jXpy-classr#eh2]h3]h6]uh&jh ]r$hHXlistr%r&}r'(h%Uh&jubah,hLubaubeubeubeubhQ)r(}r)(h%Uh&hh'Uh,hUh.}r*(h3]h2]h0]h1]h6]Uentries]r+(hXX6GetQueue (simpy.resources.base.BaseResource attribute)h Utr,auh8Nh9hh ]ubh)r-}r.(h%Uh&hh'Uh,hh.}r/(hhXpyh3]h2]h0]h1]h6]hX attributer0hj0uh8Nh9hh ]r1(h)r2}r3(h%XBaseResource.GetQueueh&j-h'hh,hh.}r4(h3]r5h ahh(Xsimpy.resources.baser6r7}r8bh2]h0]h1]h6]r9h ahXBaseResource.GetQueuehhhȉuh8Nh9hh ]r:h)r;}r<(h%XGetQueueh&j2h'hh,hh.}r=(h0]h1]h2]h3]h6]uh8Nh9hh ]r>hHXGetQueuer?r@}rA(h%Uh&j;ubaubaubh)rB}rC(h%Uh&j-h'hh,hh.}rD(h0]h1]h2]h3]h6]uh8Nh9hh ]rE(hZ)rF}rG(h%XvThe type to be used for the :attr:`get_queue`. This can either be a plain :class:`list` (default) or a subclass of it.h&jBh'Xz/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.GetQueuerHh,h_h.}rI(h0]h1]h2]h3]h6]uh8Kh9hh ]rJ(hHXThe type to be used for the rKrL}rM(h%XThe type to be used for the h&jFubhi)rN}rO(h%X:attr:`get_queue`rPh&jFh'Nh,hmh.}rQ(UreftypeXattrhohpX get_queueU refdomainXpyrRh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rShB)rT}rU(h%jPh.}rV(h0]h1]rW(h|jRXpy-attrrXeh2]h3]h6]uh&jNh ]rYhHX get_queuerZr[}r\(h%Uh&jTubah,hLubaubhHX. This can either be a plain r]r^}r_(h%X. This can either be a plain h&jFubhi)r`}ra(h%X :class:`list`rbh&jFh'Nh,hmh.}rc(UreftypeXclasshohpXlistU refdomainXpyrdh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rehB)rf}rg(h%jbh.}rh(h0]h1]ri(h|jdXpy-classrjeh2]h3]h6]uh&j`h ]rkhHXlistrlrm}rn(h%Uh&jfubah,hLubaubhHX (default) or a subclass of it.rorp}rq(h%X (default) or a subclass of it.h&jFubeubhZ)rr}rs(h%Xalias of :class:`list`h&jBh'Uh,h_h.}rt(h0]h1]h2]h3]h6]uh8Kh9hh ]ru(hHX alias of rvrw}rx(h%X alias of h&jrubhi)ry}rz(h%X :class:`list`r{h&jrh'Nh,hmh.}r|(UreftypeXclasshohpXlistU refdomainXpyr}h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r~hB)r}r(h%j{h.}r(h0]h1]r(h|j}Xpy-classreh2]h3]h6]uh&jyh ]rhHXlistrr}r(h%Uh&jubah,hLubaubeubeubeubhQ)r}r(h%Uh&hh'X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.put_queuerh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX7put_queue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.put_queueh&jh'U rh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.put_queuehhhȉuh8Nh9hh ]r(h)r}r(h%X put_queueh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX put_queuerr}r(h%Uh&jubaubh)r}r(h%X = Noneh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX = Nonerr}r(h%Uh&jubaubeubh)r}r(h%Uh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%XBQueue/list of events waiting to get something out of the resource.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHXBQueue/list of events waiting to get something out of the resource.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'X{/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.get_queuerh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX7get_queue (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.get_queueh&jh'jh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.get_queuehhhȉuh8Nh9hh ]r(h)r}r(h%X get_queueh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX get_queuerr}r(h%Uh&jubaubh)r}r(h%X = Noneh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX = Nonerr}r(h%Uh&jubaubeubh)r}r(h%Uh&jh'jh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%X@Queue/list of events waiting to put something into the resource.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX@Queue/list of events waiting to put something into the resource.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'Uh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX1put (simpy.resources.base.BaseResource attribute)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'Uh,hh.}r(hhXpyh3]h2]h0]h1]h6]hX attributerhjuh8Nh9hh ]r(h)r}r(h%XBaseResource.puth&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource.puthhhȉuh8Nh9hh ]rh)r}r(h%Xputh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXputrr}r(h%Uh&jubaubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X Create a new :class:`Put` event.h&jh'Xu/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.putrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX Create a new rr }r (h%X Create a new h&jubhi)r }r (h%X :class:`Put`r h&jh'Nh,hmh.}r(UreftypeXclasshohpXPutU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rhB)r}r(h%j h.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&j h ]rhHXPutrr}r(h%Uh&jubah,hLubaubhHX event.rr}r(h%X event.h&jubeubhZ)r}r(h%Xalias of :class:`Put`h&jh'Uh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r (hHX alias of r!r"}r#(h%X alias of h&jubhi)r$}r%(h%X :class:`Put`r&h&jh'Nh,hmh.}r'(UreftypeXclasshohpXPutU refdomainXpyr(h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r)hB)r*}r+(h%j&h.}r,(h0]h1]r-(h|j(Xpy-classr.eh2]h3]h6]uh&j$h ]r/hHXPutr0r1}r2(h%Uh&j*ubah,hLubaubeubeubeubhQ)r3}r4(h%Uh&hh'Uh,hUh.}r5(h3]h2]h0]h1]h6]Uentries]r6(hXX1get (simpy.resources.base.BaseResource attribute)hUtr7auh8Nh9hh ]ubh)r8}r9(h%Uh&hh'Uh,hh.}r:(hhXpyh3]h2]h0]h1]h6]hX attributer;hj;uh8Nh9hh ]r<(h)r=}r>(h%XBaseResource.geth&j8h'hh,hh.}r?(h3]r@hahh(Xsimpy.resources.baserArB}rCbh2]h0]h1]h6]rDhahXBaseResource.gethhhȉuh8Nh9hh ]rEh)rF}rG(h%Xgeth&j=h'hh,hh.}rH(h0]h1]h2]h3]h6]uh8Nh9hh ]rIhHXgetrJrK}rL(h%Uh&jFubaubaubh)rM}rN(h%Uh&j8h'hh,hh.}rO(h0]h1]h2]h3]h6]uh8Nh9hh ]rP(hZ)rQ}rR(h%X Create a new :class:`Get` event.h&jMh'Xu/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource.getrSh,h_h.}rT(h0]h1]h2]h3]h6]uh8Kh9hh ]rU(hHX Create a new rVrW}rX(h%X Create a new h&jQubhi)rY}rZ(h%X :class:`Get`r[h&jQh'Nh,hmh.}r\(UreftypeXclasshohpXGetU refdomainXpyr]h3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]r^hB)r_}r`(h%j[h.}ra(h0]h1]rb(h|j]Xpy-classrceh2]h3]h6]uh&jYh ]rdhHXGetrerf}rg(h%Uh&j_ubah,hLubaubhHX event.rhri}rj(h%X event.h&jQubeubhZ)rk}rl(h%Xalias of :class:`Get`h&jMh'Uh,h_h.}rm(h0]h1]h2]h3]h6]uh8Kh9hh ]rn(hHX alias of rorp}rq(h%X alias of h&jkubhi)rr}rs(h%X :class:`Get`rth&jkh'Nh,hmh.}ru(UreftypeXclasshohpXGetU refdomainXpyrvh3]h2]U refexplicith0]h1]h6]hrhshthhuhvuh8Nh ]rwhB)rx}ry(h%jth.}rz(h0]h1]r{(h|jvXpy-classr|eh2]h3]h6]uh&jrh ]r}hHXGetr~r}r(h%Uh&jxubah,hLubaubeubeubeubhQ)r}r(h%Uh&hh'Xy/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._do_putrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX4_do_put() (simpy.resources.base.BaseResource method)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%XBaseResource._do_put(event)h&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXBaseResource._do_puthhhȉuh8Nh9hh ]r(h)r}r(h%X_do_puth&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX_do_putrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xeventh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXeventrr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X%Actually perform the *put* operation.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXActually perform the rr}r(h%XActually perform the h&jubj)r}r(h%X*put*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXputrr}r(h%Uh&jubah,j#ubhHX operation.rr}r(h%X operation.h&jubeubhZ)r}r(h%XThis methods needs to be implemented by subclasses. It receives the *put_event* that is created at each request and doesn't need to return anything.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXDThis methods needs to be implemented by subclasses. It receives the rr}r(h%XDThis methods needs to be implemented by subclasses. It receives the h&jubj)r}r(h%X *put_event*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHX put_eventrr}r(h%Uh&jubah,j#ubhHXE that is created at each request and doesn't need to return anything.rr}r(h%XE that is created at each request and doesn't need to return anything.h&jubeubeubeubhQ)r}r(h%Uh&hh'X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._trigger_putrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX9_trigger_put() (simpy.resources.base.BaseResource method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X$BaseResource._trigger_put(get_event)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rh ahXBaseResource._trigger_puthhhȉuh8Nh9hh ]r(h)r}r(h%X _trigger_puth&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX _trigger_putrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%X get_eventh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHX get_eventrr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhZ)r}r(h%X?Trigger pending put events after a get event has been executed.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX?Trigger pending put events after a get event has been executed.rr}r(h%jh&jubaubaubeubhQ)r}r(h%Uh&hh'Xy/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._do_getrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX4_do_get() (simpy.resources.base.BaseResource method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&hh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r (h)r }r (h%XBaseResource._do_get(event)h&jh'hh,hh.}r (h3]r h ahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rh ahXBaseResource._do_gethhhȉuh8Nh9hh ]r(h)r}r(h%X_do_geth&j h'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHX_do_getrr}r(h%Uh&jubaubh)r}r(h%Uh&j h'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xeventh.}r (h0]h1]h2]h3]h6]uh&jh ]r!hHXeventr"r#}r$(h%Uh&jubah,hubaubeubh)r%}r&(h%Uh&jh'hh,hh.}r'(h0]h1]h2]h3]h6]uh8Nh9hh ]r((hZ)r)}r*(h%X%Actually perform the *get* operation.h&j%h'jh,h_h.}r+(h0]h1]h2]h3]h6]uh8Kh9hh ]r,(hHXActually perform the r-r.}r/(h%XActually perform the h&j)ubj)r0}r1(h%X*get*h.}r2(h0]h1]h2]h3]h6]uh&j)h ]r3hHXgetr4r5}r6(h%Uh&j0ubah,j#ubhHX operation.r7r8}r9(h%X operation.h&j)ubeubhZ)r:}r;(h%XThis methods needs to be implemented by subclasses. It receives the *get_event* that is created at each request and doesn't need to return anything.h&j%h'jh,h_h.}r<(h0]h1]h2]h3]h6]uh8Kh9hh ]r=(hHXDThis methods needs to be implemented by subclasses. It receives the r>r?}r@(h%XDThis methods needs to be implemented by subclasses. It receives the h&j:ubj)rA}rB(h%X *get_event*h.}rC(h0]h1]h2]h3]h6]uh&j:h ]rDhHX get_eventrErF}rG(h%Uh&jAubah,j#ubhHXE that is created at each request and doesn't need to return anything.rHrI}rJ(h%XE that is created at each request and doesn't need to return anything.h&j:ubeubeubeubhQ)rK}rL(h%Uh&hh'X~/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.BaseResource._trigger_getrMh,hUh.}rN(h3]h2]h0]h1]h6]Uentries]rO(hXX9_trigger_get() (simpy.resources.base.BaseResource method)hUtrPauh8Nh9hh ]ubh)rQ}rR(h%Uh&hh'jMh,hh.}rS(hhXpyh3]h2]h0]h1]h6]hXmethodrThjTuh8Nh9hh ]rU(h)rV}rW(h%X$BaseResource._trigger_get(put_event)h&jQh'hh,hh.}rX(h3]rYhahh(Xsimpy.resources.baserZr[}r\bh2]h0]h1]h6]r]hahXBaseResource._trigger_gethhhȉuh8Nh9hh ]r^(h)r_}r`(h%X _trigger_geth&jVh'hh,hh.}ra(h0]h1]h2]h3]h6]uh8Nh9hh ]rbhHX _trigger_getrcrd}re(h%Uh&j_ubaubh)rf}rg(h%Uh&jVh'hh,hh.}rh(h0]h1]h2]h3]h6]uh8Nh9hh ]rih)rj}rk(h%X put_eventh.}rl(h0]h1]h2]h3]h6]uh&jfh ]rmhHX put_eventrnro}rp(h%Uh&jjubah,hubaubeubh)rq}rr(h%Uh&jQh'hh,hh.}rs(h0]h1]h2]h3]h6]uh8Nh9hh ]rthZ)ru}rv(h%X?Trigger pending get events after a put event has been executed.rwh&jqh'jMh,h_h.}rx(h0]h1]h2]h3]h6]uh8Kh9hh ]ryhHX?Trigger pending get events after a put event has been executed.rzr{}r|(h%jwh&juubaubaubeubeubeubhQ)r}}r~(h%Uh&h#h'Nh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX#Put (class in simpy.resources.base)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&h#h'Nh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXclassrhjuh8Nh9hh ]r(h)r}r(h%X Put(resource)h&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXPutrhUhȉuh8Nh9hh ]r(h)r}r(h%Xclass h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXclass rr}r(h%Uh&jubaubh)r}r(h%Xsimpy.resources.base.h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXsimpy.resources.base.rr}r(h%Uh&jubaubh)r}r(h%jh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXPutrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xresourceh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X"The base class for all put events.rh&jh'Xh/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.Putrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX"The base class for all put events.rr}r(h%jh&jubaubhZ)r}r(h%X2It receives the *resource* that created the event.h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXIt receives the rr}r(h%XIt receives the h&jubj)r}r(h%X *resource*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,j#ubhHX that created the event.rr}r(h%X that created the event.h&jubeubhZ)r}r(h%XThis event (and all of its subclasses) can act as context manager and can be used with the :keyword:`with` statement to automatically cancel a put request if an exception or an :class:`simpy.events.Interrupt` occurs:h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX[This event (and all of its subclasses) can act as context manager and can be used with the rr}r(h%X[This event (and all of its subclasses) can act as context manager and can be used with the h&jubhi)r}r(h%X:keyword:`with`rh&jh'h*h,hmh.}r(UreftypeXkeywordhohpXwithU refdomainXstdrh3]h2]U refexplicith0]h1]h6]hrhsuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jX std-keywordreh2]h3]h6]uh&jh ]rhHXwithrr}r(h%Uh&jubah,hLubaubhHXG statement to automatically cancel a put request if an exception or an rr}r(h%XG statement to automatically cancel a put request if an exception or an h&jubhi)r}r(h%X:class:`simpy.events.Interrupt`rh&jh'h*h,hmh.}r(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&jh ]rhHXsimpy.events.Interruptrr}r(h%Uh&jubah,hLubaubhHX occurs:rr}r(h%X occurs:h&jubeubcdocutils.nodes literal_block r)r}r(h%X0with res.put(item) as request: yield requesth&jh'jh,U literal_blockrh.}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh3]h2]h0]h1]h6]uh8K h9hh ]rhHX0with res.put(item) as request: yield requestrr}r(h%Uh&jubaubhZ)r}r(h%XNIt is not used directly by any resource, but rather sub-classed for each type.r h&jh'jh,h_h.}r (h0]h1]h2]h3]h6]uh8Kh9hh ]r hHXNIt is not used directly by any resource, but rather sub-classed for each type.r r }r(h%j h&jubaubhQ)r}r(h%Uh&jh'Xo/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.Put.cancelrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX*cancel() (simpy.resources.base.Put method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&jh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X*Put.cancel(exc_type, exc_value, traceback)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}r bh2]h0]h1]h6]r!h ahX Put.cancelhjhȉuh8Nh9hh ]r"(h)r#}r$(h%Xcancelh&jh'hh,hh.}r%(h0]h1]h2]h3]h6]uh8Nh9hh ]r&hHXcancelr'r(}r)(h%Uh&j#ubaubh)r*}r+(h%Uh&jh'hh,hh.}r,(h0]h1]h2]h3]h6]uh8Nh9hh ]r-(h)r.}r/(h%Xexc_typeh.}r0(h0]h1]h2]h3]h6]uh&j*h ]r1hHXexc_typer2r3}r4(h%Uh&j.ubah,hubh)r5}r6(h%X exc_valueh.}r7(h0]h1]h2]h3]h6]uh&j*h ]r8hHX exc_valuer9r:}r;(h%Uh&j5ubah,hubh)r<}r=(h%X tracebackh.}r>(h0]h1]h2]h3]h6]uh&j*h ]r?hHX tracebackr@rA}rB(h%Uh&j<ubah,hubeubeubh)rC}rD(h%Uh&jh'hh,hh.}rE(h0]h1]h2]h3]h6]uh8Nh9hh ]rF(hZ)rG}rH(h%XCancel the current put request.rIh&jCh'jh,h_h.}rJ(h0]h1]h2]h3]h6]uh8Kh9hh ]rKhHXCancel the current put request.rLrM}rN(h%jIh&jGubaubhZ)rO}rP(h%XThis method has to be called if a process received an :class:`~simpy.events.Interrupt` or an exception while yielding this event and is not going to yield this event again.h&jCh'jh,h_h.}rQ(h0]h1]h2]h3]h6]uh8Kh9hh ]rR(hHX6This method has to be called if a process received an rSrT}rU(h%X6This method has to be called if a process received an h&jOubhi)rV}rW(h%X :class:`~simpy.events.Interrupt`rXh&jOh'Nh,hmh.}rY(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrZh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8Nh ]r[hB)r\}r](h%jXh.}r^(h0]h1]r_(h|jZXpy-classr`eh2]h3]h6]uh&jVh ]rahHX Interruptrbrc}rd(h%Uh&j\ubah,hLubaubhHXV or an exception while yielding this event and is not going to yield this event again.rerf}rg(h%XV or an exception while yielding this event and is not going to yield this event again.h&jOubeubhZ)rh}ri(h%X]If the event was created in a :keyword:`with` statement, this method is called automatically.h&jCh'jh,h_h.}rj(h0]h1]h2]h3]h6]uh8Kh9hh ]rk(hHXIf the event was created in a rlrm}rn(h%XIf the event was created in a h&jhubhi)ro}rp(h%X:keyword:`with`rqh&jhh'Nh,hmh.}rr(UreftypeXkeywordhohpXwithU refdomainXstdrsh3]h2]U refexplicith0]h1]h6]hrhsuh8Nh ]rthB)ru}rv(h%jqh.}rw(h0]h1]rx(h|jsX std-keywordryeh2]h3]h6]uh&joh ]rzhHXwithr{r|}r}(h%Uh&juubah,hLubaubhHX0 statement, this method is called automatically.r~r}r(h%X0 statement, this method is called automatically.h&jhubeubeubeubeubeubhQ)r}r(h%Uh&h#h'Nh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX#Get (class in simpy.resources.base)hUtrauh8Nh9hh ]ubh)r}r(h%Uh&h#h'Nh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXclassrhjuh8Nh9hh ]r(h)r}r(h%X Get(resource)rh&jh'hh,hh.}r(h3]rhahh(Xsimpy.resources.baserr}rbh2]h0]h1]h6]rhahXGetrhUhȉuh8Nh9hh ]r(h)r}r(h%Xclass h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXclass rr}r(h%Uh&jubaubh)r}r(h%Xsimpy.resources.base.h&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXsimpy.resources.base.rr}r(h%Uh&jubaubh)r}r(h%jh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rhHXGetrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]rh)r}r(h%Xresourceh.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hh,hh.}r(h0]h1]h2]h3]h6]uh8Nh9hh ]r(hZ)r}r(h%X"The base class for all get events.rh&jh'Xh/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.Getrh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]rhHX"The base class for all get events.rr}r(h%jh&jubaubhZ)r}r(h%X2It receives the *resource* that created the event.rh&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHXIt receives the rr}r(h%XIt receives the h&jubj)r}r(h%X *resource*h.}r(h0]h1]h2]h3]h6]uh&jh ]rhHXresourcerr}r(h%Uh&jubah,j#ubhHX that created the event.rr}r(h%X that created the event.h&jubeubhZ)r}r(h%XThis event (and all of its subclasses) can act as context manager and can be used with the :keyword:`with` statement to automatically cancel a get request if an exception or an :class:`simpy.events.Interrupt` occurs:h&jh'jh,h_h.}r(h0]h1]h2]h3]h6]uh8Kh9hh ]r(hHX[This event (and all of its subclasses) can act as context manager and can be used with the rr}r(h%X[This event (and all of its subclasses) can act as context manager and can be used with the h&jubhi)r}r(h%X:keyword:`with`rh&jh'h*h,hmh.}r(UreftypeXkeywordhohpXwithU refdomainXstdrh3]h2]U refexplicith0]h1]h6]hrhsuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jX std-keywordreh2]h3]h6]uh&jh ]rhHXwithrr}r(h%Uh&jubah,hLubaubhHXG statement to automatically cancel a get request if an exception or an rr}r(h%XG statement to automatically cancel a get request if an exception or an h&jubhi)r}r(h%X:class:`simpy.events.Interrupt`rh&jh'h*h,hmh.}r(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8K h ]rhB)r}r(h%jh.}r(h0]h1]r(h|jXpy-classreh2]h3]h6]uh&jh ]rhHXsimpy.events.Interruptrr}r(h%Uh&jubah,hLubaubhHX occurs:rr}r(h%X occurs:h&jubeubj)r}r(h%X,with res.get() as request: yield requesth&jh'jh,jh.}r(jjXpythonjjh3]h2]h0]h1]h6]uh8K h9hh ]rhHX,with res.get() as request: yield requestrr}r(h%Uh&jubaubhZ)r}r(h%XNIt is not used directly by any resource, but rather sub-classed for each type.r h&jh'jh,h_h.}r (h0]h1]h2]h3]h6]uh8Kh9hh ]r hHXNIt is not used directly by any resource, but rather sub-classed for each type.r r }r(h%j h&jubaubhQ)r}r(h%Uh&jh'Xo/var/build/user_builds/simpy/checkouts/3.0/simpy/resources/base.py:docstring of simpy.resources.base.Get.cancelrh,hUh.}r(h3]h2]h0]h1]h6]Uentries]r(hXX*cancel() (simpy.resources.base.Get method)h Utrauh8Nh9hh ]ubh)r}r(h%Uh&jh'jh,hh.}r(hhXpyh3]h2]h0]h1]h6]hXmethodrhjuh8Nh9hh ]r(h)r}r(h%X*Get.cancel(exc_type, exc_value, traceback)h&jh'hh,hh.}r(h3]rh ahh(Xsimpy.resources.baserr}r bh2]h0]h1]h6]r!h ahX Get.cancelhjhȉuh8Nh9hh ]r"(h)r#}r$(h%Xcancelh&jh'hh,hh.}r%(h0]h1]h2]h3]h6]uh8Nh9hh ]r&hHXcancelr'r(}r)(h%Uh&j#ubaubh)r*}r+(h%Uh&jh'hh,hh.}r,(h0]h1]h2]h3]h6]uh8Nh9hh ]r-(h)r.}r/(h%Xexc_typeh.}r0(h0]h1]h2]h3]h6]uh&j*h ]r1hHXexc_typer2r3}r4(h%Uh&j.ubah,hubh)r5}r6(h%X exc_valueh.}r7(h0]h1]h2]h3]h6]uh&j*h ]r8hHX exc_valuer9r:}r;(h%Uh&j5ubah,hubh)r<}r=(h%X tracebackh.}r>(h0]h1]h2]h3]h6]uh&j*h ]r?hHX tracebackr@rA}rB(h%Uh&j<ubah,hubeubeubh)rC}rD(h%Uh&jh'hh,hh.}rE(h0]h1]h2]h3]h6]uh8Nh9hh ]rF(hZ)rG}rH(h%XCancel the current get request.rIh&jCh'jh,h_h.}rJ(h0]h1]h2]h3]h6]uh8Kh9hh ]rKhHXCancel the current get request.rLrM}rN(h%jIh&jGubaubhZ)rO}rP(h%XThis method has to be called if a process received an :class:`~simpy.events.Interrupt` or an exception while yielding this event and is not going to yield this event again.h&jCh'jh,h_h.}rQ(h0]h1]h2]h3]h6]uh8Kh9hh ]rR(hHX6This method has to be called if a process received an rSrT}rU(h%X6This method has to be called if a process received an h&jOubhi)rV}rW(h%X :class:`~simpy.events.Interrupt`rXh&jOh'Nh,hmh.}rY(UreftypeXclasshohpXsimpy.events.InterruptU refdomainXpyrZh3]h2]U refexplicith0]h1]h6]hrhshtjhuhvuh8Nh ]r[hB)r\}r](h%jXh.}r^(h0]h1]r_(h|jZXpy-classr`eh2]h3]h6]uh&jVh ]rahHX Interruptrbrc}rd(h%Uh&j\ubah,hLubaubhHXV or an exception while yielding this event and is not going to yield this event again.rerf}rg(h%XV or an exception while yielding this event and is not going to yield this event again.h&jOubeubhZ)rh}ri(h%X]If the event was created in a :keyword:`with` statement, this method is called automatically.h&jCh'jh,h_h.}rj(h0]h1]h2]h3]h6]uh8Kh9hh ]rk(hHXIf the event was created in a rlrm}rn(h%XIf the event was created in a h&jhubhi)ro}rp(h%X:keyword:`with`rqh&jhh'Nh,hmh.}rr(UreftypeXkeywordhohpXwithU refdomainXstdrsh3]h2]U refexplicith0]h1]h6]hrhsuh8Nh ]rthB)ru}rv(h%jqh.}rw(h0]h1]rx(h|jsX std-keywordryeh2]h3]h6]uh&joh ]rzhHXwithr{r|}r}(h%Uh&juubah,hLubaubhHX0 statement, this method is called automatically.r~r}r(h%X0 statement, this method is called automatically.h&jhubeubeubeubeubeubeubah%UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh9hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh?NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUV/var/build/user_builds/simpy/checkouts/3.0/docs/api_reference/simpy.resources.base.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh#h5cdocutils.nodes target r)r}r(h%Uh&h#h'hTh,Utargetrh.}r(h0]h3]rh5ah2]Uismodh1]h6]uh8Kh9hh ]ubhjhjhjVh jh j2h jh jh j hjhjhjhj=hhhjhjuUsubstitution_namesr}rh,h9h.}r(h0]h3]h2]Usourceh*h1]h6]uU footnotesr]rUrefidsr}rub.PK{En:jj1simpy-3.0/.doctrees/about/release_process.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XwheelqXrelease processqNXbuild and releaseqNXpypiq Xtickets for the next versionq X post releaseq NX wikipediaq X preparationsq NX python wikiquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUwheelqhUrelease-processqhUbuild-and-releaseqh Upypiqh Utickets-for-the-next-versionqh U post-releaseqh U wikipediaqh U preparationsqhU python-wikiq uUchildrenq!]q"cdocutils.nodes section q#)q$}q%(U rawsourceq&UUparentq'hUsourceq(cdocutils.nodes reprunicode q)XI/var/build/user_builds/simpy/checkouts/3.0/docs/about/release_process.rstq*q+}q,bUtagnameq-Usectionq.U attributesq/}q0(Udupnamesq1]Uclassesq2]Ubackrefsq3]Uidsq4]q5haUnamesq6]q7hauUlineq8KUdocumentq9hh!]q:(cdocutils.nodes title q;)q<}q=(h&XRelease Processq>h'h$h(h+h-Utitleq?h/}q@(h1]h2]h3]h4]h6]uh8Kh9hh!]qAcdocutils.nodes Text qBXRelease ProcessqCqD}qE(h&h>h'h`_. h'h_h(h+h-U list_itemqkh/}ql(h1]h2]h3]h4]h6]uh8Nh9hh!]qmhF)qn}qo(h&XlClose all `tickets for the next version `_.h'hih(h+h-hJh/}qp(h1]h2]h3]h4]h6]uh8K h!]qq(hBX Close all qrqs}qt(h&X Close all h'hnubcdocutils.nodes reference qu)qv}qw(h&Xa`tickets for the next version `_h/}qx(UnameXtickets for the next versionUrefuriqyX?https://bitbucket.org/simpy/simpy/issues?status=new&status=openqzh4]h3]h1]h2]h6]uh'hnh!]q{hBXtickets for the next versionq|q}}q~(h&Uh'hvubah-U referencequbcdocutils.nodes target q)q}q(h&XB U referencedqKh'hnh-Utargetqh/}q(Urefurihzh4]qhah3]h1]h2]h6]qh auh!]ubhBX.q}q(h&X.h'hnubeubaubhh)q}q(h&XUpdate the *minium* required versions of dependencies in :file:`setup.py`. Update the *exact* version of all entries in :file:`requirements.txt`. h'h_h(h+h-hkh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhF)q}q(h&XUpdate the *minium* required versions of dependencies in :file:`setup.py`. Update the *exact* version of all entries in :file:`requirements.txt`.h'hh(h+h-hJh/}q(h1]h2]h3]h4]h6]uh8Kh!]q(hBX Update the qq}q(h&X Update the h'hubcdocutils.nodes emphasis q)q}q(h&X*minium*h/}q(h1]h2]h3]h4]h6]uh'hh!]qhBXminiumqq}q(h&Uh'hubah-UemphasisqubhBX& required versions of dependencies in qq}q(h&X& required versions of dependencies in h'hubcdocutils.nodes literal q)q}q(h&Uh/}q(h4]h3]h1]h2]qXfileqaUrolehh6]uh'hh!]qhBXsetup.pyqq}q(h&Xsetup.pyh'hubah-UliteralqubhBX . Update the qq}q(h&X . Update the h'hubh)q}q(h&X*exact*h/}q(h1]h2]h3]h4]h6]uh'hh!]qhBXexactqq}q(h&Uh'hubah-hubhBX version of all entries in qq}q(h&X version of all entries in h'hubh)q}q(h&Uh/}q(h4]h3]h1]h2]qXfileqaUrolehh6]uh'hh!]qhBXrequirements.txtqq}q(h&Xrequirements.txth'hubah-hubhBX.q}q(h&X.h'hubeubaubhh)q}q(h&XRun :command:`tox` from the project root. All tests for all supported versions must pass: .. code-block:: bash $ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :) .. note:: Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it! h'h_h(Nh-hkh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]q(hF)q}q(h&XYRun :command:`tox` from the project root. All tests for all supported versions must pass:h'hh(h+h-hJh/}q(h1]h2]h3]h4]h6]uh8Kh!]q(hBXRun q̅q}q(h&XRun h'hubcdocutils.nodes strong q)q}q(h&X:command:`tox`h/}q(h1]h2]qUcommandqah3]h4]h6]uh'hh!]qhBXtoxqօq}q(h&Uh'hubah-UstrongqubhBXG from the project root. All tests for all supported versions must pass:qڅq}q(h&XG from the project root. All tests for all supported versions must pass:h'hubeubcdocutils.nodes literal_block q)q}q(h&X$ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :)h'hh(h+h-U literal_blockqh/}q(UlinenosqUlanguageqXbashU xml:spaceqUpreserveqh4]h3]h1]h2]h6]uh8Kh!]qhBX$ tox [...] ________ summary ________ py27: commands succeeded py32: commands succeeded py33: commands succeeded pypy: commands succeeded congratulations :)q煁q}q(h&Uh'hubaubcdocutils.nodes note q)q}q(h&X]Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it!h/}q(h1]h2]h3]h4]h6]uh'hh!]qhF)q}q(h&X]Tox will use the :file:`requirements.txt` to setup the venvs, so make sure you've updated it!h'hh(h+h-hJh/}q(h1]h2]h3]h4]h6]uh8K"h!]q(hBXTox will use the qq}q(h&XTox will use the h'hubh)q}q(h&Uh/}q(h4]h3]h1]h2]qXfileqaUrolehh6]uh'hh!]qhBXrequirements.txtqq}q(h&Xrequirements.txth'hubah-hubhBX4 to setup the venvs, so make sure you've updated it!qr}r(h&X4 to setup the venvs, so make sure you've updated it!h'hubeubah-Unoterubeubhh)r}r(h&XBuild the docs (HTML is enough). Make sure there are no errors and undefined references. .. code-block:: bash $ cd docs/ $ make clean html $ cd .. h'h_h(Nh-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(hF)r}r(h&XXBuild the docs (HTML is enough). Make sure there are no errors and undefined references.r h'jh(h+h-hJh/}r (h1]h2]h3]h4]h6]uh8K%h!]r hBXXBuild the docs (HTML is enough). Make sure there are no errors and undefined references.r r }r(h&j h'jubaubh)r}r(h&X$$ cd docs/ $ make clean html $ cd ..h'jh(h+h-hh/}r(hhXbashhhh4]h3]h1]h2]h6]uh8K(h!]rhBX$$ cd docs/ $ make clean html $ cd ..rr}r(h&Uh'jubaubeubhh)r}r(h&X8Check if all authors are listed in :file:`AUTHORS.txt`. h'h_h(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&X7Check if all authors are listed in :file:`AUTHORS.txt`.h'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8K.h!]r(hBX#Check if all authors are listed in rr}r (h&X#Check if all authors are listed in h'jubh)r!}r"(h&Uh/}r#(h4]h3]h1]h2]r$Xfiler%aUrolej%h6]uh'jh!]r&hBX AUTHORS.txtr'r(}r)(h&X AUTHORS.txth'j!ubah-hubhBX.r*}r+(h&X.h'jubeubaubhh)r,}r-(h&XUpdate the change logs (:file:`CHANGES.txt` and :file:`docs/about/history.rst`). Only keep changes for the current major release in :file:`CHANGES.txt` and reference the history page from there. h'h_h(h+h-hkh/}r.(h1]h2]h3]h4]h6]uh8Nh9hh!]r/hF)r0}r1(h&XUpdate the change logs (:file:`CHANGES.txt` and :file:`docs/about/history.rst`). Only keep changes for the current major release in :file:`CHANGES.txt` and reference the history page from there.h'j,h(h+h-hJh/}r2(h1]h2]h3]h4]h6]uh8K0h!]r3(hBXUpdate the change logs (r4r5}r6(h&XUpdate the change logs (h'j0ubh)r7}r8(h&Uh/}r9(h4]h3]h1]h2]r:Xfiler;aUrolej;h6]uh'j0h!]r<hBX CHANGES.txtr=r>}r?(h&X CHANGES.txth'j7ubah-hubhBX and r@rA}rB(h&X and h'j0ubh)rC}rD(h&Uh/}rE(h4]h3]h1]h2]rFXfilerGaUrolejGh6]uh'j0h!]rHhBXdocs/about/history.rstrIrJ}rK(h&Xdocs/about/history.rsth'jCubah-hubhBX6). Only keep changes for the current major release in rLrM}rN(h&X6). Only keep changes for the current major release in h'j0ubh)rO}rP(h&Uh/}rQ(h4]h3]h1]h2]rRXfilerSaUrolejSh6]uh'j0h!]rThBX CHANGES.txtrUrV}rW(h&X CHANGES.txth'jOubah-hubhBX+ and reference the history page from there.rXrY}rZ(h&X+ and reference the history page from there.h'j0ubeubaubhh)r[}r\(h&XfCommit all changes: .. code-block:: bash $ hg ci -m 'Updated change log for the upcoming release.' h'h_h(Nh-hkh/}r](h1]h2]h3]h4]h6]uh8Nh9hh!]r^(hF)r_}r`(h&XCommit all changes:rah'j[h(h+h-hJh/}rb(h1]h2]h3]h4]h6]uh8K4h!]rchBXCommit all changes:rdre}rf(h&jah'j_ubaubh)rg}rh(h&X9$ hg ci -m 'Updated change log for the upcoming release.'h'j[h(h+h-hh/}ri(hhXbashhhh4]h3]h1]h2]h6]uh8K6h!]rjhBX9$ hg ci -m 'Updated change log for the upcoming release.'rkrl}rm(h&Uh'jgubaubeubhh)rn}ro(h&XWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it. h'h_h(h+h-hkh/}rp(h1]h2]h3]h4]h6]uh8Nh9hh!]rqhF)rr}rs(h&XWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.rth'jnh(h+h-hJh/}ru(h1]h2]h3]h4]h6]uh8K:h!]rvhBXWrite a draft for the announcement mail with a list of changes, acknowledgements and installation instructions. Everyone in the team should agree with it.rwrx}ry(h&jth'jrubaubaubeubeubh#)rz}r{(h&Uh'h$h(h+h-h.h/}r|(h1]h2]h3]h4]r}hah6]r~hauh8K@h9hh!]r(h;)r}r(h&XBuild and releaserh'jzh(h+h-h?h/}r(h1]h2]h3]h4]h6]uh8K@h9hh!]rhBXBuild and releaserr}r(h&jh'jubaubh^)r}r(h&Uh'jzh(h+h-hah/}r(hcU.h4]h3]h1]hdUh2]h6]hehfuh8KBh9hh!]r(hh)r}r(h&X.Test the release process. Build a source distribution and a `wheel `_ package and test them: .. code-block:: bash $ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gz Try installing them: .. code-block:: bash $ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIP and .. code-block:: bash $ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIP h'jh(Nh-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(hF)r}r(h&XTest the release process. Build a source distribution and a `wheel `_ package and test them:h'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8KBh!]r(hBX<Test the release process. Build a source distribution and a rr}r(h&X<Test the release process. Build a source distribution and a h'jubhu)r}r(h&X-`wheel `_h/}r(UnamehhyX"https://pypi.python.org/pypi/wheelrh4]h3]h1]h2]h6]uh'jh!]rhBXwheelrr}r(h&Uh'jubah-hubh)r}r(h&X% hKh'jh-hh/}r(Urefurijh4]rhah3]h1]h2]h6]rhauh!]ubhBX package and test them:rr}r(h&X package and test them:h'jubeubh)r}r(h&Xt$ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gzh'jh(h+h-hh/}r(hhXbashhhh4]h3]h1]h2]h6]uh8KEh!]rhBXt$ python setup.py sdist $ python setup.py bdist_wheel $ ls dist/ simpy-a.b.c-py2.py3-none-any.whl simpy-a.b.c.tar.gzrr}r(h&Uh'jubaubhF)r}r(h&XTry installing them:rh'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8KLh!]rhBXTry installing them:rr}r(h&jh'jubaubh)r}r(h&XQ$ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPh'jh(h+h-hh/}r(hhXbashhhh4]h3]h1]h2]h6]uh8KNh!]rhBXQ$ rm -rf /tmp/simpy-sdist # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-sdist $ /tmp/simpy-sdist/bin/pip install pytest $ /tmp/simpy-sdist/bin/pip install --no-index dist/simpy-a.b.c.tar.gz $ /tmp/simpy-sdist/bin/python >>> import simpy >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPrr}r(h&Uh'jubaubhF)r}r(h&Xandrh'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8KZh!]rhBXandrr}r(h&jh'jubaubh)r}r(h&Xo$ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPh'jh(h+h-hh/}r(hhXbashhhh4]h3]h1]h2]h6]uh8K\h!]rhBXo$ rm -rf /tmp/simpy-wheel # ensure clean state if ran repeatedly $ virtualenv /tmp/simpy-wheel $ /tmp/simpy-wheel/bin/pip install pytest $ /tmp/simpy-wheel/bin/pip install --use-wheel --no-index --find-links dist simpy $ /tmp/simpy-wheel/bin/python >>> import simpy # doctest: +SKIP >>> simpy.__version__ # doctest: +SKIP 'a.b.c' >>> simpy.test() # doctest: +SKIPrr}r(h&Uh'jubaubeubhh)r}r(h&X-Create or check your accounts for the `test server ` and `PyPI `_. Update your :file:`~/.pypirc` with your current credentials: .. code-block:: ini [distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = h'jh(Nh-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(hF)r}r(h&XCreate or check your accounts for the `test server ` and `PyPI `_. Update your :file:`~/.pypirc` with your current credentials:h'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Khh!]r(hBX&Create or check your accounts for the rr}r(h&X&Create or check your accounts for the h'jubcdocutils.nodes title_reference r)r}r(h&X0`test server `h/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX.test server rr}r(h&Uh'jubah-Utitle_referencerubhBX and rr}r(h&X and h'jubhu)r}r(h&X&`PyPI `_h/}r(UnameXPyPIhyXhttps://pypi.python.org/pypirh4]h3]h1]h2]h6]uh'jh!]rhBXPyPIrr}r(h&Uh'jubah-hubh)r}r(h&X hKh'jh-hh/}r(Urefurijh4]rhah3]h1]h2]h6]rh auh!]ubhBX. Update your rr}r(h&X. Update your h'jubh)r}r(h&Uh/}r(h4]h3]h1]h2]rXfileraUrolejh6]uh'jh!]rhBX ~/.pypircrr}r(h&X ~/.pypirch'jubah-hubhBX with your current credentials:rr}r(h&X with your current credentials:h'jubeubh)r}r(h&XJ[distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = h'jh(h+h-hh/}r(hhXinihhh4]h3]h1]h2]h6]uh8Kmh!]rhBXJ[distutils] index-servers = pypi test [test] repository = https://testpypi.python.org/pypi username = password = [pypi] repository = http://pypi.python.org/pypi username = password = rr}r(h&Uh'jubaubeubhh)r}r(h&XRegister SimPy with the test server and upload the distributions: .. code-block:: bash $ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r test h'jh(Nh-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r (hF)r }r (h&XARegister SimPy with the test server and upload the distributions:r h'jh(h+h-hJh/}r (h1]h2]h3]h4]h6]uh8K~h!]rhBXARegister SimPy with the test server and upload the distributions:rr}r(h&j h'j ubaubh)r}r(h&Xv$ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r testh'jh(h+h-hh/}r(hhXbashhhh4]h3]h1]h2]h6]uh8Kh!]rhBXv$ python setup.py register -r test $ python setup.py sdist upload -r test $ python setup.py bdist_wheel upload -r testrr}r(h&Uh'jubaubeubhh)r}r(h&XTCheck if the package is displayed correctly: https://testpypi.python.org/pypi/simpy h'jh(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&XSCheck if the package is displayed correctly: https://testpypi.python.org/pypi/simpyh'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Kh!]r (hBX-Check if the package is displayed correctly: r!r"}r#(h&X-Check if the package is displayed correctly: h'jubhu)r$}r%(h&X&https://testpypi.python.org/pypi/simpyr&h/}r'(Urefurij&h4]h3]h1]h2]h6]uh'jh!]r(hBX&https://testpypi.python.org/pypi/simpyr)r*}r+(h&Uh'j$ubah-hubeubaubhh)r,}r-(h&XmTest the installation again: .. code-block:: bash $ pip install -i https://testpypi.python.org/pypi simpy h'jh(Nh-hkh/}r.(h1]h2]h3]h4]h6]uh8Nh9hh!]r/(hF)r0}r1(h&XTest the installation again:r2h'j,h(h+h-hJh/}r3(h1]h2]h3]h4]h6]uh8Kh!]r4hBXTest the installation again:r5r6}r7(h&j2h'j0ubaubh)r8}r9(h&X7$ pip install -i https://testpypi.python.org/pypi simpyh'j,h(h+h-hh/}r:(hhXbashhhh4]h3]h1]h2]h6]uh8Kh!]r;hBX7$ pip install -i https://testpypi.python.org/pypi simpyr<r=}r>(h&Uh'j8ubaubeubhh)r?}r@(h&XUpdate the version number in :file:`simpy/__init__.py`, commit and create a tag: .. code-block:: bash $ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpy h'jh(Nh-hkh/}rA(h1]h2]h3]h4]h6]uh8Nh9hh!]rB(hF)rC}rD(h&XPUpdate the version number in :file:`simpy/__init__.py`, commit and create a tag:h'j?h(h+h-hJh/}rE(h1]h2]h3]h4]h6]uh8Kh!]rF(hBXUpdate the version number in rGrH}rI(h&XUpdate the version number in h'jCubh)rJ}rK(h&Uh/}rL(h4]h3]h1]h2]rMXfilerNaUrolejNh6]uh'jCh!]rOhBXsimpy/__init__.pyrPrQ}rR(h&Xsimpy/__init__.pyh'jJubah-hubhBX, commit and create a tag:rSrT}rU(h&X, commit and create a tag:h'jCubeubh)rV}rW(h&Xi$ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpyh'j?h(h+h-hh/}rX(hhXbashhhh4]h3]h1]h2]h6]uh8Kh!]rYhBXi$ hg ci -m 'Bump version from a.b.c to x.y.z' $ hg tag x.y.z $ hg push ssh://hg@bitbucket.org/simpy/simpyrZr[}r\(h&Uh'jVubaubeubhh)r]}r^(h&XFinally upload the package to PyPI and test its installation one last time: .. code-block:: bash $ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpy h'jh(Nh-hkh/}r_(h1]h2]h3]h4]h6]uh8Nh9hh!]r`(hF)ra}rb(h&XKFinally upload the package to PyPI and test its installation one last time:rch'j]h(h+h-hJh/}rd(h1]h2]h3]h4]h6]uh8Kh!]rehBXKFinally upload the package to PyPI and test its installation one last time:rfrg}rh(h&jch'jaubaubh)ri}rj(h&Xr$ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpyh'j]h(h+h-hh/}rk(hhXbashhhh4]h3]h1]h2]h6]uh8Kh!]rlhBXr$ python setup.py register $ python setup.py sdist upload $ python setup.py bdist_wheel upload $ pip install simpyrmrn}ro(h&Uh'jiubaubeubhh)rp}rq(h&XQCheck if the package is displayed correctly: https://pypi.python.org/pypi/simpy h'jh(h+h-hkh/}rr(h1]h2]h3]h4]h6]uh8Nh9hh!]rshF)rt}ru(h&XOCheck if the package is displayed correctly: https://pypi.python.org/pypi/simpyh'jph(h+h-hJh/}rv(h1]h2]h3]h4]h6]uh8Kh!]rw(hBX-Check if the package is displayed correctly: rxry}rz(h&X-Check if the package is displayed correctly: h'jtubhu)r{}r|(h&X"https://pypi.python.org/pypi/simpyr}h/}r~(Urefurij}h4]h3]h1]h2]h6]uh'jth!]rhBX"https://pypi.python.org/pypi/simpyrr}r(h&Uh'j{ubah-hubeubaubeubeubh#)r}r(h&Uh'h$h(h+h-h.h/}r(h1]h2]h3]h4]rhah6]rh auh8Kh9hh!]r(h;)r}r(h&X Post releaserh'jh(h+h-h?h/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBX Post releaserr}r(h&jh'jubaubh^)r}r(h&Uh'jh(h+h-hah/}r(hcU.h4]h3]h1]hdUh2]h6]hehfuh8Kh9hh!]r(hh)r}r(h&XDSend the prepared email to the mailing list and post it on Google+. h'jh(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&XCSend the prepared email to the mailing list and post it on Google+.rh'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Kh!]rhBXCSend the prepared email to the mailing list and post it on Google+.rr}r(h&jh'jubaubaubhh)r}r(h&XBUpdate `Wikipedia `_ entries. h'jh(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&XAUpdate `Wikipedia `_ entries.h'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Kh!]r(hBXUpdate rr}r(h&XUpdate h'jubhu)r}r(h&X1`Wikipedia `_h/}r(UnameX WikipediahyX"http://en.wikipedia.org/wiki/SimPyrh4]h3]h1]h2]h6]uh'jh!]rhBX Wikipediarr}r(h&Uh'jubah-hubh)r}r(h&X% hKh'jh-hh/}r(Urefurijh4]rhah3]h1]h2]h6]rh auh!]ubhBX entries.rr}r(h&X entries.h'jubeubaubhh)r}r(h&XNUpdate `Python Wiki `_ h'jh(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&XMUpdate `Python Wiki `_h'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Kh!]r(hBXUpdate rr}r(h&XUpdate h'jubhu)r}r(h&XF`Python Wiki `_h/}r(UnameX Python WikihyX5https://wiki.python.org/moin/UsefulModules#Scientificrh4]h3]h1]h2]h6]uh'jh!]rhBX Python Wikirr}r(h&Uh'jubah-hubh)r}r(h&X8 hKh'jh-hh/}r(Urefurijh4]rh ah3]h1]h2]h6]rhauh!]ubeubaubhh)r}r(h&X:Post something to Planet Python (e.g., via Stefan's blog).rh'jh(h+h-hkh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhF)r}r(h&jh'jh(h+h-hJh/}r(h1]h2]h3]h4]h6]uh8Kh!]rhBX:Post something to Planet Python (e.g., via Stefan's blog).rr}r(h&jh'jubaubaubeubeubeubah&UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh9hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationr NU halt_levelr KU strip_classesr Nh?NUerror_encoding_error_handlerr Ubackslashreplacer UdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformr U source_linkr!NUrfc_referencesr"NUoutput_encodingr#Uutf-8r$U source_urlr%NUinput_encodingr&U utf-8-sigr'U_disable_configr(NU id_prefixr)UU tab_widthr*KUerror_encodingr+Uasciir,U_sourcer-UI/var/build/user_builds/simpy/checkouts/3.0/docs/about/release_process.rstr.Ugettext_compactr/U generatorr0NUdump_internalsr1NU smart_quotesr2U pep_base_urlr3Uhttp://www.python.org/dev/peps/r4Usyntax_highlightr5Ulongr6Uinput_encoding_error_handlerr7jUauto_id_prefixr8Uidr9Udoctitle_xformr:Ustrip_elements_with_classesr;NU _config_filesr<]Ufile_insertion_enabledr=U raw_enabledr>KU dump_settingsr?NubUsymbol_footnote_startr@KUidsrA}rB(hjh jhjhjhhPhh$hjzhjhhuUsubstitution_namesrC}rDh-h9h/}rE(h1]h4]h3]Usourceh+h2]h6]uU footnotesrF]rGUrefidsrH}rIub.PK{Ej NN3simpy-3.0/.doctrees/about/defense_of_design.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X changes and decisions in simpy 3qNXpysideqX0creating events via the environment or resourcesqNXchanges in simpy 2q NX matplotlibq Xoriginal design of simpy 1q NXno more sub-classing of processq NXdefense of designq NX processes live in an environmentqNXstronger focus on eventsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU changes-and-decisions-in-simpy-3qhUpysideqhU0creating-events-via-the-environment-or-resourcesqh Uchanges-in-simpy-2qh U matplotlibqh Uoriginal-design-of-simpy-1qh Uno-more-sub-classing-of-processqh Udefense-of-designq hU processes-live-in-an-environmentq!hUstronger-focus-on-eventsq"uUchildrenq#]q$cdocutils.nodes section q%)q&}q'(U rawsourceq(UUparentq)hUsourceq*cdocutils.nodes reprunicode q+XK/var/build/user_builds/simpy/checkouts/3.0/docs/about/defense_of_design.rstq,q-}q.bUtagnameq/Usectionq0U attributesq1}q2(Udupnamesq3]Uclassesq4]Ubackrefsq5]Uidsq6]q7h aUnamesq8]q9h auUlineq:KUdocumentq;hh#]q<(cdocutils.nodes title q=)q>}q?(h(XDefense of Designq@h)h&h*h-h/UtitleqAh1}qB(h3]h4]h5]h6]h8]uh:Kh;hh#]qCcdocutils.nodes Text qDXDefense of DesignqEqF}qG(h(h@h)h>ubaubcdocutils.nodes paragraph qH)qI}qJ(h(X`This document explains why SimPy is designed the way it is and how its design evolved over time.qKh)h&h*h-h/U paragraphqLh1}qM(h3]h4]h5]h6]h8]uh:Kh;hh#]qNhDX`This document explains why SimPy is designed the way it is and how its design evolved over time.qOqP}qQ(h(hKh)hIubaubh%)qR}qS(h(Uh)h&h*h-h/h0h1}qT(h3]h4]h5]h6]qUhah8]qVh auh:K h;hh#]qW(h=)qX}qY(h(XOriginal Design of SimPy 1qZh)hRh*h-h/hAh1}q[(h3]h4]h5]h6]h8]uh:K h;hh#]q\hDXOriginal Design of SimPy 1q]q^}q_(h(hZh)hXubaubhH)q`}qa(h(XSimPy 1 was heavily inspired by *Simula 67* and *Simscript*. The basic entity of the framework was a process. A process described a temporal sequence of actions.h)hRh*h-h/hLh1}qb(h3]h4]h5]h6]h8]uh:K h;hh#]qc(hDX SimPy 1 was heavily inspired by qdqe}qf(h(X SimPy 1 was heavily inspired by h)h`ubcdocutils.nodes emphasis qg)qh}qi(h(X *Simula 67*h1}qj(h3]h4]h5]h6]h8]uh)h`h#]qkhDX Simula 67qlqm}qn(h(Uh)hhubah/UemphasisqoubhDX and qpqq}qr(h(X and h)h`ubhg)qs}qt(h(X *Simscript*h1}qu(h3]h4]h5]h6]h8]uh)h`h#]qvhDX Simscriptqwqx}qy(h(Uh)hsubah/houbhDXf. The basic entity of the framework was a process. A process described a temporal sequence of actions.qzq{}q|(h(Xf. The basic entity of the framework was a process. A process described a temporal sequence of actions.h)h`ubeubhH)q}}q~(h(XIn SimPy 1, you implemented a process by sub-classing ``Process``. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the *process execution method* (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.h)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]q(hDX6In SimPy 1, you implemented a process by sub-classing qq}q(h(X6In SimPy 1, you implemented a process by sub-classing h)h}ubcdocutils.nodes literal q)q}q(h(X ``Process``h1}q(h3]h4]h5]h6]h8]uh)h}h#]qhDXProcessqq}q(h(Uh)hubah/UliteralqubhDX. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the qq}q(h(X. The instance of such a subclass carried both, process and simulation internal information, whereat the latter wasn't of any use to the process itself. The sequence of actions of the process was specified in a method of the subclass, called the h)h}ubhg)q}q(h(X*process execution method*h1}q(h3]h4]h5]h6]h8]uh)h}h#]qhDXprocess execution methodqq}q(h(Uh)hubah/houbhDX (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.qq}q(h(X (or PEM in short). A PEM interacted with the simulation by yielding one of several keywords defined in the simulation package.h)h}ubeubhH)q}q(h(X}The simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from *Process* and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.h)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]q(hDXThe simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from qq}q(h(XThe simulation itself was executed via module level functions. The simulation state was stored in the global scope. This made it very easy to implement and execute a simulation (despite from heaving to inherit from h)hubhg)q}q(h(X *Process*h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXProcessqq}q(h(Uh)hubah/houbhDX and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.qq}q(h(X and instantianting the processes before starting their PEMs). However, having all simulation state global makes it hard to parallelize multiple simulations.h)hubeubhH)q}q(h(XSimPy 1 also followed the "batteries included" approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations ("normal", real-time, manual stepping, with tracing).qh)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]qhDXSimPy 1 also followed the "batteries included" approach, providing shared resources, monitoring, plotting, GUIs and multiple types of simulations ("normal", real-time, manual stepping, with tracing).qq}q(h(hh)hubaubhH)q}q(h(XZThe following code fragment shows how a simple simulation could be implemented in SimPy 1:qh)hRh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:K"h;hh#]qhDXZThe following code fragment shows how a simple simulation could be implemented in SimPy 1:qq}q(h(hh)hubaubcdocutils.nodes literal_block q)q}q(h(Xwfrom SimPy.Simulation import Process, hold, initialize, activate, simulate class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 initialize() proc = MyProcess() activate(proc, proc.pem(3)) simulate(until=10) sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)h)hRh*h-h/U literal_blockqh1}q(UlinenosqUlanguageqXpythonU xml:spaceqUpreserveqh6]h5]h3]h4]h8]uh:K%h;hh#]qhDXwfrom SimPy.Simulation import Process, hold, initialize, activate, simulate class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 initialize() proc = MyProcess() activate(proc, proc.pem(3)) simulate(until=10) sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)qŅq}q(h(Uh)hubaubeubh%)q}q(h(Uh)h&h*h-h/h0h1}q(h3]h4]h5]h6]qhah8]qh auh:Kh;hh#]q(hDXSimpy 2 mostly sticked with Simpy 1's design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the qڅq}q(h(XSimpy 2 mostly sticked with Simpy 1's design, but added an object orient API for the execution of simulations, allowing them to be executed in parallel. Since processes and the simulation state were so closely coupled, you now needed to pass the h)hubh)q}q(h(X``Simulation``h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX Simulationqᅁq}q(h(Uh)hubah/hubhDX  instance into your process to "bind" them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2's OO-API looked like this:q䅁q}q(h(X  instance into your process to "bind" them to that instance. Additionally, you still had to activate the process. If you forgot to pass the simulation instance, the process would use a global instance thereby breaking your program. SimPy 2's OO-API looked like this:h)hubeubh)q}q(h(Xfrom SimPy.Simulation import Simulation, Process, hold class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)h)hh*h-h/hh1}q(hhXpythonhhh6]h5]h3]h4]h8]uh:KFh;hh#]qhDXfrom SimPy.Simulation import Simulation, Process, hold class MyProcess(Process): def pem(self, repeat): for i in range(repeat): yield hold, self, 1 sim = Simulation() proc = MyProcess(sim=sim) sim.activate(proc, proc.pem(3)) sim.simulate(until=10)q녁q}q(h(Uh)hubaubeubh%)q}q(h(Uh)h&h*h-h/h0h1}q(h3]h4]h5]h6]qhah8]qhauh:KVh;hh#]q(h=)q}q(h(X Changes and Decisions in SimPy 3qh)hh*h-h/hAh1}q(h3]h4]h5]h6]h8]uh:KVh;hh#]qhDX Changes and Decisions in SimPy 3qq}q(h(hh)hubaubhH)q}q(h(XDThe original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn't expect the API changes to become as extensive as they ended up to be.qh)hh*h-h/hLh1}q(h3]h4]h5]h6]h8]uh:KXh;hh#]rhDXDThe original goals for SimPy 3 were to simplify and PEP8-ify its API and to clean up and modularize its internals. We knew from the beginning that our goals would not be achievable without breaking backwards compatibility with SimPy 2. However, we didn't expect the API changes to become as extensive as they ended up to be.rr}r(h(hh)hubaubhH)r}r(h(XWe also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like `matplotlib `_ or `PySide `_ do a much better job here.h)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:K^h;hh#]r(hDX}We also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like rr }r (h(X}We also removed some of the included batteries, namely SimPy's plotting and GUI capabilities, since dedicated libraries like h)jubcdocutils.nodes reference r )r }r (h(X&`matplotlib `_h1}r(Unameh UrefurirXhttp://matplotlib.org/rh6]h5]h3]h4]h8]uh)jh#]rhDX matplotlibrr}r(h(Uh)j ubah/U referencerubcdocutils.nodes target r)r}r(h(X U referencedrKh)jh/Utargetrh1}r(Urefurijh6]rhah5]h3]h4]h8]rh auh#]ubhDX or rr}r (h(X or h)jubj )r!}r"(h(X-`PySide `_h1}r#(UnameXPySidejX!http://qt-project.org/wiki/PySider$h6]h5]h3]h4]h8]uh)jh#]r%hDXPySider&r'}r((h(Uh)j!ubah/jubj)r)}r*(h(X$ jKh)jh/jh1}r+(Urefurij$h6]r,hah5]h3]h4]h8]r-hauh#]ubhDX do a much better job here.r.r/}r0(h(X do a much better job here.h)jubeubhH)r1}r2(h(XHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing ``yield hold, self, 1`` with ``yield env.timeout(1)``).h)hh*h-h/hLh1}r3(h3]h4]h5]h6]h8]uh:Kch;hh#]r4(hDXHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing r5r6}r7(h(XHowever, by far the most changes are---from the end user's view---mostly syntactical. Thus, porting from 2 to 3 usually just means replacing a line of SimPy 2 code with its SimPy3 equivalent (e.g., replacing h)j1ubh)r8}r9(h(X``yield hold, self, 1``h1}r:(h3]h4]h5]h6]h8]uh)j1h#]r;hDXyield hold, self, 1r<r=}r>(h(Uh)j8ubah/hubhDX with r?r@}rA(h(X with h)j1ubh)rB}rC(h(X``yield env.timeout(1)``h1}rD(h3]h4]h5]h6]h8]uh)j1h#]rEhDXyield env.timeout(1)rFrG}rH(h(Uh)jBubah/hubhDX).rIrJ}rK(h(X).h)j1ubeubhH)rL}rM(h(X2In short, the most notable changes in SimPy 3 are:rNh)hh*h-h/hLh1}rO(h3]h4]h5]h6]h8]uh:Khh;hh#]rPhDX2In short, the most notable changes in SimPy 3 are:rQrR}rS(h(jNh)jLubaubcdocutils.nodes bullet_list rT)rU}rV(h(Uh)hh*h-h/U bullet_listrWh1}rX(UbulletrYX-h6]h5]h3]h4]h8]uh:Kjh;hh#]rZ(cdocutils.nodes list_item r[)r\}r](h(X]No more sub-classing of ``Process`` required. PEMs can even be simple module level functions.h)jUh*h-h/U list_itemr^h1}r_(h3]h4]h5]h6]h8]uh:Nh;hh#]r`hH)ra}rb(h(X]No more sub-classing of ``Process`` required. PEMs can even be simple module level functions.h)j\h*h-h/hLh1}rc(h3]h4]h5]h6]h8]uh:Kjh#]rd(hDXNo more sub-classing of rerf}rg(h(XNo more sub-classing of h)jaubh)rh}ri(h(X ``Process``h1}rj(h3]h4]h5]h6]h8]uh)jah#]rkhDXProcessrlrm}rn(h(Uh)jhubah/hubhDX: required. PEMs can even be simple module level functions.rorp}rq(h(X: required. PEMs can even be simple module level functions.h)jaubeubaubj[)rr}rs(h(XyThe simulation state is now stored in an ``Environment`` which can also be used by a PEM to interact with the simulation.h)jUh*h-h/j^h1}rt(h3]h4]h5]h6]h8]uh:Nh;hh#]ruhH)rv}rw(h(XyThe simulation state is now stored in an ``Environment`` which can also be used by a PEM to interact with the simulation.h)jrh*h-h/hLh1}rx(h3]h4]h5]h6]h8]uh:Klh#]ry(hDX)The simulation state is now stored in an rzr{}r|(h(X)The simulation state is now stored in an h)jvubh)r}}r~(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jvh#]rhDX Environmentrr}r(h(Uh)j}ubah/hubhDXA which can also be used by a PEM to interact with the simulation.rr}r(h(XA which can also be used by a PEM to interact with the simulation.h)jvubeubaubj[)r}r(h(XzPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types. h)jUh*h-h/j^h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhH)r}r(h(XyPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Knh#]rhDXyPEMs now yield event objects. This implicates interesting new features and allows an easy extension with new event types.rr}r(h(jh)jubaubaubeubhH)r}r(h(XBThese changes are causing the above example to now look like this:rh)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kqh;hh#]rhDXBThese changes are causing the above example to now look like this:rr}r(h(jh)jubaubh)r}r(h(Xfrom simpy import Environment, simulate def pem(env, repeat): for i in range(repeat): yield env.timeout(i) env = Environment() env.process(pem(env, 7)) simulate(env, until=10)h)hh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Ksh;hh#]rhDXfrom simpy import Environment, simulate def pem(env, repeat): for i in range(repeat): yield env.timeout(i) env = Environment() env.process(pem(env, 7)) simulate(env, until=10)rr}r(h(Uh)jubaubhH)r}r(h(X8The following sections describe these changes in detail:rh)hh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX8The following sections describe these changes in detail:rr}r(h(jh)jubaubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rhah8]rh auh:Kh;hh#]r(h=)r}r(h(X#No More Sub-classing of ``Process``rh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXNo More Sub-classing of rr}r(h(XNo More Sub-classing of rh)jubh)r}r(h(X ``Process``rh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubeubhH)r}r(h(X.In Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The ``Process`` class still exists, but you don't need to instantiate it by yourself, though. More on that later.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXIn Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The rr}r(h(XIn Simpy 3, every Python generator can be used as a PEM, no matter if it is a module level function or a method of an object. This reduces the amount of code required for simple processes. The h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDXb class still exists, but you don't need to instantiate it by yourself, though. More on that later.rr}r(h(Xb class still exists, but you don't need to instantiate it by yourself, though. More on that later.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rh!ah8]rhauh:Kh;hh#]r(h=)r}r(h(X Processes Live in an Environmentrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX Processes Live in an Environmentrr}r(h(jh)jubaubhH)r}r(h(XProcess and simulation state are decoupled. An ``Environment`` holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the ``Process`` or ``Environment`` class without affecting other components.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDX/Process and simulation state are decoupled. An rr}r(h(X/Process and simulation state are decoupled. An h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the rr}r(h(X holds the simulation state and serves as base API for processes to create new events. This allows you to implement advanced use cases by extending the h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDX or rr}r(h(X or h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX* class without affecting other components.rr}r(h(X* class without affecting other components.h)jubeubhH)r}r(h(XtFor the same reason, the ``simulate()`` method now is a module level function that takes an environment to simulate.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXFor the same reason, the r r }r (h(XFor the same reason, the h)jubh)r }r (h(X``simulate()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX simulate()rr}r(h(Uh)j ubah/hubhDXM method now is a module level function that takes an environment to simulate.rr}r(h(XM method now is a module level function that takes an environment to simulate.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rh"ah8]rhauh:Kh;hh#]r(h=)r}r(h(XStronger Focus on Eventsrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r hDXStronger Focus on Eventsr!r"}r#(h(jh)jubaubhH)r$}r%(h(XRIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like ``hold``) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the ``Simulation`` and ``Process`` making it very hard to extend SimPy with new functionality.h)jh*h-h/hLh1}r&(h3]h4]h5]h6]h8]uh:Kh;hh#]r'(hDXPIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like r(r)}r*(h(XPIn former versions, PEMs needed to yield one of SimPy's built-in keywords (like h)j$ubh)r+}r,(h(X``hold``h1}r-(h3]h4]h5]h6]h8]uh)j$h#]r.hDXholdr/r0}r1(h(Uh)j+ubah/hubhDX) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the r2r3}r4(h(X) to interact with the simulation. These keywords had to be imported separately and were bound to some internal functions that were tightly integrated with the h)j$ubh)r5}r6(h(X``Simulation``h1}r7(h3]h4]h5]h6]h8]uh)j$h#]r8hDX Simulationr9r:}r;(h(Uh)j5ubah/hubhDX and r<r=}r>(h(X and h)j$ubh)r?}r@(h(X ``Process``h1}rA(h3]h4]h5]h6]h8]uh)j$h#]rBhDXProcessrCrD}rE(h(Uh)j?ubah/hubhDX< making it very hard to extend SimPy with new functionality.rFrG}rH(h(X< making it very hard to extend SimPy with new functionality.h)j$ubeubhH)rI}rJ(h(XHIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a ``BaseEvent``. Most events are generated by factory methods of ``Environment``. For example, ``Environment.timeout()`` creates a ``Timeout`` event that replaces the ``hold`` keyword.h)jh*h-h/hLh1}rK(h3]h4]h5]h6]h8]uh:Kh;hh#]rL(hDXIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a rMrN}rO(h(XIn Simpy 3, PEMs just need to yield events. There are various built-in event types, but you can also create custom ones by making a subclass of a h)jIubh)rP}rQ(h(X ``BaseEvent``h1}rR(h3]h4]h5]h6]h8]uh)jIh#]rShDX BaseEventrTrU}rV(h(Uh)jPubah/hubhDX2. Most events are generated by factory methods of rWrX}rY(h(X2. Most events are generated by factory methods of h)jIubh)rZ}r[(h(X``Environment``h1}r\(h3]h4]h5]h6]h8]uh)jIh#]r]hDX Environmentr^r_}r`(h(Uh)jZubah/hubhDX. For example, rarb}rc(h(X. For example, h)jIubh)rd}re(h(X``Environment.timeout()``h1}rf(h3]h4]h5]h6]h8]uh)jIh#]rghDXEnvironment.timeout()rhri}rj(h(Uh)jdubah/hubhDX creates a rkrl}rm(h(X creates a h)jIubh)rn}ro(h(X ``Timeout``h1}rp(h3]h4]h5]h6]h8]uh)jIh#]rqhDXTimeoutrrrs}rt(h(Uh)jnubah/hubhDX event that replaces the rurv}rw(h(X event that replaces the h)jIubh)rx}ry(h(X``hold``h1}rz(h3]h4]h5]h6]h8]uh)jIh#]r{hDXholdr|r}}r~(h(Uh)jxubah/hubhDX keyword.rr}r(h(X keyword.h)jIubeubhH)r}r(h(XThe ``Process`` is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThe rr}r(h(XThe h)jubh)r}r(h(X ``Process``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXProcessrr}r(h(Uh)jubah/hubhDX is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.rr}r(h(X is now also an event. You can now yield another process and wait for it to finish. For example, think of a car-wash simulation were "washing" is a process that the car processes can wait for once they enter the washing station.h)jubeubeubh%)r}r(h(Uh)hh*h-h/h0h1}r(h3]h4]h5]h6]rhah8]rhauh:Kh;hh#]r(h=)r}r(h(X0Creating Events via the Environment or Resourcesrh)jh*h-h/hAh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDX0Creating Events via the Environment or Resourcesrr}r(h(jh)jubaubhH)r}r(h(XThe ``Environment`` and resources have methods to create new events, e.g. ``Environment.timeout()`` or ``Resource.request()``. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThe rr}r(h(XThe h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX7 and resources have methods to create new events, e.g. rr}r(h(X7 and resources have methods to create new events, e.g. h)jubh)r}r(h(X``Environment.timeout()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXEnvironment.timeout()rr}r(h(Uh)jubah/hubhDX or rr}r(h(X or h)jubh)r}r(h(X``Resource.request()``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXResource.request()rr}r(h(Uh)jubah/hubhDXk. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:rr}r(h(Xk. Each of these methods maps to a certain event type. It creates a new instance of it and returns it, e.g.:h)jubeubh)r}r(h(X#def event(self): return Event()h)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDX#def event(self): return Event()rr}r(h(Uh)jubaubhH)r}r(h(XKTo simplify things, we wanted to use the event classes directly as methods:rh)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDXKTo simplify things, we wanted to use the event classes directly as methods:rr}r(h(jh)jubaubh)r}r(h(X+class Environment(object) event = Eventh)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDX+class Environment(object) event = Eventrr}r(h(Uh)jubaubhH)r}r(h(XThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a ``BoundClass``:h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a rr}r(h(XThis was, unfortunately, not directly possible and we had to wrap the classes to behave like bound methods. Therefore, we introduced a h)jubh)r}r(h(X``BoundClass``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX BoundClassrr}r(h(Uh)jubah/hubhDX:r}r(h(X:h)jubeubh)r}r(h(Xclass BoundClass(object): """Allows classes to behave like methods. The ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance. """ def __init__(self, cls): self.cls = cls def __get__(self, obj, type=None): if obj is None: return self.cls return types.MethodType(self.cls, obj) class Environment(object): event = BoundClass(Event)h)jh*h-h/hh1}r(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]rhDXclass BoundClass(object): """Allows classes to behave like methods. The ``__get__()`` descriptor is basically identical to ``function.__get__()`` and binds the first argument of the ``cls`` to the descriptor instance. """ def __init__(self, cls): self.cls = cls def __get__(self, obj, type=None): if obj is None: return self.cls return types.MethodType(self.cls, obj) class Environment(object): event = BoundClass(Event)rr}r(h(Uh)jubaubhH)r}r(h(XThese methods are called a lot, so we added the event classes as :data:`types.MethodType` to the instance of ``Environment`` (or the resources, respectively):h)jh*h-h/hLh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]r(hDXAThese methods are called a lot, so we added the event classes as rr}r(h(XAThese methods are called a lot, so we added the event classes as h)jubcsphinx.addnodes pending_xref r)r}r(h(X:data:`types.MethodType`rh)jh*h-h/U pending_xrefrh1}r(UreftypeXdataUrefwarnrU reftargetrXtypes.MethodTypeU refdomainXpyrh6]h5]U refexplicith3]h4]h8]UrefdocrXabout/defense_of_designrUpy:classrNU py:modulerNuh:Kh#]rh)r}r (h(jh1}r (h3]h4]r (Uxrefr jXpy-datar eh5]h6]h8]uh)jh#]rhDXtypes.MethodTyperr}r(h(Uh)jubah/hubaubhDX to the instance of rr}r(h(X to the instance of h)jubh)r}r(h(X``Environment``h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX Environmentrr}r(h(Uh)jubah/hubhDX" (or the resources, respectively):rr}r(h(X" (or the resources, respectively):h)jubeubh)r}r (h(Xeclass Environment(object): def __init__(self): self.event = types.MethodType(Event, self)h)jh*h-h/hh1}r!(hhXpythonhhh6]h5]h3]h4]h8]uh:Kh;hh#]r"hDXeclass Environment(object): def __init__(self): self.event = types.MethodType(Event, self)r#r$}r%(h(Uh)jubaubhH)r&}r'(h(XIt turned out the the class attributes (the ``BoundClass`` instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.h)jh*h-h/hLh1}r((h3]h4]h5]h6]h8]uh:Kh;hh#]r)(hDX,It turned out the the class attributes (the r*r+}r,(h(X,It turned out the the class attributes (the h)j&ubh)r-}r.(h(X``BoundClass``h1}r/(h3]h4]h5]h6]h8]uh)j&h#]r0hDX BoundClassr1r2}r3(h(Uh)j-ubah/hubhDX instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.r4r5}r6(h(X instances) were now quite useless, so we removed them allthough it was actually the "right" way to to add classes as methods to another class.h)j&ubeubeubeubeubah(UU transformerr7NU footnote_refsr8}r9Urefnamesr:}r;Usymbol_footnotesr<]r=Uautofootnote_refsr>]r?Usymbol_footnote_refsr@]rAU citationsrB]rCh;hU current_linerDNUtransform_messagesrE]rFUreporterrGNUid_startrHKU autofootnotesrI]rJU citation_refsrK}rLUindirect_targetsrM]rNUsettingsrO(cdocutils.frontend Values rPorQ}rR(Ufootnote_backlinksrSKUrecord_dependenciesrTNU rfc_base_urlrUUhttp://tools.ietf.org/html/rVU tracebackrWUpep_referencesrXNUstrip_commentsrYNU toc_backlinksrZUentryr[U language_coder\Uenr]U datestampr^NU report_levelr_KU _destinationr`NU halt_levelraKU strip_classesrbNhANUerror_encoding_error_handlerrcUbackslashreplacerdUdebugreNUembed_stylesheetrfUoutput_encoding_error_handlerrgUstrictrhU sectnum_xformriKUdump_transformsrjNU docinfo_xformrkKUwarning_streamrlNUpep_file_url_templatermUpep-%04drnUexit_status_levelroKUconfigrpNUstrict_visitorrqNUcloak_email_addressesrrUtrim_footnote_reference_spacersUenvrtNUdump_pseudo_xmlruNUexpose_internalsrvNUsectsubtitle_xformrwU source_linkrxNUrfc_referencesryNUoutput_encodingrzUutf-8r{U source_urlr|NUinput_encodingr}U utf-8-sigr~U_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUK/var/build/user_builds/simpy/checkouts/3.0/docs/about/defense_of_design.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhjhhRhj)h"jh h&hjh!jhhhjuUsubstitution_namesr}rh/h;h1}r(h3]h6]h5]Usourceh-h4]h8]uU footnotesr]rUrefidsr}rub.PK{EVKS )simpy-3.0/.doctrees/about/license.doctreecdocutils.nodes document q)q}q(U nametypesq}qXlicenseqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUlicenseqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXA/var/build/user_builds/simpy/checkouts/3.0/docs/about/license.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*cdocutils.nodes title q+)q,}q-(hXLicenseq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XLicenseq3q4}q5(hh.hh,ubaubaubahUU transformerq6NU footnote_refsq7}q8Urefnamesq9}q:Usymbol_footnotesq;]qUsymbol_footnote_refsq?]q@U citationsqA]qBh)hU current_lineqCNUtransform_messagesqD]qEUreporterqFNUid_startqGKU autofootnotesqH]qIU citation_refsqJ}qKUindirect_targetsqL]qMUsettingsqN(cdocutils.frontend Values qOoqP}qQ(Ufootnote_backlinksqRKUrecord_dependenciesqSNU rfc_base_urlqTUhttp://tools.ietf.org/html/qUU tracebackqVUpep_referencesqWNUstrip_commentsqXNU toc_backlinksqYUentryqZU language_codeq[Uenq\U datestampq]NU report_levelq^KU _destinationq_NU halt_levelq`KU strip_classesqaNh/NUerror_encoding_error_handlerqbUbackslashreplaceqcUdebugqdNUembed_stylesheetqeUoutput_encoding_error_handlerqfUstrictqgU sectnum_xformqhKUdump_transformsqiNU docinfo_xformqjKUwarning_streamqkNUpep_file_url_templateqlUpep-%04dqmUexit_status_levelqnKUconfigqoNUstrict_visitorqpNUcloak_email_addressesqqUtrim_footnote_reference_spaceqrUenvqsNUdump_pseudo_xmlqtNUexpose_internalsquNUsectsubtitle_xformqvU source_linkqwNUrfc_referencesqxNUoutput_encodingqyUutf-8qzU source_urlq{NUinput_encodingq|U utf-8-sigq}U_disable_configq~NU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUA/var/build/user_builds/simpy/checkouts/3.0/docs/about/license.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhgUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{EQJJ2simpy-3.0/.doctrees/about/acknowledgements.doctreecdocutils.nodes document q)q}q(U nametypesq}qXacknowledgmentsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUacknowledgmentsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXJ/var/build/user_builds/simpy/checkouts/3.0/docs/about/acknowledgements.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXAcknowledgmentsq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XAcknowledgmentsq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXcSimPy 2 has been primarily developed by Stefan Scherfke and Ontje Lünsdorf, starting from SimPy 1.9. Their work has resulted in a most elegant combination of an object oriented API with the existing API, maintaining full backward compatibility. It has been quite easy to integrate their product into the existing SimPy code and documentation environment.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubh6)q@}qA(hXDThanks, guys, for this great job! **SimPy 2.0 is dedicated to you!**qBhhhhhh:h}qC(h!]h"]h#]h$]h&]uh(K h)hh]qD(h2X"Thanks, guys, for this great job! qEqF}qG(hX"Thanks, guys, for this great job! hh@ubcdocutils.nodes strong qH)qI}qJ(hX"**SimPy 2.0 is dedicated to you!**h}qK(h!]h"]h#]h$]h&]uhh@h]qLh2XSimPy 2.0 is dedicated to you!qMqN}qO(hUhhIubahUstrongqPubeubh6)qQ}qR(hXSimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.qShhhhhh:h}qT(h!]h"]h#]h$]h&]uh(K h)hh]qUh2XSimPy was originally created by Klaus Müller and Tony Vignaux. They pushed its development for several years and built the Simpy community. Without them, there would be no SimPy 3.qVqW}qX(hhShhQubaubh6)qY}qZ(hXDThanks, guys, for this great job! **SimPy 3.0 is dedicated to you!**q[hhhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh)hh]q](h2X"Thanks, guys, for this great job! q^q_}q`(hX"Thanks, guys, for this great job! hhYubhH)qa}qb(hX"**SimPy 3.0 is dedicated to you!**h}qc(h!]h"]h#]h$]h&]uhhYh]qdh2XSimPy 3.0 is dedicated to you!qeqf}qg(hUhhaubahhPubeubh6)qh}qi(hXnThe many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.qjhhhhhh:h}qk(h!]h"]h#]h$]h&]uh(Kh)hh]qlh2XnThe many contributions of the SimPy user and developer communities are of course also gratefully acknowledged.qmqn}qo(hhjhhhubaubeubahUU transformerqpNU footnote_refsqq}qrUrefnamesqs}qtUsymbol_footnotesqu]qvUautofootnote_refsqw]qxUsymbol_footnote_refsqy]qzU citationsq{]q|h)hU current_lineq}NUtransform_messagesq~]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUJ/var/build/user_builds/simpy/checkouts/3.0/docs/about/acknowledgements.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesq‰U pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqʉUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqΈU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{Eۊw)simpy-3.0/.doctrees/about/history.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X api changesqNX2.0.0 – 2009-01-26qNXseptember 2005: version 1.6.1qNX2.1 – 2010-06-03q NX18 october 2002q NX3.0 – 2013-10-11q NX bug fixesq NX2.2 – 2011-09-27q NX additionsqNX22 october 2002qNXjanuary 2007: version 1.8qNXsimpy history & change logqNX#25 september 2004: version 1.5alphaqNX!hitchhiker’s guide to packagingqXjune 2006: version 1.7.1qNXmarch 2008: version 1.9.1qNXfebruary 2006: version 1.7qNX2.3 – 2011-12-24qNX19 may 2004: version 1.4.2qNX2.3.1 – 2012-01-28qNX22 june 2003: version 1.3qNXjune 2003: version 1.3 alphaqNX17 september 2002qNX29 april 2003: version 1.2qNX major changesqNX27 september 2002qNX1 december 2004: version 1.5q NX#22 december 2003: version 1.4 alphaq!NX29 february 2004: version 1.4.1q"NX1 february 2005: version 1.5.1q#NXdecember 2007: version 1.9q$NX15 june 2005: version 1.6q%NX1 february 2004: version 1.4q&NXdocumentation format changesq'NX2.0.1 – 2009-04-06q(NuUsubstitution_defsq)}q*Uparse_messagesq+]q,(cdocutils.nodes system_message q-)q.}q/(U rawsourceq0UUparentq1cdocutils.nodes section q2)q3}q4(h0UU referencedq5Kh1h2)q6}q7(h0Uh1h2)q8}q9(h0Uh1hUsourceq:cdocutils.nodes reprunicode q;XA/var/build/user_builds/simpy/checkouts/3.0/docs/about/history.rstqbUtagnameq?Usectionq@U attributesqA}qB(UdupnamesqC]UclassesqD]UbackrefsqE]UidsqF]qGUsimpy-history-change-logqHaUnamesqI]qJhauUlineqKKUdocumentqLhUchildrenqM]qN(cdocutils.nodes title qO)qP}qQ(h0XSimPy History & Change LogqRh1h8h:h=h?UtitleqShA}qT(hC]hD]hE]hF]hI]uhKKhLhhM]qUcdocutils.nodes Text qVXSimPy History & Change LogqWqX}qY(h0hRh1hPubaubcdocutils.nodes paragraph qZ)q[}q\(h0XSimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).q]h1h8h:h=h?U paragraphq^hA}q_(hC]hD]hE]hF]hI]uhKKhLhhM]q`hVXSimPy was originally based on ideas from Simula and Simscript but uses standard Python. It combines two previous packages, SiPy, in Simula-Style (Klaus Müller) and SimPy, in Simscript style (Tony Vignaux and Chang Chui).qaqb}qc(h0h]h1h[ubaubhZ)qd}qe(h0X`SimPy was based on efficient implementation of co-routines using Python's generators capability.qfh1h8h:h=h?h^hA}qg(hC]hD]hE]hF]hI]uhKK hLhhM]qhhVX`SimPy was based on efficient implementation of co-routines using Python's generators capability.qiqj}qk(h0hfh1hdubaubhZ)ql}qm(h0XSimPy 3 introduced a completely new and easier-to-use API, but still relied on Python's generators as they proved to work very well.qnh1h8h:h=h?h^hA}qo(hC]hD]hE]hF]hI]uhKK hLhhM]qphVXSimPy 3 introduced a completely new and easier-to-use API, but still relied on Python's generators as they proved to work very well.qqqr}qs(h0hnh1hlubaubhZ)qt}qu(h0X|The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.qvh1h8h:h=h?h^hA}qw(hC]hD]hE]hF]hI]uhKKhLhhM]qxhVX|The package has been hosted on Sourceforge.net since September 15th, 2002. In June 2012, the project moved to Bitbucket.org.qyqz}q{(h0hvh1htubaubh2)q|}q}(h0Uh1h8h:h=h?h@hA}q~(hC]hD]hE]hF]qUid1qahI]qh auhKKhLhhM]q(hO)q}q(h0X3.0 – 2013-10-11qh1h|h:h=h?hShA}q(hC]hD]hE]hF]hI]uhKKhLhhM]qhVX3.0 – 2013-10-11qq}q(h0hh1hubaubhZ)q}q(h0XSimPy 3 has been completely rewritten from scratch. Our main goals were to simplify the API and code base as well as making SimPy more flexible and extensible. Some of the most important changes are:qh1h|h:h=h?h^hA}q(hC]hD]hE]hF]hI]uhKKhLhhM]qhVXSimPy 3 has been completely rewritten from scratch. Our main goals were to simplify the API and code base as well as making SimPy more flexible and extensible. Some of the most important changes are:qq}q(h0hh1hubaubcdocutils.nodes bullet_list q)q}q(h0Uh1h|h:h=h?U bullet_listqhA}q(UbulletqX-hF]hE]hC]hD]hI]uhKKhLhhM]q(cdocutils.nodes list_item q)q}q(h0XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a *timeout* (formerly known as *hold*), but even processes are now events, too (you can wait until a process terminates). h1hh:h=h?U list_itemqhA}q(hC]hD]hE]hF]hI]uhKNhLhhM]qhZ)q}q(h0XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a *timeout* (formerly known as *hold*), but even processes are now events, too (you can wait until a process terminates).h1hh:h=h?h^hA}q(hC]hD]hE]hF]hI]uhKKhM]q(hVXStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a qq}q(h0XStronger focus on events. Processes yield event instances and are suspended until the event is triggered. An example for an event is a h1hubcdocutils.nodes emphasis q)q}q(h0X *timeout*hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVXtimeoutqq}q(h0Uh1hubah?UemphasisqubhVX (formerly known as qq}q(h0X (formerly known as h1hubh)q}q(h0X*hold*hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVXholdqq}q(h0Uh1hubah?hubhVXT), but even processes are now events, too (you can wait until a process terminates).qq}q(h0XT), but even processes are now events, too (you can wait until a process terminates).h1hubeubaubh)q}q(h0XUEvents can be combined with ``&`` (and) and ``|`` (or) to create *condition events*. h1hh:h=h?hhA}q(hC]hD]hE]hF]hI]uhKNhLhhM]qhZ)q}q(h0XTEvents can be combined with ``&`` (and) and ``|`` (or) to create *condition events*.h1hh:h=h?h^hA}q(hC]hD]hE]hF]hI]uhKKhM]q(hVXEvents can be combined with qŅq}q(h0XEvents can be combined with h1hubcdocutils.nodes literal q)q}q(h0X``&``hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVX&q}q(h0Uh1hubah?UliteralqubhVX (and) and qЅq}q(h0X (and) and h1hubh)q}q(h0X``|``hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVX|q}q(h0Uh1hubah?hubhVX (or) to create qمq}q(h0X (or) to create h1hubh)q}q(h0X*condition events*hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVXcondition eventsqq}q(h0Uh1hubah?hubhVX.q}q(h0X.h1hubeubaubh)q}q(h0XfProcess can now be defined by any generator function. You don't have to subclass ``Process`` anymore. h1hh:h=h?hhA}q(hC]hD]hE]hF]hI]uhKNhLhhM]qhZ)q}q(h0XeProcess can now be defined by any generator function. You don't have to subclass ``Process`` anymore.h1hh:h=h?h^hA}q(hC]hD]hE]hF]hI]uhKK"hM]q(hVXQProcess can now be defined by any generator function. You don't have to subclass q텁q}q(h0XQProcess can now be defined by any generator function. You don't have to subclass h1hubh)q}q(h0X ``Process``hA}q(hC]hD]hE]hF]hI]uh1hhM]qhVXProcessqq}q(h0Uh1hubah?hubhVX anymore.qq}q(h0X anymore.h1hubeubaubh)q}q(h0XNo more global simulation state. Every simulation stores its state in an *environment* which is comparable to the old ``Simulation`` class. h1hh:h=h?hhA}q(hC]hD]hE]hF]hI]uhKNhLhhM]qhZ)q}q(h0XNo more global simulation state. Every simulation stores its state in an *environment* which is comparable to the old ``Simulation`` class.h1hh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKK%hM]r(hVXINo more global simulation state. Every simulation stores its state in an rr}r(h0XINo more global simulation state. Every simulation stores its state in an h1hubh)r}r(h0X *environment*hA}r(hC]hD]hE]hF]hI]uh1hhM]rhVX environmentr r }r (h0Uh1jubah?hubhVX which is comparable to the old r r }r(h0X which is comparable to the old h1hubh)r}r(h0X``Simulation``hA}r(hC]hD]hE]hF]hI]uh1hhM]rhVX Simulationrr}r(h0Uh1jubah?hubhVX class.rr}r(h0X class.h1hubeubaubh)r}r(h0X:Improved resource system with newly added resource types. h1hh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X9Improved resource system with newly added resource types.rh1jh:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKK(hM]r!hVX9Improved resource system with newly added resource types.r"r#}r$(h0jh1jubaubaubh)r%}r&(h0X`Removed plotting and GUI capabilities. `Pyside`__ and `matplotlib`__ are much better with this. h1hh:h=h?hhA}r'(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r)}r*(h0X_Removed plotting and GUI capabilities. `Pyside`__ and `matplotlib`__ are much better with this.h1j%h:h=h?h^hA}r+(hC]hD]hE]hF]hI]uhKK*hM]r,(hVX'Removed plotting and GUI capabilities. r-r.}r/(h0X'Removed plotting and GUI capabilities. h1j)ubcdocutils.nodes reference r0)r1}r2(h0X `Pyside`__Uresolvedr3Kh1j)h?U referencer4hA}r5(UnameXPysideUrefurir6X!http://qt-project.org/wiki/PySider7hF]hE]hC]hD]hI]U anonymousr8KuhM]r9hVXPysider:r;}r<(h0Uh1j1ubaubhVX and r=r>}r?(h0X and h1j)ubj0)r@}rA(h0X`matplotlib`__j3Kh1j)h?j4hA}rB(UnameX matplotlibj6Xhttp://matplotlib.org/rChF]hE]hC]hD]hI]j8KuhM]rDhVX matplotlibrErF}rG(h0Uh1j@ubaubhVX are much better with this.rHrI}rJ(h0X are much better with this.h1j)ubeubaubh)rK}rL(h0XWGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous. h1hh:h=h?hhA}rM(hC]hD]hE]hF]hI]uhKNhLhhM]rNhZ)rO}rP(h0XVGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous.rQh1jKh:h=h?h^hA}rR(hC]hD]hE]hF]hI]uhKK-hM]rShVXVGreatly improved test suite. Its cleaner, and the tests are shorter and more numerous.rTrU}rV(h0jQh1jOubaubaubh)rW}rX(h0X%Completely overhauled documentation. h1hh:h=h?hhA}rY(hC]hD]hE]hF]hI]uhKNhLhhM]rZhZ)r[}r\(h0X$Completely overhauled documentation.r]h1jWh:h=h?h^hA}r^(hC]hD]hE]hF]hI]uhKK0hM]r_hVX$Completely overhauled documentation.r`ra}rb(h0j]h1j[ubaubaubeubhZ)rc}rd(h0XThere is a `guide for porting from SimPy 2 to SimPy 3`__. If you want to stick to SimPy 2 for a while, change your requirements to ``'SimPy>=2.3,<3'``.h1h|h:h=h?h^hA}re(hC]hD]hE]hF]hI]uhKK2hLhhM]rf(hVX There is a rgrh}ri(h0X There is a h1jcubj0)rj}rk(h0X-`guide for porting from SimPy 2 to SimPy 3`__j3Kh1jch?j4hA}rl(UnameX)guide for porting from SimPy 2 to SimPy 3j6XOhttps://simpy.readthedocs.org/en/latest/topical_guides/porting_from_simpy2.htmlrmhF]hE]hC]hD]hI]j8KuhM]rnhVX)guide for porting from SimPy 2 to SimPy 3rorp}rq(h0Uh1jjubaubhVXK. If you want to stick to SimPy 2 for a while, change your requirements to rrrs}rt(h0XK. If you want to stick to SimPy 2 for a while, change your requirements to h1jcubh)ru}rv(h0X``'SimPy>=2.3,<3'``hA}rw(hC]hD]hE]hF]hI]uh1jchM]rxhVX'SimPy>=2.3,<3'ryrz}r{(h0Uh1juubah?hubhVX.r|}r}(h0X.h1jcubeubhZ)r~}r(h0X>All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.rh1h|h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKK5hLhhM]rhVX>All in all, SimPy has become a framework for asynchronous programming based on coroutines. It brings more than ten years of experience and scientific know-how in the field of event-discrete simulation to the world of asynchronous programming and should thus be a solid foundation for everything based on an event loop.rr}r(h0jh1j~ubaubhZ)r}r(h0XEYou can find information about older versions on the `history page`__rh1h|h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKK;hLhhM]r(hVX5You can find information about older versions on the rr}r(h0X5You can find information about older versions on the h1jubj0)r}r(h0X`history page`__j3Kh1jh?j4hA}r(UnameX history pagej6X:https://simpy.readthedocs.org/en/latest/about/history.htmlrhF]hE]hC]hD]hI]j8KuhM]rhVX history pagerr}r(h0Uh1jubaubeubcdocutils.nodes target r)r}r(h0X$__ http://qt-project.org/wiki/PySideh5Kh1h|h:h=h?UtargetrhA}r(j6j7hF]rUid2rahE]hC]hD]hI]j8KuhKK=hLhhM]ubj)r}r(h0X__ http://matplotlib.org/h5Kh1h|h:h=h?jhA}r(j6jChF]rUid3rahE]hC]hD]hI]j8KuhKK>hLhhM]ubj)r}r(h0XR__ https://simpy.readthedocs.org/en/latest/topical_guides/porting_from_simpy2.htmlh5Kh1h|h:h=h?jhA}r(j6jmhF]rUid4rahE]hC]hD]hI]j8KuhKK?hLhhM]ubj)r}r(h0X=__ https://simpy.readthedocs.org/en/latest/about/history.htmlh5Kh1h|h:h=h?jhA}r(j6jhF]rUid5rahE]hC]hD]hI]j8KuhKK@hLhhM]ubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUid6rahI]rhauhKKDhLhhM]r(hO)r}r(h0X2.3.1 – 2012-01-28rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKDhLhhM]rhVX2.3.1 – 2012-01-28rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKFhLhhM]r(h)r}r(h0X-[NEW] More improvements on the documentation.rh1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKFhM]rhVX-[NEW] More improvements on the documentation.rr}r(h0jh1jubaubaubh)r}r(h0X<[FIX] Syntax error in tkconsole.py when installing on Py3.2.rh1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKGhM]rhVX<[FIX] Syntax error in tkconsole.py when installing on Py3.2.rr}r(h0jh1jubaubaubh)r}r(h0X6[FIX] Added *mock* to the dep. list in SimPy.test(). h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X4[FIX] Added *mock* to the dep. list in SimPy.test().h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKHhM]r(hVX [FIX] Added rr}r(h0X [FIX] Added h1jubh)r}r(h0X*mock*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXmockrr}r(h0Uh1jubah?hubhVX" to the dep. list in SimPy.test().rr}r(h0X" to the dep. list in SimPy.test().h1jubeubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUid7rahI]rhauhKKLhLhhM]r(hO)r}r(h0X2.3 – 2011-12-24rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKLhLhhM]rhVX2.3 – 2011-12-24rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKNhLhhM]r(h)r}r(h0XI[NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.rh1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKNhM]rhVXI[NEW] Support for Python 3.2. Support for Python <= 2.5 has been dropped.rr }r (h0jh1jubaubaubh)r }r (h0XM[NEW] SimPy.test() method to run the tests on the installed version of SimPy.r h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0j h1j h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKOhM]rhVXM[NEW] SimPy.test() method to run the tests on the installed version of SimPy.rr}r(h0j h1jubaubaubh)r}r(h0X=[NEW] Tutorials/examples were integrated into the test suite.rh1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKPhM]rhVX=[NEW] Tutorials/examples were integrated into the test suite.r r!}r"(h0jh1jubaubaubh)r#}r$(h0Xi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).h1jh:h=h?hhA}r%(hC]hD]hE]hF]hI]uhKNhLhhM]r&hZ)r'}r((h0Xi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).r)h1j#h:h=h?h^hA}r*(hC]hD]hE]hF]hI]uhKKQhM]r+hVXi[CHANGE] Even more code clean-up (e.g., removed prints throughout the code, removed if-main-blocks, ...).r,r-}r.(h0j)h1j'ubaubaubh)r/}r0(h0X+[CHANGE] Many documentation improvements. h1jh:h=h?hhA}r1(hC]hD]hE]hF]hI]uhKNhLhhM]r2hZ)r3}r4(h0X)[CHANGE] Many documentation improvements.r5h1j/h:h=h?h^hA}r6(hC]hD]hE]hF]hI]uhKKShM]r7hVX)[CHANGE] Many documentation improvements.r8r9}r:(h0j5h1j3ubaubaubeubeubh2)r;}r<(h0Uh1h8h:h=h?h@hA}r=(hC]hD]hE]hF]r>Uid8r?ahI]r@h auhKKWhLhhM]rA(hO)rB}rC(h0X2.2 – 2011-09-27rDh1j;h:h=h?hShA}rE(hC]hD]hE]hF]hI]uhKKWhLhhM]rFhVX2.2 – 2011-09-27rGrH}rI(h0jDh1jBubaubh)rJ}rK(h0Uh1j;h:h=h?hhA}rL(hX-hF]hE]hC]hD]hI]uhKKYhLhhM]rM(h)rN}rO(h0X[CHANGE] Restructured package layout to be conform to the `Hitchhiker’s Guide to packaging `_h1jJh:h=h?hhA}rP(hC]hD]hE]hF]hI]uhKNhLhhM]rQhZ)rR}rS(h0X[CHANGE] Restructured package layout to be conform to the `Hitchhiker’s Guide to packaging `_h1jNh:h=h?h^hA}rT(hC]hD]hE]hF]hI]uhKKYhM]rU(hVX:[CHANGE] Restructured package layout to be conform to the rVrW}rX(h0X:[CHANGE] Restructured package layout to be conform to the h1jRubj0)rY}rZ(h0XJ`Hitchhiker’s Guide to packaging `_hA}r[(UnameX!Hitchhiker’s Guide to packagingj6X#http://guide.python-distribute.org/r\hF]hE]hC]hD]hI]uh1jRhM]r]hVX!Hitchhiker’s Guide to packagingr^r_}r`(h0Uh1jYubah?j4ubj)ra}rb(h0X& h5Kh1jRh?jhA}rc(Urefurij\hF]rdUhitchhikers-guide-to-packagingreahE]hC]hD]hI]rfhauhM]ubeubaubh)rg}rh(h0X*[CHANGE] Tests have been ported to pytest.rih1jJh:h=h?hhA}rj(hC]hD]hE]hF]hI]uhKNhLhhM]rkhZ)rl}rm(h0jih1jgh:h=h?h^hA}rn(hC]hD]hE]hF]hI]uhKK[hM]rohVX*[CHANGE] Tests have been ported to pytest.rprq}rr(h0jih1jlubaubaubh)rs}rt(h0X2[CHANGE] Documentation improvements and clean-ups.ruh1jJh:h=h?hhA}rv(hC]hD]hE]hF]hI]uhKNhLhhM]rwhZ)rx}ry(h0juh1jsh:h=h?h^hA}rz(hC]hD]hE]hF]hI]uhKK\hM]r{hVX2[CHANGE] Documentation improvements and clean-ups.r|r}}r~(h0juh1jxubaubaubh)r}r(h0XV[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix. h1jJh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XT[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKK]hM]rhVXT[FIX] Fixed incorrect behavior of Store._put, thanks to Johannes Koomer for the fix.rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUid9rahI]rh auhKKbhLhhM]r(hO)r}r(h0X2.1 – 2010-06-03rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKbhLhhM]rhVX2.1 – 2010-06-03rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKdhLhhM]r(h)r}r(h0X[NEW] A function *step* has been added to the API. When called, it executes the next scheduled event. (*step* is actually a method of *Simulation*.)h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X[NEW] A function *step* has been added to the API. When called, it executes the next scheduled event. (*step* is actually a method of *Simulation*.)h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKdhM]r(hVX[NEW] A function rr}r(h0X[NEW] A function h1jubh)r}r(h0X*step*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXsteprr}r(h0Uh1jubah?hubhVXP has been added to the API. When called, it executes the next scheduled event. (rr}r(h0XP has been added to the API. When called, it executes the next scheduled event. (h1jubh)r}r(h0X*step*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXsteprr}r(h0Uh1jubah?hubhVX is actually a method of rr}r(h0X is actually a method of h1jubh)r}r(h0X *Simulation*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX Simulationrr}r(h0Uh1jubah?hubhVX.)rr}r(h0X.)h1jubeubaubh)r}r(h0X[NEW] Another new function is *peek*. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X[NEW] Another new function is *peek*. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKfhM]r(hVX[NEW] Another new function is rr}r(h0X[NEW] Another new function is h1jubh)r}r(h0X*peek*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXpeekrr}r(h0Uh1jubah?hubhVX. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.rr}r(h0X. It returns the time of the next event. By using peek and step together, one can easily write e.g. an interactive program to step through a simulation event by event.h1jubeubaubh)r}r(h0X[NEW] A simple interactive debugger ``stepping.py`` has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X[NEW] A simple interactive debugger ``stepping.py`` has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKihM]r(hVX$[NEW] A simple interactive debugger rr}r(h0X$[NEW] A simple interactive debugger h1jubh)r}r(h0X``stepping.py``hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX stepping.pyrr}r(h0Uh1jubah?hubhVX has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.rr}r(h0X has been added. It allows stepping through a simulation, with options to skip to a certain time, skip to the next event of a given process, or viewing the event list.h1jubeubaubh)r}r(h0X|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKlhM]rhVX|[NEW] Versions of the Bank tutorials (documents and programs) using the advanced- [NEW] object-oriented API have been added.rr}r(h0jh1jubaubaubh)r}r(h0XY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKnhM]rhVXY[NEW] A new document describes tools for gaining insight into and debugging SimPy models.rr}r(h0jh1jubaubaubh)r }r (h0Xm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.h1jh:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r(h0Xm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.rh1j h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKphM]rhVXm[CHANGE] Major re-structuring of SimPy code, resulting in much less SimPy code – great for the maintainers.rr}r(h0jh1j ubaubaubh)r}r(h0Xc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0Xc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKrhM]rhVXc[CHANGE] Checks have been added which test whether entities belong to the same Simulation instance.rr}r (h0jh1jubaubaubh)r!}r"(h0X[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.h1jh:h=h?hhA}r#(hC]hD]hE]hF]hI]uhKNhLhhM]r$hZ)r%}r&(h0X[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.r'h1j!h:h=h?h^hA}r((hC]hD]hE]hF]hI]uhKKthM]r)hVX[CHANGE] The Monitor and Tally methods timeAverage and timeVariance now calculate only with the observed time-series. No value is assumed for the period prior to the first observation.r*r+}r,(h0j'h1j%ubaubaubh)r-}r.(h0Xu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.h1jh:h=h?hhA}r/(hC]hD]hE]hF]hI]uhKNhLhhM]r0hZ)r1}r2(h0Xu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.r3h1j-h:h=h?h^hA}r4(hC]hD]hE]hF]hI]uhKKwhM]r5hVXu[CHANGE] Changed class Lister so that circular references between objects no longer lead to stack overflow and crash.r6r7}r8(h0j3h1j1ubaubaubh)r9}r:(h0XH[FIX] Functions *allEventNotices* and *allEventTimes* are working again.r;h1jh:h=h?hhA}r<(hC]hD]hE]hF]hI]uhKNhLhhM]r=hZ)r>}r?(h0j;h1j9h:h=h?h^hA}r@(hC]hD]hE]hF]hI]uhKKyhM]rA(hVX[FIX] Functions rBrC}rD(h0X[FIX] Functions h1j>ubh)rE}rF(h0X*allEventNotices*hA}rG(hC]hD]hE]hF]hI]uh1j>hM]rHhVXallEventNoticesrIrJ}rK(h0Uh1jEubah?hubhVX and rLrM}rN(h0X and h1j>ubh)rO}rP(h0X*allEventTimes*hA}rQ(hC]hD]hE]hF]hI]uh1j>hM]rRhVX allEventTimesrSrT}rU(h0Uh1jOubah?hubhVX are working again.rVrW}rX(h0X are working again.h1j>ubeubaubh)rY}rZ(h0X;[FIX] Error messages for methods in SimPy.Lib work again. h1jh:h=h?hhA}r[(hC]hD]hE]hF]hI]uhKNhLhhM]r\hZ)r]}r^(h0X9[FIX] Error messages for methods in SimPy.Lib work again.r_h1jYh:h=h?h^hA}r`(hC]hD]hE]hF]hI]uhKKzhM]rahVX9[FIX] Error messages for methods in SimPy.Lib work again.rbrc}rd(h0j_h1j]ubaubaubeubeubh2)re}rf(h0Uh1h8h:h=h?h@hA}rg(hC]hD]hE]hF]rhUid10riahI]rjh(auhKK~hLhhM]rk(hO)rl}rm(h0X2.0.1 – 2009-04-06rnh1jeh:h=h?hShA}ro(hC]hD]hE]hF]hI]uhKK~hLhhM]rphVX2.0.1 – 2009-04-06rqrr}rs(h0jnh1jlubaubh)rt}ru(h0Uh1jeh:h=h?hhA}rv(hX-hF]hE]hC]hD]hI]uhKKhLhhM]rw(h)rx}ry(h0Xb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).h1jth:h=h?hhA}rz(hC]hD]hE]hF]hI]uhKNhLhhM]r{hZ)r|}r}(h0Xb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).r~h1jxh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXb[NEW] Tests for real time behavior (testRT_Behavior.py and testRT_Behavior_OO.py in folder SimPy).rr}r(h0j~h1j|ubaubaubh)r}r(h0XU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.h1jth:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXU[FIX] Repaired a number of coding errors in several models in the SimPyModels folder.rr}r(h0jh1jubaubaubh)r}r(h0XI[FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.rh1jth:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXI[FIX] Repaired SimulationRT.py bug introduced by recoding for the OO API.rr}r(h0jh1jubaubaubh)r}r(h0X [FIX] Repaired errors in sample programs in documents: - Simulation with SimPy - In Depth Manual - SimPy’s Object Oriented API Manual - Simulation With Real Time Synchronization Manual - SimPlot Manual - Publication-quality Plot Production With Matplotlib Manual h1jth:Nh?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0X6[FIX] Repaired errors in sample programs in documents:rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX6[FIX] Repaired errors in sample programs in documents:rr}r(h0jh1jubaubh)r}r(h0UhA}r(hX-hF]hE]hC]hD]hI]uh1jhM]r(h)r}r(h0X'Simulation with SimPy - In Depth ManualrhA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX'Simulation with SimPy - In Depth Manualrr}r(h0jh1jubaubah?hubh)r}r(h0X$SimPy’s Object Oriented API ManualrhA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX$SimPy’s Object Oriented API Manualrr}r(h0jh1jubaubah?hubh)r}r(h0X0Simulation With Real Time Synchronization ManualrhA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX0Simulation With Real Time Synchronization Manualrr}r(h0jh1jubaubah?hubh)r}r(h0XSimPlot ManualrhA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0jh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXSimPlot Manualrr}r(h0jh1jubaubah?hubh)r}r(h0X<Publication-quality Plot Production With Matplotlib Manual hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0X:Publication-quality Plot Production With Matplotlib Manualrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX:Publication-quality Plot Production With Matplotlib Manualrr}r(h0jh1jubaubah?hubeh?hubeubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUid11rahI]rhauhKKhLhhM]r(hO)r}r(h0X2.0.0 – 2009-01-26rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVX2.0.0 – 2009-01-26rr}r(h0jh1jubaubhZ)r}r(h0XThis is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVXThis is a major release with changes to the SimPy application programming interface (API) and the formatting of the documentation.rr}r(h0jh1jubaubh2)r}r(h0Uh1jh:h=h?h@hA}r(hC]hD]hE]hF]rU api-changesrahI]rhauhKKhLhhM]r(hO)r}r(h0X API changesrh1jh:h=h?hShA}r (hC]hD]hE]hF]hI]uhKKhLhhM]r hVX API changesr r }r (h0jh1jubaubhZ)r}r(h0X^In addition to its existing API, SimPy now also has an object oriented API. The additional APIrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVX^In addition to its existing API, SimPy now also has an object oriented API. The additional APIrr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKhLhhM]r(h)r}r(h0XKallows running SimPy in parallel on multiple processors or multi-core CPUs,rh1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r (h0jh1jh:h=h?h^hA}r!(hC]hD]hE]hF]hI]uhKKhM]r"hVXKallows running SimPy in parallel on multiple processors or multi-core CPUs,r#r$}r%(h0jh1jubaubaubh)r&}r'(h0X.supports better structuring of SimPy programs,r(h1jh:h=h?hhA}r)(hC]hD]hE]hF]hI]uhKNhLhhM]r*hZ)r+}r,(h0j(h1j&h:h=h?h^hA}r-(hC]hD]hE]hF]hI]uhKKhM]r.hVX.supports better structuring of SimPy programs,r/r0}r1(h0j(h1j+ubaubaubh)r2}r3(h0Xallows subclassing of class *Simulation* and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh1jh:h=h?hhA}r4(hC]hD]hE]hF]hI]uhKNhLhhM]r5hZ)r6}r7(h0Xallows subclassing of class *Simulation* and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh1j2h:h=h?h^hA}r8(hC]hD]hE]hF]hI]uhKKhM]r9(hVXallows subclassing of class r:r;}r<(h0Xallows subclassing of class h1j6ubh)r=}r>(h0X *Simulation*hA}r?(hC]hD]hE]hF]hI]uh1j6hM]r@hVX SimulationrArB}rC(h0Uh1j=ubah?hubhVXq and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andrDrE}rF(h0Xq and thus provides users with the capability of creating new simulation modes/libraries like SimulationTrace, andh1j6ubeubaubh)rG}rH(h0XNreduces the total amount of SimPy code, thereby making it easier to maintain. h1jh:h=h?hhA}rI(hC]hD]hE]hF]hI]uhKNhLhhM]rJhZ)rK}rL(h0XMreduces the total amount of SimPy code, thereby making it easier to maintain.rMh1jGh:h=h?h^hA}rN(hC]hD]hE]hF]hI]uhKKhM]rOhVXMreduces the total amount of SimPy code, thereby making it easier to maintain.rPrQ}rR(h0jMh1jKubaubaubeubhZ)rS}rT(h0X_Note that the OO API is **in addition** to the old API. SimPy 2.0 is fully backward compatible.h1jh:h=h?h^hA}rU(hC]hD]hE]hF]hI]uhKKhLhhM]rV(hVXNote that the OO API is rWrX}rY(h0XNote that the OO API is h1jSubcdocutils.nodes strong rZ)r[}r\(h0X**in addition**hA}r](hC]hD]hE]hF]hI]uh1jShM]r^hVX in additionr_r`}ra(h0Uh1j[ubah?UstrongrbubhVX8 to the old API. SimPy 2.0 is fully backward compatible.rcrd}re(h0X8 to the old API. SimPy 2.0 is fully backward compatible.h1jSubeubeubh2)rf}rg(h0Uh1jh:h=h?h@hA}rh(hC]hD]hE]hF]riUdocumentation-format-changesrjahI]rkh'auhKKhLhhM]rl(hO)rm}rn(h0XDocumentation format changesroh1jfh:h=h?hShA}rp(hC]hD]hE]hF]hI]uhKKhLhhM]rqhVXDocumentation format changesrrrs}rt(h0joh1jmubaubhZ)ru}rv(h0XSimPy's documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.rwh1jfh:h=h?h^hA}rx(hC]hD]hE]hF]hI]uhKKhLhhM]ryhVXSimPy's documentation has been restructured and processed by the Sphinx documentation generation tool. This has generated one coherent, well structured document which can be easily browsed. A seach capability is included.rzr{}r|(h0jwh1juubaubeubeubh2)r}}r~(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUmarch-2008-version-1-9-1rahI]rhauhKKhLhhM]r(hO)r}r(h0XMarch 2008: Version 1.9.1rh1j}h:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVXMarch 2008: Version 1.9.1rr}r(h0jh1jubaubhZ)r}r(h0X9This is a bug-fix release which cures the following bugs:rh1j}h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVX9This is a bug-fix release which cures the following bugs:rr}r(h0jh1jubaubh)r}r(h0Uh1j}h:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKhLhhM]r(h)r}r(h0XExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXExcessive production of circular garbage, due to a circular reference between Process instances and event notices. This led to large memory requirements.rr}r(h0jh1jubaubaubh)r}r(h0XKRuntime error for preempts of proceeses holding multiple Resource objects. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XJRuntime error for preempts of proceeses holding multiple Resource objects.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXJRuntime error for preempts of proceeses holding multiple Resource objects.rr}r(h0jh1jubaubaubeubhZ)r}r(h0XKIt also adds a Short Manual, describing only the basic facilities of SimPy.rh1j}h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVXKIt also adds a Short Manual, describing only the basic facilities of SimPy.rr}r(h0jh1jubaubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUdecember-2007-version-1-9rahI]rh$auhKKhLhhM]r(hO)r}r(h0XDecember 2007: Version 1.9rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVXDecember 2007: Version 1.9rr}r(h0jh1jubaubhZ)r}r(h0XRThis is a major release with added functionality/new user API calls and bug fixes.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVXRThis is a major release with added functionality/new user API calls and bug fixes.rr}r(h0jh1jubaubh2)r}r(h0Uh5Kh1jh:h=h?h@hA}r(hC]rX major changesrahD]hE]hF]rU major-changesrahI]uhKKhLhhM]r(hO)r}r(h0X Major changesrh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVX Major changesrr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKhLhhM]r(h)r}r(h0XPThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea! h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XOThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea!rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXOThe event list handling has been changed to improve the runtime performance of large SimPy models (models with thousands of processes). The use of dictionaries for timestamps has been stopped. Thanks are due to Prof. Norm Matloff and a team of his students who did a study on improving SimPy performance. This was one of their recommendations. Thanks, Norm and guys! Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'. Finally, cancelling events no longer removes them, but rather marks them. When their event time comes, they are ignored. This was Tony Vignaux' idea!rr}r(h0jh1jubaubaubh)r}r(h0X?The Manual has been edited and given an easier-to-read layout. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X>The Manual has been edited and given an easier-to-read layout.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVX>The Manual has been edited and given an easier-to-read layout.rr}r(h0jh1jubaubaubh)r}r(h0XcThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XbThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKKhM]rhVXbThe Bank2 tutorial has been extended by models which use more advanced SimPy commands/constructs.rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh5Kh1jh:h=h?h@hA}r (hC]r X bug fixesr ahD]hE]hF]r U bug-fixesr ahI]uhKKhLhhM]r(hO)r}r(h0X Bug fixesrh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKKhLhhM]rhVX Bug fixesrr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKKhLhhM]rh)r}r(h0X7The tracing of 'activate' statements has been enabled. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r (h0X6The tracing of 'activate' statements has been enabled.r!h1jh:h=h?h^hA}r"(hC]hD]hE]hF]hI]uhKKhM]r#hVX6The tracing of 'activate' statements has been enabled.r$r%}r&(h0j!h1jubaubaubaubeubh2)r'}r((h0Uh5Kh1jh:h=h?h@hA}r)(hC]r*X additionsr+ahD]hE]hF]r,U additionsr-ahI]uhKKhLhhM]r.(hO)r/}r0(h0X Additionsr1h1j'h:h=h?hShA}r2(hC]hD]hE]hF]hI]uhKKhLhhM]r3hVX Additionsr4r5}r6(h0j1h1j/ubaubh)r7}r8(h0Uh1j'h:h=h?hhA}r9(hX-hF]hE]hC]hD]hI]uhKKhLhhM]r:(h)r;}r<(h0XkA method returning the time-weighted variance of observations has been added to classes Monitor and Tally. h1j7h:h=h?hhA}r=(hC]hD]hE]hF]hI]uhKNhLhhM]r>hZ)r?}r@(h0XjA method returning the time-weighted variance of observations has been added to classes Monitor and Tally.rAh1j;h:h=h?h^hA}rB(hC]hD]hE]hF]hI]uhKKhM]rChVXjA method returning the time-weighted variance of observations has been added to classes Monitor and Tally.rDrE}rF(h0jAh1j?ubaubaubh)rG}rH(h0XNA shortcut activation method called "start" has been added to class Process. h1j7h:h=h?hhA}rI(hC]hD]hE]hF]hI]uhKNhLhhM]rJhZ)rK}rL(h0XLA shortcut activation method called "start" has been added to class Process.rMh1jGh:h=h?h^hA}rN(hC]hD]hE]hF]hI]uhKKhM]rOhVXLA shortcut activation method called "start" has been added to class Process.rPrQ}rR(h0jMh1jKubaubaubeubeubeubh6h2)rS}rT(h0Uh1h8h:h=h?h@hA}rU(hC]hD]hE]hF]rVUjune-2006-version-1-7-1rWahI]rXhauhKMhLhhM]rY(hO)rZ}r[(h0XJune 2006: Version 1.7.1r\h1jSh:h=h?hShA}r](hC]hD]hE]hF]hI]uhKMhLhhM]r^hVXJune 2006: Version 1.7.1r_r`}ra(h0j\h1jZubaubhZ)rb}rc(h0XEThis is a maintenance release. The API has not been changed/added to.rdh1jSh:h=h?h^hA}re(hC]hD]hE]hF]hI]uhKMhLhhM]rfhVXEThis is a maintenance release. The API has not been changed/added to.rgrh}ri(h0jdh1jbubaubh)rj}rk(h0Uh1jSh:h=h?hhA}rl(hX-hF]hE]hC]hD]hI]uhKMhLhhM]rm(h)rn}ro(h0XRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer). h1jjh:h=h?hhA}rp(hC]hD]hE]hF]hI]uhKNhLhhM]rqhZ)rr}rs(h0XRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).rth1jnh:h=h?h^hA}ru(hC]hD]hE]hF]hI]uhKMhM]rvhVXRepair of a bug in the _get methods of Store and Level which could lead to synchronization problems (blocking of producer processes, despite space being available in the buffer).rwrx}ry(h0jth1jrubaubaubh)rz}r{(h0X\Repair of Level __init__ method to allow initialBuffered to be of either float or int type. h1jjh:h=h?hhA}r|(hC]hD]hE]hF]hI]uhKNhLhhM]r}hZ)r~}r(h0X[Repair of Level __init__ method to allow initialBuffered to be of either float or int type.rh1jzh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVX[Repair of Level __init__ method to allow initialBuffered to be of either float or int type.rr}r(h0jh1j~ubaubaubh)r}r(h0X^Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float. h1jjh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X]Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVX]Addition of type test for Level get parameter 'nrToGet' to limit it to positive int or float.rr}r(h0jh1jubaubaubh)r}r(h0XTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property). h1jjh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM hM]rhVXTo improve pretty-printed output of 'Level' objects, changed attribute '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).rr}r(h0jh1jubaubaubh)r}r(h0X{To improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute). h1jjh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XyTo improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute).rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM#hM]rhVXyTo improve pretty-printed output of 'Store' objects, added attribute 'buffered' (which refers to '_theBuffer' attribute).rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUfebruary-2006-version-1-7rahI]rhauhKM(hLhhM]r(hO)r}r(h0XFebruary 2006: Version 1.7rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKM(hLhhM]rhVXFebruary 2006: Version 1.7rr}r(h0jh1jubaubhZ)r}r(h0XThis is a major release.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM*hLhhM]rhVXThis is a major release.rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKM,hLhhM]r(h)r}r(h0XAddition of an abstract class Buffer, with two sub-classes *Store* and *Level* Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XAddition of an abstract class Buffer, with two sub-classes *Store* and *Level* Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM,hM]r(hVX;Addition of an abstract class Buffer, with two sub-classes rr}r(h0X;Addition of an abstract class Buffer, with two sub-classes h1jubh)r}r(h0X*Store*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXStorerr}r(h0Uh1jubah?hubhVX and rr}r(h0X and h1jubh)r}r(h0X*Level*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXLevelrr}r(h0Uh1jubah?hubhVX| Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.rr}r(h0X| Buffers are used for modelling inter-process synchronization in producer/ consumer and multi-process cooperation scenarios.h1jubeubaubh)r}r(h0XAddition of two new *yield* statements: + *yield put* for putting items into a buffer, and + *yield get* for getting items from a buffer. h1jh:Nh?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0X'Addition of two new *yield* statements:h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM0hM]r(hVXAddition of two new rr}r(h0XAddition of two new h1jubh)r}r(h0X*yield*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXyieldrr}r(h0Uh1jubah?hubhVX statements:rr}r(h0X statements:h1jubeubh)r}r(h0UhA}r(hX+hF]hE]hC]hD]hI]uh1jhM]r(h)r}r(h0X1*yield put* for putting items into a buffer, and hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0X0*yield put* for putting items into a buffer, andh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM2hM]r(h)r}r(h0X *yield put*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX yield putr r }r (h0Uh1jubah?hubhVX% for putting items into a buffer, andr r }r(h0X% for putting items into a buffer, andh1jubeubah?hubh)r}r(h0X-*yield get* for getting items from a buffer. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0X,*yield get* for getting items from a buffer.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM4hM]r(h)r}r(h0X *yield get*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX yield getrr}r(h0Uh1jubah?hubhVX! for getting items from a buffer.rr}r (h0X! for getting items from a buffer.h1jubeubah?hubeh?hubeubh)r!}r"(h0X0The Manual has undergone a major re-write/edit. h1jh:h=h?hhA}r#(hC]hD]hE]hF]hI]uhKNhLhhM]r$hZ)r%}r&(h0X/The Manual has undergone a major re-write/edit.r'h1j!h:h=h?h^hA}r((hC]hD]hE]hF]hI]uhKM6hM]r)hVX/The Manual has undergone a major re-write/edit.r*r+}r,(h0j'h1j%ubaubaubh)r-}r.(h0XFAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all *import* statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation. h1jh:h=h?hhA}r/(hC]hD]hE]hF]hI]uhKNhLhhM]r0hZ)r1}r2(h0XEAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all *import* statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.h1j-h:h=h?h^hA}r3(hC]hD]hE]hF]hI]uhKM8hM]r4(hVXjAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all r5r6}r7(h0XjAll scripts have been restructured for compatibility with IronPython 1 beta2. This was doen by moving all h1j1ubh)r8}r9(h0X*import*hA}r:(hC]hD]hE]hF]hI]uh1j1hM]r;hVXimportr<r=}r>(h0Uh1j8ubah?hubhVX statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.r?r@}rA(h0X statements to the beginning of the scripts. After the removal of the first (shebang) line, all scripts (with the exception of plotting and GUI scripts) can run successfully under this new Python implementation.h1j1ubeubaubeubeubh2)rB}rC(h0Uh1h8h:h=h?h@hA}rD(hC]hD]hE]hF]rEUseptember-2005-version-1-6-1rFahI]rGhauhKM?hLhhM]rH(hO)rI}rJ(h0XSeptember 2005: Version 1.6.1rKh1jBh:h=h?hShA}rL(hC]hD]hE]hF]hI]uhKM?hLhhM]rMhVXSeptember 2005: Version 1.6.1rNrO}rP(h0jKh1jIubaubhZ)rQ}rR(h0XThis is a minor release.rSh1jBh:h=h?h^hA}rT(hC]hD]hE]hF]hI]uhKMAhLhhM]rUhVXThis is a minor release.rVrW}rX(h0jSh1jQubaubh)rY}rZ(h0Uh1jBh:h=h?hhA}r[(hX-hF]hE]hC]hD]hI]uhKMChLhhM]r\(h)r]}r^(h0XAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor. h1jYh:h=h?hhA}r_(hC]hD]hE]hF]hI]uhKNhLhhM]r`hZ)ra}rb(h0XAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.rch1j]h:h=h?h^hA}rd(hC]hD]hE]hF]hI]uhKMChM]rehVXAddition of Tally data collection class as alternative to Monitor. It is intended for collecting very large data sets more efficiently in storage space and time than Monitor.rfrg}rh(h0jch1jaubaubaubh)ri}rj(h0X[Change of Resource to work with Tally (new Resource API is backwards-compatible with 1.6). h1jYh:h=h?hhA}rk(hC]hD]hE]hF]hI]uhKNhLhhM]rlhZ)rm}rn(h0XZChange of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).roh1jih:h=h?h^hA}rp(hC]hD]hE]hF]hI]uhKMGhM]rqhVXZChange of Resource to work with Tally (new Resource API is backwards-compatible with 1.6).rrrs}rt(h0joh1jmubaubaubh)ru}rv(h0XPAddition of function setHistogram to class Monitor for initializing histograms. h1jYh:h=h?hhA}rw(hC]hD]hE]hF]hI]uhKNhLhhM]rxhZ)ry}rz(h0XOAddition of function setHistogram to class Monitor for initializing histograms.r{h1juh:h=h?h^hA}r|(hC]hD]hE]hF]hI]uhKMJhM]r}hVXOAddition of function setHistogram to class Monitor for initializing histograms.r~r}r(h0j{h1jyubaubaubh)r}r(h0XNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances. h1jYh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMMhM]rhVXNew function allEventNotices() for debugging/teaching purposes. It returns a prettyprinted string with event times and names of process instances.rr}r(h0jh1jubaubaubh)r}r(h0XRAddition of function allEventTimes (returns event times of all scheduled events). h1jYh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XQAddition of function allEventTimes (returns event times of all scheduled events).rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMPhM]rhVXQAddition of function allEventTimes (returns event times of all scheduled events).rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUjune-2005-version-1-6rahI]rh%auhKMThLhhM]r(hO)r}r(h0X15 June 2005: Version 1.6rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMThLhhM]rhVX15 June 2005: Version 1.6rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMVhLhhM]r(h)r}r(h0XtAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XsAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMVhM]rhVXsAddition of two compound yield statement forms to support the modelling of processes reneging from resource queues.rr}r(h0jh1jubaubaubh)r}r(h0XPAddition of two test/demo files showing the use of the new reneging statements. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XOAddition of two test/demo files showing the use of the new reneging statements.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMYhM]rhVXOAddition of two test/demo files showing the use of the new reneging statements.rr}r(h0jh1jubaubaubh)r}r(h0XKAddition of test for prior simulation initialization in method activate(). h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XJAddition of test for prior simulation initialization in method activate().rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM[hM]rhVXJAddition of test for prior simulation initialization in method activate().rr}r(h0jh1jubaubaubh)r}r(h0XLRepair of bug in monitoring thw waitQ of a resource when preemption occurs. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XKRepair of bug in monitoring thw waitQ of a resource when preemption occurs.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM]hM]rhVXKRepair of bug in monitoring thw waitQ of a resource when preemption occurs.rr}r(h0jh1jubaubaubh)r}r(h0X6Major restructuring/editing to Manual and Cheatsheet. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X5Major restructuring/editing to Manual and Cheatsheet.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM_hM]rhVX5Major restructuring/editing to Manual and Cheatsheet.rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUfebruary-2005-version-1-5-1rahI]rh#auhKMbhLhhM]r(hO)r}r(h0X1 February 2005: Version 1.5.1rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMbhLhhM]rhVX1 February 2005: Version 1.5.1rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMdhLhhM]r(h)r}r(h0X MAJOR LICENSE CHANGE: Starting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0XMAJOR LICENSE CHANGE:rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMdhM]rhVXMAJOR LICENSE CHANGE:rr}r(h0jh1jubaubcdocutils.nodes block_quote r)r}r (h0UhA}r (hC]hD]hE]hF]hI]uh1jhM]r hZ)r }r (h0XStarting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMfhM]rhVXStarting with this version 1.5.1, SimPy is being release under the GNU Lesser General Public License (LGPL), instead of the GNU GPL. This change has been made to encourage commercial firms to use SimPy in for-profit work.rr}r(h0jh1j ubaubah?U block_quoterubeubh)r}r(h0XMinor re-release h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XMinor re-releaserh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMkhM]rhVXMinor re-releaserr}r (h0jh1jubaubaubh)r!}r"(h0X$No additional/changed functionality h1jh:h=h?hhA}r#(hC]hD]hE]hF]hI]uhKNhLhhM]r$hZ)r%}r&(h0X#No additional/changed functionalityr'h1j!h:h=h?h^hA}r((hC]hD]hE]hF]hI]uhKMmhM]r)hVX#No additional/changed functionalityr*r+}r,(h0j'h1j%ubaubaubh)r-}r.(h0XUIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5 h1jh:h=h?hhA}r/(hC]hD]hE]hF]hI]uhKNhLhhM]r0hZ)r1}r2(h0XTIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5r3h1j-h:h=h?h^hA}r4(hC]hD]hE]hF]hI]uhKMohM]r5hVXTIncludes unit test file'MonitorTest.py' which had been accidentally deleted from 1.5r6r7}r8(h0j3h1j1ubaubaubh)r9}r:(h0X2Provides updated version of 'Bank.html' tutorial. h1jh:h=h?hhA}r;(hC]hD]hE]hF]hI]uhKNhLhhM]r<hZ)r=}r>(h0X1Provides updated version of 'Bank.html' tutorial.r?h1j9h:h=h?h^hA}r@(hC]hD]hE]hF]hI]uhKMrhM]rAhVX1Provides updated version of 'Bank.html' tutorial.rBrC}rD(h0j?h1j=ubaubaubh)rE}rF(h0XProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5. h1jh:h=h?hhA}rG(hC]hD]hE]hF]hI]uhKNhLhhM]rHhZ)rI}rJ(h0XProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5.rKh1jEh:h=h?h^hA}rL(hC]hD]hE]hF]hI]uhKMthM]rMhVXProvides an additional tutorial ('Bank2.html') which shows how to use the new synchronization constructs introduced in SimPy 1.5.rNrO}rP(h0jKh1jIubaubaubh)rQ}rR(h0X2More logical, cleaner version numbering in files. h1jh:h=h?hhA}rS(hC]hD]hE]hF]hI]uhKNhLhhM]rThZ)rU}rV(h0X1More logical, cleaner version numbering in files.rWh1jQh:h=h?h^hA}rX(hC]hD]hE]hF]hI]uhKMwhM]rYhVX1More logical, cleaner version numbering in files.rZr[}r\(h0jWh1jUubaubaubeubeubh2)r]}r^(h0Uh1h8h:h=h?h@hA}r_(hC]hD]hE]hF]r`Udecember-2004-version-1-5raahI]rbh auhKMzhLhhM]rc(hO)rd}re(h0X1 December 2004: Version 1.5rfh1j]h:h=h?hShA}rg(hC]hD]hE]hF]hI]uhKMzhLhhM]rhhVX1 December 2004: Version 1.5rirj}rk(h0jfh1jdubaubh)rl}rm(h0Uh1j]h:h=h?hhA}rn(hX-hF]hE]hC]hD]hI]uhKM|hLhhM]ro(h)rp}rq(h0X7No new functionality/API changes relative to 1.5 alpha h1jlh:h=h?hhA}rr(hC]hD]hE]hF]hI]uhKNhLhhM]rshZ)rt}ru(h0X6No new functionality/API changes relative to 1.5 alpharvh1jph:h=h?h^hA}rw(hC]hD]hE]hF]hI]uhKM|hM]rxhVX6No new functionality/API changes relative to 1.5 alpharyrz}r{(h0jvh1jtubaubaubh)r|}r}(h0X<Repaired bug related to waiting/queuing for multiple events h1jlh:h=h?hhA}r~(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0X;Repaired bug related to waiting/queuing for multiple eventsrh1j|h:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKM~hM]rhVX;Repaired bug related to waiting/queuing for multiple eventsrr}r(h0jh1jubaubaubh)r}r(h0XISimulationRT: Improved synchronization with wallclock time on Unix/Linux h1jlh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XHSimulationRT: Improved synchronization with wallclock time on Unix/Linuxrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXHSimulationRT: Improved synchronization with wallclock time on Unix/Linuxrr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUseptember-2004-version-1-5alpharahI]rhauhKMhLhhM]r(hO)r}r(h0X#25 September 2004: Version 1.5alpharh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMhLhhM]rhVX#25 September 2004: Version 1.5alpharr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMhLhhM]r(h)r}r(h0XNew functionality/API additions * SimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands. * A general "wait until" synchronization construct, with the 'yield waituntil' command. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0XNew functionality/API additionsrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXNew functionality/API additionsrr}r(h0jh1jubaubj)r}r(h0UhA}r(hC]hD]hE]hF]hI]uh1jhM]rh)r}r(h0UhA}r(hX*hF]hE]hC]hD]hI]uh1jhM]r(h)r}r(h0XmSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0XlSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXlSimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.rr}r(h0jh1jubaubah?hubh)r}r(h0XVA general "wait until" synchronization construct, with the 'yield waituntil' command. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0XUA general "wait until" synchronization construct, with the 'yield waituntil' command.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXUA general "wait until" synchronization construct, with the 'yield waituntil' command.rr}r(h0jh1jubaubah?hubeh?hubah?jubeubh)r}r(h0XBNo changes to 1.4.x API, i.e., existing code will work as before. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XANo changes to 1.4.x API, i.e., existing code will work as before.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXANo changes to 1.4.x API, i.e., existing code will work as before.rr}r(h0jh1jubaubaubeubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUmay-2004-version-1-4-2rahI]rhauhKMhLhhM]r(hO)r}r(h0X19 May 2004: Version 1.4.2rh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMhLhhM]rhVX19 May 2004: Version 1.4.2rr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMhLhhM]r(h)r}r(h0XSub-release to repair two bugs: * The unittest for monitored Resource queues does not fail anymore. * SimulationTrace now works correctly with "yield hold,self" form. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0XSub-release to repair two bugs:rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXSub-release to repair two bugs:rr}r(h0jh1jubaubj)r}r(h0UhA}r(hC]hD]hE]hF]hI]uh1jhM]rh)r}r(h0UhA}r(hX*hF]hE]hC]hD]hI]uh1jhM]r(h)r}r(h0XBThe unittest for monitored Resource queues does not fail anymore. hA}r(hC]hD]hE]hF]hI]uh1jhM]r hZ)r }r (h0XAThe unittest for monitored Resource queues does not fail anymore.r h1jh:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]rhVXAThe unittest for monitored Resource queues does not fail anymore.rr}r(h0j h1j ubaubah?hubh)r}r(h0XASimulationTrace now works correctly with "yield hold,self" form. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0X@SimulationTrace now works correctly with "yield hold,self" form.rh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVX@SimulationTrace now works correctly with "yield hold,self" form.rr}r(h0jh1jubaubah?hubeh?hubah?jubeubh)r}r(h0XNo functional or API changes h1jh:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r!hZ)r"}r#(h0XNo functional or API changesr$h1jh:h=h?h^hA}r%(hC]hD]hE]hF]hI]uhKMhM]r&hVXNo functional or API changesr'r(}r)(h0j$h1j"ubaubaubeubeubh2)r*}r+(h0Uh1h8h:h=h?h@hA}r,(hC]hD]hE]hF]r-Ufebruary-2004-version-1-4-1r.ahI]r/h"auhKMhLhhM]r0(hO)r1}r2(h0X29 February 2004: Version 1.4.1r3h1j*h:h=h?hShA}r4(hC]hD]hE]hF]hI]uhKMhLhhM]r5hVX29 February 2004: Version 1.4.1r6r7}r8(h0j3h1j1ubaubh)r9}r:(h0Uh1j*h:h=h?hhA}r;(hX-hF]hE]hC]hD]hI]uhKMhLhhM]r<(h)r=}r>(h0XSub-release to repair two bugs: * The (optional) monitoring of the activeQ in Resource now works correctly. * The "cellphone.py" example is now implemented correctly. h1j9h:h=h?hhA}r?(hC]hD]hE]hF]hI]uhKNhLhhM]r@(hZ)rA}rB(h0XSub-release to repair two bugs:rCh1j=h:h=h?h^hA}rD(hC]hD]hE]hF]hI]uhKMhM]rEhVXSub-release to repair two bugs:rFrG}rH(h0jCh1jAubaubj)rI}rJ(h0UhA}rK(hC]hD]hE]hF]hI]uh1j=hM]rLh)rM}rN(h0UhA}rO(hX*hF]hE]hC]hD]hI]uh1jIhM]rP(h)rQ}rR(h0XJThe (optional) monitoring of the activeQ in Resource now works correctly. hA}rS(hC]hD]hE]hF]hI]uh1jMhM]rThZ)rU}rV(h0XIThe (optional) monitoring of the activeQ in Resource now works correctly.rWh1jQh:h=h?h^hA}rX(hC]hD]hE]hF]hI]uhKMhM]rYhVXIThe (optional) monitoring of the activeQ in Resource now works correctly.rZr[}r\(h0jWh1jUubaubah?hubh)r]}r^(h0X9The "cellphone.py" example is now implemented correctly. hA}r_(hC]hD]hE]hF]hI]uh1jMhM]r`hZ)ra}rb(h0X8The "cellphone.py" example is now implemented correctly.rch1j]h:h=h?h^hA}rd(hC]hD]hE]hF]hI]uhKMhM]rehVX8The "cellphone.py" example is now implemented correctly.rfrg}rh(h0jch1jaubaubah?hubeh?hubah?jubeubh)ri}rj(h0XNo functional or API changes h1j9h:h=h?hhA}rk(hC]hD]hE]hF]hI]uhKNhLhhM]rlhZ)rm}rn(h0XNo functional or API changesroh1jih:h=h?h^hA}rp(hC]hD]hE]hF]hI]uhKMhM]rqhVXNo functional or API changesrrrs}rt(h0joh1jmubaubaubeubeubh2)ru}rv(h0Uh1h8h:h=h?h@hA}rw(hC]hD]hE]hF]rxUfebruary-2004-version-1-4ryahI]rzh&auhKMhLhhM]r{(hO)r|}r}(h0X1 February 2004: Version 1.4r~h1juh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMhLhhM]rhVX1 February 2004: Version 1.4rr}r(h0j~h1j|ubaubh)r}r(h0Uh1juh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMhLhhM]rh)r}r(h0XReleased on SourceForge.net h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]rhZ)r}r(h0XReleased on SourceForge.netrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXReleased on SourceForge.netrr}r(h0jh1jubaubaubaubeubh2)r}r(h0Uh1h8h:h=h?h@hA}r(hC]hD]hE]hF]rUdecember-2003-version-1-4-alpharahI]rh!auhKMhLhhM]r(hO)r}r(h0X#22 December 2003: Version 1.4 alpharh1jh:h=h?hShA}r(hC]hD]hE]hF]hI]uhKMhLhhM]rhVX#22 December 2003: Version 1.4 alpharr}r(h0jh1jubaubh)r}r(h0Uh1jh:h=h?hhA}r(hX-hF]hE]hC]hD]hI]uhKMhLhhM]rh)r}r(h0XNew functionality/API changes * All classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly. * Module *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*. * Some *Monitor* methods/attributes have changed. See Manual! * *Monitor* now inherits from *list*. * A class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules. * A module *SimulationRT* has been added which allows synchronization between simulated and wallclock time. * A moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event. * A Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework. * A Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs. h1jh:h=h?hhA}r(hC]hD]hE]hF]hI]uhKNhLhhM]r(hZ)r}r(h0XNew functionality/API changesrh1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]rhVXNew functionality/API changesrr}r(h0jh1jubaubj)r}r(h0UhA}r(hC]hD]hE]hF]hI]uh1jhM]r(j)r}r(h0UhA}r(hC]hD]hE]hF]hI]uh1jhM]rh)r}r(h0UhA}r(hX*hF]hE]hC]hD]hI]uh1jhM]r(h)r}r(h0XxAll classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0XwAll classes in the SimPy API are now new style classes, i.e., they inherit from *object* either directly or indirectly.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]r(hVXPAll classes in the SimPy API are now new style classes, i.e., they inherit from rr}r(h0XPAll classes in the SimPy API are now new style classes, i.e., they inherit from h1jubh)r}r(h0X*object*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXobjectrr}r(h0Uh1jubah?hubhVX either directly or indirectly.rr}r(h0X either directly or indirectly.h1jubeubah?hubh)r}r(h0XModule *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*. hA}r(hC]hD]hE]hF]hI]uh1jhM]rhZ)r}r(h0XModule *Monitor.py* has been merged into module *Simulation.py* and all *SimulationXXX.py* modules. Import of *Simulation* or any *SimulationXXX* module now also imports *Monitor*.h1jh:h=h?h^hA}r(hC]hD]hE]hF]hI]uhKMhM]r(hVXModule rr}r(h0XModule h1jubh)r}r(h0X *Monitor.py*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX Monitor.pyrr}r(h0Uh1jubah?hubhVX has been merged into module rr}r(h0X has been merged into module h1jubh)r}r(h0X*Simulation.py*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVX Simulation.pyrr}r(h0Uh1jubah?hubhVX and all rr}r(h0X and all h1jubh)r}r(h0X*SimulationXXX.py*hA}r(hC]hD]hE]hF]hI]uh1jhM]rhVXSimulationXXX.pyrr}r(h0Uh1jubah?hubhVX modules. Import of rr}r(h0X modules. Import of h1jubh)r}r(h0X *Simulation*hA}r(hC]hD]hE]hF]hI]uh1jhM]r hVX Simulationr r }r (h0Uh1jubah?hubhVX or any r r }r (h0X or any h1jubh)r }r (h0X*SimulationXXX*hA}r (hC]hD]hE]hF]hI]uh1jhM]r hVX SimulationXXXr r }r (h0Uh1j ubah?hubhVX module now also imports r r }r (h0X module now also imports h1jubh)r }r (h0X *Monitor*hA}r (hC]hD]hE]hF]hI]uh1jhM]r hVXMonitorr r }r (h0Uh1j ubah?hubhVX.r }r (h0X.h1jubeubah?hubh)r }r (h0X<Some *Monitor* methods/attributes have changed. See Manual! hA}r (hC]hD]hE]hF]hI]uh1jhM]r hZ)r }r (h0X;Some *Monitor* methods/attributes have changed. See Manual!h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r! (hVXSome r" r# }r$ (h0XSome h1j ubh)r% }r& (h0X *Monitor*hA}r' (hC]hD]hE]hF]hI]uh1j hM]r( hVXMonitorr) r* }r+ (h0Uh1j% ubah?hubhVX- methods/attributes have changed. See Manual!r, r- }r. (h0X- methods/attributes have changed. See Manual!h1j ubeubah?hubh)r/ }r0 (h0X$*Monitor* now inherits from *list*. hA}r1 (hC]hD]hE]hF]hI]uh1jhM]r2 hZ)r3 }r4 (h0X#*Monitor* now inherits from *list*.r5 h1j/ h:h=h?h^hA}r6 (hC]hD]hE]hF]hI]uhKMhM]r7 (h)r8 }r9 (h0X *Monitor*hA}r: (hC]hD]hE]hF]hI]uh1j3 hM]r; hVXMonitorr< r= }r> (h0Uh1j8 ubah?hubhVX now inherits from r? r@ }rA (h0X now inherits from h1j3 ubh)rB }rC (h0X*list*hA}rD (hC]hD]hE]hF]hI]uh1j3 hM]rE hVXlistrF rG }rH (h0Uh1jB ubah?hubhVX.rI }rJ (h0X.h1j3 ubeubah?hubeh?hubah?jubh)rK }rL (h0UhA}rM (hX*hF]hE]hC]hD]hI]uh1jhM]rN (h)rO }rP (h0XZA class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules. hA}rQ (hC]hD]hE]hF]hI]uh1jK hM]rR hZ)rS }rT (h0XYA class *Histogram* has been added to *Simulation.py* and all *SimulationXXX.py* modules.h1jO h:h=h?h^hA}rU (hC]hD]hE]hF]hI]uhKMhM]rV (hVXA class rW rX }rY (h0XA class h1jS ubh)rZ }r[ (h0X *Histogram*hA}r\ (hC]hD]hE]hF]hI]uh1jS hM]r] hVX Histogramr^ r_ }r` (h0Uh1jZ ubah?hubhVX has been added to ra rb }rc (h0X has been added to h1jS ubh)rd }re (h0X*Simulation.py*hA}rf (hC]hD]hE]hF]hI]uh1jS hM]rg hVX Simulation.pyrh ri }rj (h0Uh1jd ubah?hubhVX and all rk rl }rm (h0X and all h1jS ubh)rn }ro (h0X*SimulationXXX.py*hA}rp (hC]hD]hE]hF]hI]uh1jS hM]rq hVXSimulationXXX.pyrr rs }rt (h0Uh1jn ubah?hubhVX modules.ru rv }rw (h0X modules.h1jS ubeubah?hubh)rx }ry (h0XjA module *SimulationRT* has been added which allows synchronization between simulated and wallclock time. hA}rz (hC]hD]hE]hF]hI]uh1jK hM]r{ hZ)r| }r} (h0XiA module *SimulationRT* has been added which allows synchronization between simulated and wallclock time.h1jx h:h=h?h^hA}r~ (hC]hD]hE]hF]hI]uhKMhM]r (hVX A module r r }r (h0X A module h1j| ubh)r }r (h0X*SimulationRT*hA}r (hC]hD]hE]hF]hI]uh1j| hM]r hVX SimulationRTr r }r (h0Uh1j ubah?hubhVXR has been added which allows synchronization between simulated and wallclock time.r r }r (h0XR has been added which allows synchronization between simulated and wallclock time.h1j| ubeubah?hubh)r }r (h0XA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event. hA}r (hC]hD]hE]hF]hI]uh1jK hM]r hZ)r }r (h0XA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXA moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.r r }r (h0j h1j ubaubah?hubh)r }r (h0XXA Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework. hA}r (hC]hD]hE]hF]hI]uh1jK hM]r hZ)r }r (h0XWA Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework.h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r (hVXA Tk/Tkinter-based module r r }r (h0XA Tk/Tkinter-based module h1j ubh)r }r (h0X*SimGUI*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVXSimGUIr r }r (h0Uh1j ubah?hubhVX5 has been added which provides a SimPy GUI framework.r r }r (h0X5 has been added which provides a SimPy GUI framework.h1j ubeubah?hubh)r }r (h0XhA Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs. hA}r (hC]hD]hE]hF]hI]uh1jK hM]r hZ)r }r (h0XfA Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs.h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r (hVXA Tk/Tkinter-based module r r }r (h0XA Tk/Tkinter-based module h1j ubh)r }r (h0X *SimPlot*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVXSimPlotr r }r (h0Uh1j ubah?hubhVXC has been added which provides for plot output from SimPy programs.r r }r (h0XC has been added which provides for plot output from SimPy programs.h1j ubeubah?hubeh?hubeh?jubeubaubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Ujune-2003-version-1-3r ahI]r hauhKMhLhhM]r (hO)r }r (h0X22 June 2003: Version 1.3r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX22 June 2003: Version 1.3r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0XNo functional or API changesr h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXNo functional or API changesr r }r (h0j h1j ubaubaubh)r }r (h0XIReduction of sourcecode linelength in Simulation.py to <= 80 characters h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XGReduction of sourcecode linelength in Simulation.py to <= 80 charactersr h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXGReduction of sourcecode linelength in Simulation.py to <= 80 charactersr r }r (h0j h1j ubaubaubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Ujune-2003-version-1-3-alphar ahI]r hauhKMhLhhM]r (hO)r }r (h0XJune 2003: Version 1.3 alphar h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVXJune 2003: Version 1.3 alphar r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0X"Significantly improved performancer h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVX"Significantly improved performancer r }r (h0j h1j ubaubaubh)r }r (h0XKSignificant increase in number of quasi-parallel processes SimPy can handler h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXKSignificant increase in number of quasi-parallel processes SimPy can handler r }r (h0j h1j ubaubaubh)r }r (h0XNew functionality/API changes: * Addition of SimulationTrace, an event trace utility * Addition of Lister, a prettyprinter for instance attributes * No API changes h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r (hZ)r }r (h0XNew functionality/API changes:r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r! hVXNew functionality/API changes:r" r# }r$ (h0j h1j ubaubj)r% }r& (h0UhA}r' (hC]hD]hE]hF]hI]uh1j hM]r( h)r) }r* (h0UhA}r+ (hX*hF]hE]hC]hD]hI]uh1j% hM]r, (h)r- }r. (h0X3Addition of SimulationTrace, an event trace utilityr/ hA}r0 (hC]hD]hE]hF]hI]uh1j) hM]r1 hZ)r2 }r3 (h0j/ h1j- h:h=h?h^hA}r4 (hC]hD]hE]hF]hI]uhKMhM]r5 hVX3Addition of SimulationTrace, an event trace utilityr6 r7 }r8 (h0j/ h1j2 ubaubah?hubh)r9 }r: (h0X;Addition of Lister, a prettyprinter for instance attributesr; hA}r< (hC]hD]hE]hF]hI]uh1j) hM]r= hZ)r> }r? (h0j; h1j9 h:h=h?h^hA}r@ (hC]hD]hE]hF]hI]uhKMhM]rA hVX;Addition of Lister, a prettyprinter for instance attributesrB rC }rD (h0j; h1j> ubaubah?hubh)rE }rF (h0XNo API changes hA}rG (hC]hD]hE]hF]hI]uh1j) hM]rH hZ)rI }rJ (h0XNo API changesrK h1jE h:h=h?h^hA}rL (hC]hD]hE]hF]hI]uhKMhM]rM hVXNo API changesrN rO }rP (h0jK h1jI ubaubah?hubeh?hubah?jubeubh)rQ }rR (h0XInternal changes: * Implementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you! h1j h:h=h?hhA}rS (hC]hD]hE]hF]hI]uhKNhLhhM]rT (hZ)rU }rV (h0XInternal changes:rW h1jQ h:h=h?h^hA}rX (hC]hD]hE]hF]hI]uhKMhM]rY hVXInternal changes:rZ r[ }r\ (h0jW h1jU ubaubj)r] }r^ (h0UhA}r_ (hC]hD]hE]hF]hI]uh1jQ hM]r` h)ra }rb (h0UhA}rc (hX*hF]hE]hC]hD]hI]uh1j] hM]rd h)re }rf (h0XImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you! hA}rg (hC]hD]hE]hF]hI]uh1ja hM]rh hZ)ri }rj (h0XImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!rk h1je h:h=h?h^hA}rl (hC]hD]hE]hF]hI]uhKMhM]rm hVXImplementation of a proposal by Simon Frost: storing the keys of the event set dictionary in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!rn ro }rp (h0jk h1ji ubaubah?hubah?hubah?jubeubh)rq }rr (h0X$Update of Manual to address tracing.rs h1j h:h=h?hhA}rt (hC]hD]hE]hF]hI]uhKNhLhhM]ru hZ)rv }rw (h0js h1jq h:h=h?h^hA}rx (hC]hD]hE]hF]hI]uhKMhM]ry hVX$Update of Manual to address tracing.rz r{ }r| (h0js h1jv ubaubaubh)r} }r~ (h0XaUpdate of Interfacing doc to address output visualization using Scientific Python gplt package. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0X_Update of Interfacing doc to address output visualization using Scientific Python gplt package.r h1j} h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVX_Update of Interfacing doc to address output visualization using Scientific Python gplt package.r r }r (h0j h1j ubaubaubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Uapril-2003-version-1-2r ahI]r hauhKMhLhhM]r (hO)r }r (h0X29 April 2003: Version 1.2r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX29 April 2003: Version 1.2r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0XNo changes in API.r h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXNo changes in API.r r }r (h0j h1j ubaubaubh)r }r (h0X^Internal changes: * Defined "True" and "False" in Simulation.py to support Python 2.2. h1j h:Nh?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r cdocutils.nodes definition_list r )r }r (h0UhA}r (hC]hD]hE]hF]hI]uh1j hM]r cdocutils.nodes definition_list_item r )r }r (h0XXInternal changes: * Defined "True" and "False" in Simulation.py to support Python 2.2. h1j h:h=h?Udefinition_list_itemr hA}r (hC]hD]hE]hF]hI]uhKMhM]r (cdocutils.nodes term r )r }r (h0XInternal changes:r h1j h:h=h?Utermr hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXInternal changes:r r }r (h0j h1j ubaubcdocutils.nodes definition r )r }r (h0UhA}r (hC]hD]hE]hF]hI]uh1j hM]r h)r }r (h0UhA}r (hX*hF]hE]hC]hD]hI]uh1j hM]r h)r }r (h0XDDefined "True" and "False" in Simulation.py to support Python 2.2. hA}r (hC]hD]hE]hF]hI]uh1j hM]r hZ)r }r (h0XBDefined "True" and "False" in Simulation.py to support Python 2.2.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXBDefined "True" and "False" in Simulation.py to support Python 2.2.r r }r (h0j h1j ubaubah?hubah?hubah?U definitionr ubeubah?Udefinition_listr ubaubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r U october-2002r ahI]r hauhKMhLhhM]r (hO)r }r (h0X22 October 2002r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX22 October 2002r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0XPRe-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.r h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXPRe-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.r r }r (h0j h1j ubaubaubh)r }r (h0XNo code changes whatever! h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XNo code changes whatever!r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXNo code changes whatever!r r }r (h0j h1j ubaubaubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Uid15r ahI]r h auhKMhLhhM]r (hO)r }r (h0X18 October 2002r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX18 October 2002r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0XVersion 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.r h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXVersion 0.5 Beta-release, intended to get testing by application developers and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.r r }r! (h0j h1j ubaubaubh)r" }r# (h0X More modelsr$ h1j h:h=h?hhA}r% (hC]hD]hE]hF]hI]uhKNhLhhM]r& hZ)r' }r( (h0j$ h1j" h:h=h?h^hA}r) (hC]hD]hE]hF]hI]uhKMhM]r* hVX More modelsr+ r, }r- (h0j$ h1j' ubaubaubh)r. }r/ (h0XZDocumentation enhanced by a manual, a tutorial ("The Bank") and installation instructions.r0 h1j h:h=h?hhA}r1 (hC]hD]hE]hF]hI]uhKNhLhhM]r2 hZ)r3 }r4 (h0j0 h1j. h:h=h?h^hA}r5 (hC]hD]hE]hF]hI]uhKMhM]r6 hVXZDocumentation enhanced by a manual, a tutorial ("The Bank") and installation instructions.r7 r8 }r9 (h0j0 h1j3 ubaubaubh)r: }r; (h0XMajor changes to the API: * Introduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated. * Added attribute "name" to class Process. Process constructor is now:: def __init__(self,name="a_process") Backward compatible if keyword parameters used. * Changed Resource constructor to:: def __init__(self,capacity=1,name="a_resource",unitName="units") Backward compatible if keyword parameters used. h1j h:Nh?hhA}r< (hC]hD]hE]hF]hI]uhKNhLhhM]r= (hZ)r> }r? (h0XMajor changes to the API:r@ h1j: h:h=h?h^hA}rA (hC]hD]hE]hF]hI]uhKMhM]rB hVXMajor changes to the API:rC rD }rE (h0j@ h1j> ubaubh)rF }rG (h0UhA}rH (hX*hF]hE]hC]hD]hI]uh1j: hM]rI (h)rJ }rK (h0XIntroduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated.rL hA}rM (hC]hD]hE]hF]hI]uh1jF hM]rN hZ)rO }rP (h0jL h1jJ h:h=h?h^hA}rQ (hC]hD]hE]hF]hI]uhKMhM]rR hVXIntroduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated.rS rT }rU (h0jL h1jO ubaubah?hubh)rV }rW (h0XAdded attribute "name" to class Process. Process constructor is now:: def __init__(self,name="a_process") Backward compatible if keyword parameters used. hA}rX (hC]hD]hE]hF]hI]uh1jF hM]rY (hZ)rZ }r[ (h0XEAdded attribute "name" to class Process. Process constructor is now::h1jV h:h=h?h^hA}r\ (hC]hD]hE]hF]hI]uhKMhM]r] hVXDAdded attribute "name" to class Process. Process constructor is now:r^ r_ }r` (h0XDAdded attribute "name" to class Process. Process constructor is now:h1jZ ubaubcdocutils.nodes literal_block ra )rb }rc (h0X#def __init__(self,name="a_process")h1jV h?U literal_blockrd hA}re (U xml:spacerf Upreserverg hF]hE]hC]hD]hI]uhKMhM]rh hVX#def __init__(self,name="a_process")ri rj }rk (h0Uh1jb ubaubhZ)rl }rm (h0X/Backward compatible if keyword parameters used.rn h1jV h:h=h?h^hA}ro (hC]hD]hE]hF]hI]uhKMhM]rp hVX/Backward compatible if keyword parameters used.rq rr }rs (h0jn h1jl ubaubeh?hubh)rt }ru (h0XChanged Resource constructor to:: def __init__(self,capacity=1,name="a_resource",unitName="units") Backward compatible if keyword parameters used. hA}rv (hC]hD]hE]hF]hI]uh1jF hM]rw (hZ)rx }ry (h0X!Changed Resource constructor to::rz h1jt h:h=h?h^hA}r{ (hC]hD]hE]hF]hI]uhKMhM]r| hVX Changed Resource constructor to:r} r~ }r (h0X Changed Resource constructor to:h1jx ubaubja )r }r (h0X@def __init__(self,capacity=1,name="a_resource",unitName="units")h1jt h?jd hA}r (jf jg hF]hE]hC]hD]hI]uhKMhM]r hVX@def __init__(self,capacity=1,name="a_resource",unitName="units")r r }r (h0Uh1j ubaubhZ)r }r (h0X/Backward compatible if keyword parameters used.r h1jt h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVX/Backward compatible if keyword parameters used.r r }r (h0j h1j ubaubeh?hubeh?hubeubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Useptember-2002r ahI]r hauhKMhLhhM]r (hO)r }r (h0X27 September 2002r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX27 September 2002r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX*hF]hE]hC]hD]hI]uhKMhLhhM]r (h)r }r (h0XBVersion 0.2 Alpha-release, intended to attract feedback from usersr h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXBVersion 0.2 Alpha-release, intended to attract feedback from usersr r }r (h0j h1j ubaubaubh)r }r (h0XExtended list of modelsr h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXExtended list of modelsr r }r (h0j h1j ubaubaubh)r }r (h0XUpodated documentation h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XUpodated documentationr h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXUpodated documentationr r }r (h0j h1j ubaubaubeubeubh2)r }r (h0Uh1h8h:h=h?h@hA}r (hC]hD]hE]hF]r Uid16r ahI]r hauhKMhLhhM]r (hO)r }r (h0X17 September 2002r h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKMhLhhM]r hVX17 September 2002r r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX*hF]hE]hC]hD]hI]uhKM hLhhM]r (h)r }r (h0XEVersion 0.1.2 published on SourceForge; fully working, pre-alpha coder h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0j h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKM hM]r hVXEVersion 0.1.2 published on SourceForge; fully working, pre-alpha coder r }r (h0j h1j ubaubaubh)r }r (h0XfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKM hM]r hVXfImplements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.r r }r (h0j h1j ubaubaubh)r }r (h0X[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0X[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKM hM]r hVX[Contains basic documentation (cheatsheet) and simulation models for test and demonstration.r r }r (h0j h1j ubaubaubeubeubeubh:h=h?h@hA}r (hC]hD]hE]hF]r Ujanuary-2007-version-1-8r ahI]r hauhKKhLhhM]r (hO)r }r (h0XJanuary 2007: Version 1.8r h1h6h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKKhLhhM]r hVXJanuary 2007: Version 1.8r r }r (h0j h1j ubaubh3h2)r }r (h0Uh5Kh1h6h:h=h?h@hA}r (hC]r j ahD]hE]hF]r Uid13r ahI]uhKKhLhhM]r (hO)r }r (h0X Bug fixesr h1j h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKKhLhhM]r hVX Bug fixesr r }r (h0j h1j ubaubh)r }r (h0Uh1j h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKKhLhhM]r (h)r }r (h0X2Repaired a bug in *yield waituntil* runtime code. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r! }r" (h0X1Repaired a bug in *yield waituntil* runtime code.h1j h:h=h?h^hA}r# (hC]hD]hE]hF]hI]uhKKhM]r$ (hVXRepaired a bug in r% r& }r' (h0XRepaired a bug in h1j! ubh)r( }r) (h0X*yield waituntil*hA}r* (hC]hD]hE]hF]hI]uh1j! hM]r+ hVXyield waituntilr, r- }r. (h0Uh1j( ubah?hubhVX runtime code.r/ r0 }r1 (h0X runtime code.h1j! ubeubaubh)r2 }r3 (h0XTIntroduced check for *capacity* parameter of a Level or a Store being a number > 0. h1j h:h=h?hhA}r4 (hC]hD]hE]hF]hI]uhKNhLhhM]r5 hZ)r6 }r7 (h0XSIntroduced check for *capacity* parameter of a Level or a Store being a number > 0.h1j2 h:h=h?h^hA}r8 (hC]hD]hE]hF]hI]uhKKhM]r9 (hVXIntroduced check for r: r; }r< (h0XIntroduced check for h1j6 ubh)r= }r> (h0X *capacity*hA}r? (hC]hD]hE]hF]hI]uh1j6 hM]r@ hVXcapacityrA rB }rC (h0Uh1j= ubah?hubhVX4 parameter of a Level or a Store being a number > 0.rD rE }rF (h0X4 parameter of a Level or a Store being a number > 0.h1j6 ubeubaubh)rG }rH (h0XAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case). h1j h:h=h?hhA}rI (hC]hD]hE]hF]hI]uhKNhLhhM]rJ hZ)rK }rL (h0XAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).rM h1jG h:h=h?h^hA}rN (hC]hD]hE]hF]hI]uhKKhM]rO hVXAdded code so that self.eventsFired gets set correctly after an event fires in a compound yield get/put with a waitevent clause (reneging case).rP rQ }rR (h0jM h1jK ubaubaubh)rS }rT (h0X3Repaired a bug in prettyprinting of Store objects. h1j h:h=h?hhA}rU (hC]hD]hE]hF]hI]uhKNhLhhM]rV hZ)rW }rX (h0X2Repaired a bug in prettyprinting of Store objects.rY h1jS h:h=h?h^hA}rZ (hC]hD]hE]hF]hI]uhKKhM]r[ hVX2Repaired a bug in prettyprinting of Store objects.r\ r] }r^ (h0jY h1jW ubaubaubeubeubh2)r_ }r` (h0Uh5Kh1h6h:h=h?h@hA}ra (hC]rb j+ahD]hE]hF]rc Uid14rd ahI]uhKMhLhhM]re (hO)rf }rg (h0X Additionsrh h1j_ h:h=h?hShA}ri (hC]hD]hE]hF]hI]uhKMhLhhM]rj hVX Additionsrk rl }rm (h0jh h1jf ubaubh)rn }ro (h0Uh1j_ h:h=h?hhA}rp (hX-hF]hE]hC]hD]hI]uhKMhLhhM]rq (h)rr }rs (h0XNew compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances. h1jn h:h=h?hhA}rt (hC]hD]hE]hF]hI]uhKNhLhhM]ru hZ)rv }rw (h0X~New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.rx h1jr h:h=h?h^hA}ry (hC]hD]hE]hF]hI]uhKMhM]rz hVX~New compound yield statements support time-out or event-based reneging in get and put operations on Store and Level instances.r{ r| }r} (h0jx h1jv ubaubaubh)r~ }r (h0X@*yield get* on a Store instance can now have a filter function. h1jn h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0X?*yield get* on a Store instance can now have a filter function.h1j~ h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r (h)r }r (h0X *yield get*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVX yield getr r }r (h0Uh1j ubah?hubhVX4 on a Store instance can now have a filter function.r r }r (h0X4 on a Store instance can now have a filter function.h1j ubeubaubh)r }r (h0XsAll Monitor and Tally instances are automatically registered in list *allMonitors* and *allTallies*, respectively. h1jn h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XrAll Monitor and Tally instances are automatically registered in list *allMonitors* and *allTallies*, respectively.h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r (hVXEAll Monitor and Tally instances are automatically registered in list r r }r (h0XEAll Monitor and Tally instances are automatically registered in list h1j ubh)r }r (h0X *allMonitors*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVX allMonitorsr r }r (h0Uh1j ubah?hubhVX and r r }r (h0X and h1j ubh)r }r (h0X *allTallies*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVX allTalliesr r }r (h0Uh1j ubah?hubhVX, respectively.r r }r (h0X, respectively.h1j ubeubaubh)r }r (h0XbThe new function *startCollection* allows activation of Monitors and Tallies at a specified time. h1jn h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XaThe new function *startCollection* allows activation of Monitors and Tallies at a specified time.h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKM hM]r (hVXThe new function r r }r (h0XThe new function h1j ubh)r }r (h0X*startCollection*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVXstartCollectionr r }r (h0Uh1j ubah?hubhVX? allows activation of Monitors and Tallies at a specified time.r r }r (h0X? allows activation of Monitors and Tallies at a specified time.h1j ubeubaubh)r }r (h0XaA *printHistogram* method was added to Tally and Monitor which generates a table-form histogram. h1jn h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0X`A *printHistogram* method was added to Tally and Monitor which generates a table-form histogram.h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKM hM]r (hVXA r r }r (h0XA h1j ubh)r }r (h0X*printHistogram*hA}r (hC]hD]hE]hF]hI]uh1j hM]r hVXprintHistogramr r }r (h0Uh1j ubah?hubhVXN method was added to Tally and Monitor which generates a table-form histogram.r r }r (h0XN method was added to Tally and Monitor which generates a table-form histogram.h1j ubeubaubh)r }r (h0XuIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added. h1jn h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XtIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKMhM]r hVXtIn SimPy.SimulationRT: A function for allowing changing the ratio wall clock time to simulation time has been added.r r }r (h0j h1j ubaubaubeubeubeubh:h=h?h@hA}r (hC]r jahD]hE]hF]r Uid12r ahI]uhKKhLhhM]r (hO)r }r (h0X Major Changesr h1h3h:h=h?hShA}r (hC]hD]hE]hF]hI]uhKKhLhhM]r hVX Major Changesr r }r (h0j h1j ubaubh)r }r (h0Uh1h3h:h=h?hhA}r (hX-hF]hE]hC]hD]hI]uhKKhLhhM]r (h)r }r (h0XtSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XsSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKKhM]r hVXsSimPy 1.8 and future releases will not run under the obsolete Python 2.2 version. They require Python 2.3 or later.r r }r (h0j h1j ubaubaubh)r }r (h0XjThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XiThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKKhM]r hVXiThe Manual has been thoroughly edited, restructured and rewritten. It is now also provided in PDF format.r r }r (h0j h1j ubaubaubh)r }r (h0XThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0XThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.r h1j h:h=h?h^hA}r (hC]hD]hE]hF]hI]uhKKhM]r hVXThe Cheatsheet has been totally rewritten in a tabular format. It is provided in both XLS (MS Excel spreadsheet) and PDF format.r r }r (h0j h1j ubaubaubh)r }r (h0X\The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'. h1j h:h=h?hhA}r (hC]hD]hE]hF]hI]uhKNhLhhM]r hZ)r }r (h0X[The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'.r h1j h:h=h?h^hA}r! (hC]hD]hE]hF]hI]uhKKhM]r" hVX[The version of SimPy.Simulation(RT/Trace/Step) is now accessible by the variable 'version'.r# r$ }r% (h0j h1j ubaubaubh)r& }r' (h0XHThe *__str__* method of Histogram was changed to return a table format. h1j h:h=h?hhA}r( (hC]hD]hE]hF]hI]uhKNhLhhM]r) hZ)r* }r+ (h0XGThe *__str__* method of Histogram was changed to return a table format.h1j& h:h=h?h^hA}r, (hC]hD]hE]hF]hI]uhKKhM]r- (hVXThe r. r/ }r0 (h0XThe h1j* ubh)r1 }r2 (h0X *__str__*hA}r3 (hC]hD]hE]hF]hI]uh1j* hM]r4 hVX__str__r5 r6 }r7 (h0Uh1j1 ubah?hubhVX: method of Histogram was changed to return a table format.r8 r9 }r: (h0X: method of Histogram was changed to return a table format.h1j* ubeubaubeubeubh:h=h?Usystem_messager; hA}r< (hC]UlevelKhF]hE]r= j aUsourceh=hD]hI]UlineKUtypeUINFOr> uhKKhLhhM]r? hZ)r@ }rA (h0UhA}rB (hC]hD]hE]hF]hI]uh1h.hM]rC hVX0Duplicate implicit target name: "major changes".rD rE }rF (h0Uh1j@ ubah?h^ubaubh-)rG }rH (h0Uh1j h:h=h?j; hA}rI (hC]UlevelKhF]hE]rJ j aUsourceh=hD]hI]UlineKUtypej> uhKKhLhhM]rK hZ)rL }rM (h0UhA}rN (hC]hD]hE]hF]hI]uh1jG hM]rO hVX,Duplicate implicit target name: "bug fixes".rP rQ }rR (h0Uh1jL ubah?h^ubaubh-)rS }rT (h0Uh1j_ h:h=h?j; hA}rU (hC]UlevelKhF]hE]rV jd aUsourceh=hD]hI]UlineMUtypej> uhKMhLhhM]rW hZ)rX }rY (h0UhA}rZ (hC]hD]hE]hF]hI]uh1jS hM]r[ hVX,Duplicate implicit target name: "additions".r\ r] }r^ (h0Uh1jX ubah?h^ubaubeUcurrent_sourcer_ NU decorationr` NUautofootnote_startra KUnameidsrb }rc (hjhjhjFh jh j h hh Nh j?hNhj hj hhHhjhjehjWhjhjhjhjhjhj hj hj hj hNhj h jah!jh"j.h#jh$jh%jh&jyh'jjh(jiuhM]rd h8ah0UU transformerre NU footnote_refsrf }rg Urefnamesrh }ri Usymbol_footnotesrj ]rk Uautofootnote_refsrl ]rm Usymbol_footnote_refsrn ]ro U citationsrp ]rq hLhU current_linerr NUtransform_messagesrs ]rt Ureporterru NUid_startrv KU autofootnotesrw ]rx U citation_refsry }rz Uindirect_targetsr{ ]r| Usettingsr} (cdocutils.frontend Values r~ or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhSNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr Uasciir U_sourcer UA/var/build/user_builds/simpy/checkouts/3.0/docs/about/history.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]r Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (jj}jjjjj j j j j-j'jjj j j j jFjBj?j;jjjjjjjjjjjjjjhh|jijejjj h3j j jd j_ j j j j jjj jjjjyjujjj h6jWjSjaj]j j jjjfhHh8jjjjjejaj.j*jjuUsubstitution_namesr }r h?hLhA}r (hC]hF]hE]Usourceh=hD]hI]uU footnotesr ]r Urefidsr }r ub.PK{EL5Nm m 'simpy-3.0/.doctrees/about/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX about simpyqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU about-simpyqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX?/var/build/user_builds/simpy/checkouts/3.0/docs/about/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX About SimPyq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X About SimPyq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThis sections is all about the non-technical stuff. How did SimPy evolve? Who was responsible for it? And what the heck were they tinking when they made it?q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(Nh)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhX about/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qS(NX about/historyqTqUNXabout/acknowledgementsqVqWNXabout/defense_of_designqXqYNXabout/release_processqZq[NX about/licenseq\q]eUhiddenq^U includefilesq_]q`(hThVhXhZh\eUmaxdepthqaKuh(K h]ubaubeubahUU transformerqbNU footnote_refsqc}qdUrefnamesqe}qfUsymbol_footnotesqg]qhUautofootnote_refsqi]qjUsymbol_footnote_refsqk]qlU citationsqm]qnh)hU current_lineqoNUtransform_messagesqp]qqUreporterqrNUid_startqsKU autofootnotesqt]quU citation_refsqv}qwUindirect_targetsqx]qyUsettingsqz(cdocutils.frontend Values q{oq|}q}(Ufootnote_backlinksq~KUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqU?/var/build/user_builds/simpy/checkouts/3.0/docs/about/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{E3!BB>simpy-3.0/.doctrees/topical_guides/porting_from_simpy2.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xporting_from_simpy2qX bitbucketqXimportsqNX interruptsq NXsimpy keywords (hold etc.)q NXdefining a processq NXporting from simpy 2 to 3q NXthe simulation* classesq NX conclusionqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUporting-from-simpy2qhU bitbucketqhUimportsqh U interruptsqh Usimpy-keywords-hold-etcqh Udefining-a-processqh Uporting-from-simpy-2-to-3qh Uthe-simulation-classesqhU conclusionq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X.. _porting_from_simpy2:Uparentq'hUsourceq(cdocutils.nodes reprunicode q)XV/var/build/user_builds/simpy/checkouts/3.0/docs/topical_guides/porting_from_simpy2.rstq*q+}q,bUtagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6huUlineq7KUdocumentq8hh!]ubcdocutils.nodes section q9)q:}q;(h&Uh'hh(h+Uexpect_referenced_by_nameq<}q=hh$sh-Usectionq>h/}q?(h3]h4]h2]h1]q@(hheh5]qA(h heuh7Kh8hUexpect_referenced_by_idqB}qChh$sh!]qD(cdocutils.nodes title qE)qF}qG(h&XPorting from SimPy 2 to 3qHh'h:h(h+h-UtitleqIh/}qJ(h3]h4]h2]h1]h5]uh7Kh8hh!]qKcdocutils.nodes Text qLXPorting from SimPy 2 to 3qMqN}qO(h&hHh'hFubaubcdocutils.nodes paragraph qP)qQ}qR(h&XgPorting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.qSh'h:h(h+h-U paragraphqTh/}qU(h3]h4]h2]h1]h5]uh7Kh8hh!]qVhLXgPorting from SimPy 2 to SimPy 3 is not overly complicated. A lot of changes merely comprise copy/paste.qWqX}qY(h&hSh'hQubaubhP)qZ}q[(h&XThis guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.q\h'h:h(h+h-hTh/}q](h3]h4]h2]h1]h5]uh7K h8hh!]q^hLXThis guide describes the conceptual and API changes between both SimPy versions and shows you how to change your code for SimPy 3.q_q`}qa(h&h\h'hZubaubh9)qb}qc(h&Uh'h:h(h+h-h>h/}qd(h3]h4]h2]h1]qehah5]qfhauh7Kh8hh!]qg(hE)qh}qi(h&XImportsqjh'hbh(h+h-hIh/}qk(h3]h4]h2]h1]h5]uh7Kh8hh!]qlhLXImportsqmqn}qo(h&hjh'hhubaubhP)qp}qq(h&X\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (``SimPy.Simulation``), a real-time simulation (``SimPy.SimulationRT``) or something else. You usually had to import ``Simulation`` (or ``SimulationRT``), ``Process`` and some of the SimPy keywords (``hold`` or ``passivate``, for example) from that package.h'hbh(h+h-hTh/}qr(h3]h4]h2]h1]h5]uh7Kh8hh!]qs(hLX\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (qtqu}qv(h&X\In SimPy 2, you had to decide at import-time whether you wanted to use a normal simulation (h'hpubcdocutils.nodes literal qw)qx}qy(h&X``SimPy.Simulation``h/}qz(h3]h4]h2]h1]h5]uh'hph!]q{hLXSimPy.Simulationq|q}}q~(h&Uh'hxubah-UliteralqubhLX), a real-time simulation (qq}q(h&X), a real-time simulation (h'hpubhw)q}q(h&X``SimPy.SimulationRT``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXSimPy.SimulationRTqq}q(h&Uh'hubah-hubhLX/) or something else. You usually had to import qq}q(h&X/) or something else. You usually had to import h'hpubhw)q}q(h&X``Simulation``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX Simulationqq}q(h&Uh'hubah-hubhLX (or qq}q(h&X (or h'hpubhw)q}q(h&X``SimulationRT``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX SimulationRTqq}q(h&Uh'hubah-hubhLX), qq}q(h&X), h'hpubhw)q}q(h&X ``Process``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXProcessqq}q(h&Uh'hubah-hubhLX! and some of the SimPy keywords (qq}q(h&X! and some of the SimPy keywords (h'hpubhw)q}q(h&X``hold``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLXholdqq}q(h&Uh'hubah-hubhLX or qq}q(h&X or h'hpubhw)q}q(h&X ``passivate``h/}q(h3]h4]h2]h1]h5]uh'hph!]qhLX passivateqq}q(h&Uh'hubah-hubhLX!, for example) from that package.qq}q(h&X!, for example) from that package.h'hpubeubhP)q}q(h&XIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to :class:`~simpy.events.Process` and the SimPy keywords anymore). In most use cases you will now only need to import :mod:`simpy`.h'hbh(h+h-hTh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]q(hLXlIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to qÅq}q(h&XlIn SimPy 3, you usually need to import much less classes and modules (e.g., you don't need direct access to h'hubcsphinx.addnodes pending_xref q)q}q(h&X:class:`~simpy.events.Process`qh'hh(h+h-U pending_xrefqh/}q(UreftypeXclassUrefwarnq̉U reftargetqXsimpy.events.ProcessU refdomainXpyqh1]h2]U refexplicith3]h4]h5]UrefdocqX"topical_guides/porting_from_simpy2qUpy:classqNU py:moduleqNuh7Kh!]qhw)q}q(h&hh/}q(h3]h4]q(UxrefqhXpy-classqeh2]h1]h5]uh'hh!]qhLXProcessqۅq}q(h&Uh'hubah-hubaubhLXU and the SimPy keywords anymore). In most use cases you will now only need to import qޅq}q(h&XU and the SimPy keywords anymore). In most use cases you will now only need to import h'hubh)q}q(h&X :mod:`simpy`qh'hh(h+h-hh/}q(UreftypeXmodh̉hXsimpyU refdomainXpyqh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]qhw)q}q(h&hh/}q(h3]h4]q(hhXpy-modqeh2]h1]h5]uh'hh!]qhLXsimpyq텁q}q(h&Uh'hubah-hubaubhLX.q}q(h&X.h'hubeubhP)q}q(h&X **SimPy 2**qh'hbh(h+h-hTh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qcdocutils.nodes strong q)q}q(h&hh/}q(h3]h4]h2]h1]h5]uh'hh!]qhLXSimPy 2qq}q(h&Uh'hubah-Ustrongqubaubcdocutils.nodes literal_block r)r}r(h&X6from Simpy.Simulation import Simulation, Process, holdh'hbh(h+h-U literal_blockrh/}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh1]h2]h3]h4]h5]uh7K h8hh!]r hLX6from Simpy.Simulation import Simulation, Process, holdr r }r (h&Uh'jubaubhP)r }r(h&X **SimPy 3**rh'hbh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K%h8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'j h!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&X import simpyh'hbh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7K'h8hh!]rhLX import simpyrr}r(h&Uh'jubaubeubh9)r }r!(h&Uh'h:h(h+h-h>h/}r"(h3]h4]h2]h1]r#hah5]r$h auh7K-h8hh!]r%(hE)r&}r'(h&XThe ``Simulation*`` classesr(h'j h(h+h-hIh/}r)(h3]h4]h2]h1]h5]uh7K-h8hh!]r*(hLXThe r+r,}r-(h&XThe r.h'j&ubhw)r/}r0(h&X``Simulation*``r1h/}r2(h3]h4]h2]h1]h5]uh'j&h!]r3hLX Simulation*r4r5}r6(h&Uh'j/ubah-hubhLX classesr7r8}r9(h&X classesr:h'j&ubeubhP)r;}r<(h&X"SimPy 2 encapsulated the simulation state in a ``Simulation*`` class (e.g., ``Simulation``, ``SimulationRT`` or ``SimulationTrace``). This class also had a ``simulate()`` method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).h'j h(h+h-hTh/}r=(h3]h4]h2]h1]h5]uh7K/h8hh!]r>(hLX/SimPy 2 encapsulated the simulation state in a r?r@}rA(h&X/SimPy 2 encapsulated the simulation state in a h'j;ubhw)rB}rC(h&X``Simulation*``h/}rD(h3]h4]h2]h1]h5]uh'j;h!]rEhLX Simulation*rFrG}rH(h&Uh'jBubah-hubhLX class (e.g., rIrJ}rK(h&X class (e.g., h'j;ubhw)rL}rM(h&X``Simulation``h/}rN(h3]h4]h2]h1]h5]uh'j;h!]rOhLX SimulationrPrQ}rR(h&Uh'jLubah-hubhLX, rSrT}rU(h&X, h'j;ubhw)rV}rW(h&X``SimulationRT``h/}rX(h3]h4]h2]h1]h5]uh'j;h!]rYhLX SimulationRTrZr[}r\(h&Uh'jVubah-hubhLX or r]r^}r_(h&X or h'j;ubhw)r`}ra(h&X``SimulationTrace``h/}rb(h3]h4]h2]h1]h5]uh'j;h!]rchLXSimulationTracerdre}rf(h&Uh'j`ubah-hubhLX). This class also had a rgrh}ri(h&X). This class also had a h'j;ubhw)rj}rk(h&X``simulate()``h/}rl(h3]h4]h2]h1]h5]uh'j;h!]rmhLX simulate()rnro}rp(h&Uh'jjubah-hubhLXx method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).rqrr}rs(h&Xx method that executed a normal simulation, a real-time simulation or something else (depending on the particular class).h'j;ubeubhP)rt}ru(h&X`There was a global ``Simulation`` instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the ``Simulation`` instance around when you were using the OO API but not if you were using the procedural API.h'j h(h+h-hTh/}rv(h3]h4]h2]h1]h5]uh7K4h8hh!]rw(hLXThere was a global rxry}rz(h&XThere was a global h'jtubhw)r{}r|(h&X``Simulation``h/}r}(h3]h4]h2]h1]h5]uh'jth!]r~hLX Simulationrr}r(h&Uh'j{ubah-hubhLX instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the rr}r(h&X instance that was automatically created when you imported SimPy. You could also instantiate it on your own to uses Simpy's object-orient API. This led to some confusion and problems, because you had to pass the h'jtubhw)r}r(h&X``Simulation``h/}r(h3]h4]h2]h1]h5]uh'jth!]rhLX Simulationrr}r(h&Uh'jubah-hubhLX] instance around when you were using the OO API but not if you were using the procedural API.rr}r(h&X] instance around when you were using the OO API but not if you were using the procedural API.h'jtubeubhP)r}r(h&XIn SimPy 3, an :class:`~simpy.core.Environment` replaces ``Simulation`` and :class:`~simpy.rt.RealtimeEnvironment` replaces ``SimulationRT``. You always need to instantiate an environment. There's no more global state.h'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K:h8hh!]r(hLXIn SimPy 3, an rr}r(h&XIn SimPy 3, an h'jubh)r}r(h&X :class:`~simpy.core.Environment`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K:h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLX Environmentrr}r(h&Uh'jubah-hubaubhLX replaces rr}r(h&X replaces h'jubhw)r}r(h&X``Simulation``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX Simulationrr}r(h&Uh'jubah-hubhLX and rr}r(h&X and h'jubh)r}r(h&X&:class:`~simpy.rt.RealtimeEnvironment`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.rt.RealtimeEnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K:h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXRealtimeEnvironmentrr}r(h&Uh'jubah-hubaubhLX replaces rr}r(h&X replaces h'jubhw)r}r(h&X``SimulationRT``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX SimulationRTrr}r(h&Uh'jubah-hubhLXN. You always need to instantiate an environment. There's no more global state.rr}r(h&XN. You always need to instantiate an environment. There's no more global state.h'jubeubhP)r}r(h&XaTo execute a simulation, you call the environment's :meth:`~simpy.core.Environment.run()` method.h'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7K>h8hh!]r(hLX4To execute a simulation, you call the environment's rr}r(h&X4To execute a simulation, you call the environment's h'jubh)r}r(h&X%:meth:`~simpy.core.Environment.run()`rh'jh(h+h-hh/}r(UreftypeXmethh̉hXsimpy.core.Environment.runU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7K>h!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-methreh2]h1]h5]uh'jh!]rhLXrun()rr}r(h&Uh'jubah-hubaubhLX method.rr}r(h&X method.h'jubeubhP)r}r(h&X **SimPy 2**rh'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7KAh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&Xu# Procedural API from SimPy.Simulation import initialize, simulate initialize() # Start processes simulate(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KCh8hh!]rhLXu# Procedural API from SimPy.Simulation import initialize, simulate initialize() # Start processes simulate(until=10)rr}r(h&Uh'jubaubj)r}r(h&Xz# Object-oriented API from SimPy.Simulation import Simulation sim = Simulation() # Start processes sim.simulate(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KLh8hh!]rhLXz# Object-oriented API from SimPy.Simulation import Simulation sim = Simulation() # Start processes sim.simulate(until=10)rr}r(h&Uh'jubaubhP)r}r(h&X **SimPy3**rh'j h(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7KVh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]r hLXSimPy3r r }r (h&Uh'jubah-hubaubj)r }r(h&XKimport simpy env = simpy.Environment() # Start processes env.run(until=10)h'j h(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7KXh8hh!]rhLXKimport simpy env = simpy.Environment() # Start processes env.run(until=10)rr}r(h&Uh'j ubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kbh8hh!]r(hE)r}r(h&XDefining a Processrh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kbh8hh!]rhLXDefining a Processrr }r!(h&jh'jubaubhP)r"}r#(h&XProcesses had to inherit the ``Process`` base class in SimPy 2. Subclasses had to implement at least a so called *Process Execution Method (PEM)* and in most cases ``__init__()``. Each process needed to know the ``Simulation`` instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.h'jh(h+h-hTh/}r$(h3]h4]h2]h1]h5]uh7Kdh8hh!]r%(hLXProcesses had to inherit the r&r'}r((h&XProcesses had to inherit the h'j"ubhw)r)}r*(h&X ``Process``h/}r+(h3]h4]h2]h1]h5]uh'j"h!]r,hLXProcessr-r.}r/(h&Uh'j)ubah-hubhLXI base class in SimPy 2. Subclasses had to implement at least a so called r0r1}r2(h&XI base class in SimPy 2. Subclasses had to implement at least a so called h'j"ubcdocutils.nodes emphasis r3)r4}r5(h&X *Process Execution Method (PEM)*h/}r6(h3]h4]h2]h1]h5]uh'j"h!]r7hLXProcess Execution Method (PEM)r8r9}r:(h&Uh'j4ubah-Uemphasisr;ubhLX and in most cases r<r=}r>(h&X and in most cases h'j"ubhw)r?}r@(h&X``__init__()``h/}rA(h3]h4]h2]h1]h5]uh'j"h!]rBhLX __init__()rCrD}rE(h&Uh'j?ubah-hubhLX". Each process needed to know the rFrG}rH(h&X". Each process needed to know the h'j"ubhw)rI}rJ(h&X``Simulation``h/}rK(h3]h4]h2]h1]h5]uh'j"h!]rLhLX SimulationrMrN}rO(h&Uh'jIubah-hubhLX instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.rPrQ}rR(h&X instance it belonged to. This reference was passed implicitly in the procedural API and had to be passed explicitly in the object-oriented API. Apart from some internal problems, this made it quite cumbersome to define a simple process.h'j"ubeubhP)rS}rT(h&XProcesses were started by passing the ``Process`` and the generator returned by the PEM to either the global ``activate()`` function or the corresponding ``Simulation`` method.h'jh(h+h-hTh/}rU(h3]h4]h2]h1]h5]uh7Kkh8hh!]rV(hLX&Processes were started by passing the rWrX}rY(h&X&Processes were started by passing the h'jSubhw)rZ}r[(h&X ``Process``h/}r\(h3]h4]h2]h1]h5]uh'jSh!]r]hLXProcessr^r_}r`(h&Uh'jZubah-hubhLX< and the generator returned by the PEM to either the global rarb}rc(h&X< and the generator returned by the PEM to either the global h'jSubhw)rd}re(h&X``activate()``h/}rf(h3]h4]h2]h1]h5]uh'jSh!]rghLX activate()rhri}rj(h&Uh'jdubah-hubhLX function or the corresponding rkrl}rm(h&X function or the corresponding h'jSubhw)rn}ro(h&X``Simulation``h/}rp(h3]h4]h2]h1]h5]uh'jSh!]rqhLX Simulationrrrs}rt(h&Uh'jnubah-hubhLX method.rurv}rw(h&X method.h'jSubeubhP)rx}ry(h&X<A process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the :class:`~simpy.core.Environment` to interact with, but this is completely optional.h'jh(h+h-hTh/}rz(h3]h4]h2]h1]h5]uh7Koh8hh!]r{(hLXA process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the r|r}}r~(h&XA process in SimPy 3 can be defined by any Python generator function (no matter if it’s defined on module level or as an instance method). Hence, they are now just called process functions. They usually require a reference to the h'jxubh)r}r(h&X :class:`~simpy.core.Environment`rh'jxh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Koh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLX Environmentrr}r(h&Uh'jubah-hubaubhLX3 to interact with, but this is completely optional.rr}r(h&X3 to interact with, but this is completely optional.h'jxubeubhP)r}r(h&XProcesses are can be started by creating a :class:`~simpy.events.Process` instance and passing the generator to it. The environment provides a shortcut for this: :meth:`~simpy.core.Environment.process()`.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kuh8hh!]r(hLX+Processes are can be started by creating a rr}r(h&X+Processes are can be started by creating a h'jubh)r}r(h&X:class:`~simpy.events.Process`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.ProcessU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kuh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXProcessrr}r(h&Uh'jubah-hubaubhLXY instance and passing the generator to it. The environment provides a shortcut for this: rr}r(h&XY instance and passing the generator to it. The environment provides a shortcut for this: h'jubh)r}r(h&X):meth:`~simpy.core.Environment.process()`rh'jh(h+h-hh/}r(UreftypeXmethh̉hXsimpy.core.Environment.processU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kuh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-methreh2]h1]h5]uh'jh!]rhLX process()rr}r(h&Uh'jubah-hubaubhLX.r}r(h&X.h'jubeubhP)r}r(h&X **SimPy 2**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kyh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&X@# Procedural API from Simpy.Simulation import Process class MyProcess(Process): def __init__(self, another_param): super().__init__() self.another_param = another_param def run(self): """Implement the process' behavior.""" initialize() proc = Process('Spam') activate(proc, proc.run())h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7K{h8hh!]rhLX@# Procedural API from Simpy.Simulation import Process class MyProcess(Process): def __init__(self, another_param): super().__init__() self.another_param = another_param def run(self): """Implement the process' behavior.""" initialize() proc = Process('Spam') activate(proc, proc.run())rr}r(h&Uh'jubaubj)r}r(h&Xm# Object-oriented API from SimPy.Simulation import Simulation, Process class MyProcess(Process): def __init__(self, sim, another_param): super().__init__(sim=sim) self.another_param = another_param def run(self): """Implement the process' behaviour.""" sim = Simulation() proc = Process(sim, 'Spam') sim.activate(proc, proc.run())h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXm# Object-oriented API from SimPy.Simulation import Simulation, Process class MyProcess(Process): def __init__(self, sim, another_param): super().__init__(sim=sim) self.another_param = another_param def run(self): """Implement the process' behaviour.""" sim = Simulation() proc = Process(sim, 'Spam') sim.activate(proc, proc.run())rr}r(h&Uh'jubaubhP)r}r(h&X **SimPy 3**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&Ximport simpy def my_process(env, another_param): """Implement the process' behavior.""" env = simpy.Environment() proc = env.process(my_process(env, 'Spam'))h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXimport simpy def my_process(env, another_param): """Implement the process' behavior.""" env = simpy.Environment() proc = env.process(my_process(env, 'Spam'))rr}r(h&Uh'jubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&XSimPy Keywords (``hold`` etc.)rh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXSimPy Keywords (rr}r(h&XSimPy Keywords (rh'jubhw)r}r(h&X``hold``rh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXholdrr}r(h&Uh'jubah-hubhLX etc.)rr}r(h&X etc.)rh'jubeubhP)r}r(h&X!In SimPy 2, processes created new events by yielding a *SimPy Keyword* and some additional parameters (at least ``self``). These keywords had to be imported from ``SimPy.Simulation*`` if they were used. Internally, the keywords were mapped to a function that generated the according event.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLX7In SimPy 2, processes created new events by yielding a rr}r (h&X7In SimPy 2, processes created new events by yielding a h'jubj3)r }r (h&X*SimPy Keyword*h/}r (h3]h4]h2]h1]h5]uh'jh!]r hLX SimPy Keywordrr}r(h&Uh'j ubah-j;ubhLX* and some additional parameters (at least rr}r(h&X* and some additional parameters (at least h'jubhw)r}r(h&X``self``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXselfrr}r(h&Uh'jubah-hubhLX*). These keywords had to be imported from rr}r(h&X*). These keywords had to be imported from h'jubhw)r}r(h&X``SimPy.Simulation*``h/}r (h3]h4]h2]h1]h5]uh'jh!]r!hLXSimPy.Simulation*r"r#}r$(h&Uh'jubah-hubhLXj if they were used. Internally, the keywords were mapped to a function that generated the according event.r%r&}r'(h&Xj if they were used. Internally, the keywords were mapped to a function that generated the according event.h'jubeubhP)r(}r)(h&XIn SimPy 3, you directly yield :mod:`~simpy.events`. You can instantiate an event directly or use the shortcuts provided by :class:`~simpy.core.Environment`.h'jh(h+h-hTh/}r*(h3]h4]h2]h1]h5]uh7Kh8hh!]r+(hLXIn SimPy 3, you directly yield r,r-}r.(h&XIn SimPy 3, you directly yield h'j(ubh)r/}r0(h&X:mod:`~simpy.events`r1h'j(h(h+h-hh/}r2(UreftypeXmodh̉hX simpy.eventsU refdomainXpyr3h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r4hw)r5}r6(h&j1h/}r7(h3]h4]r8(hj3Xpy-modr9eh2]h1]h5]uh'j/h!]r:hLXeventsr;r<}r=(h&Uh'j5ubah-hubaubhLXI. You can instantiate an event directly or use the shortcuts provided by r>r?}r@(h&XI. You can instantiate an event directly or use the shortcuts provided by h'j(ubh)rA}rB(h&X :class:`~simpy.core.Environment`rCh'j(h(h+h-hh/}rD(UreftypeXclassh̉hXsimpy.core.EnvironmentU refdomainXpyrEh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rFhw)rG}rH(h&jCh/}rI(h3]h4]rJ(hjEXpy-classrKeh2]h1]h5]uh'jAh!]rLhLX EnvironmentrMrN}rO(h&Uh'jGubah-hubaubhLX.rP}rQ(h&X.h'j(ubeubhP)rR}rS(h&XGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the ``hold`` keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore ``hold`` has been replaced by a :class:`~simpy.events.Timeout` event.h'jh(h+h-hTh/}rT(h3]h4]h2]h1]h5]uh7Kh8hh!]rU(hLXGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the rVrW}rX(h&XGenerally, whenever a process yields an event, this process is suspended and resumed once the event has been triggered. To motivate this understanding, some of the events were renamed. For example, the h'jRubhw)rY}rZ(h&X``hold``h/}r[(h3]h4]h2]h1]h5]uh'jRh!]r\hLXholdr]r^}r_(h&Uh'jYubah-hubhLXx keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore r`ra}rb(h&Xx keyword meant to wait until some time has passed. In terms of events this means that a timeout has happened. Therefore h'jRubhw)rc}rd(h&X``hold``h/}re(h3]h4]h2]h1]h5]uh'jRh!]rfhLXholdrgrh}ri(h&Uh'jcubah-hubhLX has been replaced by a rjrk}rl(h&X has been replaced by a h'jRubh)rm}rn(h&X:class:`~simpy.events.Timeout`roh'jRh(h+h-hh/}rp(UreftypeXclassh̉hXsimpy.events.TimeoutU refdomainXpyrqh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rrhw)rs}rt(h&joh/}ru(h3]h4]rv(hjqXpy-classrweh2]h1]h5]uh'jmh!]rxhLXTimeoutryrz}r{(h&Uh'jsubah-hubaubhLX event.r|r}}r~(h&X event.h'jRubeubcdocutils.nodes note r)r}r(h&X:class:`~simpy.events.Process` now inherits :class:`~simpy.events.Event`. You can thus yield a process to wait until the process terminates.h'jh(h+h-Unoterh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]rhP)r}r(h&X:class:`~simpy.events.Process` now inherits :class:`~simpy.events.Event`. You can thus yield a process to wait until the process terminates.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh!]r(h)r}r(h&X:class:`~simpy.events.Process`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.ProcessU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXProcessrr}r(h&Uh'jubah-hubaubhLX now inherits rr}r(h&X now inherits h'jubh)r}r(h&X:class:`~simpy.events.Event`rh'jh(h+h-hh/}r(UreftypeXclassh̉hXsimpy.events.EventU refdomainXpyrh1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]rhw)r}r(h&jh/}r(h3]h4]r(hjXpy-classreh2]h1]h5]uh'jh!]rhLXEventrr}r(h&Uh'jubah-hubaubhLXD. You can thus yield a process to wait until the process terminates.rr}r(h&XD. You can thus yield a process to wait until the process terminates.h'jubeubaubhP)r}r(h&X **SimPy 2**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 2rr}r(h&Uh'jubah-hubaubj)r}r(h&X>yield hold, self, duration yield passivate, self yield request, self, resource yield release, self, resource yield waitevent, self, event yield waitevent, self, [event_a, event_b, event_c] yield queueevent, self, event_list yield waituntil, self, cond_func yield get, self, level, amount yield put, self, level, amounth'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLX>yield hold, self, duration yield passivate, self yield request, self, resource yield release, self, resource yield waitevent, self, event yield waitevent, self, [event_a, event_b, event_c] yield queueevent, self, event_list yield waituntil, self, cond_func yield get, self, level, amount yield put, self, level, amountrr}r(h&Uh'jubaubhP)r}r(h&X **SimPy 3**rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXSimPy 3rr}r(h&Uh'jubah-hubaubj)r}r(h&Xfrom simpy.util import wait_for_any, wait_for_all yield env.timeout(duration) # hold: renamed yield env.event() # passivate: renamed yield resource.request() # Request is now bound to class Resource resource.release() # Release no longer needs to be yielded yield event # waitevent: just yield the event yield wait_for_any([event_a, event_b, event_c]) # waitevent yield wait_for_all([event_a, event_b, event_c]) # This is new. yield event_a | event_b # Wait for either a or b. This is new. yield event_a & event_b # Wait for a and b. This is new. # There is no direct equivalent for "queueevent" yield env.process(cond_func(env)) # cond_func is now a process that # terminates when the cond. is True # (Yes, you can wait for processes now!) yield container.get(amount) # Level is now called Container yield container.put(amount)h'jh(h+h-jh/}r(jjXpythonjjh1]h2]h3]h4]h5]uh7Kh8hh!]rhLXfrom simpy.util import wait_for_any, wait_for_all yield env.timeout(duration) # hold: renamed yield env.event() # passivate: renamed yield resource.request() # Request is now bound to class Resource resource.release() # Release no longer needs to be yielded yield event # waitevent: just yield the event yield wait_for_any([event_a, event_b, event_c]) # waitevent yield wait_for_all([event_a, event_b, event_c]) # This is new. yield event_a | event_b # Wait for either a or b. This is new. yield event_a & event_b # Wait for a and b. This is new. # There is no direct equivalent for "queueevent" yield env.process(cond_func(env)) # cond_func is now a process that # terminates when the cond. is True # (Yes, you can wait for processes now!) yield container.get(amount) # Level is now called Container yield container.put(amount)rr}r(h&Uh'jubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&X Interruptsrh'jh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLX Interruptsrr}r(h&jh'jubaubhP)r}r(h&XIn SimPy 2, ``interrupt()`` was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLX In SimPy 2, rr}r(h&X In SimPy 2, h'jubhw)r}r(h&X``interrupt()``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX interrupt()rr}r(h&Uh'jubah-hubhLXg was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.rr}r(h&Xg was a method of the interrupting process. The victim of the interrupt had to be passed as an argument.h'jubeubhP)r}r(h&XThe victim was not directly notified of the interrupt but had to check if the ``interrupted`` flag was set. It then had to reset the interrupt via ``interruptReset()``. You could manually set the ``interruptCause`` attribute of the victim.h'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXNThe victim was not directly notified of the interrupt but had to check if the rr}r(h&XNThe victim was not directly notified of the interrupt but had to check if the h'jubhw)r}r(h&X``interrupted``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX interruptedrr}r(h&Uh'jubah-hubhLX6 flag was set. It then had to reset the interrupt via rr}r(h&X6 flag was set. It then had to reset the interrupt via h'jubhw)r}r(h&X``interruptReset()``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXinterruptReset()rr}r (h&Uh'jubah-hubhLX. You could manually set the r r }r (h&X. You could manually set the h'jubhw)r }r(h&X``interruptCause``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXinterruptCauserr}r(h&Uh'j ubah-hubhLX attribute of the victim.rr}r(h&X attribute of the victim.h'jubeubhP)r}r(h&X`Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.rh'jh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLX`Explicitly checking for an interrupt is obviously error prone as it is too easy to be forgotten.rr}r(h&jh'jubaubhP)r}r (h&X In SimPy 3, you call :meth:`~simpy.events.Process.interrupt()` on the victim process. You can optionally pass a cause. An :exc:`~simpy.events.Interrupt` is then thrown into the victim process, which has to handle the interrupt via ``try: ... except Interrupt: ...``.h'jh(h+h-hTh/}r!(h3]h4]h2]h1]h5]uh7Kh8hh!]r"(hLXIn SimPy 3, you call r#r$}r%(h&XIn SimPy 3, you call h'jubh)r&}r'(h&X):meth:`~simpy.events.Process.interrupt()`r(h'jh(h+h-hh/}r)(UreftypeXmethh̉hXsimpy.events.Process.interruptU refdomainXpyr*h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r+hw)r,}r-(h&j(h/}r.(h3]h4]r/(hj*Xpy-methr0eh2]h1]h5]uh'j&h!]r1hLX interrupt()r2r3}r4(h&Uh'j,ubah-hubaubhLX< on the victim process. You can optionally pass a cause. An r5r6}r7(h&X< on the victim process. You can optionally pass a cause. An h'jubh)r8}r9(h&X:exc:`~simpy.events.Interrupt`r:h'jh(h+h-hh/}r;(UreftypeXexch̉hXsimpy.events.InterruptU refdomainXpyr<h1]h2]U refexplicith3]h4]h5]hhhNhNuh7Kh!]r=hw)r>}r?(h&j:h/}r@(h3]h4]rA(hj<Xpy-excrBeh2]h1]h5]uh'j8h!]rChLX InterruptrDrE}rF(h&Uh'j>ubah-hubaubhLXO is then thrown into the victim process, which has to handle the interrupt via rGrH}rI(h&XO is then thrown into the victim process, which has to handle the interrupt via h'jubhw)rJ}rK(h&X"``try: ... except Interrupt: ...``h/}rL(h3]h4]h2]h1]h5]uh'jh!]rMhLXtry: ... except Interrupt: ...rNrO}rP(h&Uh'jJubah-hubhLX.rQ}rR(h&X.h'jubeubhP)rS}rT(h&X **SimPy 2**rUh'jh(h+h-hTh/}rV(h3]h4]h2]h1]h5]uh7Mh8hh!]rWh)rX}rY(h&jUh/}rZ(h3]h4]h2]h1]h5]uh'jSh!]r[hLXSimPy 2r\r]}r^(h&Uh'jXubah-hubaubj)r_}r`(h&Xclass Interrupter(Process): def __init__(self, victim): super().__init__() self.victim = victim def run(self): yield hold, self, 1 self.interrupt(self.victim_proc) self.victim_proc.interruptCause = 'Spam' class Victim(Process): def run(self): yield hold, self, 10 if self.interrupted: cause = self.interruptCause self.interruptReset()h'jh(h+h-jh/}ra(jjXpythonjjh1]h2]h3]h4]h5]uh7Mh8hh!]rbhLXclass Interrupter(Process): def __init__(self, victim): super().__init__() self.victim = victim def run(self): yield hold, self, 1 self.interrupt(self.victim_proc) self.victim_proc.interruptCause = 'Spam' class Victim(Process): def run(self): yield hold, self, 10 if self.interrupted: cause = self.interruptCause self.interruptReset()rcrd}re(h&Uh'j_ubaubhP)rf}rg(h&X **SimPy 3**rhh'jh(h+h-hTh/}ri(h3]h4]h2]h1]h5]uh7Mh8hh!]rjh)rk}rl(h&jhh/}rm(h3]h4]h2]h1]h5]uh'jfh!]rnhLXSimPy 3rorp}rq(h&Uh'jkubah-hubaubj)rr}rs(h&Xdef interrupter(env, victim_proc): yield env.timeout(1) victim_proc.interrupt('Spam') def victim(env): try: yield env.timeout(10) except Interrupt as interrupt: cause = interrupt.causeh'jh(h+h-jh/}rt(jjXpythonjjh1]h2]h3]h4]h5]uh7Mh8hh!]ruhLXdef interrupter(env, victim_proc): yield env.timeout(1) victim_proc.interrupt('Spam') def victim(env): try: yield env.timeout(10) except Interrupt as interrupt: cause = interrupt.causervrw}rx(h&Uh'jrubaubeubh9)ry}rz(h&Uh'h:h(h+h-h>h/}r{(h3]h4]h2]h1]r|h ah5]r}hauh7M&h8hh!]r~(hE)r}r(h&X Conclusionrh'jyh(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7M&h8hh!]rhLX Conclusionrr}r(h&jh'jubaubhP)r}r(h&XEThis guide is by no means complete. If you run into problems, please have a look at the other :doc:`guides `, the :doc:`examples <../examples/index>` or the :doc:`../api_reference/index`. You are also very welcome to submit improvements. Just create a pull request at `bitbucket `_.h'jyh(h+h-hTh/}r(h3]h4]h2]h1]h5]uh7M(h8hh!]r(hLX^This guide is by no means complete. If you run into problems, please have a look at the other rr}r(h&X^This guide is by no means complete. If you run into problems, please have a look at the other h'jubh)r}r(h&X:doc:`guides `rh'jh(h+h-hh/}r(UreftypeXdocrḧhXindexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLXguidesrr}r(h&Uh'jubah-hubaubhLX, the rr}r(h&X, the h'jubh)r}r(h&X#:doc:`examples <../examples/index>`rh'jh(h+h-hh/}r(UreftypeXdocrḧhX../examples/indexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLXexamplesrr}r(h&Uh'jubah-hubaubhLX or the rr}r(h&X or the h'jubh)r}r(h&X:doc:`../api_reference/index`rh'jh(h+h-hh/}r(UreftypeXdocrḧhX../api_reference/indexU refdomainUh1]h2]U refexplicith3]h4]h5]hhuh7M(h!]rhw)r}r(h&jh/}r(h3]h4]r(hjeh2]h1]h5]uh'jh!]rhLX../api_reference/indexrr}r(h&Uh'jubah-hubaubhLXR. You are also very welcome to submit improvements. Just create a pull request at rr}r(h&XR. You are also very welcome to submit improvements. Just create a pull request at h'jubcdocutils.nodes reference r)r}r(h&X1`bitbucket `_h/}r(UnamehUrefurirX"https://bitbucket.org/simpy/simpy/rh1]h2]h3]h4]h5]uh'jh!]rhLX bitbucketrr}r(h&Uh'jubah-U referencerubh#)r}r(h&X% U referencedrKh'jh-h.h/}r(Urefurijh1]rhah2]h3]h4]h5]rhauh!]ubhLX.r}r(h&X.h'jubeubeubeubeh&UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh8hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h&Uh/}r(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypeUINFOruh!]rhP)r}r(h&Uh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX9Hyperlink target "porting-from-simpy2" is not referenced.rr}r(h&Uh'jubah-hTubah-Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhINUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlr NUexpose_internalsr!NUsectsubtitle_xformr"U source_linkr#NUrfc_referencesr$NUoutput_encodingr%Uutf-8r&U source_urlr'NUinput_encodingr(U utf-8-sigr)U_disable_configr*NU id_prefixr+UU tab_widthr,KUerror_encodingr-Uasciir.U_sourcer/UV/var/build/user_builds/simpy/checkouts/3.0/docs/topical_guides/porting_from_simpy2.rstr0Ugettext_compactr1U generatorr2NUdump_internalsr3NU smart_quotesr4U pep_base_urlr5Uhttp://www.python.org/dev/peps/r6Usyntax_highlightr7Ulongr8Uinput_encoding_error_handlerr9jUauto_id_prefixr:Uidr;Udoctitle_xformr<Ustrip_elements_with_classesr=NU _config_filesr>]Ufile_insertion_enabledr?U raw_enabledr@KU dump_settingsrANubUsymbol_footnote_startrBKUidsrC}rD(hjhhbhj hh:hjhh:hjhjh jyuUsubstitution_namesrE}rFh-h8h/}rG(h3]h1]h2]Usourceh+h4]h5]uU footnotesrH]rIUrefidsrJ}rKh]rLh$asub.PK{E0simpy-3.0/.doctrees/topical_guides/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qXtopical guidesqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUtopical-guidesqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXH/var/build/user_builds/simpy/checkouts/3.0/docs/topical_guides/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXTopical Guidesq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XTopical Guidesq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXThis sections covers various aspects of SimPy more in-depth. It assumes that you have a basic understanding of SimPy's capabilities and that you know what you are looking for.q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes compound q@)qA}qB(hUhhhhhUcompoundqCh}qD(h!]h"]qEUtoctree-wrapperqFah#]h$]h&]uh(K h)hh]qGcsphinx.addnodes toctree qH)qI}qJ(hUhhAhhhUtoctreeqKh}qL(UnumberedqMKU includehiddenqNhXtopical_guides/indexqOU titlesonlyqPUglobqQh$]h#]h!]h"]h&]UentriesqR]qSNX"topical_guides/porting_from_simpy2qTqUaUhiddenqVU includefilesqW]qXhTaUmaxdepthqYJuh(K h]ubaubcdocutils.nodes comment qZ)q[}q\(hXsimple_processeshhhhhUcommentq]h}q^(U xml:spaceq_Upreserveq`h$]h#]h!]h"]h&]uh(K h)hh]qah2Xsimple_processesqbqc}qd(hUhh[ubaubhZ)qe}qf(hXasynchronous_interruptshhhhhh]h}qg(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qhh2Xasynchronous_interruptsqiqj}qk(hUhheubaubhZ)ql}qm(hXsuspend_resumehhhhhh]h}qn(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qoh2Xsuspend_resumeqpqq}qr(hUhhlubaubhZ)qs}qt(hXwaiting_for_processeshhhhhh]h}qu(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qvh2Xwaiting_for_processesqwqx}qy(hUhhsubaubhZ)qz}q{(hX resourceshhhhhh]h}q|(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]q}h2X resourcesq~q}q(hUhhzubaubhZ)q}q(hX monitoringhhhhhh]h}q(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qh2X monitoringqq}q(hUhhubaubhZ)q}q(hXanalyzing_resultshhhhhh]h}q(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qh2Xanalyzing_resultsqq}q(hUhhubaubhZ)q}q(hXintegration_with_guishhhhhh]h}q(h_h`h$]h#]h!]h"]h&]uh(Kh)hh]qh2Xintegration_with_guisqq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqʼnUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqшUtrim_footnote_reference_spaceq҉UenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformq։U source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUH/var/build/user_builds/simpy/checkouts/3.0/docs/topical_guides/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK{EW~::,simpy-3.0/.doctrees/examples/carwash.doctreecdocutils.nodes document q)q}q(U nametypesq}qXcarwashqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUcarwashqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXD/var/build/user_builds/simpy/checkouts/3.0/docs/examples/carwash.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXCarwashq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XCarwashq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXWaiting for other processesqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XWaiting for other processesqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: Resource hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXResources: Resourceq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: Resourceq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXThe *Carwash* example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.hhhhhh:h}qc(h!]h"]h#]h$]h&]uh(K h)hh]qd(h2XThe qeqf}qg(hXThe hhaubcdocutils.nodes emphasis qh)qi}qj(hX *Carwash*h}qk(h!]h"]h#]h$]h&]uhhah]qlh2XCarwashqmqn}qo(hUhhiubahUemphasisqpubh2X example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.qqqr}qs(hX example is a simulation of a carwash with a limited number of machines and a number of cars that arrive at the carwash to get cleaned.hhaubeubh6)qt}qu(hXThe carwash uses a :class:`~simpy.resources.resource.Resource` to model the limited number of washing machines. It also defines a process for washing a car.hhhhhh:h}qv(h!]h"]h#]h$]h&]uh(Kh)hh]qw(h2XThe carwash uses a qxqy}qz(hXThe carwash uses a hhtubcsphinx.addnodes pending_xref q{)q|}q}(hX+:class:`~simpy.resources.resource.Resource`q~hhthhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/carwashqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hh~h}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh|h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X^ to model the limited number of washing machines. It also defines a process for washing a car.qq}q(hX^ to model the limited number of washing machines. It also defines a process for washing a car.hhtubeubh6)q}q(hXWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's *wash* processes and waits for it to finish. It finally releases the machine and leaves.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XcWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's qq}q(hXcWhen a car arrives at the carwash, it requests a machine. Once it got one, it starts the carwash's hhubhh)q}q(hX*wash*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xwashqq}q(hUhhubahhpubh2XR processes and waits for it to finish. It finally releases the machine and leaves.qq}q(hXR processes and waits for it to finish. It finally releases the machine and leaves.hhubeubh6)q}q(hXThe cars are generated by a *setup* process. After creating an intial amount of cars it creates new *car* processes after a random time interval as long as the simulation continues.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XThe cars are generated by a qq}q(hXThe cars are generated by a hhubhh)q}q(hX*setup*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsetupqq}q(hUhhubahhpubh2XA process. After creating an intial amount of cars it creates new qq}q(hXA process. After creating an intial amount of cars it creates new hhubhh)q}q(hX*car*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xcarqq}q(hUhhubahhpubh2XL processes after a random time interval as long as the simulation continues.qq}q(hXL processes after a random time interval as long as the simulation continues.hhubeubcdocutils.nodes literal_block q)q}q(hX8 """ Carwasch example. Covers: - Waiting for other processes - Resources: Resource Scenario: A carwash has a limited number of washing machines and defines a washing processes that takes some (random) time. Car processes arrive at the carwash at a random time. If one washing machine is available, they start the washing process and wait for it to finish. If not, they wait until they an use one. """ import random import simpy RANDOM_SEED = 42 NUM_MACHINES = 2 # Number of machines in the carwash WASHTIME = 5 # Minutes it takes to clean a car T_INTER = 7 # Create a car every ~7 minutes SIM_TIME = 20 # Simulation time in minutes class Carwash(object): """A carwash has a limited number of machines (``NUM_MACHINES``) to clean cars in parallel. Cars have to request one of the machines. When they got one, they can start the washing processes and wait for it to finish (which takes ``washtime`` minutes). """ def __init__(self, env, num_machines, washtime): self.env = env self.machine = simpy.Resource(env, num_machines) self.washtime = washtime def wash(self, car): """The washing processes. It takes a ``car`` processes and tries to clean it.""" yield self.env.timeout(WASHTIME) print("Carwashed removed %d%% of %s's dirt." % (random.randint(50, 99), car)) def car(env, name, cw): """The car process (each car has a ``name``) arrives at the carwash (``cw``) and requests a cleaning machine. It then starts the washing process, waits for it to finish and leaves to never come back ... """ print('%s arrives at the carwash at %.2f.' % (name, env.now)) with cw.machine.request() as request: yield request print('%s enters the carwash at %.2f.' % (name, env.now)) yield env.process(cw.wash(name)) print('%s leaves the carwash at %.2f.' % (name, env.now)) def setup(env, num_machines, washtime, t_inter): """Create a carwash, a number of initial cars and keep creating cars approx. every ``t_inter`` minutes.""" # Create the carwash carwash = Carwash(env, num_machines, washtime) # Create 4 initial cars for i in range(4): env.process(car(env, 'Car %d' % i, carwash)) # Create more cars while the simulation is running while True: yield env.timeout(random.randint(t_inter-2, t_inter+2)) i += 1 env.process(car(env, 'Car %d' % i, carwash)) # Setup and start the simulation print('Carwash') print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER)) # Execute! env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXH/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/carwash.pyh"]h&]uh(Kh)hh]qh2X8 """ Carwasch example. Covers: - Waiting for other processes - Resources: Resource Scenario: A carwash has a limited number of washing machines and defines a washing processes that takes some (random) time. Car processes arrive at the carwash at a random time. If one washing machine is available, they start the washing process and wait for it to finish. If not, they wait until they an use one. """ import random import simpy RANDOM_SEED = 42 NUM_MACHINES = 2 # Number of machines in the carwash WASHTIME = 5 # Minutes it takes to clean a car T_INTER = 7 # Create a car every ~7 minutes SIM_TIME = 20 # Simulation time in minutes class Carwash(object): """A carwash has a limited number of machines (``NUM_MACHINES``) to clean cars in parallel. Cars have to request one of the machines. When they got one, they can start the washing processes and wait for it to finish (which takes ``washtime`` minutes). """ def __init__(self, env, num_machines, washtime): self.env = env self.machine = simpy.Resource(env, num_machines) self.washtime = washtime def wash(self, car): """The washing processes. It takes a ``car`` processes and tries to clean it.""" yield self.env.timeout(WASHTIME) print("Carwashed removed %d%% of %s's dirt." % (random.randint(50, 99), car)) def car(env, name, cw): """The car process (each car has a ``name``) arrives at the carwash (``cw``) and requests a cleaning machine. It then starts the washing process, waits for it to finish and leaves to never come back ... """ print('%s arrives at the carwash at %.2f.' % (name, env.now)) with cw.machine.request() as request: yield request print('%s enters the carwash at %.2f.' % (name, env.now)) yield env.process(cw.wash(name)) print('%s leaves the carwash at %.2f.' % (name, env.now)) def setup(env, num_machines, washtime, t_inter): """Create a carwash, a number of initial cars and keep creating cars approx. every ``t_inter`` minutes.""" # Create the carwash carwash = Carwash(env, num_machines, washtime) # Create 4 initial cars for i in range(4): env.process(car(env, 'Car %d' % i, carwash)) # Create more cars while the simulation is running while True: yield env.timeout(random.randint(t_inter-2, t_inter+2)) i += 1 env.process(car(env, 'Car %d' % i, carwash)) # Setup and start the simulation print('Carwash') print('Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-)') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() env.process(setup(env, NUM_MACHINES, WASHTIME, T_INTER)) # Execute! env.run(until=SIM_TIME) q̅q}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qԅq}q(hhhhubaubh)q}q(hXCarwash Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-) Car 0 arrives at the carwash at 0.00. Car 1 arrives at the carwash at 0.00. Car 2 arrives at the carwash at 0.00. Car 3 arrives at the carwash at 0.00. Car 0 enters the carwash at 0.00. Car 1 enters the carwash at 0.00. Car 4 arrives at the carwash at 5.00. Carwashed removed 97% of Car 0's dirt. Carwashed removed 67% of Car 1's dirt. Car 0 leaves the carwash at 5.00. Car 1 leaves the carwash at 5.00. Car 2 enters the carwash at 5.00. Car 3 enters the carwash at 5.00. Car 5 arrives at the carwash at 10.00. Carwashed removed 64% of Car 2's dirt. Carwashed removed 58% of Car 3's dirt. Car 2 leaves the carwash at 10.00. Car 3 leaves the carwash at 10.00. Car 4 enters the carwash at 10.00. Car 5 enters the carwash at 10.00. Carwashed removed 97% of Car 4's dirt. Carwashed removed 56% of Car 5's dirt. Car 4 leaves the carwash at 15.00. Car 5 leaves the carwash at 15.00. Car 6 arrives at the carwash at 16.00. Car 6 enters the carwash at 16.00. hhhhhhh}q(h!]hhh$]h#]UsourceXI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/carwash.outh"]h&]uh(Kh)hh]qh2XCarwash Check out http://youtu.be/fXXmeP9TvBg while simulating ... ;-) Car 0 arrives at the carwash at 0.00. Car 1 arrives at the carwash at 0.00. Car 2 arrives at the carwash at 0.00. Car 3 arrives at the carwash at 0.00. Car 0 enters the carwash at 0.00. Car 1 enters the carwash at 0.00. Car 4 arrives at the carwash at 5.00. Carwashed removed 97% of Car 0's dirt. Carwashed removed 67% of Car 1's dirt. Car 0 leaves the carwash at 5.00. Car 1 leaves the carwash at 5.00. Car 2 enters the carwash at 5.00. Car 3 enters the carwash at 5.00. Car 5 arrives at the carwash at 10.00. Carwashed removed 64% of Car 2's dirt. Carwashed removed 58% of Car 3's dirt. Car 2 leaves the carwash at 10.00. Car 3 leaves the carwash at 10.00. Car 4 enters the carwash at 10.00. Car 5 enters the carwash at 10.00. Carwashed removed 97% of Car 4's dirt. Carwashed removed 56% of Car 5's dirt. Car 4 leaves the carwash at 15.00. Car 5 leaves the carwash at 15.00. Car 6 arrives at the carwash at 16.00. Car 6 enters the carwash at 16.00. qۅq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesr Nh/NUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesr NUoutput_encodingr!Uutf-8r"U source_urlr#NUinput_encodingr$U utf-8-sigr%U_disable_configr&NU id_prefixr'UU tab_widthr(KUerror_encodingr)Uasciir*U_sourcer+UD/var/build/user_builds/simpy/checkouts/3.0/docs/examples/carwash.rstr,Ugettext_compactr-U generatorr.NUdump_internalsr/NU smart_quotesr0U pep_base_urlr1Uhttp://www.python.org/dev/peps/r2Usyntax_highlightr3Ulongr4Uinput_encoding_error_handlerr5jUauto_id_prefixr6Uidr7Udoctitle_xformr8Ustrip_elements_with_classesr9NU _config_filesr:]Ufile_insertion_enabledr;U raw_enabledr<KU dump_settingsr=NubUsymbol_footnote_startr>KUidsr?}r@hhsUsubstitution_namesrA}rBhh)h}rC(h!]h$]h#]Usourcehh"]h&]uU footnotesrD]rEUrefidsrF}rGub.PK{ERR:simpy-3.0/.doctrees/examples/process_communication.doctreecdocutils.nodes document q)q}q(U nametypesq}qXprocess communicationqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUprocess-communicationqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXR/var/build/user_builds/simpy/checkouts/3.0/docs/examples/process_communication.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXProcess Communicationq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XProcess Communicationq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qFcdocutils.nodes list_item qG)qH}qI(hXResources: Store hhAhhhU list_itemqJh}qK(h!]h"]h#]h$]h&]uh(Nh)hh]qLh6)qM}qN(hXResources: StoreqOhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: StoreqRqS}qT(hhOhhMubaubaubaubh6)qU}qV(hXThis example shows how to interconnect simulation model elements together using "resources.Store" for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.qWhhhhhh:h}qX(h!]h"]h#]h$]h&]uh(K h)hh]qYh2XThis example shows how to interconnect simulation model elements together using "resources.Store" for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store.qZq[}q\(hhWhhUubaubcdocutils.nodes definition_list q])q^}q_(hUhhhhhUdefinition_listq`h}qa(h!]h"]h#]h$]h&]uh(Nh)hh]qb(cdocutils.nodes definition_list_item qc)qd}qe(hXWhen Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. hh^hhhUdefinition_list_itemqfh}qg(h!]h"]h#]h$]h&]uh(Kh]qh(cdocutils.nodes term qi)qj}qk(hX When Useful:qlhhdhhhUtermqmh}qn(h!]h"]h#]h$]h&]uh(Kh]qoh2X When Useful:qpqq}qr(hhlhhjubaubcdocutils.nodes definition qs)qt}qu(hUh}qv(h!]h"]h#]h$]h&]uhhdh]qw(h6)qx}qy(hXWhen a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.qzhhthhhh:h}q{(h!]h"]h#]h$]h&]uh(Kh]q|h2XWhen a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process.q}q~}q(hhzhhxubaubh6)q}q(hX[This is also useful when some information needs to be broadcast to many receiving processesqhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X[This is also useful when some information needs to be broadcast to many receiving processesqq}q(hhhhubaubh6)q}q(hXgFinally, using pipes can simplify how processes are interconnected to each other in a simulation model.qhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2XgFinally, using pipes can simplify how processes are interconnected to each other in a simulation model.qq}q(hhhhubaubehU definitionqubeubhc)q}q(hXExample By: Keith Smith hh^hhhhfh}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(hi)q}q(hX Example By:qhhhhhhmh}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Example By:qq}q(hhhhubaubhs)q}q(hUh}q(h!]h"]h#]h$]h&]uhhh]qh6)q}q(hX Keith Smithqhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Keith Smithqq}q(hhhhubaubahhubeubeubcdocutils.nodes literal_block q)q}q(hX""" Process communication example Covers: - Resources: Store Scenario: This example shows how to interconnect simulation model elements together using :class:`~simpy.resources.store.Store` for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store. When Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. Example By: Keith Smith """ import random import simpy RANDOM_SEED = 42 SIM_TIME = 100 class BroadcastPipe(object): """A Broadcast pipe that allows one process to send messages to many. This construct is useful when message consumers are running at different rates than message generators and provides an event buffering to the consuming processes. The parameters are used to create a new :class:`~simpy.resources.store.Store` instance each time :meth:`get_output_conn()` is called. """ def __init__(self, env, capacity=simpy.core.Infinity): self.env = env self.capacity = capacity self.pipes = [] def put(self, value): """Broadcast a *value* to all receivers.""" if not self.pipes: raise RuntimeError('There are no output pipes.') events = [store.put(value) for store in self.pipes] return self.env.all_of(events) # Condition event for all "events" def get_output_conn(self): """Get a new output connection for this broadcast pipe. The return value is a :class:`~simpy.resources.store.Store`. """ pipe = simpy.Store(self.env, capacity=self.capacity) self.pipes.append(pipe) return pipe def message_generator(name, env, out_pipe): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(random.randint(6, 10)) # messages are time stamped to later check if the consumer was # late getting them. Note, using event.triggered to do this may # result in failure due to FIFO nature of simulation yields. # (i.e. if at the same env.now, message_generator puts a message # in the pipe first and then message_consumer gets from pipe, # the event.triggered will be True in the other order it will be # False msg = (env.now, '%s says hello at %d' % (name, env.now)) out_pipe.put(msg) def message_consumer(name, env, in_pipe): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield in_pipe.get() if msg[0] < env.now: # if message was already put into pipe, then # message_consumer was late getting to it. Depending on what # is being modeled this, may, or may not have some # significance print('LATE Getting Message: at time %d: %s received message: %s' % (env.now, name, msg[1])) else: # message_consumer is synchronized with message_generator print('at time %d: %s received message: %s.' % (env.now, name, msg[1])) # Process does some other work, which may result in missing messages yield env.timeout(random.randint(4, 8)) # Setup and start the simulation print('Process communication') random.seed(RANDOM_SEED) env = simpy.Environment() # For one-to-one or many-to-one type pipes, use Store pipe = simpy.Store(env) env.process(message_generator('Generator A', env, pipe)) env.process(message_consumer('Consumer A', env, pipe)) print('\nOne-to-one pipe communication\n') env.run(until=SIM_TIME) # For one-to many use BroadcastPipe # (Note: could also be used for one-to-one,many-to-one or many-to-many) env = simpy.Environment() bc_pipe = BroadcastPipe(env) env.process(message_generator('Generator A', env, bc_pipe)) env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn())) env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn())) print('\nOne-to-many pipe communication\n') env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXV/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/process_communication.pyh"]h&]uh(Kh)hh]qh2X""" Process communication example Covers: - Resources: Store Scenario: This example shows how to interconnect simulation model elements together using :class:`~simpy.resources.store.Store` for one-to-one, and many-to-one asynchronous processes. For one-to-many a simple BroadCastPipe class is constructed from Store. When Useful: When a consumer process does not always wait on a generating process and these processes run asynchronously. This example shows how to create a buffer and also tell is the consumer process was late yielding to the event from a generating process. This is also useful when some information needs to be broadcast to many receiving processes Finally, using pipes can simplify how processes are interconnected to each other in a simulation model. Example By: Keith Smith """ import random import simpy RANDOM_SEED = 42 SIM_TIME = 100 class BroadcastPipe(object): """A Broadcast pipe that allows one process to send messages to many. This construct is useful when message consumers are running at different rates than message generators and provides an event buffering to the consuming processes. The parameters are used to create a new :class:`~simpy.resources.store.Store` instance each time :meth:`get_output_conn()` is called. """ def __init__(self, env, capacity=simpy.core.Infinity): self.env = env self.capacity = capacity self.pipes = [] def put(self, value): """Broadcast a *value* to all receivers.""" if not self.pipes: raise RuntimeError('There are no output pipes.') events = [store.put(value) for store in self.pipes] return self.env.all_of(events) # Condition event for all "events" def get_output_conn(self): """Get a new output connection for this broadcast pipe. The return value is a :class:`~simpy.resources.store.Store`. """ pipe = simpy.Store(self.env, capacity=self.capacity) self.pipes.append(pipe) return pipe def message_generator(name, env, out_pipe): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(random.randint(6, 10)) # messages are time stamped to later check if the consumer was # late getting them. Note, using event.triggered to do this may # result in failure due to FIFO nature of simulation yields. # (i.e. if at the same env.now, message_generator puts a message # in the pipe first and then message_consumer gets from pipe, # the event.triggered will be True in the other order it will be # False msg = (env.now, '%s says hello at %d' % (name, env.now)) out_pipe.put(msg) def message_consumer(name, env, in_pipe): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield in_pipe.get() if msg[0] < env.now: # if message was already put into pipe, then # message_consumer was late getting to it. Depending on what # is being modeled this, may, or may not have some # significance print('LATE Getting Message: at time %d: %s received message: %s' % (env.now, name, msg[1])) else: # message_consumer is synchronized with message_generator print('at time %d: %s received message: %s.' % (env.now, name, msg[1])) # Process does some other work, which may result in missing messages yield env.timeout(random.randint(4, 8)) # Setup and start the simulation print('Process communication') random.seed(RANDOM_SEED) env = simpy.Environment() # For one-to-one or many-to-one type pipes, use Store pipe = simpy.Store(env) env.process(message_generator('Generator A', env, pipe)) env.process(message_consumer('Consumer A', env, pipe)) print('\nOne-to-one pipe communication\n') env.run(until=SIM_TIME) # For one-to many use BroadcastPipe # (Note: could also be used for one-to-one,many-to-one or many-to-many) env = simpy.Environment() bc_pipe = BroadcastPipe(env) env.process(message_generator('Generator A', env, bc_pipe)) env.process(message_consumer('Consumer A', env, bc_pipe.get_output_conn())) env.process(message_consumer('Consumer B', env, bc_pipe.get_output_conn())) print('\nOne-to-many pipe communication\n') env.run(until=SIM_TIME) qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hX Process communication One-to-one pipe communication at time 6: Consumer A received message: Generator A says hello at 6. at time 12: Consumer A received message: Generator A says hello at 12. at time 19: Consumer A received message: Generator A says hello at 19. at time 26: Consumer A received message: Generator A says hello at 26. at time 36: Consumer A received message: Generator A says hello at 36. at time 46: Consumer A received message: Generator A says hello at 46. at time 52: Consumer A received message: Generator A says hello at 52. at time 58: Consumer A received message: Generator A says hello at 58. LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65 at time 75: Consumer A received message: Generator A says hello at 75. at time 85: Consumer A received message: Generator A says hello at 85. at time 95: Consumer A received message: Generator A says hello at 95. One-to-many pipe communication at time 10: Consumer A received message: Generator A says hello at 10. at time 10: Consumer B received message: Generator A says hello at 10. at time 18: Consumer A received message: Generator A says hello at 18. at time 18: Consumer B received message: Generator A says hello at 18. at time 27: Consumer A received message: Generator A says hello at 27. at time 27: Consumer B received message: Generator A says hello at 27. at time 34: Consumer A received message: Generator A says hello at 34. at time 34: Consumer B received message: Generator A says hello at 34. at time 40: Consumer A received message: Generator A says hello at 40. LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40 at time 46: Consumer A received message: Generator A says hello at 46. LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46 at time 56: Consumer A received message: Generator A says hello at 56. at time 56: Consumer B received message: Generator A says hello at 56. at time 65: Consumer A received message: Generator A says hello at 65. at time 65: Consumer B received message: Generator A says hello at 65. at time 74: Consumer A received message: Generator A says hello at 74. at time 74: Consumer B received message: Generator A says hello at 74. at time 82: Consumer A received message: Generator A says hello at 82. at time 82: Consumer B received message: Generator A says hello at 82. at time 92: Consumer A received message: Generator A says hello at 92. at time 92: Consumer B received message: Generator A says hello at 92. at time 98: Consumer B received message: Generator A says hello at 98. at time 98: Consumer A received message: Generator A says hello at 98. hhhhhhh}q(h!]hhh$]h#]UsourceXW/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/process_communication.outh"]h&]uh(K h)hh]qh2X Process communication One-to-one pipe communication at time 6: Consumer A received message: Generator A says hello at 6. at time 12: Consumer A received message: Generator A says hello at 12. at time 19: Consumer A received message: Generator A says hello at 19. at time 26: Consumer A received message: Generator A says hello at 26. at time 36: Consumer A received message: Generator A says hello at 36. at time 46: Consumer A received message: Generator A says hello at 46. at time 52: Consumer A received message: Generator A says hello at 52. at time 58: Consumer A received message: Generator A says hello at 58. LATE Getting Message: at time 66: Consumer A received message: Generator A says hello at 65 at time 75: Consumer A received message: Generator A says hello at 75. at time 85: Consumer A received message: Generator A says hello at 85. at time 95: Consumer A received message: Generator A says hello at 95. One-to-many pipe communication at time 10: Consumer A received message: Generator A says hello at 10. at time 10: Consumer B received message: Generator A says hello at 10. at time 18: Consumer A received message: Generator A says hello at 18. at time 18: Consumer B received message: Generator A says hello at 18. at time 27: Consumer A received message: Generator A says hello at 27. at time 27: Consumer B received message: Generator A says hello at 27. at time 34: Consumer A received message: Generator A says hello at 34. at time 34: Consumer B received message: Generator A says hello at 34. at time 40: Consumer A received message: Generator A says hello at 40. LATE Getting Message: at time 41: Consumer B received message: Generator A says hello at 40 at time 46: Consumer A received message: Generator A says hello at 46. LATE Getting Message: at time 47: Consumer B received message: Generator A says hello at 46 at time 56: Consumer A received message: Generator A says hello at 56. at time 56: Consumer B received message: Generator A says hello at 56. at time 65: Consumer A received message: Generator A says hello at 65. at time 65: Consumer B received message: Generator A says hello at 65. at time 74: Consumer A received message: Generator A says hello at 74. at time 74: Consumer B received message: Generator A says hello at 74. at time 82: Consumer A received message: Generator A says hello at 82. at time 82: Consumer B received message: Generator A says hello at 82. at time 92: Consumer A received message: Generator A says hello at 92. at time 92: Consumer B received message: Generator A says hello at 92. at time 98: Consumer B received message: Generator A says hello at 98. at time 98: Consumer A received message: Generator A says hello at 98. qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingrUasciirU_sourcerUR/var/build/user_builds/simpy/checkouts/3.0/docs/examples/process_communication.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledr U raw_enabledr!KU dump_settingsr"NubUsymbol_footnote_startr#KUidsr$}r%hhsUsubstitution_namesr&}r'hh)h}r((h!]h$]h#]Usourcehh"]h&]uU footnotesr)]r*Urefidsr+}r,ub.PK{Eah)),simpy-3.0/.doctrees/examples/latency.doctreecdocutils.nodes document q)q}q(U nametypesq}qX event latencyqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU event-latencyqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXD/var/build/user_builds/simpy/checkouts/3.0/docs/examples/latency.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Event Latencyq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Event Latencyq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qFcdocutils.nodes list_item qG)qH}qI(hXResources: Store hhAhhhU list_itemqJh}qK(h!]h"]h#]h$]h&]uh(Nh)hh]qLh6)qM}qN(hXResources: StoreqOhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: StoreqRqS}qT(hhOhhMubaubaubaubh6)qU}qV(hXlThis example shows how to separate the time delay of events between processes from the processes themselves.qWhhhhhh:h}qX(h!]h"]h#]h$]h&]uh(K h)hh]qYh2XlThis example shows how to separate the time delay of events between processes from the processes themselves.qZq[}q\(hhWhhUubaubcdocutils.nodes definition_list q])q^}q_(hUhhhhhUdefinition_listq`h}qa(h!]h"]h#]h$]h&]uh(Nh)hh]qb(cdocutils.nodes definition_list_item qc)qd}qe(hXWhen Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages hh^hhhUdefinition_list_itemqfh}qg(h!]h"]h#]h$]h&]uh(Kh]qh(cdocutils.nodes term qi)qj}qk(hX When Useful:qlhhdhhhUtermqmh}qn(h!]h"]h#]h$]h&]uh(Kh]qoh2X When Useful:qpqq}qr(hhlhhjubaubcdocutils.nodes definition qs)qt}qu(hUh}qv(h!]h"]h#]h$]h&]uhhdh]qw(h6)qx}qy(hXWhen modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.qzhhthhhh:h}q{(h!]h"]h#]h$]h&]uh(Kh]q|h2XWhen modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes.q}q~}q(hhzhhxubaubh6)q}q(hX;Can also be used to interconnect processes sending messagesqhhthhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X;Can also be used to interconnect processes sending messagesqq}q(hhhhubaubehU definitionqubeubhc)q}q(hXExample by: Keith Smith hh^hhhhfh}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(hi)q}q(hX Example by:qhhhhhhmh}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Example by:qq}q(hhhhubaubhs)q}q(hUh}q(h!]h"]h#]h$]h&]uhhh]qh6)q}q(hX Keith Smithqhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh]qh2X Keith Smithqq}q(hhhhubaubahhubeubeubcdocutils.nodes literal_block q)q}q(hX1""" Event Latency example Covers: - Resources: Store Scenario: This example shows how to separate the time delay of events between processes from the processes themselves. When Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages Example by: Keith Smith """ import simpy SIM_DURATION = 100 class Cable(object): """This class represents the propagation through a cable.""" def __init__(self, env, delay): self.env = env self.delay = delay self.store = simpy.Store(env) def latency(self, value): yield self.env.timeout(self.delay) self.store.put(value) def put(self, value): self.env.process(self.latency(value)) def get(self): return self.store.get() def sender(env, cable): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(5) cable.put('Sender sent this at %d' % env.now) def receiver(env, cable): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield cable.get() print('Received this at %d while %s' % (env.now, msg)) # Setup and start the simulation print('Event Latency') env = simpy.Environment() cable = Cable(env, 10) env.process(sender(env, cable)) env.process(receiver(env, cable)) env.run(until=SIM_DURATION) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXH/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/latency.pyh"]h&]uh(Kh)hh]qh2X1""" Event Latency example Covers: - Resources: Store Scenario: This example shows how to separate the time delay of events between processes from the processes themselves. When Useful: When modeling physical things such as cables, RF propagation, etc. it better encapsulation to keep this propagation mechanism outside of the sending and receiving processes. Can also be used to interconnect processes sending messages Example by: Keith Smith """ import simpy SIM_DURATION = 100 class Cable(object): """This class represents the propagation through a cable.""" def __init__(self, env, delay): self.env = env self.delay = delay self.store = simpy.Store(env) def latency(self, value): yield self.env.timeout(self.delay) self.store.put(value) def put(self, value): self.env.process(self.latency(value)) def get(self): return self.store.get() def sender(env, cable): """A process which randomly generates messages.""" while True: # wait for next transmission yield env.timeout(5) cable.put('Sender sent this at %d' % env.now) def receiver(env, cable): """A process which consumes messages.""" while True: # Get event for message pipe msg = yield cable.get() print('Received this at %d while %s' % (env.now, msg)) # Setup and start the simulation print('Event Latency') env = simpy.Environment() cable = Cable(env, 10) env.process(sender(env, cable)) env.process(receiver(env, cable)) env.run(until=SIM_DURATION) qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hXNEvent Latency Received this at 15 while Sender sent this at 5 Received this at 20 while Sender sent this at 10 Received this at 25 while Sender sent this at 15 Received this at 30 while Sender sent this at 20 Received this at 35 while Sender sent this at 25 Received this at 40 while Sender sent this at 30 Received this at 45 while Sender sent this at 35 Received this at 50 while Sender sent this at 40 Received this at 55 while Sender sent this at 45 Received this at 60 while Sender sent this at 50 Received this at 65 while Sender sent this at 55 Received this at 70 while Sender sent this at 60 Received this at 75 while Sender sent this at 65 Received this at 80 while Sender sent this at 70 Received this at 85 while Sender sent this at 75 Received this at 90 while Sender sent this at 80 Received this at 95 while Sender sent this at 85 hhhhhhh}q(h!]hhh$]h#]UsourceXI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/latency.outh"]h&]uh(Kh)hh]qh2XNEvent Latency Received this at 15 while Sender sent this at 5 Received this at 20 while Sender sent this at 10 Received this at 25 while Sender sent this at 15 Received this at 30 while Sender sent this at 20 Received this at 35 while Sender sent this at 25 Received this at 40 while Sender sent this at 30 Received this at 45 while Sender sent this at 35 Received this at 50 while Sender sent this at 40 Received this at 55 while Sender sent this at 45 Received this at 60 while Sender sent this at 50 Received this at 65 while Sender sent this at 55 Received this at 70 while Sender sent this at 60 Received this at 75 while Sender sent this at 65 Received this at 80 while Sender sent this at 70 Received this at 85 while Sender sent this at 75 Received this at 90 while Sender sent this at 80 Received this at 95 while Sender sent this at 85 qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqۈUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUD/var/build/user_builds/simpy/checkouts/3.0/docs/examples/latency.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}rhhsUsubstitution_namesr}r hh)h}r!(h!]h$]h#]Usourcehh"]h&]uU footnotesr"]r#Urefidsr$}r%ub.PK{E &f>f>*simpy-3.0/.doctrees/examples/index.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xresources: storeqNX bitbucketqXresources: preemptive resourceqNX monitoringq NX interruptsq NXresources: resourceq NX mainling listq Xresources: containerq NXexamplesqNX all examplesqNX shared eventsqNXwaiting for other processesqNXcondition eventsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUresources-storeqhU bitbucketqhUresources-preemptive-resourceqh U monitoringqh U interruptsq h Uresources-resourceq!h U mainling-listq"h Uresources-containerq#hUexamplesq$hU all-examplesq%hU shared-eventsq&hUwaiting-for-other-processesq'hUcondition-eventsq(uUchildrenq)]q*cdocutils.nodes section q+)q,}q-(U rawsourceq.UUparentq/hUsourceq0cdocutils.nodes reprunicode q1XB/var/build/user_builds/simpy/checkouts/3.0/docs/examples/index.rstq2q3}q4bUtagnameq5Usectionq6U attributesq7}q8(Udupnamesq9]Uclassesq:]Ubackrefsq;]Uidsq<]q=h$aUnamesq>]q?hauUlineq@KUdocumentqAhh)]qB(cdocutils.nodes title qC)qD}qE(h.XExamplesqFh/h,h0h3h5UtitleqGh7}qH(h9]h:]h;]h<]h>]uh@KhAhh)]qIcdocutils.nodes Text qJXExamplesqKqL}qM(h.hFh/hDubaubcdocutils.nodes paragraph qN)qO}qP(h.XyAll theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy's features.qQh/h,h0h3h5U paragraphqRh7}qS(h9]h:]h;]h<]h>]uh@KhAhh)]qThJXyAll theory is grey. In this section, we present various practical examples that demonstrate how to uses SimPy's features.qUqV}qW(h.hQh/hOubaubhN)qX}qY(h.X?Here's a list of examples grouped by features they demonstrate.qZh/h,h0h3h5hRh7}q[(h9]h:]h;]h<]h>]uh@KhAhh)]q\hJX?Here's a list of examples grouped by features they demonstrate.q]q^}q_(h.hZh/hXubaubh+)q`}qa(h.Uh/h,h0h3h5h6h7}qb(h9]h:]h;]h<]qch(ah>]qdhauh@K hAhh)]qe(hC)qf}qg(h.XCondition eventsqhh/h`h0h3h5hGh7}qi(h9]h:]h;]h<]h>]uh@K hAhh)]qjhJXCondition eventsqkql}qm(h.hhh/hfubaubcdocutils.nodes bullet_list qn)qo}qp(h.Uh/h`h0h3h5U bullet_listqqh7}qr(UbulletqsX-h<]h;]h9]h:]h>]uh@K hAhh)]qt(cdocutils.nodes list_item qu)qv}qw(h.X:doc:`bank_renege`qxh/hoh0h3h5U list_itemqyh7}qz(h9]h:]h;]h<]h>]uh@NhAhh)]q{hN)q|}q}(h.hxh/hvh0h3h5hRh7}q~(h9]h:]h;]h<]h>]uh@K h)]qcsphinx.addnodes pending_xref q)q}q(h.hxh/h|h0h3h5U pending_xrefqh7}q(UreftypeXdocqUrefwarnqU reftargetqX bank_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]UrefdocqXexamples/indexquh@K h)]qcdocutils.nodes literal q)q}q(h.hxh7}q(h9]h:]q(Uxrefqheh;]h<]h>]uh/hh)]qhJX bank_renegeqq}q(h.Uh/hubah5Uliteralqubaubaubaubhu)q}q(h.X:doc:`movie_renege` h/hoh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`movie_renege`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocqhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]qh)q}q(h.hh7}q(h9]h:]q(hheh;]h<]h>]uh/hh)]qhJX movie_renegeqq}q(h.Uh/hubah5hubaubaubaubeubeubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qh ah>]qh auh@KhAhh)]q(hC)q}q(h.X Interruptsqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJX Interruptsqq}q(h.hh/hubaubhn)q}q(h.Uh/hh0h3h5hqh7}q(hsX-h<]h;]h9]h:]h>]uh@KhAhh)]qhu)q}q(h.X:doc:`machine_shop` h/hh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`machine_shop`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocqhhX machine_shopU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]qh)q}q(h.hh7}q(h9]h:]q(hheh;]h<]h>]uh/hh)]qhJX machine_shopqхq}q(h.Uh/hubah5hubaubaubaubaubeubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qhah>]qh auh@KhAhh)]qhC)q}q(h.X Monitoringqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJX Monitoringq߅q}q(h.hh/hubaubaubh+)q}q(h.Uh/h,h0h3h5h6h7}q(h9]h:]h;]h<]qh#ah>]qh auh@KhAhh)]q(hC)q}q(h.XResources: Containerqh/hh0h3h5hGh7}q(h9]h:]h;]h<]h>]uh@KhAhh)]qhJXResources: Containerq텁q}q(h.hh/hubaubhn)q}q(h.Uh/hh0h3h5hqh7}q(hsX-h<]h;]h9]h:]h>]uh@KhAhh)]qhu)q}q(h.X:doc:`gas_station_refuel` h/hh0h3h5hyh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhN)q}q(h.X:doc:`gas_station_refuel`qh/hh0h3h5hRh7}q(h9]h:]h;]h<]h>]uh@Kh)]qh)q}q(h.hh/hh0h3h5hh7}q(UreftypeXdocrhhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@Kh)]rh)r}r(h.hh7}r(h9]h:]r(hjeh;]h<]h>]uh/hh)]rhJXgas_station_refuelrr}r (h.Uh/jubah5hubaubaubaubaubeubh+)r }r (h.Uh/h,h0h3h5h6h7}r (h9]h:]h;]h<]r hah>]rhauh@K"hAhh)]r(hC)r}r(h.XResources: Preemptive Resourcerh/j h0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K"hAhh)]rhJXResources: Preemptive Resourcerr}r(h.jh/jubaubhn)r}r(h.Uh/j h0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K$hAhh)]rhu)r}r(h.X:doc:`machine_shop` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r }r!(h.X:doc:`machine_shop`r"h/jh0h3h5hRh7}r#(h9]h:]h;]h<]h>]uh@K$h)]r$h)r%}r&(h.j"h/j h0h3h5hh7}r'(UreftypeXdocr(hhX machine_shopU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K$h)]r)h)r*}r+(h.j"h7}r,(h9]h:]r-(hj(eh;]h<]h>]uh/j%h)]r.hJX machine_shopr/r0}r1(h.Uh/j*ubah5hubaubaubaubaubeubh+)r2}r3(h.Uh/h,h0h3h5h6h7}r4(h9]h:]h;]h<]r5h!ah>]r6h auh@K(hAhh)]r7(hC)r8}r9(h.XResources: Resourcer:h/j2h0h3h5hGh7}r;(h9]h:]h;]h<]h>]uh@K(hAhh)]r<hJXResources: Resourcer=r>}r?(h.j:h/j8ubaubhn)r@}rA(h.Uh/j2h0h3h5hqh7}rB(hsX-h<]h;]h9]h:]h>]uh@K*hAhh)]rC(hu)rD}rE(h.X:doc:`bank_renege`rFh/j@h0h3h5hyh7}rG(h9]h:]h;]h<]h>]uh@NhAhh)]rHhN)rI}rJ(h.jFh/jDh0h3h5hRh7}rK(h9]h:]h;]h<]h>]uh@K*h)]rLh)rM}rN(h.jFh/jIh0h3h5hh7}rO(UreftypeXdocrPhhX bank_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K*h)]rQh)rR}rS(h.jFh7}rT(h9]h:]rU(hjPeh;]h<]h>]uh/jMh)]rVhJX bank_renegerWrX}rY(h.Uh/jRubah5hubaubaubaubhu)rZ}r[(h.X:doc:`carwash`r\h/j@h0h3h5hyh7}r](h9]h:]h;]h<]h>]uh@NhAhh)]r^hN)r_}r`(h.j\h/jZh0h3h5hRh7}ra(h9]h:]h;]h<]h>]uh@K+h)]rbh)rc}rd(h.j\h/j_h0h3h5hh7}re(UreftypeXdocrfhhXcarwashU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K+h)]rgh)rh}ri(h.j\h7}rj(h9]h:]rk(hjfeh;]h<]h>]uh/jch)]rlhJXcarwashrmrn}ro(h.Uh/jhubah5hubaubaubaubhu)rp}rq(h.X:doc:`gas_station_refuel`rrh/j@h0h3h5hyh7}rs(h9]h:]h;]h<]h>]uh@NhAhh)]rthN)ru}rv(h.jrh/jph0h3h5hRh7}rw(h9]h:]h;]h<]h>]uh@K,h)]rxh)ry}rz(h.jrh/juh0h3h5hh7}r{(UreftypeXdocr|hhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K,h)]r}h)r~}r(h.jrh7}r(h9]h:]r(hj|eh;]h<]h>]uh/jyh)]rhJXgas_station_refuelrr}r(h.Uh/j~ubah5hubaubaubaubhu)r}r(h.X:doc:`movie_renege` h/j@h0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`movie_renege`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K-h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K-h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJX movie_renegerr}r(h.Uh/jubah5hubaubaubaubeubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rhah>]rhauh@K1hAhh)]r(hC)r}r(h.XResources: Storerh/jh0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K1hAhh)]rhJXResources: Storerr}r(h.jh/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K3hAhh)]r(hu)r}r(h.X:doc:`latency`rh/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.jh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K3h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhXlatencyU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K3h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJXlatencyrr}r(h.Uh/jubah5hubaubaubaubhu)r}r(h.X:doc:`process_communication` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`process_communication`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K4h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhXprocess_communicationU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K4h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJXprocess_communicationrr}r(h.Uh/jubah5hubaubaubaubeubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rh&ah>]rhauh@K8hAhh)]r(hC)r}r(h.X Shared eventsrh/jh0h3h5hGh7}r(h9]h:]h;]h<]h>]uh@K8hAhh)]rhJX Shared eventsrr}r(h.jh/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K:hAhh)]rhu)r}r(h.X:doc:`movie_renege` h/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.X:doc:`movie_renege`rh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K:h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocrhhX movie_renegeU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K:h)]rh)r}r(h.jh7}r(h9]h:]r(hjeh;]h<]h>]uh/jh)]rhJX movie_renegerr}r(h.Uh/jubah5hubaubaubaubaubeubh+)r}r(h.Uh/h,h0h3h5h6h7}r(h9]h:]h;]h<]rh'ah>]rhauh@K>hAhh)]r(hC)r}r (h.XWaiting for other processesr h/jh0h3h5hGh7}r (h9]h:]h;]h<]h>]uh@K>hAhh)]r hJXWaiting for other processesr r}r(h.j h/jubaubhn)r}r(h.Uh/jh0h3h5hqh7}r(hsX-h<]h;]h9]h:]h>]uh@K@hAhh)]r(hu)r}r(h.X:doc:`carwash`rh/jh0h3h5hyh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhN)r}r(h.jh/jh0h3h5hRh7}r(h9]h:]h;]h<]h>]uh@K@h)]rh)r}r(h.jh/jh0h3h5hh7}r(UreftypeXdocr hhXcarwashU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@K@h)]r!h)r"}r#(h.jh7}r$(h9]h:]r%(hj eh;]h<]h>]uh/jh)]r&hJXcarwashr'r(}r)(h.Uh/j"ubah5hubaubaubaubhu)r*}r+(h.X:doc:`gas_station_refuel` h/jh0h3h5hyh7}r,(h9]h:]h;]h<]h>]uh@NhAhh)]r-hN)r.}r/(h.X:doc:`gas_station_refuel`r0h/j*h0h3h5hRh7}r1(h9]h:]h;]h<]h>]uh@KAh)]r2h)r3}r4(h.j0h/j.h0h3h5hh7}r5(UreftypeXdocr6hhXgas_station_refuelU refdomainUh<]h;]U refexplicith9]h:]h>]hhuh@KAh)]r7h)r8}r9(h.j0h7}r:(h9]h:]r;(hj6eh;]h<]h>]uh/j3h)]r<hJXgas_station_refuelr=r>}r?(h.Uh/j8ubah5hubaubaubaubeubeubh+)r@}rA(h.Uh/h,h0h3h5h6h7}rB(h9]h:]h;]h<]rCh%ah>]rDhauh@KEhAhh)]rE(hC)rF}rG(h.X All examplesrHh/j@h0h3h5hGh7}rI(h9]h:]h;]h<]h>]uh@KEhAhh)]rJhJX All examplesrKrL}rM(h.jHh/jFubaubcdocutils.nodes compound rN)rO}rP(h.Uh/j@h0h3h5UcompoundrQh7}rR(h9]h:]rSUtoctree-wrapperrTah;]h<]h>]uh@KPhAhh)]rUcsphinx.addnodes toctree rV)rW}rX(h.Uh/jOh0h3h5UtoctreerYh7}rZ(Unumberedr[KU includehiddenr\h/hU titlesonlyr]Uglobr^h<]h;]h9]h:]h>]Uentriesr_]r`(NXexamples/bank_renegerarbNXexamples/carwashrcrdNXexamples/machine_shoprerfNXexamples/movie_renegergrhNXexamples/gas_station_refuelrirjNXexamples/process_communicationrkrlNXexamples/latencyrmrneUhiddenroU includefilesrp]rq(jajcjejgjijkjmeUmaxdepthrrJuh@KGh)]ubaubhN)rs}rt(h.XYou have ideas for better examples? Please send them to our `mainling list `_ or make a pull request on `bitbucket `_.h/j@h0h3h5hRh7}ru(h9]h:]h;]h<]h>]uh@KQhAhh)]rv(hJX<You have ideas for better examples? Please send them to our rwrx}ry(h.X<You have ideas for better examples? Please send them to our h/jsubcdocutils.nodes reference rz)r{}r|(h.XK`mainling list `_h7}r}(UnameX mainling listUrefurir~X8https://lists.sourceforge.net/lists/listinfo/simpy-usersrh<]h;]h9]h:]h>]uh/jsh)]rhJX mainling listrr}r(h.Uh/j{ubah5U referencerubcdocutils.nodes target r)r}r(h.X; U referencedrKh/jsh5Utargetrh7}r(Urefurijh<]rh"ah;]h9]h:]h>]rh auh)]ubhJX or make a pull request on rr}r(h.X or make a pull request on h/jsubjz)r}r(h.X0`bitbucket `_h7}r(Unamehj~X!https://bitbucket.org/simpy/simpyrh<]h;]h9]h:]h>]uh/jsh)]rhJX bitbucketrr}r(h.Uh/jubah5jubj)r}r(h.X$ jKh/jsh5jh7}r(Urefurijh<]rhah;]h9]h:]h>]rhauh)]ubhJX.r}r(h.X.h/jsubeubeubeubah.UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhAhU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhGNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUasciirU_sourcerUB/var/build/user_builds/simpy/checkouts/3.0/docs/examples/index.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjh(h`hhh!j2h&jh hh%j@hjh"jh$h,h#hhj h'juUsubstitution_namesr}rh5hAh7}r(h9]h<]h;]Usourceh3h:]h>]uU footnotesr]rUrefidsr}rub.PK{EnT?T?7simpy-3.0/.doctrees/examples/gas_station_refuel.doctreecdocutils.nodes document q)q}q(U nametypesq}qXgas station refuelingqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUgas-station-refuelingqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXO/var/build/user_builds/simpy/checkouts/3.0/docs/examples/gas_station_refuel.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXGas Station Refuelingq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XGas Station Refuelingq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: ContainerqWhhAhhhhKh}qX(h!]h"]h#]h$]h&]uh(Nh)hh]qYh6)qZ}q[(hhWhhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: Containerq^q_}q`(hhWhhZubaubaubhG)qa}qb(hXWaiting for other processes hhAhhhhKh}qc(h!]h"]h#]h$]h&]uh(Nh)hh]qdh6)qe}qf(hXWaiting for other processesqghhahhhh:h}qh(h!]h"]h#]h$]h&]uh(K h]qih2XWaiting for other processesqjqk}ql(hhghheubaubaubeubh6)qm}qn(hXUThis examples models a gas station and cars that arrive at the station for refueling.qohhhhhh:h}qp(h!]h"]h#]h$]h&]uh(K h)hh]qqh2XUThis examples models a gas station and cars that arrive at the station for refueling.qrqs}qt(hhohhmubaubh6)qu}qv(hXThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as :class:`~simpy.resources.resource.Resource`. The shared fuel tank is modeled with a :class:`~simpy.resources.container.Container`.hhhhhh:h}qw(h!]h"]h#]h$]h&]uh(Kh)hh]qx(h2XThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as qyqz}q{(hXThe gas station has a limited number of fuel pumps and a fuel tank that is shared between the fuel pumps. The gas station is thus modeled as hhuubcsphinx.addnodes pending_xref q|)q}}q~(hX+:class:`~simpy.resources.resource.Resource`qhhuhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/gas_station_refuelqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh}h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X). The shared fuel tank is modeled with a qq}q(hX). The shared fuel tank is modeled with a hhuubh|)q}q(hX-:class:`~simpy.resources.container.Container`qhhuhhhhh}q(UreftypeXclasshhX#simpy.resources.container.ContainerU refdomainXpyqh$]h#]U refexplicith!]h"]h&]hhhNhNuh(Kh]qh)q}q(hhh}q(h!]h"]q(hhXpy-classqeh#]h$]h&]uhhh]qh2X Containerqq}q(hUhhubahhubaubh2X.q}q(hX.hhuubeubh6)q}q(hXVehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XVehicles arriving at the gas station first request a fuel pump from the station. Once they acquire one, they try to take the desired amount of fuel from the fuel pump. They leave when they are done.qq}q(hhhhubaubh6)q}q(hXThe gas stations fuel level is reqularly monitored by *gas station control*. When the level drops below a certain threshold, a *tank truck* is called to refuel the gas station itself.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X6The gas stations fuel level is reqularly monitored by qq}q(hX6The gas stations fuel level is reqularly monitored by hhubcdocutils.nodes emphasis q)q}q(hX*gas station control*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xgas station controlqq}q(hUhhubahUemphasisqubh2X4. When the level drops below a certain threshold, a q…q}q(hX4. When the level drops below a certain threshold, a hhubh)q}q(hX *tank truck*h}q(h!]h"]h#]h$]h&]uhhh]qh2X tank truckqɅq}q(hUhhubahhubh2X, is called to refuel the gas station itself.q̅q}q(hX, is called to refuel the gas station itself.hhubeubcdocutils.nodes literal_block q)q}q(hX """ Gas Station Refueling example Covers: - Resources: Resource - Resources: Container - Waiting for other processes Scenario: A gas station has a limited number of gas pumps that share a common fuel reservoir. Cars randomly arrive at the gas station, request one of the fuel pumps and start refueling from that reservoir. A gas station control process observes the gas station's fuel level and calls a tank truck for refueling if the station's level drops below a threshold. """ import itertools import random import simpy RANDOM_SEED = 42 GAS_STATION_SIZE = 200 # liters THRESHOLD = 10 # Threshold for calling the tank truck (in %) FUEL_TANK_SIZE = 50 # liters FUEL_TANK_LEVEL = [5, 25] # Min/max levels of fuel tanks (in liters) REFUELING_SPEED = 2 # liters / second TANK_TRUCK_TIME = 300 # Seconds it takes the tank truck to arrive T_INTER = [30, 300] # Create a car every [min, max] seconds SIM_TIME = 1000 # Simulation time in seconds def car(name, env, gas_station, fuel_pump): """A car arrives at the gas station for refueling. It requests one of the gas station's fuel pumps and tries to get the desired amount of gas from it. If the stations reservoir is depleted, the car has to wait for the tank truck to arrive. """ fuel_tank_level = random.randint(*FUEL_TANK_LEVEL) print('%s arriving at gas station at %.1f' % (name, env.now)) with gas_station.request() as req: start = env.now # Request one of the gas pumps yield req # Get the required amount of fuel liters_required = FUEL_TANK_SIZE - fuel_tank_level yield fuel_pump.get(liters_required) # The "actual" refueling process takes some time yield env.timeout(liters_required / REFUELING_SPEED) print('%s finished refueling in %.1f seconds.' % (name, env.now - start)) def gas_station_control(env, fuel_pump): """Periodically check the level of the *fuel_pump* and call the tank truck if the level falls below a threshold.""" while True: if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD: # We need to call the tank truck now! print('Calling tank truck at %d' % env.now) # Wait for the tank truck to arrive and refuel the station yield env.process(tank_truck(env, fuel_pump)) yield env.timeout(10) # Check every 10 seconds def tank_truck(env, fuel_pump): """Arrives at the gas station after a certain delay and refuels it.""" yield env.timeout(TANK_TRUCK_TIME) print('Tank truck arriving at time %d' % env.now) ammount = fuel_pump.capacity - fuel_pump.level print('Tank truck refuelling %.1f liters.' % ammount) yield fuel_pump.put(ammount) def car_generator(env, gas_station, fuel_pump): """Generate new cars that arrive at the gas station.""" for i in itertools.count(): yield env.timeout(random.randint(*T_INTER)) env.process(car('Car %d' % i, env, gas_station, fuel_pump)) # Setup and start the simulation print('Gas Station refuelling') random.seed(RANDOM_SEED) # Create environment and start processes env = simpy.Environment() gas_station = simpy.Resource(env, 2) fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE) env.process(gas_station_control(env, fuel_pump)) env.process(car_generator(env, gas_station, fuel_pump)) # Execute! env.run(until=SIM_TIME) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXS/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/gas_station_refuel.pyh"]h&]uh(Kh)hh]qh2X """ Gas Station Refueling example Covers: - Resources: Resource - Resources: Container - Waiting for other processes Scenario: A gas station has a limited number of gas pumps that share a common fuel reservoir. Cars randomly arrive at the gas station, request one of the fuel pumps and start refueling from that reservoir. A gas station control process observes the gas station's fuel level and calls a tank truck for refueling if the station's level drops below a threshold. """ import itertools import random import simpy RANDOM_SEED = 42 GAS_STATION_SIZE = 200 # liters THRESHOLD = 10 # Threshold for calling the tank truck (in %) FUEL_TANK_SIZE = 50 # liters FUEL_TANK_LEVEL = [5, 25] # Min/max levels of fuel tanks (in liters) REFUELING_SPEED = 2 # liters / second TANK_TRUCK_TIME = 300 # Seconds it takes the tank truck to arrive T_INTER = [30, 300] # Create a car every [min, max] seconds SIM_TIME = 1000 # Simulation time in seconds def car(name, env, gas_station, fuel_pump): """A car arrives at the gas station for refueling. It requests one of the gas station's fuel pumps and tries to get the desired amount of gas from it. If the stations reservoir is depleted, the car has to wait for the tank truck to arrive. """ fuel_tank_level = random.randint(*FUEL_TANK_LEVEL) print('%s arriving at gas station at %.1f' % (name, env.now)) with gas_station.request() as req: start = env.now # Request one of the gas pumps yield req # Get the required amount of fuel liters_required = FUEL_TANK_SIZE - fuel_tank_level yield fuel_pump.get(liters_required) # The "actual" refueling process takes some time yield env.timeout(liters_required / REFUELING_SPEED) print('%s finished refueling in %.1f seconds.' % (name, env.now - start)) def gas_station_control(env, fuel_pump): """Periodically check the level of the *fuel_pump* and call the tank truck if the level falls below a threshold.""" while True: if fuel_pump.level / fuel_pump.capacity * 100 < THRESHOLD: # We need to call the tank truck now! print('Calling tank truck at %d' % env.now) # Wait for the tank truck to arrive and refuel the station yield env.process(tank_truck(env, fuel_pump)) yield env.timeout(10) # Check every 10 seconds def tank_truck(env, fuel_pump): """Arrives at the gas station after a certain delay and refuels it.""" yield env.timeout(TANK_TRUCK_TIME) print('Tank truck arriving at time %d' % env.now) ammount = fuel_pump.capacity - fuel_pump.level print('Tank truck refuelling %.1f liters.' % ammount) yield fuel_pump.put(ammount) def car_generator(env, gas_station, fuel_pump): """Generate new cars that arrive at the gas station.""" for i in itertools.count(): yield env.timeout(random.randint(*T_INTER)) env.process(car('Car %d' % i, env, gas_station, fuel_pump)) # Setup and start the simulation print('Gas Station refuelling') random.seed(RANDOM_SEED) # Create environment and start processes env = simpy.Environment() gas_station = simpy.Resource(env, 2) fuel_pump = simpy.Container(env, GAS_STATION_SIZE, init=GAS_STATION_SIZE) env.process(gas_station_control(env, fuel_pump)) env.process(car_generator(env, gas_station, fuel_pump)) # Execute! env.run(until=SIM_TIME) qׅq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:q߅q}q(hhhhubaubh)q}q(hXGas Station refuelling Car 0 arriving at gas station at 87.0 Car 0 finished refueling in 18.5 seconds. Car 1 arriving at gas station at 129.0 Car 1 finished refueling in 19.0 seconds. Car 2 arriving at gas station at 284.0 Car 2 finished refueling in 21.0 seconds. Car 3 arriving at gas station at 385.0 Car 3 finished refueling in 13.5 seconds. Car 4 arriving at gas station at 459.0 Calling tank truck at 460 Car 4 finished refueling in 22.0 seconds. Car 5 arriving at gas station at 705.0 Car 6 arriving at gas station at 750.0 Tank truck arriving at time 760 Tank truck refuelling 188.0 liters. Car 6 finished refueling in 29.0 seconds. Car 5 finished refueling in 76.5 seconds. Car 7 arriving at gas station at 891.0 Car 7 finished refueling in 13.0 seconds. hhhhhhh}q(h!]hhh$]h#]UsourceXT/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/gas_station_refuel.outh"]h&]uh(K!h)hh]qh2XGas Station refuelling Car 0 arriving at gas station at 87.0 Car 0 finished refueling in 18.5 seconds. Car 1 arriving at gas station at 129.0 Car 1 finished refueling in 19.0 seconds. Car 2 arriving at gas station at 284.0 Car 2 finished refueling in 21.0 seconds. Car 3 arriving at gas station at 385.0 Car 3 finished refueling in 13.5 seconds. Car 4 arriving at gas station at 459.0 Calling tank truck at 460 Car 4 finished refueling in 22.0 seconds. Car 5 arriving at gas station at 705.0 Car 6 arriving at gas station at 750.0 Tank truck arriving at time 760 Tank truck refuelling 188.0 liters. Car 6 finished refueling in 29.0 seconds. Car 5 finished refueling in 76.5 seconds. Car 7 arriving at gas station at 891.0 Car 7 finished refueling in 13.0 seconds. q慁q}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh/NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04dr Uexit_status_levelr!KUconfigr"NUstrict_visitorr#NUcloak_email_addressesr$Utrim_footnote_reference_spacer%Uenvr&NUdump_pseudo_xmlr'NUexpose_internalsr(NUsectsubtitle_xformr)U source_linkr*NUrfc_referencesr+NUoutput_encodingr,Uutf-8r-U source_urlr.NUinput_encodingr/U utf-8-sigr0U_disable_configr1NU id_prefixr2UU tab_widthr3KUerror_encodingr4Uasciir5U_sourcer6UO/var/build/user_builds/simpy/checkouts/3.0/docs/examples/gas_station_refuel.rstr7Ugettext_compactr8U generatorr9NUdump_internalsr:NU smart_quotesr;U pep_base_urlr<Uhttp://www.python.org/dev/peps/r=Usyntax_highlightr>Ulongr?Uinput_encoding_error_handlerr@jUauto_id_prefixrAUidrBUdoctitle_xformrCUstrip_elements_with_classesrDNU _config_filesrE]Ufile_insertion_enabledrFU raw_enabledrGKU dump_settingsrHNubUsymbol_footnote_startrIKUidsrJ}rKhhsUsubstitution_namesrL}rMhh)h}rN(h!]h$]h#]Usourcehh"]h&]uU footnotesrO]rPUrefidsrQ}rRub.PK{E FF1simpy-3.0/.doctrees/examples/machine_shop.doctreecdocutils.nodes document q)q}q(U nametypesq}qX machine shopqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU machine-shopqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/machine_shop.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Machine Shopq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Machine Shopq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hX InterruptsqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2X InterruptsqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXResources: PreemptiveResource hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXResources: PreemptiveResourceq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XResources: PreemptiveResourceq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXThis example comprises a workshop with *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.hhhhhh:h}qc(h!]h"]h#]h$]h&]uh(K h)hh]qd(h2X'This example comprises a workshop with qeqf}qg(hX'This example comprises a workshop with hhaubcdocutils.nodes emphasis qh)qi}qj(hX*n*h}qk(h!]h"]h#]h$]h&]uhhah]qlh2Xnqm}qn(hUhhiubahUemphasisqoubh2Xn identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.qpqq}qr(hXn identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously.hhaubeubh6)qs}qt(hXA machine has two processes: *working* implements the actual behaviour of the machine (producing parts). *break_machine* periodically interrupts the *working* process to simulate the machine failure.hhhhhh:h}qu(h!]h"]h#]h$]h&]uh(Kh)hh]qv(h2XA machine has two processes: qwqx}qy(hXA machine has two processes: hhsubhh)qz}q{(hX *working*h}q|(h!]h"]h#]h$]h&]uhhsh]q}h2Xworkingq~q}q(hUhhzubahhoubh2XC implements the actual behaviour of the machine (producing parts). qq}q(hXC implements the actual behaviour of the machine (producing parts). hhsubhh)q}q(hX*break_machine*h}q(h!]h"]h#]h$]h&]uhhsh]qh2X break_machineqq}q(hUhhubahhoubh2X periodically interrupts the qq}q(hX periodically interrupts the hhsubhh)q}q(hX *working*h}q(h!]h"]h#]h$]h&]uhhsh]qh2Xworkingqq}q(hUhhubahhoubh2X) process to simulate the machine failure.qq}q(hX) process to simulate the machine failure.hhsubeubh6)q}q(hX;The repairman's other job is also a process (implemented by *other_job*). The repairman itself is a :class:`~simpy.resources.resource.PreemptiveResource` with a capacity of *1*. The machine repairing has a priority of *1*, while the other job has a priority of *2* (the smaller the number, the higher the priority).hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X<The repairman's other job is also a process (implemented by qq}q(hX<The repairman's other job is also a process (implemented by hhubhh)q}q(hX *other_job*h}q(h!]h"]h#]h$]h&]uhhh]qh2X other_jobqq}q(hUhhubahhoubh2X). The repairman itself is a qq}q(hX). The repairman itself is a hhubcsphinx.addnodes pending_xref q)q}q(hX5:class:`~simpy.resources.resource.PreemptiveResource`qhhhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX+simpy.resources.resource.PreemptiveResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/machine_shopqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhhh]qh2XPreemptiveResourceqq}q(hUhhubahUliteralqubaubh2X with a capacity of qÅq}q(hX with a capacity of hhubhh)q}q(hX*1*h}q(h!]h"]h#]h$]h&]uhhh]qh2X1q}q(hUhhubahhoubh2X*. The machine repairing has a priority of q̅q}q(hX*. The machine repairing has a priority of hhubhh)q}q(hX*1*h}q(h!]h"]h#]h$]h&]uhhh]qh2X1q}q(hUhhubahhoubh2X(, while the other job has a priority of qՅq}q(hX(, while the other job has a priority of hhubhh)q}q(hX*2*h}q(h!]h"]h#]h$]h&]uhhh]qh2X2q}q(hUhhubahhoubh2X3 (the smaller the number, the higher the priority).qޅq}q(hX3 (the smaller the number, the higher the priority).hhubeubcdocutils.nodes literal_block q)q}q(hXs""" Machine shop example Covers: - Interrupts - Resources: PreemptiveResource Scenario: A workshop has *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously. """ import random import simpy RANDOM_SEED = 42 PT_MEAN = 10.0 # Avg. processing time in minutes PT_SIGMA = 2.0 # Sigma of processing time MTTF = 300.0 # Mean time to failure in minutes BREAK_MEAN = 1 / MTTF # Param. for expovariate distribution REPAIR_TIME = 30.0 # Time it takes to repair a machine in minutes JOB_DURATION = 30.0 # Duration of other jobs in minutes NUM_MACHINES = 10 # Number of machines in the machine shop WEEKS = 4 # Simulation time in weeks SIM_TIME = WEEKS * 7 * 24 * 60 # Simulation time in minutes def time_per_part(): """Return actual processing time for a concrete part.""" return random.normalvariate(PT_MEAN, PT_SIGMA) def time_to_failure(): """Return time until next failure for a machine.""" return random.expovariate(BREAK_MEAN) class Machine(object): """A machine produces parts and my get broken every now and then. If it breaks, it requests a *repairman* and continues the production after the it is repaired. A machine has a *name* and a numberof *parts_made* thus far. """ def __init__(self, env, name, repairman): self.env = env self.name = name self.parts_made = 0 self.broken = False # Start "working" and "break_machine" processes for this machine. self.process = env.process(self.working(repairman)) env.process(self.break_machine()) def working(self, repairman): """Produce parts as long as the simulation runs. While making a part, the machine may break multiple times. Request a repairman when this happens. """ while True: # Start making a new part done_in = time_per_part() while done_in: try: # Working on the part start = self.env.now yield self.env.timeout(done_in) done_in = 0 # Set to 0 to exit while loop. except simpy.Interrupt: self.broken = True done_in -= self.env.now - start # How much time left? # Request a repairman. This will preempt its "other_job". with repairman.request(priority=1) as req: yield req yield self.env.timeout(REPAIR_TIME) self.broken = False # Part is done. self.parts_made += 1 def break_machine(self): """Break the machine every now and then.""" while True: yield self.env.timeout(time_to_failure()) if not self.broken: # Only break the machine if it is currently working. self.process.interrupt() def other_jobs(env, repairman): """The repairman's other (unimportant) job.""" while True: # Start a new job done_in = JOB_DURATION while done_in: # Retry the job until it is done. # It's priority is lower than that of machine repairs. with repairman.request(priority=2) as req: yield req try: start = env.now yield env.timeout(done_in) done_in = 0 except simpy.Interrupt: done_in -= env.now - start # Setup and start the simulation print('Machine shop') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() repairman = simpy.PreemptiveResource(env, capacity=1) machines = [Machine(env, 'Machine %d' % i, repairman) for i in range(NUM_MACHINES)] env.process(other_jobs(env, repairman)) # Execute! env.run(until=SIM_TIME) # Analyis/results print('Machine shop results after %s weeks' % WEEKS) for machine in machines: print('%s made %d parts.' % (machine.name, machine.parts_made)) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXM/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/machine_shop.pyh"]h&]uh(Kh)hh]qh2Xs""" Machine shop example Covers: - Interrupts - Resources: PreemptiveResource Scenario: A workshop has *n* identical machines. A stream of jobs (enough to keep the machines busy) arrives. Each machine breaks down periodically. Repairs are carried out by one repairman. The repairman has other, less important tasks to perform, too. Broken machines preempt theses tasks. The repairman continues them when he is done with the machine repair. The workshop works continuously. """ import random import simpy RANDOM_SEED = 42 PT_MEAN = 10.0 # Avg. processing time in minutes PT_SIGMA = 2.0 # Sigma of processing time MTTF = 300.0 # Mean time to failure in minutes BREAK_MEAN = 1 / MTTF # Param. for expovariate distribution REPAIR_TIME = 30.0 # Time it takes to repair a machine in minutes JOB_DURATION = 30.0 # Duration of other jobs in minutes NUM_MACHINES = 10 # Number of machines in the machine shop WEEKS = 4 # Simulation time in weeks SIM_TIME = WEEKS * 7 * 24 * 60 # Simulation time in minutes def time_per_part(): """Return actual processing time for a concrete part.""" return random.normalvariate(PT_MEAN, PT_SIGMA) def time_to_failure(): """Return time until next failure for a machine.""" return random.expovariate(BREAK_MEAN) class Machine(object): """A machine produces parts and my get broken every now and then. If it breaks, it requests a *repairman* and continues the production after the it is repaired. A machine has a *name* and a numberof *parts_made* thus far. """ def __init__(self, env, name, repairman): self.env = env self.name = name self.parts_made = 0 self.broken = False # Start "working" and "break_machine" processes for this machine. self.process = env.process(self.working(repairman)) env.process(self.break_machine()) def working(self, repairman): """Produce parts as long as the simulation runs. While making a part, the machine may break multiple times. Request a repairman when this happens. """ while True: # Start making a new part done_in = time_per_part() while done_in: try: # Working on the part start = self.env.now yield self.env.timeout(done_in) done_in = 0 # Set to 0 to exit while loop. except simpy.Interrupt: self.broken = True done_in -= self.env.now - start # How much time left? # Request a repairman. This will preempt its "other_job". with repairman.request(priority=1) as req: yield req yield self.env.timeout(REPAIR_TIME) self.broken = False # Part is done. self.parts_made += 1 def break_machine(self): """Break the machine every now and then.""" while True: yield self.env.timeout(time_to_failure()) if not self.broken: # Only break the machine if it is currently working. self.process.interrupt() def other_jobs(env, repairman): """The repairman's other (unimportant) job.""" while True: # Start a new job done_in = JOB_DURATION while done_in: # Retry the job until it is done. # It's priority is lower than that of machine repairs. with repairman.request(priority=2) as req: yield req try: start = env.now yield env.timeout(done_in) done_in = 0 except simpy.Interrupt: done_in -= env.now - start # Setup and start the simulation print('Machine shop') random.seed(RANDOM_SEED) # This helps reproducing the results # Create an environment and start the setup process env = simpy.Environment() repairman = simpy.PreemptiveResource(env, capacity=1) machines = [Machine(env, 'Machine %d' % i, repairman) for i in range(NUM_MACHINES)] env.process(other_jobs(env, repairman)) # Execute! env.run(until=SIM_TIME) # Analyis/results print('Machine shop results after %s weeks' % WEEKS) for machine in machines: print('%s made %d parts.' % (machine.name, machine.parts_made)) q酁q}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hX>Machine shop Machine shop results after 4 weeks Machine 0 made 3251 parts. Machine 1 made 3273 parts. Machine 2 made 3242 parts. Machine 3 made 3343 parts. Machine 4 made 3387 parts. Machine 5 made 3244 parts. Machine 6 made 3269 parts. Machine 7 made 3185 parts. Machine 8 made 3302 parts. Machine 9 made 3279 parts. hhhhhhh}q(h!]hhh$]h#]UsourceXN/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/machine_shop.outh"]h&]uh(K h)hh]qh2X>Machine shop Machine shop results after 4 weeks Machine 0 made 3251 parts. Machine 1 made 3273 parts. Machine 2 made 3242 parts. Machine 3 made 3343 parts. Machine 4 made 3387 parts. Machine 5 made 3244 parts. Machine 6 made 3269 parts. Machine 7 made 3185 parts. Machine 8 made 3302 parts. Machine 9 made 3279 parts. qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh)hU current_linerNUtransform_messagesr ]r Ureporterr NUid_startr KU autofootnotesr ]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coder Uenr!U datestampr"NU report_levelr#KU _destinationr$NU halt_levelr%KU strip_classesr&Nh/NUerror_encoding_error_handlerr'Ubackslashreplacer(Udebugr)NUembed_stylesheetr*Uoutput_encoding_error_handlerr+Ustrictr,U sectnum_xformr-KUdump_transformsr.NU docinfo_xformr/KUwarning_streamr0NUpep_file_url_templater1Upep-%04dr2Uexit_status_levelr3KUconfigr4NUstrict_visitorr5NUcloak_email_addressesr6Utrim_footnote_reference_spacer7Uenvr8NUdump_pseudo_xmlr9NUexpose_internalsr:NUsectsubtitle_xformr;U source_linkr<NUrfc_referencesr=NUoutput_encodingr>Uutf-8r?U source_urlr@NUinput_encodingrAU utf-8-sigrBU_disable_configrCNU id_prefixrDUU tab_widthrEKUerror_encodingrFUasciirGU_sourcerHUI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/machine_shop.rstrIUgettext_compactrJU generatorrKNUdump_internalsrLNU smart_quotesrMU pep_base_urlrNUhttp://www.python.org/dev/peps/rOUsyntax_highlightrPUlongrQUinput_encoding_error_handlerrRj,Uauto_id_prefixrSUidrTUdoctitle_xformrUUstrip_elements_with_classesrVNU _config_filesrW]rXUfile_insertion_enabledrYU raw_enabledrZKU dump_settingsr[NubUsymbol_footnote_startr\KUidsr]}r^hhsUsubstitution_namesr_}r`hh)h}ra(h!]h$]h#]Usourcehh"]h&]uU footnotesrb]rcUrefidsrd}reub.PK{E ??1simpy-3.0/.doctrees/examples/movie_renege.doctreecdocutils.nodes document q)q}q(U nametypesq}qX movie renegeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU movie-renegeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/movie_renege.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Movie Renegeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Movie Renegeq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXCondition eventsqWhhAhhhhKh}qX(h!]h"]h#]h$]h&]uh(Nh)hh]qYh6)qZ}q[(hhWhhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XCondition eventsq^q_}q`(hhWhhZubaubaubhG)qa}qb(hXShared events hhAhhhhKh}qc(h!]h"]h#]h$]h&]uh(Nh)hh]qdh6)qe}qf(hX Shared eventsqghhahhhh:h}qh(h!]h"]h#]h$]h&]uh(K h]qih2X Shared eventsqjqk}ql(hhghheubaubaubeubh6)qm}qn(hX6This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1--6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).qohhhhhh:h}qp(h!]h"]h#]h$]h&]uh(K h)hh]qqh2X6This examples models a movie theater with one ticket counter selling tickets for three movies (next show only). People arrive at random times and triy to buy a random number (1--6) tickets for a random movie. When a movie is sold out, all people waiting to buy a ticket for that movie renege (leave the queue).qrqs}qt(hhohhmubaubh6)qu}qv(hXThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a :class:`~simpy.resources.resource.Resource` with a capacity of one.hhhhhh:h}qw(h!]h"]h#]h$]h&]uh(Kh)hh]qx(h2XThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a qyqz}q{(hXThe movie theater is just a container for all the related data (movies, the counter, tickets left, collected data, ...). The counter is a hhuubcsphinx.addnodes pending_xref q|)q}}q~(hX+:class:`~simpy.resources.resource.Resource`qhhuhhhU pending_xrefqh}q(UreftypeXclassUrefwarnqU reftargetqX!simpy.resources.resource.ResourceU refdomainXpyqh$]h#]U refexplicith!]h"]h&]UrefdocqXexamples/movie_renegeqUpy:classqNU py:moduleqNuh(Kh]qcdocutils.nodes literal q)q}q(hhh}q(h!]h"]q(UxrefqhXpy-classqeh#]h$]h&]uhh}h]qh2XResourceqq}q(hUhhubahUliteralqubaubh2X with a capacity of one.qq}q(hX with a capacity of one.hhuubeubh6)q}q(hXThe *moviegoer* process starts waiting until either it's his turn (it acquires the counter resource) or until the *sold out* signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the *sold out* signal is triggered.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2XThe qq}q(hXThe hhubcdocutils.nodes emphasis q)q}q(hX *moviegoer*h}q(h!]h"]h#]h$]h&]uhhh]qh2X moviegoerqq}q(hUhhubahUemphasisqubh2Xc process starts waiting until either it's his turn (it acquires the counter resource) or until the qq}q(hXc process starts waiting until either it's his turn (it acquires the counter resource) or until the hhubh)q}q(hX *sold out*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsold outqq}q(hUhhubahhubh2X' signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the qq}q(hX' signal is triggered. If the latter is the case it reneges (leaves the queue). If it gets to the counter, it tries to buy some tickets. This might not be successful, e.g. if the process tries to buy 5 tickets but only 3 are left. If less then two tickets are left after the ticket purchase, the hhubh)q}q(hX *sold out*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xsold outqq}q(hUhhubahhubh2X signal is triggered.qq}q(hX signal is triggered.hhubeubh6)q}q(hXMoviegoers are generated by the *customer arrivals* process. It also chooses a movie and the number of tickets for the moviegoer.hhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]q(h2X Moviegoers are generated by the qąq}q(hX Moviegoers are generated by the hhubh)q}q(hX*customer arrivals*h}q(h!]h"]h#]h$]h&]uhhh]qh2Xcustomer arrivalsq˅q}q(hUhhubahhubh2XN process. It also chooses a movie and the number of tickets for the moviegoer.q΅q}q(hXN process. It also chooses a movie and the number of tickets for the moviegoer.hhubeubcdocutils.nodes literal_block q)q}q(hXN """ Movie renege example Covers: - Resources: Resource - Condition events - Shared events Scenario: A movie theatre has one ticket counter selling tickets for three movies (next show only). When a movie is sold out, all people waiting to buy tickets for that movie renege (leave queue). """ import collections import random import simpy RANDOM_SEED = 42 TICKETS = 50 # Number of tickets per movie SIM_TIME = 120 # Simulate until def moviegoer(env, movie, num_tickets, theater): """A moviegoer tries to by a number of tickets (*num_tickets*) for a certain *movie* in a *theater*. If the movie becomes sold out, she leaves the theater. If she gets to the counter, she tries to buy a number of tickets. If not enough tickets are left, she argues with the teller and leaves. If at most one ticket is left after the moviegoer bought her tickets, the *sold out* event for this movie is triggered causing all remaining moviegoers to leave. """ with theater.counter.request() as my_turn: # Wait until its our turn or until the movie is sold out result = yield my_turn | theater.sold_out[movie] # Check if it's our turn of if movie is sold out if my_turn not in result: theater.num_renegers[movie] += 1 env.exit() # Check if enough tickets left. if theater.available[movie] < num_tickets: # Moviegoer leaves after some discussion yield env.timeout(0.5) env.exit() # Buy tickets theater.available[movie] -= num_tickets if theater.available[movie] < 2: # Trigger the "sold out" event for the movie theater.sold_out[movie].succeed() theater.when_sold_out[movie] = env.now theater.available[movie] = 0 yield env.timeout(1) def customer_arrivals(env, theater): """Create new *moviegoers* until the sim time reaches 120.""" while True: yield env.timeout(random.expovariate(1 / 0.5)) movie = random.choice(theater.movies) num_tickets = random.randint(1, 6) if theater.available[movie]: env.process(moviegoer(env, movie, num_tickets, theater)) Theater = collections.namedtuple('Theater', 'counter, movies, available, ' 'sold_out, when_sold_out, ' 'num_renegers') # Setup and start the simulation print('Movie renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Create movie theater counter = simpy.Resource(env, capacity=1) movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation'] available = {movie: TICKETS for movie in movies} sold_out = {movie: env.event() for movie in movies} when_sold_out = {movie: None for movie in movies} num_renegers = {movie: 0 for movie in movies} theater = Theater(counter, movies, available, sold_out, when_sold_out, num_renegers) # Start process and run env.process(customer_arrivals(env, theater)) env.run(until=SIM_TIME) # Analysis/results for movie in movies: if theater.sold_out[movie]: print('Movie "%s" sold out %.1f minutes after ticket counter ' 'opening.' % (movie, theater.when_sold_out[movie])) print(' Number of people leaving queue when film sold out: %s' % theater.num_renegers[movie]) hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXM/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/movie_renege.pyh"]h&]uh(K h)hh]qh2XN """ Movie renege example Covers: - Resources: Resource - Condition events - Shared events Scenario: A movie theatre has one ticket counter selling tickets for three movies (next show only). When a movie is sold out, all people waiting to buy tickets for that movie renege (leave queue). """ import collections import random import simpy RANDOM_SEED = 42 TICKETS = 50 # Number of tickets per movie SIM_TIME = 120 # Simulate until def moviegoer(env, movie, num_tickets, theater): """A moviegoer tries to by a number of tickets (*num_tickets*) for a certain *movie* in a *theater*. If the movie becomes sold out, she leaves the theater. If she gets to the counter, she tries to buy a number of tickets. If not enough tickets are left, she argues with the teller and leaves. If at most one ticket is left after the moviegoer bought her tickets, the *sold out* event for this movie is triggered causing all remaining moviegoers to leave. """ with theater.counter.request() as my_turn: # Wait until its our turn or until the movie is sold out result = yield my_turn | theater.sold_out[movie] # Check if it's our turn of if movie is sold out if my_turn not in result: theater.num_renegers[movie] += 1 env.exit() # Check if enough tickets left. if theater.available[movie] < num_tickets: # Moviegoer leaves after some discussion yield env.timeout(0.5) env.exit() # Buy tickets theater.available[movie] -= num_tickets if theater.available[movie] < 2: # Trigger the "sold out" event for the movie theater.sold_out[movie].succeed() theater.when_sold_out[movie] = env.now theater.available[movie] = 0 yield env.timeout(1) def customer_arrivals(env, theater): """Create new *moviegoers* until the sim time reaches 120.""" while True: yield env.timeout(random.expovariate(1 / 0.5)) movie = random.choice(theater.movies) num_tickets = random.randint(1, 6) if theater.available[movie]: env.process(moviegoer(env, movie, num_tickets, theater)) Theater = collections.namedtuple('Theater', 'counter, movies, available, ' 'sold_out, when_sold_out, ' 'num_renegers') # Setup and start the simulation print('Movie renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Create movie theater counter = simpy.Resource(env, capacity=1) movies = ['Python Unchained', 'Kill Process', 'Pulp Implementation'] available = {movie: TICKETS for movie in movies} sold_out = {movie: env.event() for movie in movies} when_sold_out = {movie: None for movie in movies} num_renegers = {movie: 0 for movie in movies} theater = Theater(counter, movies, available, sold_out, when_sold_out, num_renegers) # Start process and run env.process(customer_arrivals(env, theater)) env.run(until=SIM_TIME) # Analysis/results for movie in movies: if theater.sold_out[movie]: print('Movie "%s" sold out %.1f minutes after ticket counter ' 'opening.' % (movie, theater.when_sold_out[movie])) print(' Number of people leaving queue when film sold out: %s' % theater.num_renegers[movie]) qمq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(K"h)hh]qh2XThe simulation's output:qᅁq}q(hhhhubaubh)q}q(hXMovie renege Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 16 Movie "Kill Process" sold out 43.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 hhhhhhh}q(h!]hhh$]h#]UsourceXN/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/movie_renege.outh"]h&]uh(K$h)hh]qh2XMovie renege Movie "Python Unchained" sold out 38.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 16 Movie "Kill Process" sold out 43.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 Movie "Pulp Implementation" sold out 28.0 minutes after ticket counter opening. Number of people leaving queue when film sold out: 5 q腁q}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh/NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamr NUpep_file_url_templater!Upep-%04dr"Uexit_status_levelr#KUconfigr$NUstrict_visitorr%NUcloak_email_addressesr&Utrim_footnote_reference_spacer'Uenvr(NUdump_pseudo_xmlr)NUexpose_internalsr*NUsectsubtitle_xformr+U source_linkr,NUrfc_referencesr-NUoutput_encodingr.Uutf-8r/U source_urlr0NUinput_encodingr1U utf-8-sigr2U_disable_configr3NU id_prefixr4UU tab_widthr5KUerror_encodingr6Uasciir7U_sourcer8UI/var/build/user_builds/simpy/checkouts/3.0/docs/examples/movie_renege.rstr9Ugettext_compactr:U generatorr;NUdump_internalsr<NU smart_quotesr=U pep_base_urlr>Uhttp://www.python.org/dev/peps/r?Usyntax_highlightr@UlongrAUinput_encoding_error_handlerrBjUauto_id_prefixrCUidrDUdoctitle_xformrEUstrip_elements_with_classesrFNU _config_filesrG]Ufile_insertion_enabledrHU raw_enabledrIKU dump_settingsrJNubUsymbol_footnote_startrKKUidsrL}rMhhsUsubstitution_namesrN}rOhh)h}rP(h!]h$]h#]Usourcehh"]h&]uU footnotesrQ]rRUrefidsrS}rTub.PK{E蚖߉&&0simpy-3.0/.doctrees/examples/bank_renege.doctreecdocutils.nodes document q)q}q(U nametypesq}qX bank renegeqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU bank-renegeqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXH/var/build/user_builds/simpy/checkouts/3.0/docs/examples/bank_renege.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Bank Renegeq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Bank Renegeq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXCovers:q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hh9hh7ubaubcdocutils.nodes bullet_list q@)qA}qB(hUhhhhhU bullet_listqCh}qD(UbulletqEX-h$]h#]h!]h"]h&]uh(Kh)hh]qF(cdocutils.nodes list_item qG)qH}qI(hXResources: ResourceqJhhAhhhU list_itemqKh}qL(h!]h"]h#]h$]h&]uh(Nh)hh]qMh6)qN}qO(hhJhhHhhhh:h}qP(h!]h"]h#]h$]h&]uh(Kh]qQh2XResources: ResourceqRqS}qT(hhJhhNubaubaubhG)qU}qV(hXCondition events hhAhhhhKh}qW(h!]h"]h#]h$]h&]uh(Nh)hh]qXh6)qY}qZ(hXCondition eventsq[hhUhhhh:h}q\(h!]h"]h#]h$]h&]uh(Kh]q]h2XCondition eventsq^q_}q`(hh[hhYubaubaubeubh6)qa}qb(hXA counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)qchhhhhh:h}qd(h!]h"]h#]h$]h&]uh(K h)hh]qeh2XA counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM)qfqg}qh(hhchhaubaubh6)qi}qj(hXThis example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.qkhhhhhh:h}ql(h!]h"]h#]h$]h&]uh(K h)hh]qmh2XThis example models a bank counter and customers arriving t random times. Each customer has a certain patience. It waits to get to the counter until she’s at the end of her tether. If she gets to the counter, she uses it for a while before releasing it.qnqo}qp(hhkhhiubaubh6)qq}qr(hXINew customers are created by the ``source`` process every few time steps.qshhhhhh:h}qt(h!]h"]h#]h$]h&]uh(Kh)hh]qu(h2X!New customers are created by the qvqw}qx(hX!New customers are created by the hhqubcdocutils.nodes literal qy)qz}q{(hX ``source``h}q|(h!]h"]h#]h$]h&]uhhqh]q}h2Xsourceq~q}q(hUhhzubahUliteralqubh2X process every few time steps.qq}q(hX process every few time steps.hhqubeubcdocutils.nodes literal_block q)q}q(hX:""" Bank renege example Covers: - Resources: Resource - Condition events Scenario: A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM) """ import random import simpy RANDOM_SEED = 42 NEW_CUSTOMERS = 5 # Total number of customers INTERVAL_CUSTOMERS = 10.0 # Generate new customers roughly every x seconds MIN_PATIENCE = 1 # Min. customer patience MAX_PATIENCE = 3 # Max. customer patience def source(env, number, interval, counter): """Source generates customers randomly""" for i in range(number): c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0) env.process(c) t = random.expovariate(1.0 / interval) yield env.timeout(t) def customer(env, name, counter, time_in_bank): """Customer arrives, is served and leaves.""" arrive = env.now print('%7.4f %s: Here I am' % (arrive, name)) with counter.request() as req: patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE) # Wait for the counter or abort at the end of our tether results = yield req | env.timeout(patience) wait = env.now - arrive if req in results: # We got to the counter print('%7.4f %s: Waited %6.3f' % (env.now, name, wait)) tib = random.expovariate(1.0 / time_in_bank) yield env.timeout(tib) print('%7.4f %s: Finished' % (env.now, name)) else: # We reneged print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait)) # Setup and start the simulation print('Bank renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Start processes and run counter = simpy.Resource(env, capacity=1) env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter)) env.run() hhhhhU literal_blockqh}q(h!]U xml:spaceqUpreserveqh$]h#]UsourceXL/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/bank_renege.pyh"]h&]uh(Kh)hh]qh2X:""" Bank renege example Covers: - Resources: Resource - Condition events Scenario: A counter with a random service time and customers who renege. Based on the program bank08.py from TheBank tutorial of SimPy 2. (KGM) """ import random import simpy RANDOM_SEED = 42 NEW_CUSTOMERS = 5 # Total number of customers INTERVAL_CUSTOMERS = 10.0 # Generate new customers roughly every x seconds MIN_PATIENCE = 1 # Min. customer patience MAX_PATIENCE = 3 # Max. customer patience def source(env, number, interval, counter): """Source generates customers randomly""" for i in range(number): c = customer(env, 'Customer%02d' % i, counter, time_in_bank=12.0) env.process(c) t = random.expovariate(1.0 / interval) yield env.timeout(t) def customer(env, name, counter, time_in_bank): """Customer arrives, is served and leaves.""" arrive = env.now print('%7.4f %s: Here I am' % (arrive, name)) with counter.request() as req: patience = random.uniform(MIN_PATIENCE, MAX_PATIENCE) # Wait for the counter or abort at the end of our tether results = yield req | env.timeout(patience) wait = env.now - arrive if req in results: # We got to the counter print('%7.4f %s: Waited %6.3f' % (env.now, name, wait)) tib = random.expovariate(1.0 / time_in_bank) yield env.timeout(tib) print('%7.4f %s: Finished' % (env.now, name)) else: # We reneged print('%7.4f %s: RENEGED after %6.3f' % (env.now, name, wait)) # Setup and start the simulation print('Bank renege') random.seed(RANDOM_SEED) env = simpy.Environment() # Start processes and run counter = simpy.Resource(env, capacity=1) env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter)) env.run() qq}q(hUhhubaubh6)q}q(hXThe simulation's output:qhhhhhh:h}q(h!]h"]h#]h$]h&]uh(Kh)hh]qh2XThe simulation's output:qq}q(hhhhubaubh)q}q(hXBank renege 0.0000 Customer00: Here I am 0.0000 Customer00: Waited 0.000 3.8595 Customer00: Finished 10.2006 Customer01: Here I am 10.2006 Customer01: Waited 0.000 12.7265 Customer02: Here I am 13.9003 Customer02: RENEGED after 1.174 23.7507 Customer01: Finished 34.9993 Customer03: Here I am 34.9993 Customer03: Waited 0.000 37.9599 Customer03: Finished 40.4798 Customer04: Here I am 40.4798 Customer04: Waited 0.000 43.1401 Customer04: Finished hhhhhhh}q(h!]hhh$]h#]UsourceXM/var/build/user_builds/simpy/checkouts/3.0/docs/examples/code/bank_renege.outh"]h&]uh(Kh)hh]qh2XBank renege 0.0000 Customer00: Here I am 0.0000 Customer00: Waited 0.000 3.8595 Customer00: Finished 10.2006 Customer01: Here I am 10.2006 Customer01: Waited 0.000 12.7265 Customer02: Here I am 13.9003 Customer02: RENEGED after 1.174 23.7507 Customer01: Finished 34.9993 Customer03: Here I am 34.9993 Customer03: Waited 0.000 37.9599 Customer03: Finished 40.4798 Customer04: Here I am 40.4798 Customer04: Waited 0.000 43.1401 Customer04: Finished qq}q(hUhhubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqΉUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqڈUtrim_footnote_reference_spaceqۉUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformq߉U source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUasciiqU_sourceqUH/var/build/user_builds/simpy/checkouts/3.0/docs/examples/bank_renege.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startrKUidsr}rhhsUsubstitution_namesr}rhh)h}r(h!]h$]h#]Usourcehh"]h&]uU footnotesr]rUrefidsr}r ub.PK{EW!!simpy-3.0/_static/basic.css/* * basic.css * ~~~~~~~~~ * * Sphinx stylesheet -- basic theme. * * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* -- main layout ----------------------------------------------------------- */ div.clearer { clear: both; } /* -- relbar ---------------------------------------------------------------- */ div.related { width: 100%; font-size: 90%; } div.related h3 { display: none; } div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline; } div.related li.right { float: right; margin-right: 5px; } /* -- sidebar --------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 10px 5px 0 10px; } div.sphinxsidebar { float: left; width: 230px; margin-left: -100%; font-size: 90%; } div.sphinxsidebar ul { list-style: none; } div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points { margin-left: 20px; list-style: square; } div.sphinxsidebar ul ul { margin-top: 0; margin-bottom: 0; } div.sphinxsidebar form { margin-top: 10px; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } div.sphinxsidebar #searchbox input[type="text"] { width: 170px; } div.sphinxsidebar #searchbox input[type="submit"] { width: 30px; } img { border: 0; max-width: 100%; } /* -- search page ----------------------------------------------------------- */ ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li div.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } /* -- index page ------------------------------------------------------------ */ table.contentstable { width: 90%; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } /* -- general index --------------------------------------------------------- */ table.indextable { width: 100%; } table.indextable td { text-align: left; vertical-align: top; } table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } div.modindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } div.genindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } /* -- general body styles --------------------------------------------------- */ a.headerlink { visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; } div.body p.caption { text-align: inherit; } div.body td { text-align: left; } .field-list ul { padding-left: 1em; } .first { margin-top: 0 !important; } p.rubric { margin-top: 30px; font-weight: bold; } img.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } img.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } img.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } .align-left { text-align: left; } .align-center { text-align: center; } .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ div.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px 7px 0 7px; background-color: #ffe; width: 40%; float: right; } p.sidebar-title { font-weight: bold; } /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; padding: 7px 7px 0 7px; margin: 10px 0 10px 0; } p.topic-title { font-size: 1.1em; font-weight: bold; margin-top: 10px; } /* -- admonitions ----------------------------------------------------------- */ div.admonition { margin-top: 10px; margin-bottom: 10px; padding: 7px; } div.admonition dt { font-weight: bold; } div.admonition dl { margin-bottom: 0; } p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; } div.body p.centered { text-align: center; margin-top: 25px; } /* -- tables ---------------------------------------------------------------- */ table.docutils { border: 0; border-collapse: collapse; } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } table.field-list td, table.field-list th { border: 0 !important; } table.footnote td, table.footnote th { border: 0 !important; } th { text-align: left; padding-right: 5px; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.citation td { border-bottom: none; } /* -- other body styles ----------------------------------------------------- */ ol.arabic { list-style: decimal; } ol.loweralpha { list-style: lower-alpha; } ol.upperalpha { list-style: upper-alpha; } ol.lowerroman { list-style: lower-roman; } ol.upperroman { list-style: upper-roman; } dl { margin-bottom: 15px; } dd p { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } dt:target, .highlighted { background-color: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } .field-list ul { margin: 0; padding-left: 1em; } .field-list p { margin: 0; } .optional { font-size: 1.3em; } .versionmodified { font-style: italic; } .system-message { background-color: #fda; padding: 5px; border: 3px solid red; } .footnote:target { background-color: #ffa; } .line-block { display: block; margin-top: 1em; margin-bottom: 1em; } .line-block .line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } .guilabel, .menuselection { font-family: sans-serif; } .accelerator { text-decoration: underline; } .classifier { font-style: oblique; } abbr, acronym { border-bottom: dotted 1px; cursor: help; } /* -- code displays --------------------------------------------------------- */ pre { overflow: auto; overflow-y: hidden; /* fixes display issues on Chrome browsers */ } td.linenos pre { padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { margin-left: 0.5em; } table.highlighttable td { padding: 0 0.5em 0 0.5em; } tt.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; } tt.descclassname { background-color: transparent; } tt.xref, a tt { background-color: transparent; font-weight: bold; } h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { background-color: transparent; } .viewcode-link { float: right; } .viewcode-back { float: right; font-family: sans-serif; } div.viewcode-block:target { margin: -1px -10px; padding: 0 10px; } /* -- math display ---------------------------------------------------------- */ img.math { vertical-align: middle; } div.body div.math p { text-align: center; } span.eqno { float: right; } /* -- printout stylesheet --------------------------------------------------- */ @media print { div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; width: 100%; } div.sphinxsidebar, div.related, div.footer, #top-link { display: none; } }PK{E) ]simpy-3.0/_static/pygments.css.highlight .hll { background-color: #ffffcc } .highlight { background: #f0f0f0; } .highlight .c { color: #60a0b0; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .k { color: #007020; font-weight: bold } /* Keyword */ .highlight .o { color: #666666 } /* Operator */ .highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #007020 } /* Comment.Preproc */ .highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ .highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #0044DD } /* Generic.Traceback */ .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #007020 } /* Keyword.Pseudo */ .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #902000 } /* Keyword.Type */ .highlight .m { color: #40a070 } /* Literal.Number */ .highlight .s { color: #4070a0 } /* Literal.String */ .highlight .na { color: #4070a0 } /* Name.Attribute */ .highlight .nb { color: #007020 } /* Name.Builtin */ .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ .highlight .no { color: #60add5 } /* Name.Constant */ .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #007020 } /* Name.Exception */ .highlight .nf { color: #06287e } /* Name.Function */ .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #bb60d5 } /* Name.Variable */ .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #40a070 } /* Literal.Number.Bin */ .highlight .mf { color: #40a070 } /* Literal.Number.Float */ .highlight .mh { color: #40a070 } /* Literal.Number.Hex */ .highlight .mi { color: #40a070 } /* Literal.Number.Integer */ .highlight .mo { color: #40a070 } /* Literal.Number.Oct */ .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ .highlight .sc { color: #4070a0 } /* Literal.String.Char */ .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ .highlight .sx { color: #c65d09 } /* Literal.String.Other */ .highlight .sr { color: #235388 } /* Literal.String.Regex */ .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ .highlight .ss { color: #517918 } /* Literal.String.Symbol */ .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ .highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */PK{EKsimpy-3.0/_static/minus.pngPNG  IHDR &q pHYs  tIME <8tEXtComment̖RIDATc H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME 1;VIDAT8ukU?sg4h`G1 RQܸp%Bn"bЍXJ .4V iZ##T;m!4bP~7r>ιbwc;m;oӍAΆ ζZ^/|s{;yR=9(rtVoG1w#_ө{*E&!(LVuoᲵ‘D PG4 :&~*ݳreu: S-,U^E&JY[P!RB ŖޞʖR@_ȐdBfNvHf"2T]R j'B1ddAak/DIJD D2H&L`&L $Ex,6|~_\P $MH`I=@Z||ttvgcЕWTZ'3rje"ܵx9W> mb|byfFRx{w%DZC$wdցHmWnta(M<~;9]C/_;Տ#}o`zSڷ_>:;x컓?yݩ|}~wam-/7=0S5RP"*֯ IENDB`PKhDVR>>simpy-3.0/_static/rtd.css/* * rtd.css * ~~~~~~~~~~~~~~~ * * Sphinx stylesheet -- sphinxdoc theme. Originally created by * Armin Ronacher for Werkzeug. * * Customized for ReadTheDocs by Eric Pierce & Eric Holscher * * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* RTD colors * light blue: #e8ecef * medium blue: #8ca1af * dark blue: #465158 * dark grey: #444444 * * white hover: #d1d9df; * medium blue hover: #697983; * green highlight: #8ecc4c * light blue (project bar): #e8ecef */ @import url("basic.css"); /* PAGE LAYOUT -------------------------------------------------------------- */ body { font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; text-align: center; color: black; background-color: #465158; padding: 0; margin: 0; } div.document { text-align: left; background-color: #e8ecef; } div.bodywrapper { background-color: #ffffff; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; margin: 0 0 0 16em; } div.body { margin: 0; padding: 0.5em 1.3em; min-width: 20em; } div.related { font-size: 1em; background-color: #465158; } div.documentwrapper { float: left; width: 100%; background-color: #e8ecef; } /* HEADINGS --------------------------------------------------------------- */ h1 { margin: 0; padding: 0.7em 0 0.3em 0; font-size: 1.5em; line-height: 1.15; color: #111; clear: both; } h2 { margin: 2em 0 0.2em 0; font-size: 1.35em; padding: 0; color: #465158; } h3 { margin: 1em 0 -0.3em 0; font-size: 1.2em; color: #6c818f; } div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { color: black; } h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { display: none; margin: 0 0 0 0.3em; padding: 0 0.2em 0 0.2em; color: #aaa !important; } h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { display: inline; } h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, h5 a.anchor:hover, h6 a.anchor:hover { color: #777; background-color: #eee; } /* LINKS ------------------------------------------------------------------ */ /* Normal links get a pseudo-underline */ a { color: #444; text-decoration: none; border-bottom: 1px solid #ccc; } /* Links in sidebar, TOC, index trees and tables have no underline */ .sphinxsidebar a, .toctree-wrapper a, .indextable a, #indices-and-tables a { color: #444; text-decoration: none; /* border-bottom: none; */ } /* Search box size */ div.sphinxsidebar #searchbox input[type="submit"] { width: 50px; } /* Most links get an underline-effect when hovered */ a:hover, div.toctree-wrapper a:hover, .indextable a:hover, #indices-and-tables a:hover { color: #111; text-decoration: none; border-bottom: 1px solid #111; } /* Footer links */ div.footer a { color: #86989B; text-decoration: none; border: none; } div.footer a:hover { color: #a6b8bb; text-decoration: underline; border: none; } /* Permalink anchor (subtle grey with a red hover) */ div.body a.headerlink { color: #ccc; font-size: 1em; margin-left: 6px; padding: 0 4px 0 4px; text-decoration: none; border: none; } div.body a.headerlink:hover { color: #c60f0f; border: none; } /* NAVIGATION BAR --------------------------------------------------------- */ div.related ul { height: 2.5em; } div.related ul li { margin: 0; padding: 0.65em 0; float: left; display: block; color: white; /* For the >> separators */ font-size: 0.8em; } div.related ul li.right { float: right; margin-right: 5px; color: transparent; /* Hide the | separators */ } /* "Breadcrumb" links in nav bar */ div.related ul li a { order: none; background-color: inherit; font-weight: bold; margin: 6px 0 6px 4px; line-height: 1.75em; color: #ffffff; padding: 0.4em 0.8em; border: none; border-radius: 3px; } /* previous / next / modules / index links look more like buttons */ div.related ul li.right a { margin: 0.375em 0; background-color: #697983; text-shadow: 0 1px rgba(0, 0, 0, 0.5); border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* All navbar links light up as buttons when hovered */ div.related ul li a:hover { background-color: #8ca1af; color: #ffffff; text-decoration: none; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* Take extra precautions for tt within links */ a tt, div.related ul li a tt { background: inherit !important; color: inherit !important; } /* SIDEBAR ---------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 0; } div.sphinxsidebar { margin: 0; margin-left: -100%; float: left; top: 3em; left: 0; padding: 0 1em; width: 14em; font-size: 1em; text-align: left; background-color: #e8ecef; } div.sphinxsidebar img { max-width: 12em; } div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p.logo { margin: 1.2em 0 0.3em 0; font-size: 1em; padding: 0; color: #222222; font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; } div.sphinxsidebar h3 a { color: #444444; } div.sphinxsidebar ul, div.sphinxsidebar p { margin-top: 0; padding-left: 0; line-height: 130%; background-color: #e8ecef; } /* No bullets for nested lists, but a little extra indentation */ div.sphinxsidebar ul ul { list-style-type: none; margin-left: 1.5em; padding: 0; } /* A little top/bottom padding to prevent adjacent links' borders * from overlapping each other */ div.sphinxsidebar ul li { padding: 1px 0; } /* A little left-padding to make these align with the ULs */ div.sphinxsidebar p.topless { padding-left: 0 0 0 1em; } /* Make these into hidden one-liners */ div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: nowrap; overflow: hidden; } /* ...which become visible when hovered */ div.sphinxsidebar ul li:hover, div.sphinxsidebar p.topless:hover { overflow: visible; } /* Search text box and "Go" button */ #searchbox { margin-top: 2em; margin-bottom: 1em; background: #ddd; padding: 0.5em; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } #searchbox h3 { margin-top: 0; } /* Make search box and button abut and have a border */ input, div.sphinxsidebar input { border: 1px solid #999; float: left; } /* Search textbox */ input[type="text"] { margin: 0; padding: 0 3px; height: 20px; width: 144px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; } /* Search button */ input[type="submit"] { margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ height: 22px; color: #444; background-color: #e8ecef; padding: 1px 4px; font-weight: bold; border-top-right-radius: 3px; border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; } input[type="submit"]:hover { color: #ffffff; background-color: #8ecc4c; } div.sphinxsidebar p.searchtip { clear: both; padding: 0.5em 0 0 0; background: #ddd; color: #666; font-size: 0.9em; } /* Sidebar links are unusual */ div.sphinxsidebar li a, div.sphinxsidebar p a { background: #e8ecef; /* In case links overlap main content */ border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border: 1px solid transparent; /* To prevent things jumping around on hover */ padding: 0 5px 0 5px; } div.sphinxsidebar li a:hover, div.sphinxsidebar p a:hover { color: #111; text-decoration: none; border: 1px solid #888; } div.sphinxsidebar p.logo a { border: 0; } /* Tweak any link appearing in a heading */ div.sphinxsidebar h3 a { } /* OTHER STUFF ------------------------------------------------------------ */ cite, code, tt { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.01em; } tt { background-color: #f2f2f2; color: #444; } tt.descname, tt.descclassname, tt.xref { border: 0; } hr { border: 1px solid #abc; margin: 2em; } pre, #_fontwidthtest { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; margin: 1em 2em; font-size: 0.95em; letter-spacing: 0.015em; line-height: 120%; padding: 0.5em; border: 1px solid #ccc; background-color: #eee; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } pre a { color: inherit; text-decoration: underline; } td.linenos pre { margin: 1em 0em; } td.code pre { margin: 1em 0em; } div.quotebar { background-color: #f8f8f8; max-width: 250px; float: right; padding: 2px 7px; border: 1px solid #ccc; } div.topic { background-color: #f8f8f8; } table { border-collapse: collapse; margin: 0 -0.5em 0 -0.5em; } table td, table th { padding: 0.2em 0.5em 0.2em 0.5em; } /* ADMONITIONS AND WARNINGS ------------------------------------------------- */ /* Shared by admonitions, warnings and sidebars */ div.admonition, div.warning, div.sidebar { font-size: 0.9em; margin: 2em; padding: 0; /* border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; */ } div.admonition p, div.warning p, div.sidebar p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre, div.sidebar pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title, div.sidebar p.sidebar-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; font-weight: bold; font-size: 1.1em; text-shadow: 0 1px rgba(0, 0, 0, 0.5); } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol, div.sidebar ul, div.sidebar ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } /* Admonitions and sidebars only */ div.admonition, div.sidebar { border: 1px solid #609060; background-color: #e9ffe9; } div.admonition p.admonition-title, div.sidebar p.sidebar-title { background-color: #70A070; border-bottom: 1px solid #609060; } /* Warnings only */ div.warning { border: 1px solid #900000; background-color: #ffe9e9; } div.warning p.admonition-title { background-color: #b04040; border-bottom: 1px solid #900000; } /* Sidebars only */ div.sidebar { max-width: 30%; } div.versioninfo { margin: 1em 0 0 0; border: 1px solid #ccc; background-color: #DDEAF0; padding: 8px; line-height: 1.3em; font-size: 0.9em; } .viewcode-back { font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } dl { margin: 1em 0 2.5em 0; } dl dt { font-style: italic; } dl dd { color: rgb(68, 68, 68); font-size: 0.95em; } /* Highlight target when you click an internal link */ dt:target { background: #ffe080; } /* Don't highlight whole divs */ div.highlight { background: transparent; } /* But do highlight spans (so search results can be highlighted) */ span.highlight { background: #ffe080; } div.footer { background-color: #465158; color: #eeeeee; padding: 0 2em 2em 2em; clear: both; font-size: 0.8em; text-align: center; } p { margin: 0.8em 0 0.5em 0; } .section p img.math { margin: 0; } .section p img { margin: 1em 2em; } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; } /* MOBILE LAYOUT -------------------------------------------------------------- */ @media screen and (max-width: 600px) { h1, h2, h3, h4, h5 { position: relative; } ul { padding-left: 1.25em; } div.bodywrapper a.headerlink, #indices-and-tables h1 a { color: #e6e6e6; font-size: 80%; float: right; line-height: 1.8; position: absolute; right: -0.7em; visibility: inherit; } div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { line-height: 1.5; } pre { font-size: 0.7em; overflow: auto; word-wrap: break-word; white-space: pre-wrap; } div.related ul { height: 2.5em; padding: 0; text-align: left; } div.related ul li { clear: both; color: #465158; padding: 0.2em 0; } div.related ul li:last-child { border-bottom: 1px dotted #8ca1af; padding-bottom: 0.4em; margin-bottom: 1em; width: 100%; } div.related ul li a { color: #465158; padding-right: 0; } div.related ul li a:hover { background: inherit; color: inherit; } div.related ul li.right { clear: none; padding: 0.65em 0; margin-bottom: 0.5em; } div.related ul li.right a { color: #fff; padding-right: 0.8em; } div.related ul li.right a:hover { background-color: #8ca1af; } div.body { clear: both; min-width: 0; word-wrap: break-word; } div.bodywrapper { margin: 0 0 0 0; } div.sphinxsidebar { float: none; margin: 0; width: auto; } div.sphinxsidebar input[type="text"] { height: 2em; line-height: 2em; width: 70%; } div.sphinxsidebar input[type="submit"] { height: 2em; margin-left: 0.5em; width: 20%; } div.sphinxsidebar p.searchtip { background: inherit; margin-bottom: 1em; } div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: normal; } .bodywrapper img { display: block; margin-left: auto; margin-right: auto; max-width: 100%; } div.documentwrapper { float: none; } div.admonition, div.warning, pre, blockquote { margin-left: 0em; margin-right: 0em; } .body p img { margin: 0; } #searchbox { background: transparent; } .related:not(:first-child) li { display: none; } .related:not(:first-child) li.right { display: block; } div.footer { padding: 1em; } .rtd_doc_footer .rtd-badge { float: none; margin: 1em auto; position: static; } .rtd_doc_footer .rtd-badge.revsys-inline { margin-right: auto; margin-bottom: 2em; } table.indextable { display: block; width: auto; } .indextable tr { display: block; } .indextable td { display: block; padding: 0; width: auto !important; } .indextable td dt { margin: 1em 0; } ul.search { margin-left: 0.25em; } ul.search li div.context { font-size: 90%; line-height: 1.1; margin-bottom: 1; margin-left: 0; } } PK{E' 5w #simpy-3.0/_static/comment-close.pngPNG  IHDRa OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME!,IDAT8e_Hu?}s3y˕U2MvQ֊FE.łĊbE$DDZF5b@Q":2{n.s<_ y?mwV@tR`}Z _# _=_@ w^R%6gC-έ(K>| ${} 0) { var start = document.cookie.indexOf('sortBy='); if (start != -1) { start = start + 7; var end = document.cookie.indexOf(";", start); if (end == -1) { end = document.cookie.length; by = unescape(document.cookie.substring(start, end)); } } } setComparator(); } /** * Show a comment div. */ function show(id) { $('#ao' + id).hide(); $('#ah' + id).show(); var context = $.extend({id: id}, opts); var popup = $(renderTemplate(popupTemplate, context)).hide(); popup.find('textarea[name="proposal"]').hide(); popup.find('a.by' + by).addClass('sel'); var form = popup.find('#cf' + id); form.submit(function(event) { event.preventDefault(); addComment(form); }); $('#s' + id).after(popup); popup.slideDown('fast', function() { getComments(id); }); } /** * Hide a comment div. */ function hide(id) { $('#ah' + id).hide(); $('#ao' + id).show(); var div = $('#sc' + id); div.slideUp('fast', function() { div.remove(); }); } /** * Perform an ajax request to get comments for a node * and insert the comments into the comments tree. */ function getComments(id) { $.ajax({ type: 'GET', url: opts.getCommentsURL, data: {node: id}, success: function(data, textStatus, request) { var ul = $('#cl' + id); var speed = 100; $('#cf' + id) .find('textarea[name="proposal"]') .data('source', data.source); if (data.comments.length === 0) { ul.html('
  • No comments yet.
  • '); ul.data('empty', true); } else { // If there are comments, sort them and put them in the list. var comments = sortComments(data.comments); speed = data.comments.length * 100; appendComments(comments, ul); ul.data('empty', false); } $('#cn' + id).slideUp(speed + 200); ul.slideDown(speed); }, error: function(request, textStatus, error) { showError('Oops, there was a problem retrieving the comments.'); }, dataType: 'json' }); } /** * Add a comment via ajax and insert the comment into the comment tree. */ function addComment(form) { var node_id = form.find('input[name="node"]').val(); var parent_id = form.find('input[name="parent"]').val(); var text = form.find('textarea[name="comment"]').val(); var proposal = form.find('textarea[name="proposal"]').val(); if (text == '') { showError('Please enter a comment.'); return; } // Disable the form that is being submitted. form.find('textarea,input').attr('disabled', 'disabled'); // Send the comment to the server. $.ajax({ type: "POST", url: opts.addCommentURL, dataType: 'json', data: { node: node_id, parent: parent_id, text: text, proposal: proposal }, success: function(data, textStatus, error) { // Reset the form. if (node_id) { hideProposeChange(node_id); } form.find('textarea') .val('') .add(form.find('input')) .removeAttr('disabled'); var ul = $('#cl' + (node_id || parent_id)); if (ul.data('empty')) { $(ul).empty(); ul.data('empty', false); } insertComment(data.comment); var ao = $('#ao' + node_id); ao.find('img').attr({'src': opts.commentBrightImage}); if (node_id) { // if this was a "root" comment, remove the commenting box // (the user can get it back by reopening the comment popup) $('#ca' + node_id).slideUp(); } }, error: function(request, textStatus, error) { form.find('textarea,input').removeAttr('disabled'); showError('Oops, there was a problem adding the comment.'); } }); } /** * Recursively append comments to the main comment list and children * lists, creating the comment tree. */ function appendComments(comments, ul) { $.each(comments, function() { var div = createCommentDiv(this); ul.append($(document.createElement('li')).html(div)); appendComments(this.children, div.find('ul.comment-children')); // To avoid stagnating data, don't store the comments children in data. this.children = null; div.data('comment', this); }); } /** * After adding a new comment, it must be inserted in the correct * location in the comment tree. */ function insertComment(comment) { var div = createCommentDiv(comment); // To avoid stagnating data, don't store the comments children in data. comment.children = null; div.data('comment', comment); var ul = $('#cl' + (comment.node || comment.parent)); var siblings = getChildren(ul); var li = $(document.createElement('li')); li.hide(); // Determine where in the parents children list to insert this comment. for(i=0; i < siblings.length; i++) { if (comp(comment, siblings[i]) <= 0) { $('#cd' + siblings[i].id) .parent() .before(li.html(div)); li.slideDown('fast'); return; } } // If we get here, this comment rates lower than all the others, // or it is the only comment in the list. ul.append(li.html(div)); li.slideDown('fast'); } function acceptComment(id) { $.ajax({ type: 'POST', url: opts.acceptCommentURL, data: {id: id}, success: function(data, textStatus, request) { $('#cm' + id).fadeOut('fast'); $('#cd' + id).removeClass('moderate'); }, error: function(request, textStatus, error) { showError('Oops, there was a problem accepting the comment.'); } }); } function deleteComment(id) { $.ajax({ type: 'POST', url: opts.deleteCommentURL, data: {id: id}, success: function(data, textStatus, request) { var div = $('#cd' + id); if (data == 'delete') { // Moderator mode: remove the comment and all children immediately div.slideUp('fast', function() { div.remove(); }); return; } // User mode: only mark the comment as deleted div .find('span.user-id:first') .text('[deleted]').end() .find('div.comment-text:first') .text('[deleted]').end() .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id + ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id) .remove(); var comment = div.data('comment'); comment.username = '[deleted]'; comment.text = '[deleted]'; div.data('comment', comment); }, error: function(request, textStatus, error) { showError('Oops, there was a problem deleting the comment.'); } }); } function showProposal(id) { $('#sp' + id).hide(); $('#hp' + id).show(); $('#pr' + id).slideDown('fast'); } function hideProposal(id) { $('#hp' + id).hide(); $('#sp' + id).show(); $('#pr' + id).slideUp('fast'); } function showProposeChange(id) { $('#pc' + id).hide(); $('#hc' + id).show(); var textarea = $('#pt' + id); textarea.val(textarea.data('source')); $.fn.autogrow.resize(textarea[0]); textarea.slideDown('fast'); } function hideProposeChange(id) { $('#hc' + id).hide(); $('#pc' + id).show(); var textarea = $('#pt' + id); textarea.val('').removeAttr('disabled'); textarea.slideUp('fast'); } function toggleCommentMarkupBox(id) { $('#mb' + id).toggle(); } /** Handle when the user clicks on a sort by link. */ function handleReSort(link) { var classes = link.attr('class').split(/\s+/); for (var i=0; iThank you! Your comment will show up ' + 'once it is has been approved by a moderator.'); } // Prettify the comment rating. comment.pretty_rating = comment.rating + ' point' + (comment.rating == 1 ? '' : 's'); // Make a class (for displaying not yet moderated comments differently) comment.css_class = comment.displayed ? '' : ' moderate'; // Create a div for this comment. var context = $.extend({}, opts, comment); var div = $(renderTemplate(commentTemplate, context)); // If the user has voted on this comment, highlight the correct arrow. if (comment.vote) { var direction = (comment.vote == 1) ? 'u' : 'd'; div.find('#' + direction + 'v' + comment.id).hide(); div.find('#' + direction + 'u' + comment.id).show(); } if (opts.moderator || comment.text != '[deleted]') { div.find('a.reply').show(); if (comment.proposal_diff) div.find('#sp' + comment.id).show(); if (opts.moderator && !comment.displayed) div.find('#cm' + comment.id).show(); if (opts.moderator || (opts.username == comment.username)) div.find('#dc' + comment.id).show(); } return div; } /** * A simple template renderer. Placeholders such as <%id%> are replaced * by context['id'] with items being escaped. Placeholders such as <#id#> * are not escaped. */ function renderTemplate(template, context) { var esc = $(document.createElement('div')); function handle(ph, escape) { var cur = context; $.each(ph.split('.'), function() { cur = cur[this]; }); return escape ? esc.text(cur || "").html() : cur; } return template.replace(/<([%#])([\w\.]*)\1>/g, function() { return handle(arguments[2], arguments[1] == '%' ? true : false); }); } /** Flash an error message briefly. */ function showError(message) { $(document.createElement('div')).attr({'class': 'popup-error'}) .append($(document.createElement('div')) .attr({'class': 'error-message'}).text(message)) .appendTo('body') .fadeIn("slow") .delay(2000) .fadeOut("slow"); } /** Add a link the user uses to open the comments popup. */ $.fn.comment = function() { return this.each(function() { var id = $(this).attr('id').substring(1); var count = COMMENT_METADATA[id]; var title = count + ' comment' + (count == 1 ? '' : 's'); var image = count > 0 ? opts.commentBrightImage : opts.commentImage; var addcls = count == 0 ? ' nocomment' : ''; $(this) .append( $(document.createElement('a')).attr({ href: '#', 'class': 'sphinx-comment-open' + addcls, id: 'ao' + id }) .append($(document.createElement('img')).attr({ src: image, alt: 'comment', title: title })) .click(function(event) { event.preventDefault(); show($(this).attr('id').substring(2)); }) ) .append( $(document.createElement('a')).attr({ href: '#', 'class': 'sphinx-comment-close hidden', id: 'ah' + id }) .append($(document.createElement('img')).attr({ src: opts.closeCommentImage, alt: 'close', title: 'close' })) .click(function(event) { event.preventDefault(); hide($(this).attr('id').substring(2)); }) ); }); }; var opts = { processVoteURL: '/_process_vote', addCommentURL: '/_add_comment', getCommentsURL: '/_get_comments', acceptCommentURL: '/_accept_comment', deleteCommentURL: '/_delete_comment', commentImage: '/static/_static/comment.png', closeCommentImage: '/static/_static/comment-close.png', loadingImage: '/static/_static/ajax-loader.gif', commentBrightImage: '/static/_static/comment-bright.png', upArrow: '/static/_static/up.png', downArrow: '/static/_static/down.png', upArrowPressed: '/static/_static/up-pressed.png', downArrowPressed: '/static/_static/down-pressed.png', voting: false, moderator: false }; if (typeof COMMENT_OPTIONS != "undefined") { opts = jQuery.extend(opts, COMMENT_OPTIONS); } var popupTemplate = '\
    \

    \ Sort by:\ best rated\ newest\ oldest\

    \
    Comments
    \
    \ loading comments...
    \
      \
      \

      Add a comment\ (markup):

      \
      \ reStructured text markup: *emph*, **strong**, \ ``code``, \ code blocks: :: and an indented block after blank line
      \
      \ \

      \ \ Propose a change ▹\ \ \ Propose a change ▿\ \

      \ \ \ \ \
      \
      \
      '; var commentTemplate = '\
      \
      \
      \ \ \ \ \ \ \
      \
      \ \ \ \ \ \ \
      \
      \
      \

      \ <%username%>\ <%pretty_rating%>\ <%time.delta%>\

      \
      <#text#>
      \

      \ \ reply ▿\ proposal ▹\ proposal ▿\ \ \

      \
      \
      <#proposal_diff#>\
              
      \
        \
        \
        \
        \ '; var replyTemplate = '\
      • \
        \
        \ \ \ \ \ \
        \
        \
      • '; $(document).ready(function() { init(); }); })(jQuery); $(document).ready(function() { // add comment anchors for all paragraphs that are commentable $('.sphinx-has-comment').comment(); // highlight search words in search results $("div.context").each(function() { var params = $.getQueryParameters(); var terms = (params.q) ? params.q[0].split(/\s+/) : []; var result = $(this); $.each(terms, function() { result.highlightText(this.toLowerCase(), 'highlighted'); }); }); // directly open comment window if requested var anchor = document.location.hash; if (anchor.substring(0, 9) == '#comment-') { $('#ao' + anchor.substring(9)).click(); document.location.hash = '#s' + anchor.substring(9); } }); PK{EDUkksimpy-3.0/_static/up.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME!.<̓EIDAT8͓NABP\EG{%<|xc  cr6@t;b$;3&)h1!﫳Hzz@=)p 3۵e2/ߴ ( %^ND^ }3H1DoǪISFұ?, G`{v^X[b]&HC3{:sO& ?,[eL#IENDB`PK{EM "mmsimpy-3.0/_static/jquery.js/*! jQuery v1.8.3 jquery.com | jquery.org/license */ (function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
        a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
        t
        ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
        ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
        ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

        ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
        ","
        "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
        ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);PK{Easimpy-3.0/_static/plus.pngPNG  IHDR &q pHYs  tIME 1l9tEXtComment̖RIDATcz(BpipPc |IENDB`PK{Eu $simpy-3.0/_static/comment-bright.pngPNG  IHDRa OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME 6 B\<IDAT8˅Kh]es1mA`jh[-E(FEaA!bIȐ*BX"؁4)NURZ!Mhjssm؋^-\gg ]o|Ҭ[346>zd ]#8Oݺt{5uIXN!I=@Vf=v1}e>;fvnvxaHrʪJF`D¹WZ]S%S)WAb |0K=So7D~\~q-˟\aMZ,S'*} F`Nnz674U-UB]R[B! 8q=}k#6yB!BHCHib[lȄvQA$xqR}&blPB!B^w"-\ʣ[Xl˘p}Ri8qӜWf݃{톰g-4\wzއISG˓E;!B!d͡$OxTK c , -m?*mJ}[" SLj:R!)L)QRBPBJ )\'lDSpy5杺ژmLU90LTn޺Ҩ5\}]/^B9uO#RB!Bz z6W<I^p-b0J#êPЭ;iӔvT2[EEӱ0ńń&P RHݦkoW"aVy"*fRBY(%)W܆a7vC\VތSsKKQ L1{UݍtChېO{L!B!w 'SQoxX.36o@eH = $د[ $ IO2fLe}B#*]תȃC4pm\ubՕzfnN7kswKjԧ̧#8 B!|P;<,â\ =^/lݴ͜%ϲ߰^(&t p]*a;yyJEg=[?ن _@H!Zs<[qQN/̪%qunڹ}Zcͷ;b@#I=&B!@_{ⲧ˄MGKG3P=Y=8*|P(OR]sU0oڥ`M.$P*nxg.Ш]n.pgqƙz7Y̢;MlEhB!BH.(W q5b<1w~'J6SMKL %FuCsQ8MКC-`S|llN!BCSكo|an?^ᣏXr`P/ϖ>dVuMiWUq-I.̣U98$߻c6VWϝroxB!'*|!!?¡G]Qc%V9)ZlQ݆g OƶW]z~ZU]yw-=X-[ޞB!BD癛|{ubZZŹױE(=Z{{-̑ӳ-|v\0,1P}ܜv{cW=d\\#B!>=9C_~rJ)t.֥|5k[U^a)0թ&󍓋H PGμjV tsB!BC6@o$+(:al26o7>bpylq/3;ղFg6ǶGb*! uCl<}C}z{qu9B!܇lTx́LAHP_ hjַX3;nZ^3թ{?<8NHQwضz㊷VȻBW=xN!BYlD.ʇ~[qЍfhy@>qKa׶ٻ]|-ΧŢ8mypaM_K*%i"B!?MyX/{ ~WbQWءW)?#% /=^ ֔U co,=B{Ǝ|%\/}-[:/mrv]xt k'݇I} B.d#%`ۘ|o-~%U 6r!B!(=^+btBA!sm\=&P'y'xm[9ϸ]rme-K PFɏy:TJyHpTo\×sw.o5ċC#B!{{{#"ηn5~g+?iSB@f <.kGU7gt/a= BE=T̴wCy0`-Xjn5Py͹|ssvm2(+ ]J폔0Ю}ڦwgb|B!~~aq$F~~Ng&D0Z0-0_?kpyfb*?~O*a>DzX;7ݫSQ9y͵Ӻ8N),#viW榽*ZKvkB!Bz~dp9?ÿe9H!Tܜ1-E)3;ղ陷s44f<?=CwKzscnm> < j{p_BaӓN!BHs )V~{z8^gvv]eaW,~s @@?^xG0 1&P/ۯu{B媆wcXy{^^ҵKy<a|xi6|܌ز]ߢobyΧU64^ wH'B!z8@(kP(]mU gWany Hkſ(9w.ΓZEKp-KG\RREo4|GOB!BIG ?߬T*"Wz|y'%.ѶDzI/yP ꍗgNjvy8\c%ʃ-Y=t]Zv;P\)%Aylr>}i] { !B!}&áلG><׷W^HU \)*MI/ _Agid;n|y{ aqhz]]աglتMyncH:V@apHծz>27B!>G􈸬4Qg>>B\J (N[-S;pӰ8uBc]5_8|z n߄og {ګA7Ws iu>=0 bb _8*7fu'B!zXK2XG0YPt_+ y0_ mTic=i+YǙu4-٘ggJ\Yf |lPkԠDC?E:!B!,޿j5RD`^a}N [yg=ymڅy޾w#;d' w.L%bV20 6m 6o{ׇ s/ ܃PwB!B=f =7"ş5-Lzᅦ|8:} +|:0]5̛ԻI::Q|ft <}A΃4/txY`[~e<8Z5ϜX*G?c}=B!{zaetq1}cٳ Lqͻ&/WcuyJTf-|{sztvzڃ'tLhIwB߬?i=싉N!B=F6;b3(_ƊMyMPM}ڽmos# o.yHU΁$;M Y*cbWך^h~y >y=QJ)^׮\poF7B!JG>O?{c!ʁFȉ-20OHQŹgF(@794/K ppz8qa8#H`XPP~alfR`heHX'6oB!B=` 6Gb5ENWayLUTTys'򆻷8{$́.#[b`PΟosEp8{9~*4Ml?!Epő9B)vh8y-R8n wB!Bz"_xOIMXky^a׶<ͺξj9GJVALlҞؾp3wwjw#3# tMe¼j  LSL?ږ_=勍Wfnzwܼ0JȨVvL>4>.? 2XHzl{02!?z78C݃M^tB!B IY=phN˙{$rL{)S*V-=0,90c@"O<:5+ެDQŸUBIۯItA!Q! V}Lj/{)эwG^Zru) z .aA)Upܻh;ai(L=hgsjq u'B!dYsá0_^ߕ˨Xn"-Z)]K6r*ZMtrU΃|&&6?hes !B!H ҁ@X}_RM5(790if0kOxD]$<3ot@'̻H5{Z]G˃B!Uf=% A7umtaMmaU܅@gɵ^2-DNcم !fJ MShRt4S. k:4]B IDATI )CtMBjФ:%h^{!5tS+3B!@Cu4%&\?=@7s))}7vꢪ֪^uaVxswnyo87.yӷyZ[6È^ Prpv}dhL iA tS(!a8{ZBEBvë}y5z !BYcU@ m:(nP/"9b sriqh:%45; ӯ7^<P67;/-(Dz4ռ kN;m2&룇'GЈVQo}OS{ޭ0_~* (u1{꒚9!B!~ay8]߱KZ(`GKoy0 cG0vM/7_^.9ӳw;h|o* zHO#,w!<`"ϝr;u6yѱImnĥٺmU=c] %ꂚ9!B!~([^bm}Q/MV{= coדPvHME/8yq:|O _7H{һD-,Ѓ?s箜s;^x ؾ#a]~mVʞG|2r#R(x]7v3B!B!*%iłVn^ŒlcV9%νX\ U֋߮֫[׽;zh_GXwy@G>@:z0[H/X:{^vɽ}=)whT];+H,)to4h>d!B!*Ёw]Qߪ Fign`ۊ0O@엟k|˵gyRsS;hw+LI򢇟 _7/v># EYXzξls'ٔʼn]Sj5,RB!@zM۷FGA/X]9梹7 l_/%Þm[1 M):* ʚ3O\֟}51>߼ r]7Wu+'l`IDžkBY/ح$:W݋077aqR{7{տsݻ_O]_ȺYs̃}BU&HljH>~@s_^ZF=v4=jG 솪=9wyi IB$I*e&N|'%ͲOST%i=$B6$:*VÍ^YMaܻ0(B_qս`=fA"u͓=K]u]v@_oh ܌g|qS΅x8uK7y4-?p=W[wQ  N!nN'M[+[' o'JeZFHY@Z^t aP(Ť o/yJE|ܿ*c}JߕP;ߴʳ3}^E0 {Ax!0q { fq]v!톺]]TWōWk fW{iI45L_gfaG\"޸s^ X]/P4-(o y][unWݝ09vEX;Y8=|!Fs GCKC^C+"bݶ󍅗o>Ut1>}We@Y%Q4YGv 5ǽƋh}AsB8Dv8Q [vZ 0XKe`e xÕ\,q uLHC:R.> /\b"4! ^>\~}&DQX\- @Ȗ]sPSe6l[]scj}ta~=?{G]-y 5w̹uÿ+ϣQ{pB)&Ё>YLjW))́nypx\p$5Upc.9Q0?f/֗kߞ]A@O>d!uMXZʁcfet k@EQ1LY2L9Z*q&tM$ut] RmMRrϿH; zA,)  Vh4-/5jZtnq9][f;7n>U&{`)Y]g N$IGã砏nַ$#S*Nj39 gV%K ,-ۧ70n~SK=u W/uaS@3xj\TOo] Pw-c n^w/,-x7њ[,)Nv?8ߠ9Ap" \-lKӗ/okrt˔u6mШ,! :aBF4 Tڕ++wnzowZBo bhLu B!-֤t]iS ]9 1RJɡ13oj굋/EA+= _<:O*!}F? \ 0 rn昷U Og;aRٍնEu2Z< 7aq /ɦ&|n b豵4^n\x/Ub {ɉЈ*@q@T, &rbYE#B)RK ¬773fo{wn:3Z ڒyXl<>?lA7!]3ҕR#dUQ P.5/B 13?tœ3/|^Xږ i&; r"f vm7x,Л[i0Y\yj0B@V*Ikl4M̀P$$๞s3?YH[;6_xY4 }T@lGRPBF  UҏDbVA۾ 4s'NN=Kq#.b, |,RkaHGtT .ruzFP \2+n]LN8< Kkh{x$>t4KX|Ѳ !l\:hByRAAQk<[A4(zWUBG=!kD? 6oiBԠ[aaoPyt.AʉKA|"@phZI{{azܹNA̞BB]G( !,V{ouξQߖO |;@Q =g=1 LtzMsDRIvօ-OzIzhC,*£bœBH#Qߏ(P)wyxW_=]Xa%g{ .Fo=Ił*x0G7 gt $`XZ!-Is֣ցv5ڒ#BO")y"4G&|'N 2cb+]G91 (kWRP@y<+)3=桶{@e~ ZK~EPB!$,ng8@(N7/ˡ0+BKhy) 1*[l  Pb*;Rijv+qLLKhcBoB!.ܡ?kC(4h;E:!=_:s5Z#aR 2߭0Gq*lzI0CH'B!QyжLi{?=돿7"OYc@AAd-Զ22v7   bljq4G qi B!w&k o1?Oi#7R Ls~YA?{~cNC55e=9].Q͞rx.Z2-<9ulq;O7Z?ᬛqtB!Bql1HЧ¿ % UMM٪<`V<%$$~]x%5)SI+H cGML/J|Z]Gy?Ch st4|B!X\('>Rrrp;' IxУ#삔{|<$7%wMzy/y#+Ke)@J薅Cۦ;o8h@tB!< 照~9hug;!@!Eh(y<62w9Ǽ>mY<1Ty|RY%ԣB!dU4rYNٷ^/zxz@QG[C*cmlyn?i;l]y[j$B Jrm/X),ԃ焐E-zp(Bi~9}PҜ~W5_qdZ^Ja wL612]s͞V@+q_0'=B_Ra tr(%&ngϺnGVwsBRKnj'U$亚g׶ٽ S)*brdB{jchM],4u3;!~HG2Ol@'+E!a٫[~)\{) zba!H⑇~w#3U;O'x( j{%us7 $xՁBHjf] IDAT.6OlFNV(jޅ^-NO:!)@Zt -zhapqD"FVe ƾle&,(vѽwzv:8Up{ uB!@'R@ePrjӯW 8DBB@fr.H]Uv0Nj;<7y񚆱4*<ҜRM4ŖBY<|A0'wn9 )*E L*aB!BNV?aUsgf*E:/hvPpmѶleKM8{J݆wu ͩt)kbX?}Q7uǩ.h\ v !P5RENի g^s._=*񾐐&$ЁΥLE`Gwyiz)̑3}=on-! bE>c}=(VPv ~tÞ,A&B tfH 18 lTI/@C/ 裻0b{5ϼj3O#{,8f"߿ecFy|kvmaK/IaqKQB!O@gw#LKlu=os^tB@h t @\C;r͋Cޓ$psM89Ƙr_ L9uSwo\vfqb^uB!dm\! FE_i| @ў0Ҥz t@^͛]'"g6e0.V=*S!+ʐ^G/; %!(ɚ"`r |i Zs) O= (nك8&{ǒZ<Ӽ<j0+\Mab0CcڻyǬŹXBRma:![(ɚ#+z쵳έ71_{ } 'к|rB!X^z>[]UP ePR@H RB,襊Y,eahT (R4M MkUKԒv<:it#~@K`/ygܫ[} %XcvgWy/3ԉmU'V,On2.8qo:Nd_@{SX tǜB!`;W=°GbyH-x^.m9:[O&&X(0MQڼx0 ~~Os];О$,ܪmۤ0 a ^-o+[* Ǚ%O`e@{ddR֝=u(z743 3B!$![9ok`|h[hnmRqj7or.s[e]WK(I&zP.{߾ކ/sI O? t}z0Ph80Տr .0k칼"l?yB+Uʐ-G1.q4͂.F!9]Ks_o|,>,B=ؖB[Xx@ Λ/j՛Rx!REX6XRXsN _G\{{0FͫޛCrB[y]z#Sms{7@{e<(8 !ʐRE}prS/:w+/&G\L=!B2z/)3-ЙQtΣp2c}I807_FmM2=~RE&ڗ(i~D5J{7Gz i[u=) 3a)ƞlށnlD|?Ju00hā·i=Q9fl-z4<@:!Ć/.;}4|y{DžGZs ?7 4L3j΍ל#cZe`D%R oPĄ!GďVKoK+dx0F&=8 nAc9x\k3p Xk: !v6@.}uċZd%1eYA5o͗AOl'5 &*nx߽sNH t=Q\XQc~Lj" *Cě`Ԋ gzGJ(CbXO9hоcܹiF;BEu뙯ֿ8GSZʃyy}!q^8ZܺSfZ9g(Kp'8@z/ܞKQxXh0^Ԯ'a=goZcaҠRɭgv֦&UUڴ B G@0P'ذYܫKޭgZ*|dky b91;;@o.W)80]Iu+*3̝lhUkOt sxBŅYorN5Sz=w8-z" Onޡݾ!k,Z@w*.BlL.w)ЃLKhy678*݉<^rgf;(n\(umM"8'"Þt͌o4OXQ|k-X;PZ|$nB Xmqcׯz7w3kBlX^zI! D{xw=qٝ;b3-݋E1tmkh iҢz@\Wn6%p{/U ci0Xx bP[vnGdebE!7HWLKj7/}ß!~ V;K90† clz#̣M4Ml*#G3O7//6О{@__Dl罾ٰZ@bsP=p{k}j`HBXU|.G2LG6,,cqN0 #k*̻l>}ј#n,ιQ›{KM|ܲzJj{/EA{&IYE4-;f4 a hݙS/זZS ˭IWVq#u{^l{N-SZ0C;}\U0d8_K(8m?]5Ϸ_Փ!i9ߕ_7~4~HU">5EyyTdqwb}>פ>[i;R:#U߂B6)/ڧ\{qi_D;VY4E+R(lխnvoۻ v{=`8;陛=nZ2)N+EX4Gx/߫WŲY*"232222 ^erjÀ "wv&;-1K1]kQD\gAJ#rH"<ۡmXG £ly=N]\.efH7k >|V3/! fYAzckjYe86FJ"I}< QzLjxP3ˈ9Uj&g3QrQ^ElCw+$j6^:1b,}3[WAoAc EsL^='\&0Ӣokx/{ 9n3gL;Ao×K[qs~>MR k|G&/1>牘8lC2IuȞUkW;d u`P6Q ?a2NEf.,Y)M& Q"EKĪ=˨4zֳxVO}#Hfag!Q뽫wg0S'\9Jrr1<6,'*`ݿz>5~ g Dkr+BA/c."L CdD}¼F/y|lqDZjzuv,W.w?g#ͼ׹}Ol~HsjO睬ȟ5,|cTuJJL*/'F_N$>EyOT#&eT#d@=L*52AJu]ӈ꺮X1nvY., 㸣9x ~G2HC8O=ắDU#gYGoRթd"iM%zR (0CUUM'@' V!TDap9crs]y*dlq:[e&o_-8O:uhF&Ƒ'&+Q_̨lڶ%LPQFE :U Kǵr.,ƘvN'ܙ{*"ncVw5/1x!_,Aqku$ޣ;']M>Nzk-F}ٛ/cQAƱs;pY 5@wX.ֳszU+ ݁/E#N۬ PSB<͖YdveyD!fr!3 * UZ3"j2M-/^yOyB&i>f9 Q@ PW$כN%AB5ڤ5C& m Q @9PAA8'sB8bO3L2O32gP,>{#w߼0<`j޳WlclxAX^ϣ^T&&xQRyٸON]W[MiVڢP4*B`PJUp JHZ\`rN\f޻nYpmw-^>?ug"wCw|JZdʏ:VlLR(2ҹt|j}kWu$RuQDm&H !PAA@^#w { lpnaqpswcs'_(ܱ]~|#qor;͒XwԄHcXI'p<9[[܋k{$i#$Q:j@#z{/OFUӍ0fӄ9STJìXYɻ;q_-X,2PF-cYx>1V •;j!ɢ]WfKm245T\#6uKW M"/ꅝPVӺXUy#ն":ʞvڟNU]ߠ(J$@ J)[T{߹ڒ/IR8x 69csn呱tmltb|;Jr~O˅wwR8d6NnܦiN3tA '6yR$ݤ=Ӫt ڦhRUQ54!xBBe+IEx>!EO=/o* ʭ=* IZg.U}N(P (%B{iX^QH[KM~޸QxWʄQK ^$ _3<_j QVYmpp㉦LMۣhVJi;N Bi$;y (!T'^\Uw2^ \,GrkOGrVW%rl$i]7z75 Fj[%@ J |X|6c" Ji2dZܮUu;\* '>yڹBa*;11Q!J(CEI#d&Ӟl^տno&ܧ')U:-( =ÿo%@PH nuͤU۶[^%+o}:>:znxR{Kj-,4ʇܯ:(E[٭no>?mP8TRFyƷ錹QձNxf`UIUHB Jiݯ4#xUKXB}:z&-j =&߷mrDZS9\^ٳ##'@y%#LxN=޻aPߞЭ4tNG)iϕZmPʭ9ON9'(-p(s\Ls=q-~.F^/d[(܈=YI]t@y0S f:i [3lߤdVu$A#S< .$%bN}y+s (T}=&z=cSS|wYCV_ LZzu>9<19~ݻo'Ean%%y͆-]mͫڞNkRJj$,l BN꺶 ;۱niDz?rGG|096144tQxm% Ks`yܓLePAЋCνk^mp5DR]ݼh]M!B܂/%S&+UQʓP-hVU4@E[fٟL|ygu\fqhz+01.)W>uQ)R\*2DtH ±}W޾5uT4YI] 4xL_^揔t3if3L畴ȟ5,?Od^3s󚧮>瓘G\""%ҷ{DqF`ܕwDZP0ilJk5Υ,q*8`G "j IDATc TJIC{Q[gV^ijjj[~sw3Itةkꠦ YYX<ׇ@iuo?  M>26鏏}V(&7 v2';&fv=ؚMM-t]ۢ( \m$=I93\K[? ō67>|'? q%12}Mt ޜ`1v{+}U'M4W#TN=vglsA[ɳvY!1w@_URū!O~mj\XoatyP7#;;C'߷~s TQsy%A#牴}r3g<"s!9q]$悘{Xy$M<ץPS/=[׏ BKW2^εLGGsߪULkj(CuqDzFo|vgFEڸ,Xۮ{ڪ)L9&{ vKuCC a"a'ICLx/5-=[mpc閦=jnTe Q]S Uc $o9ȣa&ջj?:tG;/a.$O @sϽԪUMc%yJmf"x"z9驉7~p'7 ^ g x9[7LmܮF虌VK(Cp?|>es@HS(@)6>ss ~#9.l yM'.d <;w ok+~ݘkؼCǬμ%&3z"a84y@]R} إ3]jnQoy?9rx}0) ɭ;6vuwui0NH(ZJv& \MjREQ(dBbYnRPJSJ\q/b1<1X\ܶPm o/d z ~!n=ifJi;QHh* 1mYBGJvEUo:7rĉKbIۚyٯ7}YUEUVQ1#LʫA8TIӺ+/ktt|WkY$kX1 " A,Yq;&(UV/Q=jDУ(Kҏa@}c`-y pǟ3u}U./˚U+m,[pU8iԞU4j i 7?x-zp%tY(I子cV4UIMZefL^js/$,'$IS: *Qݽ4Cவ[׎ZL6[(B(8(T(ѩS}BNJihPQT© P ZVI$5N2kb^GQ..IxT␴l^C:{Je/u'UxI T͗`\s]-wڵkd{Z-BF(9(M-'ȕt:m|/ %MQB˞aP(BL{{|z;c4Nn> yךcz{sg~yφWB.TeR&3Q,5gYƸcqGՉ4Y+sY|nq6ot86|:Uvg\{6eCQwY`,B@~tZ~4n 7~Qxӓ¬FEdFq :u~4yE5fِV=JIjt\j"M F\ V7U!"him>[>Ǧ#VCw.BT*|oU6! k[l9c.]]ҷW9-gTQjv۪JH#MM(,W['odxٔQf>+ W[q,Su| (_sTDu*eF$UI &广Hlu%"WsQALYGާ/z)S4X<3\KY㥩Ě9RIeKRq, .xDӗl[(_#On=(֬̅㲰twc@ΖdN 6پziYV !* !Bs2MM_ݺ}~--=1UhEysYY7s7B!y/y|? z㧅wr/g+^\tnl|k.e=JQݜn9/"@ϵt( [` ?^O #Y9x}?ZtH7-zK; `Y|‡c%e)-3rLrHgQATD! itKRjNK|9D ֐GKKxYa)4VpGr3hֳyC2Jl?"E.Ke/ 6pcLjp]vϿmu/\'1'*W%ش8aޡ,s}\ ϳ#ou_E瀞^H}hSc^us!=74қYN8E^|'29N1f#t xSBU@xu!H'0 =Q|1ļIfMZ(#U71Oz f\&auyjLsRMyI]V/AE+P=u- ז ߥ<𨒩{'+K4>U,a['kQW Ƙ _6x[c.@ΤvͶm;#$Hzx1N-xC{ Dr :[ o^qlÁ3ЉֹJ{w_[n\to&MFS=Q<v5rLJ%i\R<B+9Ӹ,F٣C4wڳ.ɫ1R9 cIPÉa۷?~੃̇ rԥWZXmQ~dS}@ސs{384(knTް-rAXOԗ~$_N$F u>7B3G rn# b./h_\9L'~&ڙֻ/PAb1t8f.# Mg5Q4Z@,I+΅ں3)UEzPgxcIz@]*˹"]_P} 9)AU""qB%M뷣$]cJuC9?1sַqO> Qi{9FЁ I 3 ?Hi{o,w۪N*IhD VJjv\9dZjVdDQ{aV4/|YI ^Z)tHiPj5ҶUk)rҷI[m3~mO=xcidZ1fWuE'4sv'^z1L8Y7kg[S^H4dP)tYk&w}k՛j:I24?a U z#9;da2d T}&;rOgmR27JcuX]*I5N0;` :N󸠟&;{qآWW.[Z 8+%rBD̠^#F y,6YW.tzzZvTQaQh3mj:\##tXݿv?w˕+W.\)O$ORJF1su9xZ,f>Xlv $X#'hTO&bYlGAsecw2-5NǦ SGc,!<\Pߥk&}?UWgYX1#t*1j' եu0C.U;dZ.} tt4{r? ZeY?].e^>X ˇU+CUmj5yzj}W=qld_ضmp/hq]-G,u[5=?Dr ?iBc,/ІTf(FGpl愒j1{a\' CeҠV^[O}^=o>W-R@.kk֫}ڋAF Fw7O/"p ' À* :y SGK$ or/Z?2t3pl$Lj#F:9c4 5&1ˆ$H2C2FUUr$/~iTVHeS99 NJ"ݼi"a\A_1'*o,Է3vwt+wYu 01{pض1\HυyUQ$ElU?~ussgC!EP%Nb}vY<L%] 9'ہ49Zs+:cȴHre%wDvgcCOv$J&Id1bpv _jBz.e}Q M9.H(KgO{}cEUqzL9@ W&T&2慤"J`0UXʹ*v ־z ]6.٩TR6PN..ۀ=yĜBļZ~eߪtlCPd-F#֎jrgڮ뤝5(pgzT5OJIo~@]nkO!瀦#~ݫJne#݅~[LR@k'}i 9!C(' {s8eNE~0#/*ywTUˬ}@#F4ܺ牃߇r $=F0iEkj<GP^rM8]Ծv}=3&{Y/c8]t(asSΑ7 O΅ì>"B5&_v7" ՟NYGsS|÷OOJD֎ϐ4b^/9 Z&~سͷO}utɎ<`[K}b.I+ʊoZx"@؟a&J[Ig ##?ͽ76_]v9/$JCոpV"aGmek7^tP,E&iy8:pP';ŸjBjhr\O~眹|ιAcNe{[gj Uϔ(ļ<‹z%ٖrlA"C?lWxgqez^I lnxdd݁^+">WLЃ_j`C< 9@; {pq1۸E]yumPA 4SbD֜I9PFH%R]A+Bӂ>(ՖWM}^'% (-n^.R{Qx}irh㘠@ʝD҅HrHzʱa]8Lݸ WvR@^M}IDvQYPZ.Z(uzZ!"e?$m0XUuމy:ybN ]k6"fp:1 ߉^i ŭOZ'_?ǿmqoepT5c@S#5d5)8 %ˎdj9Ϗ<F4w({k7IFT@̳Dy@ɯ8GHݗl%je)zZa {<` CRj^U*$"rBg.fƍj/$ĈC7u6?w^ٛ;g,b!VVC`~IH=."*%Rwn>s3G 2]o~#F%g_O5~Ȋɝey%.!dUw[;niSjN'W %ڷơxREGzzT{-F H(0~߽k;!=ϛ($&shpf?^ZSҖGz蹓֙nջV[7mYKVO= RmKD;`-Zr&rW` d..ů %!Ĺ|bW= U7Z^-R X~ǿ /~Di/prZB# u4b[LjR7~|}xDM?]+TÛ~ʐM]*P L(gf_;/{P+KH6ҋG)LaW;q/qYcPmI`hqon $"Y1^۳ͻ輦?xo<|.T]ksujڽvoMI;.GeFG%إc*J+QѣrZcys4ļjGAto8wºIFZ,a PubW_nEA1}6mٟ5t/%dZǜ Y'.8 KݱrLaRGا[(y9T - `K޵.TZum@{7S5B*t$ņ(#GIK:v&!5H{t%PK|~Abd^n矘y_y;TW"敧1zo2&ZE@c >cy+FGs( mڼms#3o> j@.w&4*9_k~in2dۈ^3*}v}>D|!=?'ૹouNo $*a+Lѭ-_?61G^ rwrܣ}OP<-6q0L"$T,rk "p䏬 w p"$ imdrrxѷN[o4E(U^6V#X% `%8|FuvYNjCj1f  ϋ,-f' ύ>klv9$]VӉOcĈcA1íU-u=ϻ("A꯬+zGk?M^*;J#ds.@P,p>|ӹbE S.gzu%.~Rp vAݫ[:܁waӚn9>T7H&܉{.7٩0a|^Z1A_>])AE'QI[>&9 v&7lfliԻT*d!5؞WWI<+"SA[tuJ**wVW^byg41~8c]tKAΣ9ooz?:cR L˴N1,ծ D(\SOlߧ"A@A8P L[#|dɰ ^7:NSttn#s]~} ^!ׅH m۔"P553GS`/97!}d:Em#dJnHEL=;{,wSڶ7=ju?ӬnBຒgW( X$vyv~Z#"ZyPkvy"y3ג)Qܻ3|3| 97FT.FxK`hz 9(UZ6o}#}-,ōp! _X, %EnGKlݸUb{{N@GT!߽܃O4:B.'n^p?|o(CcasFnԃ0P=LAWjTZ$>V(lcևn:7 &#a}d5`D_. QO0ܷ{m&0ٹymjms{+Z S0&Ųw v.Pey*ljHC`:$ɵwļV~uJ(&'O8xPmj:c% ߾2̷8b9YdR E#9s6Np;c .cp8QB( JơQULk{ ×R C`qmw@ٲC[q}>iU>x¨Ugcl A)Rt O( S]6GG'x}-z-:=Ӊ۵:2+;yp~:o}6&苇ʰ*P4Y^t0uă&N6=3}=} p qͣr\Vj|p*'xW%ݨ%ܩvl-*yl\/%J>9ylv6q""Jz+1b;! ;lnPM[V1V!fu˘W@JPE 0d2L%ҩL2jR:8c1Y|BN)B* l~*NrSeی1eesBBE Lf"Ltk2l2 Gs$ͪ69#"Ȅl׬SW߸Û) /KHHiMͭ=A60tl%nzO]^/ Z<2=AovN+ɯh&F 7M޶۷A@ËQCS_M7+5Š);~(8OAxE ˒u^̄'Ɗc;O^IYԿf]L9LyH"MKR" yl̗BZ>ӱ)-$UOXIC.sgݺu2i\,0qM`O9rwܿ;==5^(rv,P,/J* ;1L4D"LRij*Qܶ6991:`U(|P(l.zxF1k覙L&D"Huuw^EHuϛ=<<OϞ>AEF\_ :|_ΘcLMMOMMsfWW{BG9Uզd: HlAOswRRd(<%Wy@`מ6yL^:m7>,Hn$;$,EVXWW͎V+ӵ+ٌv+>ȴzvVf҃d&$vOtwu*V(w&dޑw= <; >8G 66v0ni ZzYe7ʼOx_W2 yxZ6Krfe^;o|p˺9s~$_Il@og8">?EU^:x-['zy [o3ˎRij_uɘnt8hN\W2gN(nlԇ:;-9$,ӜٛfmRM{$]_E"wCz>GGw_~C#Oc}!}!nݐW@09$\0d`yFuѥ#_|u/ۙ7;pl-O"F&ofrh猁n@;N{LY`Hv#03 'qP'߇J]f_xn۾eMgs4 fk^{gõ6Wjoޣ,I|gϽVNj?]PfBtBp .ÛEldD,]Ru2f'Oo(7<\xduڶmp/CCۣ]vpc U;rO,jY^8axD1t:=9226 ]%Sx⩏J&dN~¹?ԝ'zd?t kO%c 8MiMg^|wʟXEp͜ڈ4싯 ܴe07[g?.]\sYBV\`IvS=b5Iy4`T* 3ܹcOyp||Ji'W=Ml=^{-SҴҹ'vqy.`^k]F_y4#^ӀBR pbDR>7 e1χlsoߙZ`;vعk/nܸym`]w إK,߹JY `ÊYtNq> 3X&C_j="@r/1WyΝK۶n߹{7tMOdB3h685tڟhweWo޼{~ITalr#(RЕ!Bxh sу.K2+Gы.E_rrٗR%FRϣHg񛛶Y<{/ߠ9p8_;o}ż#lxsW•y軿oǁJiaܣoؽ{מ>x|bVyvy6y= g.E& ՔPQZGLpt:,>##_YIܹLnٲgddt[OBH. w":CS7k{T._xlM;GGǶ$1Z1t*d2p{|bPJ/ZW"Y{6lUD'g W)b[6kl;l%ƀܰ~~ſSg?sG^7I{i峖U'KPɓ{AA7 T_Mϯ]tqڵ<>F0ޤV 8ڣx`7Q^:>!֍+M '$2)\NMZܔ6D+&@lw#q00mJ߽sġ_.!$q!؄h)c8ˍxqn$b%T-//>}/[,eMC&3}j-I IӀ*]:Q4~aY%?|Q^tZv׿fRG yjWk#ſ[[pAʼ1xm vBMzIA&1Ùؐ=!|hKo  `ڕgBjs1Ơil}ꩭ^719\kי><3=umyyiJcHR3L޼'W7?^zLNĩm">gIK*肑 7'Q׿yQ6jyr9 z5Ak>p| .+tk)HvCQ߼`_u8M ) 3TݦxcfLomܼy4J^uw(x(Km̿I~ B}@Vrٙ鋅mĨJ"yP@ƲԽz[I &d&&&TPc)f߸qîdÎic"f̃LJ&f'JgM+'iv呦ܙ%Bz]mB:C{~mx|i}`/O/i0wTJ̺yjy器1ρޛʃd)*z9~ +ӼoZpz~uJTkM"مt"ci&9VlD#ȯ=p^02OdV {?oF|6^Ble۲ޞzoDovaA{?9S-ܣ;R6](n'Rٔ?ĝKyҕJ6vd.M\%{$iYW_=yn!ّL8v*McZ~m/x{lraE-:oh ¹ԓ3T&2(C9qۥ4H=-x=E4iZRu]'Tz.0uw$~U4ͥC2A䶂njpMH5J~NFS^n/Ǔcb_0wyGmV*FZVzp@Lr|e a i>}g-:pa>t=A=ElPj!۪]*_:i)"1Cv_%axJ}?G GIx{@Vvc Ї,IrjM{Qp8+GըS Q@O!8eV2͵>_Dk-u?˸_kbی]8nB܁~35DP.Q{_ܸd^9q8p 1G۸*Wwt }^T5޽a/qD1ɲJyЕ:)~CyyCMOH[VŘ{}vX sg%^HR)Md3I 8Wor?eB\g`u&F%ARrRnvx C& 1qk2.,П#c|Х<=u|Zs1z ]Sb§ؠ25w^*KZ)#-eUjBv-`wc ICŀj))u[~xiYEj5$,;aЪ~?eJiG煮fpIn"ĉ8OvF峣?-}L)?Ch%{ڷSU7R:uM*%f߼b}ͺpXX|oʃIƗgy=_]} oA1" xo+\n &lS^q=+.lh֝r/@b8ZXSjafɪؖ]" ΎiD8W 5u)6-1s М~_dJq2߿m]-]yxy)[Kp/ `-OFǵI>Z]SGR8?@KAWdtp4,UKE,KAW?*p"n]zك}0b)ߍtշf%=n(- %{7\yMKkƽ.Cq jW}\Y.U!4MC~uK6 薵c OT Գ[ɓ7/W.w)+p`;G#?1]STuH߾8)}o%ZSs>,<wT1{{MAWılŤee4WB_@́ Tg%D[K u cRL #4znStg n̲_Nx<>Fm_> Wzd*/-s.;ߛ1ل7}R҉wm[R"]g d؇p8],Pt:Sry ܒ"l{/H6: LRN\b4d5R3k CW4Id^{Hdpc"^P0DxX6[!B>;SݟWC8`νe{9&n;bV u_z|RL2FNplGS8v!zp']7JRZf`_C:9LV h ׋ IDAT]+zקԵ󕏈WRD`:wx,}G|DX;]W?q U(-a̳yp6>w({ɇCny(cd򫿟 oߣҕW!|537k$kUR4i(NSu~Q^9mEc @@`*ӥggX5p8ê}c_*@WV-g~=0>[Ig`,Jr} U)[ᛅctH*Ƌ0ʰabo?eC8O"ٯ԰Ii+)EF\f+n^2/괌`R8٘O|FzM[346OIӁrU.1O./Ypqw9Jݖ'ݶ|?[( x%G8/Yyek > )'?!!ڦ͛sG>z~]nN&&WOD6 V)Y׺uF)Kuš*5/*9bK'p{`Kd9ؾ*NbNNuB>q<56m0wFҹŏM'!+R~oG qpQ寮{Dk+]`lf(!7~=55u .87ŧ.K$C5 uk $>J!M榭'ޫ|rRe G{%'Nmm P,? ?0ލWppλ_ =]bّ8e4 ׳Kh;0浅(>/XC61cL冿~+;G'6/; y'JJJJJJJ]!U1-K*g?Ui"'} s:HyX6' /:Oz\ʩ6~dgn@йRB|xP[<l:;=j?)G;!,Azp#T*]P_]:{Je.qԜqB- /k|zmÅ=sY/S܆!z .W}ɼxpD iKŬ '͏V\0 (KR?ēH:yY 0,Fd߭l ym&:1膱y֧Uk]srp^N녒)nJb^;-Vu{$]c yQt4V(}8Cg q9Ua}yEHE:>] u_w76+ךлY:7^~ Е-2qI:Ho6-5|v`-nE2B6m|țoLߛ߮]| w l`fJJJJJJJ42mm[wo_7o̼8_Cƞ;7y7f}#(7z"(X~7O1d@uPy@*J0) so[eoAkbyBfkqՋKóxa/]III z,.ثoZ7]O߳,9y]>9Ǘ 7l[G+*Խ7=wD_I|jmtSF֙򉻷{F|{<@aB.zu"ۯXm(0c>&oS42B=t6?~v1/K*B[_j"y@ME(u@ZWs#ϋTC PPs>yg90g/eC=k<CDᎵ"ޝnx3JX:aܦubD[i:z|c$MbsԠ̉d= :/i6l{{6ZmEQv;ʣސ24ei$HU?A|s"./ z'I3/g2݄MBQv<(yg=Vw#6C_ړ?ݻ}f"?8dZdf-?qI@|sD0F=m:O4BF*,JŤ*CÕE{ np"sšD0.C^1\`|W3QWZ.M*ef]rb5%eW .YoW&lxuipد( ͔喰a!Q߹;2vt&=IE@m]W嶆yM|fK:W&p珛74pZ_{ixXKe$ɑL*#&"ƙb#DRpZ&YaԲ`Z2-U*T)"/-G[t6 Zn>qX)<p.VO׷&C{9׼WΚN}~|6q! +W\Cb8>@"2hESpnj?8{[wL˅»W/~wB?dYyK\۾}#iXz{$`][hCly; ~mHC{_7nO>RYƗz$jWq@Q`LV8+ t?֏7I5=%0iC: Cg:1`:t!D#=Q0J@lbeªL+EV*hT`JrU%viuW(1c߸Yl6I|zSuC=0M@zfʺ{3KG0 V u`mO_zy8p!i7@ùs#~nF*˲0 mJ?|zjO>'"oWgXT~}% 6 ct_2lM;`YNB|p%0)0to}y絳9,|cqtMUURSGEi:Bx.5LZK hЉNCui  ` RQؖ 6-ؕ2LBM˪ABlr^r1]~eUa\YIF!]duϞx||~- ]X&7n<)/yb]u:\0~'7#COM6 )E}z޷oύ+sgaA'5_t%~fqSt_RK%,3ajC2Q (ZT+zEHp?<&s*S9|[z~E?މ_w ޾<{vmΟ;^ږJ! :[:ppaq28!t:=7^M&nX`Lt]$Zj#۲mܝѣ58_){xɾD|]P< 399lv3΀yȂA@0gw03?oIBII⤤Z$^8'Ԏz%+B:.sq0_2@=lɼ}K/〈^2LÁΑ T?b/d&¾rxa>N=%7X;ypNO|囯S[7M3 ` `T㶌iOMlL&ug""ݻMرd~Hqlf=YqKsߦ'IIO\E4}nlmOR,% N#?|O8~ o1u^;#OdzQ̇?-ptFߩCDVxkT3r) a8gd'R~oM%!cU1  v{j(7α7ONO/|ܝ'2s8V^&6o#JyGwde%Q` ;GG0$b"4 p<|.Be\2 {y2(?J3OǽهSK:$f:aWԪLjPQ9Ȥ7dӖ3!wCk:ph3{7n/S[$|ㅅ+.].\" 8neoL߼KWok(qGta|7W6++[$ݧ}F9sHݵz P㝒RU q^K<ݟ5 چL?<2MQwii/!~hWFǵMO*Rk+*9Odh;W?]|q8UN{_o0 qpx=.]H`1XN\f|C#?ؼu>{b.|zw?ȗˋpC05̻?(1>swЁ#c =Dem\GykV=Q(vpyyre(L8cvR8Fb}P_Lq۹E](ժVPp2AlK/'?h4w\fSGP~΢-ti>hgo'G$>K4 XY_UE9#o{rN{ܱy# ߂63_\o?#84KE&y0{@PB>,,bU{䖒Q[yYR*Jp~%8w4x$)Q;%:͍k Į>Ig]j÷}'J9Ÿ0.Kճk>YYyrfRE];W9>uǺsqD>dbps[7qӟhҔ!b;s1q0@ cԉ^ucR׍I#z)[?R)Uέ-OJ%p3p!I΁oLd{yEO1A|)ٱM69rOG@׍.N`!p-yw[ֶlV*)>$,Gdb{ۢ\@?f-+ ZӖ^0TXsOVNlڦ '%]7f7?;c&V: F^ZL߹t:=7|o-Tӌ4$oO郮y҉>4]t`LҞ[T*'WV޿ZTZGxxgTzFQ PLٴi|S;< cKi]0YU[TPUK~Ȳs:G~'VX\;- Vz"Ik86 k]z^*n]_T|M5ԍ6.j8}3Wϗ=}@;ґ̯= BJΗN>#8tY.D._;;s]O 1 |40VKr#a@JӴT.\.''-R9VX;:x/,, wXVF]v4aO@z[n7 {`!y=pw|̣h7Bm2  zOX(w(1a\ n^Etyfρkڸm|{&M#X~vÉ㞋]!9̗v;wos !p3ބ- f8BL.'&62˗zJ\~^=ss̳.yE+7,7tY eJmٲc[OmxftlLktzv=0npl[rl?`f#l!u%$,uIb!uyg8Wzr%_|50wӺ=3e]MI:)VKv9diwHo.K,&flO ޷ZfQϽ׼RR d/fsC/Nl،Jfݻ]͊YZZO->}e\nt.0R]#f $ 0LtQ|MqzDwCP젂y{s˶KKڰIzƳ׺$:~(vIڍeDIG!݆NsgZ~ؕ ]=A7~hFjb^U/@/ê'ݟ.Nk_wA57]0mM7o_̽!!:igA0$81;y?gB8\K< ٻ ]<=Ypgc@\-p]s9הA ޱy"zEy`=m JȗJX[WN$N[Ogd|;v5)ܡ\`^lހ,PB~2ax<"֪G]浅EŽh({7<>3^[e!4znfQ,)Kqƒ%9tX]$>brD!{+p D y7b8u^N~8O`C~}=k$nM kV3m si&JQ3+%jC!no/Ag. -[ kZ>Gw0WV2PV\KsW mZI]%IaR\t˺JN{(u;ڝtv·rܦ׎K"ws \C݇;ekpFCy8׳--5dk QryxYT=-&X=x`&g"E&ioqKqKҮ1()) q+% q s.ks>$;γ2_ۿ;22k4\&7R{\,;a`.Fmg5{; w={< וWo# zRX_ IRQ[qK\ϫUŪ>IX'$ id WGsN=̜ZȻ4u p.zϳ2/m!d3oΣcڛsw96Qe!0ߐU֨![e;[sޚ!0osAwȲKKY}`*)))))))uYнʒ9H`5M/%Ķ]wΓerэ^ܟөIJ>[D{sPx00 <.Gwԇl\ ғVG{==0ws׳;seoU%:1Q\$1Y꣤ԊPZsu?PՍ><=gHq:}5[P{PҨ-h`c.цYp[S`^l$@W$>`[z 條hR)o5Rw%TF\Hu2=_~ #EmdF7ܵU炶KMCs>GٛgT E:xrwTy;rCݣ  L7AIkzx&$5 j\뢮sojUIR&{ŐJ<=O Oܻtf `jv<`nߞU픭-HbNmܣZ^ͱsX*X~vrp@]̦?8.WRDOzB.9^|+cco9I@:y7iee`ևucHz&U[(^=(s vlpfX\Z<: 9w{r`tKS νQҮo]ܮÁ@O=O=Mӳe[`U6%R{y([js)I!@l͗hk~C1}J 28CUJayy&tI└1Hb%wt@}Sȳ༞*Xt̽ww܇ wd{rQ$ˢl1zrKG]р"wo!i8֧`Ǻ0+Zz}%QRRJZt{S)k][w<)GE={ @}A0ڥVVJrVs恅(nk3QzMֳw̅H{0h_^Y,KO]ZEW4ĵ.q=V())))vC,Rg;[Lvހ:y7m4J,z?({ InC<2|Q~չͻ[#])iJr @qϕV=pOmڴ巩`^9JY[NRsE.WGBzwwuK{k>XUaāpe ˶l˲iR)/Lk* wJuc$^)iH^}z,êyfgHXirXi{Ω^Y,vcj&[^VRۆl-ķ:qQp܎7:?e8phĝ*E+f)_)W+zbRR.L*UJb\.,XV_zo' ȱ7k]xv?'MCq:)URzeªA{ϵ/ -EqM"UgYP{O\b*+!Unloܱfl{p' z'*fTRi\,JT[Y2mlfٴm%J7&p _].…s1]=GV=܋^g}nt|˄hcnxsD`.=nTp&I;.߷FQr F,vs1FmbTɗʅR\*V*rѶmfv̴,2ea*u8ۻ$IR\듴w,qKs\@1묤KACqm#np`-7Mgpv߮;jk syH`90JMImR,WVV,=m fYRlx3[u+ՉCzQ}ϓL;5<2{<}ƍ_Y5`  qלoϨuJJJJJJJJJJJ=R=@'§'9a#۶x-΍))ZLi F;l +`ۯdsAt_<2|ױ ;8j*))))))))))%NAZ[n=BmDZ~w&({t0z.Ы(;@;`؎= {QwW2죳wo>Ni-58^s<)&%%%%%*+)%AI]&N* Љo>O=_# 5 I7wi gUSev'!; phyz6=0wKe6{wSjMWb' $)Iڍ׺$ nX]c yQRRRRjMxS)q/n4́((np[\rV]({(B[,'0Ghujzjs./kյ98rpjO^}"T\Ťa L{7%ɫRKj$IR{ٟΦ&j˨Aob Cy(!0{`_\ <;V[Q!΁A{b0yssYR'j+rZ$^ʇL] msdg 'yK@#e>G[0-t]0{QP ^wh02 /C#U MIIIIIIIII U]Lg7niJ%L4t:r8Fڛ֠[b0hoV[jCQam@y$sxQ@n|P(g;!0@ynB81)3()))))KIW[0R3Jbk1iyuۍ{>g펉_0ebii{ʆwٻs{f񖋓(5hRRRRRRRRRRR.h;w{U3 4ڣ`a C5(؛B W6M0vn҃ [5ak%Sf"vPjO4' so$(uI[%ժV%%%%To5yft|aYJɤv &lb(r TL֐-A{5ڐiusaܷH9 |R\RoR$c|S\ϫU%>JJJJJ(̃Γqd; #RcZ].hp+\z_$C쑶FC}g^ ڼ$G ;5]m?-"SRRRRRRRRRR kg&R!jۡM0w֨ WgRЍvko֐[` ؎=N{;/ՇzME@WRRRRR$6)))SUϹ\ߴeˎWbU`ݔ){[b,3qXY 5-ķU(@n7-AwCjolP 1`QQMIIIIIJbO %$(ˤէ fMtcCC]'9\Ά4 0ol~_Fmmu8oM0ڛW G s%Au5NW,ϭEf{bHu TmZc=[%Slv2lI]0:y`aPPyt)ܻڼ߫[]בu]mEWQ@b%xWsok%%%%%Γčnt 64MlhwnߞU픭-De (gs p{}0lDT)trFj Co wERCE80w%%%%%%%%%%={l.2ߛMynkyH e%n =Vo)s###CcR^yЕFI}kz)g$yeǮ5w{HH(J|z7>B7PB" xaݞ]3;]+ٕUczfv֖ɪg2OߛA({BGDus>Bou&=~BYwuX~vq^|sׅiw޷7ՅNcF'  f tn,.7%  !4d+2@縺tQ~}$˵59jD7uy鯝ahk\Ws/Q~W6NA ˛NM.%|Y7i;7Ͽ-vcr3 z}>a>v:=0mԉ_[]8ۨ)֮aTXrx3p w0)YTk:\IrRQ. {&YY7 u fP7;-./dYz'V_~V=0 ?>ǵ :=N-̭3 s-1pã껢~%Òěf&qM*_c9ĵ3,dz E qỲ#qH Gs8puClv oUBWs˟k~^a>y."V<ۯک0Q'>èoNW l{|ߧnuO'ˠjk~.a~ s v<|^¼:ƄgQMNbWмo^I]}a;!o19 W*j͛I˯l)Ӎ7&tCU] @8p3,bʵAW>4t*䌱 ,.1)ɫc 6`d="6O)/P|O棽w# ڰ{g z*=)+:3{za`"gH2)s8x cl8G0r\~a۴q 8hp ek,_ IDAT )¶nku3B1G`R̻ *T|6L7^w;t)|y"bs"v]v], dR-6m9H,Ĭg9\0́zP\ a%Siq09oc@I}qyCjs*{UxH/rPuՉ{FA^-^XO ?(?ӵ3Y~zzQ>kcY@`Rnl;[<u|=?y*]__D$Y%$Yi%D},"]/ Y͍\X?^U?\-Gvl-r4M,I4Od3g^oEa;EYОwpM$ۛF)] u%sGߺ7 JVV;AB I$Mv$Yn&ol*A?{w?\v]_4C Ɗdg4I,MN$=x#My^ʾ?7 g v4egea- 4Ð5`li.96^H"8~lwO^G?>/De1 3Q5=9̏>M{x4V .36殪mZe` dԕ/;Q$@}jOa>-tN 0%`qw`H\plw{0 r}4][ Ʋ,x`繅}Y}!$4iO$i/ N$diOi'K~ hk=OtdY?x7 xyު -˾50X\:n-ZLB<-ŭ$,I'y4'i֏ xoi܎ ! Be߲W;[[ a绷[|o\ -x̎t,r<>ȲT<,,eqKG 4YIBYqqɶ^lի]  ۞미6+ Xp9MxR\v.>=\6Y3!|̖yB B8*WVnhEHb)Ti$A~G'E$,"툎8p;\i٬Mχ׃1-ap?x`o![|Ysq,]bɛa57(2S4fxh=x x {~>tEے^?辰'tlb/e^~SfzdV>>n}\g6KpHSY:N~Gq}ݻ|@ +bmy¼:?8?\}va>~:}03S*+N9=QF<(RD1`\Y!=q\s? w燞5\ \qqgCK!s)2e.ifqQIQ&qG8I"YiL<<˲,FYN2@Qelk5Lp 2 CByqxc=k:z;;.+ߜ3; E.s)$D<,ʓ4I$J[G64KxNg@CupVxq\9.cqAp]7p=/t=yN຾p28 ;q$B"yii&U^8\Lzt/W'Iw{s{o+?WG9i\w2̢*+4(n|ӯk/}y~xۏu[n=p\';3ƴGտ;'a^^':^kFt?0gZBBH)%cs^ifo֪ Stf;@-mIQTiC "r,Y(*73;Iss`>TM!cR! 373m@E•7LE"Q1vP_ !^V]1Tp3Zg@jdg9dhBDψM{.zesE[UD<֦(ϕ=䥝)wsRrciHqFab1j-9sY6QĢ=^G݋>/L9=>s#dYfYhٖa1`t(^դU֏);',*;e5sχϣi%̕mP FiFpKU:R{8˴c{*PߕDVf),f^<9&YN Eww M!@ )r!& 4Se%r[i];lt/RG}yn̓aT:ϵm. !G?z#T,MS;/}8o?{;a#Xr';.8jIuzʵRC HVsE.D'Bi 귺q[+}_tוBC|ׅ29?W J̨b@S}B0@ 3yMAji.h( AQ.\Ƽ`9¶qo\bg`ֶ mvm׼nc=L݌\;AćƆbfvַ,,M+ngeksyۻΪL (O҄xDSnB2sƦQϠۼjgJ4*[_f|(3tzzZ:E㵽J erL7l*0YiAbQ oS*}VZqӡ!Z~ɼVfMN7WtO v-Y@1OWzR;u\*68wfis!fvը?soss`ssS6 oݾť[ͅ0  |o2,/= Za^'Fw ScÁ*ȑy<Yy%i'IP:7}߽ͅ;=cu|ZxuX]u)$s=WsW?)(.UV6Aff3MB3Ӊ岛k険ꘪDPm3C~6ק6h ^ ]@B,2EZԳ좌zE-uvַm8ڬp2Z2y*݈0nTUJdZAuZazx*lvVYO727>8IU0ل9dk[E,iZOoU6= IPo w0dxL|ׅVVg|SL]Kݱaҍ&Mn֌go.'ELZ9y;sR|Y8爒r?@MH˪5&QfL#oq̪rgiy֣wޝ;wrUk7I-5 ,M,cgQeQĽ(Jz8^nizYNyC{/_>;:<_{[oAyvH0ǒq#7݃1) ȟU@̴R u^0[xԢM5/wЛ<}Eg2Z3 VE% ׿*m_u)m#rqJf)]fc=>B613-^օz]H8/D7xQegYdTfgLo^%e7L;nV[V׬ȳӳU*VUf.BƉZb/Q1Jq>kyiq)Ҭ,wiy98F t=kMUFo{O?o,aӋr. v;u8Wk%U3'=cQ&X۶vvv׿C9xa>º2ibmz.LUhО-ʫh˼Z&L{{ll66m.1B=)TCUif{>>Wis]\8+|DUxT=mK)m93nʾz]]5Ӌ:ò6GUV_&A\5w0-UJN?KYLf} n >zRS?}?^X\/,M)wZNnYNZ0mŅ5֦@KqgO~;cO9)ӦT^9ӵ1diX˵4may^CYSV%ept?k;L% =89lz%y F/xo"^L.P Q yut-PJ}{Џg*L6[Č~^)fk}0K,kYm6;N+dU3o[?*;f`t!զUqٖ.׾TgRY4 wUӼ*ms1`ٶ=%Ϯ3mTM<阏b˗/>i;?ѿ{ % R nM2gy !h+zSۢ73J QM-ŃAW,I{y~|ÞGօM⹔25DG. U¬bauVo45{]&oϥWz{Ufg[ܷtݫ2uaciƶnw3nuތϗekݶ@o @ue͞H7LGleu[*==\u*ڮ NoQwzʖªi{ֳf[dt`ف]yV_o}߆Pf,rLagWdo>{Bd(G(Jyrf% nmm}{{?0_g~.iY~(O){u//n; ڳ_|;!LYU$ )vYkSV 8˳Tܪ2Yea9Tf XUR=ݫ_;B]SY㴰Y{ձtj}~٘ƨ>m\% u%MߧAau|ڳu>jۿqt調'`YO>G?mbo4aa9a94[yq8zOgϞ}! oZ1>מ>:Fg]Q1oӧ_ӭ[w9Ǟ<UХ~)+UL1 ~ң;\S$M>vz*g^ Z${~{qywq)&)6eeDh]Xxu\!ϲ}0`&c ,j<6zuLuwkڇe۶fysYNv;nǯ{12byJY^Kgayu(/U8ƾd# Ah4°8ò ppt;?'/^|BPs%;(FnWMml6VMa|kyebyiז/מtwsm P>Ɯn]7Dylv]wBW󙛺OK!΀(/_RUE G혾yϓs{9ujuYH-ua_w;'>jngۻ]^\&3;e3@&#Ylmp' `9h4FW6yHNn 7+Ng?۝/QE%(>,m`{mFTRp{~(}ח.LD6sڳi(+ANPzUst܆<6Anns]ЎGGy2->_mQs,n䫍+0.0g`lbع7n:\GOWìqZ iҽ1@JMb"K!D B$ K:|B4{Y9zM$M˜M+8QՕ KKT* /V6s/0Ju1 ϳgj=Ea# 6oiWI]Ng 1l4J}{G(8n c! ~rgQrCu  Q%жMj,qoowiF\5v3 04K?g_|/ʾ\5V^s5i4Qtg Fp[*a^ iUawpn},Q6PFV1bFIgl.4f` ^qh!Ã_iKH⟭{AAAdsh5Rʴwq|8Zcv{O/gYzR+adz?ӈ:Lq.sA޲C.+/@Ok!`\nlg(lHެrp}>nS]81= ߺCs˞k>)aƯL&onnj{WZ&qOmuEIU\c`^[j8{<99y6*.#Ĺ>J/   n8t`\(Ĺ99W@[k/ !z]?RB s <~8TBHoFA9.l݃n t ~w!j]ޜ]gp!\ 8Oq|x:,l{ꧻvRy%)lt'ce{Uw  k}1 Zy_}_0&Bv{;G^{}=mQb\C/9ce   5,]a R_X5qW"B(귢hu(NRo^8Q翹w_<a>~r,/GYIrC`N]OM   sqJD)jѷcs:qݭn߹`J$V1EG<à:>>~qyU R@W"6"AAAf\@WFR9u|zlu:WVWHa80sqqOvE:`on67VN7  xMOӄP]˪v7s:nu~ˎ ^kXnBcH$:::R¤87{]+}\}ѧuz   ^Ry*t/9X\y'=pnRuO qϸ5|RW]0(oZGk(ټuWQU4MLAAkuo*(CPL>:ZN8Mi  1 4=@9#` i s   . 藃AGDywvw>H3>v >{3w-~7(*ٚh%  `H%fiW>{τcZW;|s=}y}j;$   .˰H,VpNPxC@E)UŀFmB۪Y:AAA\$/}.q%1} 6%]{ tU ~G-siD &0'NAA1GcN(Ÿ}Zv}_7 t_)ܼ   $Я]ٖ:q&ŵ0MWf$   . WM}87anԕ8׷X qNAAq%@z)ԾMڮ.57'   >( Mm g#   .דYpAAAW דHAAA\C?/\ow;IENDB`PK{EF=F=&simpy-3.0/_static/simpy-logo-200px.pngPNG  IHDRIxi$iCCPICC Profile8UoT>oR? XGůUS[IJ*$:7鶪O{7@Hkk?<kktq݋m6nƶد-mR;`zv x#=\% oYRڱ#&?>ҹЪn_;j;$}*}+(}'}/LtY"$].9⦅%{_a݊]hk5'SN{<_ t jM{-4%TńtY۟R6#v\喊x:'HO3^&0::m,L%3:qVE t]~Iv6Wٯ) |ʸ2]G4(6w‹$"AEv m[D;Vh[}چN|3HS:KtxU'D;77;_"e?Yqxl+ pHYs  8IDATx} ]E]֯tN!+K!IM$q?gggqFGDGMT e1Dٻ;ݝ{ԭ{YYnթSNS{5=31͛Wp4(m<8H?flY8ުGF8p0\ALs Zs4-P+aF>&mwa!Mi<ôM˻u]:͝yےϚ;W=ٱ8iXaKg4qp Ps}ulۆSF44lsl4fҥXhG-Ŷ!$rpt=o'fGOOAi)E0pp`?ݩ ](F[.kmx3N3y|ȺZ:Q(VA\(Nv3r:v?M|lM֡ag@>WMnh5Xn] *'sw( GQ&Pq,wp~mo~;lIV,H6IA񅯶i}dY<{@) ^PWtDZfG1 ֥fO{w "hE9SG8o m7Ci4MgqU!%AEPD1xaQF0Ck qE"1VʔzC\s3Dqdü&fԠ}Lc/)D$ !VHU'#&ONōI!/Z@gOl2Hİz:[OVn[.{.^7:f0n=qȉmj1P&iO6Pr&Pv>bdCKSiY"[A-?^ + sFyB~PakDqB$j!vedsL[E0[otÝ~,]('fEWP|qljbfD'1/qHv a8yaY @1}TA/†e,%ꍿZa>K. >SӽcZJC4hԴ%}7N;NdjMjЌ͘9y5?Fp0]8éfPsdAKcX42.Z9 0]ơUfpMlDZA0mcBw{16]{2-MIEr U6(ȤۚE1 {ۦJIha9.FpT\ǝI-㬹:9ٌۛ36[=1s7d$i aqn :HX־M`/`ep5;r6= q0/1],M~x=Mu+!n!8(#]`[ ] }BmmΦO4h< <p,n[%FڏDM3x_ȸO-J)Z@K_ cȎ2,%^Eۯ8-BEYfRn(n:atud)*iޯv詼.URV+pʡr( 3-n}ɳndka2(^\-=veh܌5nF]Ohj,c8TA4m4f'IT}q0V[AX̬45z5.e,8g_tDY4k[,d]ؾ 8h]*𲥈땳0QM g|o. U@7R|i44_K7ϛxM .`G?z)le5)x OxU\Ymյ{TcKCf`(eMGEP7P0+*7mXWk?kZqMO9np[J<~U .Jxf]pU͎,*<% mI+Ac,7zo fG,! B*'Q jᒽ H! kީ?#~j: fQ[-aD@mi?3"oi*;dJ9~hc]0aBڧT?Ak[r.5nӰA{VEVYƍU?u 1D$$|mEGÉFFC /}vIEQ]?4qCC??D$V qX޺d /T|H[ ^x]cg|#sOF N;x(đٮ%^b"2-׉y^;v|ur\ zj d9|>NKn:O>10w+WȄQiw<eC6ƃVAS!aȋ.BE_y3NΔ<肕D)1-hAoLv ک: M U*#\w@s=dƮw?so+m"^\[O8sP'aP('; ^3̆к9')X9xG G.Dp㍞Kq@)Ԩ~/Ys֬y~  Fl 2 '3{ E?  adι_MklG"^TD}lW: eq1*jۧb'OLMiLˊĢG"[|>s/_sTxmZ?4d?vIv;Yi]D Bby~%/z8|`OȲ@K?hNgU$ rQaqgQY-75 kx?H\ŗ7]"WE[yTE rzmm<R$P$ݛ7go{3Gq=4K8\T( WgҦ)pE1r@1rrMT ]ZM.v;xX ߂9W\E0"LO䃔e pC zH,<Z i8*{OC'yG4@#)fŒ|JTZvK48) ^-`(_]@B2/ k).6ĚsҊVDZC aAZ9WVd ^478}f. "n_$Ю+goi 4SaD ^l--#,-GA1 7{B߆y3&gB .ZH/+*x&5 ]}yqJ㑰1%=HO0q  cY?*AJǸ0’YK ͯc;uNoI|FdF**BX+/6| NJ8X 򻗨΃{>8` #>t $H%:/5[;aL2AYvp[ ݍւ-B.Z -C٢(QQbPqBMvtJb/8ھ(*:*?tai(KqRT+ Lq7@tq?˜`PpO!R޼ʌ\EMAiq[O2ٮn "Glo(Le*wu8JFyS!y:.2ƦK!{0ʾZf0 :CwAFHe_,hf…Ư<ٸC3O<^D[A4uj6IFfU TcDuvΑ+(J{*HG@@`nB i0хʃܐWqKgN<0PTSc1FjƺΔxL }b_iNn@|>9߈%29.kH(4/mll8^97\&1o躱Q# r$aBMKI0R3UEY`Eڝȓ6+0ʆA<{[*D"L8v/J[\`=ؼZnudQPcSZu|nP{ǁq `u bO<ǎm+No{p_x7yq3a0q1zo\K</seFү me(HCnZQ8AvN՝4 "4AU%D|2pDQ"ti3vʩlJVAY/ S(yhp! p13n͆;~kYy;W_l.\]8oaFƱ+lD 0Rqh> \/f=ASRY{vN:Ͳ_EQX"J MO$(0U5T/jbD&(Q8,L&2fd+q70 NB O{f(QPǧ!kc~lQ4!+au\t.d9C`;q>_,Z3ݮpֳ8dؒ`&a` r $l@k>Ae(mN.^`'|kH «#.8B GU퀚jTqU0GOLO ąv8IF!h(.F ZC :Kr ~?Mp-N?\;}kĔBizW?xOo1DG|iE._/*TuOd^Ue.idA9+! [xhovC _hĩ)P-~:XGK%[xּ@C:5͌ˡ2SĨ(:$,v aTvIgxʴ3^76f| ᢊ$Uȕ)9tE#8|o+ТUHO-c^=e$>H$ sgw .?DС%DžY7=6{wwv8ʇ`oW14(;eRI6]M։qLB! 0fw6}l6[=TAxTuO66QjHnlb2]f?;V} W}_L5?}&ݰ'N8nƑ2݀uC|~T[A^TQKB0,l8#xQGQ>kJ81!EBl2 a .X-qЮ0j= AYƬ!N -?LXX1^|[SFR@P(Rd$U>pߴ> Vo:?cgm+b'isq&RMh݅hO/ R?Ns=<4߿g=3g؃knpwIG>2ŮNAJWRX&¨F6cP*믿NH-2ZSK YV ]A_*.}8H5)TVGxPNO/ L`[a0# 3 ؠ!b5CϚH˓cq. ,Qݺ݌]?tsjUh8nqL<ΨledYTzTe);A'-]YI'^WsKӞÎpS%(ጷ1 )($_𪎦C/+D.E!~"څBeFjqwdrҙg}KA94bj $ 0q!I'8 'A?UGm` q2CWwu? @#]A|:kKՓS8xjFX*aa[ x .)d:YJ6L}U5[ mm*C'~i4[1Pl40ا@$*~d@B+?Tpnrbzt5 l1RRl坝ЮtzSo'nMyTXI#O #tjU` HʏJ/,EMOXX(,0*vpwh?IV#f50IJMC| !FF] Wv2.u+b!)xU0$w%~~z !Ӄ500vu_A-gy[ N1YeA4іuD6 D2AjDv)khp;`X =~x@?Ԧ ZЍa@9䓰mD2CN%e'.^1TK)h+XV:ںy~tLb Q3-P[I"\Qo*P|tʂ+Xxjѣ#Ufi8zj+5VY Ϙ/uUhy$~tkEkkU#Qcc1)9`0_9)%l. BӐC?/|2I*KUwE4^)G5k$`x"/y+b) ާ4W3h[GIKFܻOȃ{썈T#Xl42ؽ[e WBo=F;-pO<~R0eq i•vo`m+Qe.Z?ɠ6Z|"CI8!1ښȊ4=LA<ɓ'"J]aՌC`e??CVC{"-yAy#Y._*2ZE~B!X&WRPOu?W7I>&k1bI\5t3̨UT˥XHTPTVU^(=* @\$?\j}E"JTvE'OJO5* #"B B@0i?(H]9=n.=dt͢ GyEOW' DI}AYݳdCv (쯊#UTCچ'%a< C†x*" y(c߰ 'MaͣG^KvFGl-QW\wT N=١T*Sɫg t1cƟF"NCOx;?Np%R83fQ,<:kJcɴ^=8Z9xZƎp"ĚQ4+ [g` <{<_Y7'9KM|g;wyۺv^S[CG[bƍNkh';j`o/RHre>;Е%ݺ+DXy/eQXao6 "Uq3bOWO6_w;01n̺i!AFdy4Yݻg[;]+* J*Hj0m$x +-@-PDAZxDzg$X#p hҠ_<{CF%CF/iuC[3=2,$]G/rtju3]ukW#7J}+%3GġޛzԩS،[IH ֯Y&ֹkg&~Db.Z[ri BAFsM%s֭v\^}eiJB Q m  l52jħ0->mH"gǁ9PV!ȣ!EY$>H B .B7.r4bKwvo(իWS+PIH(?n{W?Wy5q7~0zi+뮂zCs΍Ƶ^6f/ m փ-[/>ɘ29,"pUkV}~Chڗ<ǻmh& J DDޥ]>~k[['ly-܄h]hQ_y6R5Sj"lzY[?E0ׯUVG*5e|+0h!*h%9PP0+oW}h. Ln.a-ٟ a)$I/G^A}A=p=m oxeݕQ T8(i=[0Ny\Ì#x8 8q5-pem[6qj)# ^@:!@u @ق t ڜ[ɧubhg[흼`o'-Ӂ5wʁ҂ >,~_| xE$. j>i[} !0BzB4Iii_R4;,*fuyݗBH@N!("0Uaۢ^%%]9֋}o}Q Y'O+֩rUO!ˠ@' =k%ei%唾X+ >*j0a6 ˮ4Lb Ӕi؆U0\C Jͦp\rg3?wnpgN]D p8X{X?[b_o*UKoi?'Bz tB!MR.s$ɺ._}.>:2h TdQfE6hTLgXn[nhS Ө!`A04 !0! i! WJ8p\ W8g@8ҕtHtA40pd[BW4Zm)eȹfәn.S33gܩ_8q6V#:F1bb̲-tBTU@ e@.m,iB002AEY~o'|Rҕp;R*.<]ʦ%!hIEHr6¶/IE4֥;!:!()=ap1CCFА+}Ҷ-ػccξ!Rl-l7L@) 40>K29 yXlz.+ )%ɵҕRI #:-98l|u/LS6_9{ YњjϢ=5v9OZ\mi>'Oڦ !( !&S\?wh3"v2Uw7GFmvYml*raI0(ȞniCZ!kM בmūEVS0+ON'fًͩbyg՗_ŕ牗%(ʣ։H>iݗBHBtP|h0l&Ё%.\webOetˈ-}zM쵫bea0tJYn 0JTM @vq%_Hh!,.v-_\| Ҁx+܊IӼ&{u]my#BHQ}/y"n?[l\e3ЏvYͲbbIJg)]7BQny\97בh.6L]NSr™VS\opxɇp ta l{f]7JY!M :!YJLo'\_;<4b7.7lq7 C,9⩵eM 人 +Nv[m%wӮ#-,s x~}=ܜW?0@*ڋr !d@N!$ iEyu5MzF~j;+QYw}nhߐqEf\crBT!P5,kx:Ĺna3G=*qRw2:ZBbѕū S sO?znfڙ>S4Pr@ڨry`.}mql#M:!4i_xːuϞh_7^54F''{pL7̫+qزŘ'V yƍ+Ӱf+v[nO-λOOm?vxe|sOO),qoVp~OX K')@'E<u~ru7T&_]92"wG}Պ능y]@vF8\.4vZ6튀gR&!zQ)6yYґg)θ"Ӗ'' :! >IKS}w{ #w`roh8odW+N{d=XΞ#ȦU%-\{s/E9vpm,^u^gϽz)ӏ6ha[h'i~D uBHCN!Qʽ"b<8Oy@#~bFC\iW~"[n#i?ny'~UJ*۽E? }L'%:!k@'#(O_nx9`=~TNad}=M"37eQI\qM 5L N:_c[/"VzpOqB@N! [5{P6|#m-vU1 %8 ue \MzY'Dtˋ4T/Z%.<:ŋS7q+g)\D(W=IG$ꄐB˽׸أJbCCuwVƍ>Ӏ)% _]bSV[Y>]礦DgJ78ڮss?ÅSa޷'֣\`)<? E:!k@'&k5UZgӷMj{|'|KK%Vq3.WY^vKZtu  u /:W$%MOϳo=srUO* yC r! :!t/a~Q to4m}Wok>4hRTa9C(桹X^(Fwͣy!h-:g.K?Glq]#H'+]dq#4otJM\YZX-W?S^.mEy|tˣfai 4ЙWݿ97X=Z7=謇 0NGUPBHwE#ؗ5wړwxphĺߪ`]#E;c;0xǽ^]@V5H-ݓwXU8&,gOLD\ERs|s@N}{?~$|]vUAW;Ⱂu tBYҔ-^9'w~FwbTxlלj0ky– G@̔7/o_,.b+׽`s#5H!D=Ri0cX2Ҡr~_?QANQ:!CZ?l<`W0)|/Zb\$u s7]=%λ5OloYʃ_2\󐴀X:Xpk Naqae{[ePBH1NXy]ooqNv; 5XΞ3@הz9]B6M9DZS?'C #O?}O`}N{@P'LޅBHr຤[6V{[1ĠTYΞ#Ȧq70WK s9tVĶI _m;A ~9BBBґW7[M }U֡9Fa\]"El}u>Y^8h˿wͯ=E<\HLæNY:!$T~anYusnG7}YiWN ,gk;&% 1arviFf7za-l5,C#! tBY!8r[nw>8zϻQm:lmRaB0M.]s5/SkMcA.`7kΞv^=F`SBb@'%F݌%969C[_Sպ8$]JY^<~5גF׃A60_|ɥw/9d6?DV<SovB&BoDyܼĻ?1{߰,1 ]G4q5r560WK0/Аyck9乶H bؤyK{Qȅ s) ٤PB6;Q}Fh/ʽv 4<2j' 78E}5w+%ixlB( !<)?Q?hp~CVvAxL{Q-W e kM%nyf!zqnagoŠH ο.ͨq !=:!d3W&%Խ׸)Ԭ>4>_a}Ү`ie8^e[@o1ĥ[Q:yIe s%z\Z TjbVO J n {@'ltv+iw&{Q^)bج$G\(5&Ғf m o_rȸcg:% mN*΃ө]yqq+a]rt{ʝwT|am) PB6"qX떇 3˯A!k-5ʹp\eM(%!Ews7[^,gb(v087ϙVkn5P+ɗ2@<:e"\W|?2*nwrͧp CNQHQӨy{;7ǿ8I7"{/]7,gOCY.u׵]S`T.`0LS0LK4 C@,/ZO/ܫ.`Z10drr͇`Xng:~NNH귗[XAcc;Zna^,gk)+ͥAN)vu:+r=0" ,.Jgq^g r9gwf梻0'[pܖt%]Hwi( =W$`j}5{XxfFYfH'd^'ys.""`=loy/58z[QN=%3(WdS`p֝~W_zuv\lϹZ\[¨7]3jV&Ơmmom0!8^zIx)3s-{vYlPBz,LGt tBzA'*qF{n? 1 #g9*%q5g9{s5_W54i9G|qa F-rEp]/o{։Z]Q  bϮًS/ zฤCbtBz tBH/f`9? l c1Gwס9 )̋4T8߀lR/=:=X-[%(Ѓg*͟uⵓs=0d E/5:v5}^s { ,}gB2{:BH@N% r{-pO'BltJHk촼2ke +IWF˒HGȨq}n=DžQ( !L8> jamCJnGQo0\I.rr5HL[1?VS^8tmCu]S{<W昇Qe.:yչ88jUN[ C$ Ɩ6}%'?h\9:ODZI.ͤ @민۵:LkS猟y/ @ru ܍+LR9d4'ۧ>\rPG2@OkE 'z՚j^nƏ_zuYu-D5b'=`| ڳiz&]Cy.#U^恸=h5-;9杔jnͯ}뵓itУO;~ ,gWs)ZIJ?zgzqdpv`I{k]sɢT?{7__\/9PКI!6h!%n:'3dYv[&C1HDq_Drh*J)̻ k/ԋU$)YWlTGT9Kp͵ s]#~ΜrN~Ź%Q&t7=i \O|y˼@s3<a̓bzp5AGτPBփ)Ղ7v 2k-l_\u#vCG .hHYu[,~ruEIS'r5;2,y;y\ᢄ{X4{ϺґiIK˴P|*51~ʯ+NG9Q} !!)ՂKgƶR[S茟)2v]зc\8~\0-Din]2"{朊+qZ-s]$qGM&#5'Rv̴ ]Fe8)[@n\r[?l-D{BBB&nvv"PI]w{c3n8<$QO Ɵ+bY[hJыny i] Kk=zfܴ;Jd-۵ko룓v? a Nb( !e7j>E_3Z;몛;iF=8y< zq@"i,(5sridyuBnͅ99eM{䘧]fa3H.!H];;PуGߺ꥝߭/wht VmyQMObthYh ynHmzCG`uZ@v"PB$IlG~m=#݅nr4gR%9SM@%λ(&q^0&#=Hu^[27 ^u,]_4 B^/Ѥc'peaz뼶D8[zs^8xq>hD :ʁmw[QuYKΛyV{%/$ unknQ/s5W_Jg@01L&3nB;x;nqusŒd}gӠ_qIWov=k PBtv`- o~S{b֭蚛gM|8WM0W&A)r bV s:{Rg<_ʾD__w]``ĜضÒ9L0{sa?Ap]OF6AfιqYJ27T?w5qaA( Q :!Dyy؜8x`pJX|M<4~2A T"!`\~'}9!Ir8O ?R#u%1N[bdBGx{'.wرJKYIQzd<@u;Jx=@kKݣK! !)@'&JǕ5'?D!Rstzyj(Z 8uu i[ʩS6uiK#̋d=-!ǔ֌=^Dɥ~Y z]8E#2?^a~Xz:@+…G؀qPBtIH_v:vw7πRaK\Eh2$~f.ZyHb1)[l0GpwXGFH5ۋ 4en]^"B|=Ҕy;+Φ 9!@'&K:9y׏n5M7]sbKWyjp|>^Ռr.9|tת7*]fJ|E4 vuT[ECe噛v"׼ G#';^R?fKs{"}K#,L%ߍ[*̉]ĝo}Véz u'a4~\JNHBE5Vtb|i>KMα9}⇢QRr_|-itM#@& IWU ro-XI#~ߧW*կ=;Up7Tn4v;aDž(+, +U>iխ* BPBt0hմj:~_cUyig]^rcVu:x `sxM|#|}U1zs%e {bn\ tBN9χ-ضiJ yԘ \}ha^8'T0W gt\\u:Qӎsb9.esˣ[]7ӼS2ヿ@!j5cױj4PQi9;!) q$QJg1~!=E\P|<\:ÍR4,EwrhKߴď (nre6aϽtd'xEȫGRz=~}-onflt\ 24W=$Pk*U'c)} aBœ PBpC7}֖"際g Tu\ s񃉴) ָ㇆Q!JMm5\zIy+".LyJGo7]Yy۽+隫ʪ- X6Ơ9r30<> !$脐"$3Of}q"Mw--]7I3n.p.na1?FwͻFl)$aϿ|5 $Qfskn!R{n}*~TE; I3)#F#m֠(OSNaNH ( !y RC K'MwV.UFn!7Ey vOdcnrh!1Kh|);6zj }>֑+OV#$M&-TPX}c 7Q]p@#S_z:!PB?04 my[Y[K薫MD\EtU5| }\ѭ5m8"-l(,m7m'8xZ]pڙ~TE;s0 SX?PX-y}P @NC{U50 TMaf1bM4](2s5_W]#37Xp% h \}S]گϠVA]*(&ch }we7[X6缻yІ,4Ogr}%+c؍mr3,s:{( J?oz[]wg]ٿ60`\%% e2"U][1vܟt}k]t>e#t BHV R_rX-Uh_l5oe<ODH M ʻ-OlD\K:_@!p"^iffO~՗/uP^ ! A! d=85Mw︿qЈx+\,@lM7DQy|j%y ]TC:&fI⿶S =hN"\-Aa,'jGkVe2AҖ&!`\9si[yfuywODyά:Wt"uα9}R`!41~ΤH z-[;¾9tB@'d!U㲫*.& \MѪ{ݮ4o3 ̹r`C19Qa|. WCEyt 3-@0>Xm- 6VƙI#Σh'脐Ĺ~nѾv`XrٓyC&W 7CZtqו9LtMnj>bf5bKApre=[a^\RHSY/I'$ tBHIseտ%gw,kuuϹF9)]ěg=5w/[n$ 7vf%9Js(5It*F/9`݈==y87lZ8:!$ iU [K~[F,My _8A vb4rt r#Õ늝a)8uuu#mCWO8g?X-~!^OLH@Gk6{K WuuCWOsV/F]\[˥%Mtik\[X]"-KsJ8@f\%wG脐(49zKh8,QcHs a^- 7c7ϫcG BrX+vd8rʮ-/īr~绶L:@&;- uH S:!$Ie76m1vSPSK0ג a9cMu y^k3~%g-?*_]+ʿV}tr|HV]{q$6jtNH 脐4T%s 8xghX,L7e:S$±u<$Qk={;\X(9Wr4$ (W=Eȃ?]K -Z}\K{u$j} cKQ%iuB65$FT_};k'vzS)4\wGKWle : YM4:y e T!4Ε+ͥڢ-@ח2p%Pv{/z"]tyu.uv B?b|5:2f^mU ۍi-Kp˵ nqN<&FvUz__2RƹMS SzdSQ !~JӂOMfߐU۹ߺ]jt%!rmRpT 1Jih49R7GGD^[umQy¹"08p\l( !QDwZk4vcKؽpC7@\:Ėna9GO A\e>̡0W#W.昧K&Q/=$6Jì5́PpH,q'{  FBM)5oON%~]W,9-:ëO'djRwؼykKs%PQ_[|IX(W'!= H78\NȦ:!#/X؈^eq rM <\yN]?.P_qJ䁸=wӜ1F=_j 9t*?4n3yt(Ohzm-#cdFqiD;:ٴPByj8z]&2l6[o 5[^,e %Z[AtCc\( 4j}r*I( {'Guά>ݢx !ER+$]ok?kvL;ki$f)ͣY쮮κN!328$g@D'&Is\qB㳻%'apK_6j ۏ% 65/&'~5W'tWCكJULP('jv[H}C:@6',^VkD{#a2ga3ȠHgO] $n*9X:8F2Ĺ"]b@-ս%IfuȔHg/<0 œ/7O|ciW;ݠc~r/0߈w¼ 15~p s:` O+‰O;gQk}t !ڌvgL{pF*j4EQT)*"  E!EFFCELm]Ka,k^ʔ 81qF3Lqc Έ #}Op ں;2|,s|h},KikWDZ4axJNd8XC :M<^&*#H6-,v!0o ۯ>Jhqחkk4/WK<2Z^YTEo42d2%2"I#RQ(eAzLWj?q b|}s؆HĄGs=sO^e{A~Uy@QN$e##TGXߐ ?Q>8gfCߕÕg- atNnN"}S8u= Zf7ee mCL=t?6k|3"%$$H)ɰNh+L.={->^0Q`2lȨQ9w1Џۭ7׸ .8OsGƘ?9Fwc|t|̲|`qΉ 7׌:ov&J\]j7-m&`@eJwI{הm>`+^`׼K|=%ZMzMVT}q>ZzTͿ|&^< WϢUHJIr#ZZv26ZOVY#KbDg*$v=+gvQ A1%IЛ=f>laNT8Ta^H_edW)%W+.γ`C:m t=9LN̈ aA9UO _x_e9[m5tyt!]"!E%Y[[V/'W_~xzz<˚:^3H.,&'-unlkzHIJꍏÇqY6~x0H윚clEXsK?]6E]MT.-j?җ D$(*1wAIIt";cD#"bqpN'ғGZ2Zθ4mdٗ$mܵDꘓ] W驺s$#"zyյ_m" Ӈ{NcJ*63{X-Q_].-7dD$E/K8:Ko:Gç$ G}?xތ_[+_]/>m<|phQ&%5%w ȈӉ@曆Egu t>G܃/çq^>c!ݎ2u˷Co iWO]?΃Ur.tE  /TP"["E0[\6=/niy7cǂ\*F]sׯh[][uԱ؎6%5 q6nn#mݶL(:Yyީ@B[dʥO~9w z@blԴ:)eŷI_ C#KovTJ7% s/`T)(Wޕ7??% p;MU'mY&:G[m게>wӥWQ9q4Rߝ!D?0$0d+kkT#8 :\[ IDATMQ "b\գy๽By3~k"b.5IGϾ"|zxW-r]ǂ<$MnLtjcHvzxnnD:D-KSo>VeX'׎M(Twphl0oTE2yWGڑ9Ig@`8q3"̛G+k{6$pbkA jԕkܻ~xuY.ӖȍLؖyZ8k䢛e'ݵgq% x#C۞>szi31!Ezu ):n^[tѠ$g[ZG :iBi9=KcSI54Q֐,̉Js ?w+z>i4)m"<irsu(Kn@ Xoz$Ϫs%η-:hj`ƈ vZ9_: &-LTo}mh ԦEYDR|"Zjƣ%JD!5 pے\Q6GdȊ洦IT"=i t!ȏ-/_o4g# M<9vyr~׼ D^F7:o_\,"  7Yc_㧼Hr}V96 ck^X\uq}inKYSu&]|yLV$m堛)6P| zoK\~z+oMNIb% Ke[ACnѣ'S9:G@6~e79Îy>(L鱟yrW0 n:x&*Uy>%YyxOԫo]&mź JvЉӮvݏ%ӎDtyrJ>5 sˈ_h'×WQp846!Ivao2]y}#E{_;QD r_$j!rcJ ^ %;uA,iCnyb5}h.ʉ<ݻx}'G,e'+jJN*Mu $ʻg!Mm=s;涴,z-?mnZzz쌷{3zq-gB0zP^8|I<颡y1_:Z 1i/'|?=)ž9t͡HkZPD]Dsk_G/^<ԚО7eZ{@ƶw"@'j,-ǻ5&O{Jsz@hoG.uuzxѽ.W9.1# SҶ-︿6o8'"\ѓ/Ʀ,w sA0lm%jIeԺvNNE .7Cy3~ ?ǓGǕ_<|*#S6xZsW{*ke:In|IR>)pxf5AA[yH[=_Vҵ_ț_~=y󏪧/>2G9'_5߈W¼f!ԫ/,|i> :(]T0C zm#B?e eh:y7y!Y\s";G_.hDu,c1jےts>ߧ8*bs..v꨷K)4;a#HO c3Qׄ9Ѻ8W;,tqA. T t}[ZKsmιk0lsˇM۲]usSm3y>} oj卝{ݕ QuDqޯHV_9DkKj߄Rxe(Or!ޞ6t䴷+(g|#~:5*گ?OkJ[6 8=5OKgwsrlsqt:. EM7Mq[1Zg5<:mIXhK{x~_||eo>c57Bw|xInSF$ {(N:C :Y\b3 a- =2 j6-o7vI<-# C~^ڏ=부I.e~ *t=҅sw0W2D9tөĥ~Dv?xF\fg|4S*Qg4zmp\q 4t/ &@z3.]]C 2~zF|6=6᷍./^ NF0.[Q~j9D}ڿh誟Igs]) i;Ns5uAP귪_gl&zh@3)%;5x;aFp!>u5%=~̴&̓Dy7A#mb.$Ҧ&dQ犈d‡_F/[ 踨U]+q>œh \PqÍ-kH?EH ts[wWqyߌ|gdwCvs@V_p:)+~ s""'z(kG+j V[Aof8\sJX&N>A<2]&Jl%Uq'r_q ĂJQ4@/W|uAza 0լ#j?~E[krݬa^<_ D:Hq`xHr͇ oli ؉a1)1ߦgmh_O^ںihfHfkjܸcg'^8رKL UӇDw-O Fl#Zx)_|Ok_ֹu{I׭ղiuN`(@`8Iovi߱O6nyt-M spJ*s#KjZR{ eMeOsXmy,e_7YH憛, O9xoB]ݾ޿}=|_׿*8~m #{]/%—6HlpӎiGX\TDtS0aNdb)D/E߭" 7kޞej/sjVgOZ@q͖ܵ tI[EcQ2vM3m jvuW}Ϯv|u&^FFN]$nI/#ƉdHg?Ok?96}23]څ6^90I@%ߪ~e^q"¼xT͎)70n9MdDש9Lq7]us@k'A@:+c0FW׼<5D ~Y?+?_]QdOc7/N7\w0:t-}s?M_Bg׼,aF3Fe?XFͷ0 NY8OJ{[@rWIu']h]7z L{t'/> }Ixaʱ}ž|fdyQHj%]jR0o׋ͿRK?>ߠ)d+i;\tdD ͓ ?rN(["wr`k?]]%j۩%۪'U&˲ 亐O*$ӱpŸ.5שp:sB+ߍ߿:BGN;<矘棑T$6>==&-p7~õk<=y3 c.Pf&0rtGi4ҎB^A729疛sN4 ɯh+EbLtJ2q`0OLG]ߦ/cn:c;pų CBZtI MJ?/ݸV1֑޾S{ |{Lj҃ny cDݿOkY0h6q|Np䴘B\J"e޶\nejflˋj﵏_Ej>׹msK< l*n2rb#Cm7*g _斸%s#JSsz)]0Rbp+vHŸ=k&M;8"uIKY~Ácb bflzQ|FNs51"1R+Q4]+|ͼJ-Z휧?w=7 \t,@0$j`~D~nPl([nم&) ` Wl<>`MnT]Sm 궿.ʉ,NɞVs6EonnFM|p;z#" ;v<*?훚cR(jL?6c¼[{n>x0zA[:ץFҼ+ht @\ƉF ċM<)}h Ң|SZ`1Ou\ҭll۲)RȪ߆͜i57筻R}q_>ADu}!;M=͜z?{L~qa1_^T+wn4nf*{,Y0ǂLkO*iւs @0\ă7,:fG)3kMa^Z7="s7q0cDaCᣵZ-7=ϼK Nܜ'U뮺9_6]x7m jv,m˖ڪ\xp܎73lSN>-n|j_.KQk~KݽBw;΁+`:D"Qgc9Ɗa԰]Hg/l]hƈVWhgMry-ԒR:$I"]_W}brus޺>G]PhU7 %UvO2\]/~8xO>ܣ{sj>t7Kn~s=s(Kvǀs  \Tp|оb{TU*2[^d'}&{-F=,r(m9wxAyH.WDw3]?3j溙 t7Ļ6܃>傪]|bzM;-fm6oˢX3huUE rqq^.ο ^IX)8c)pˋyl Ui4G[3k60Š&H9HOjY/&*]uWw]7vܽhe^x8:LL]brjMOL167>EWƌ#7(-./sW겪.҂ɈhE())uAnsMa:&s,p&&4笚%xۯf KLa3vʈ'ZHɕގc@ u8WTbZʮp]lĸUw=o,%X^GDk\^wSbrdTU#b2J/@c6>#a)oYXT)67>qT*XUՕ(Wr \Gԫi .n$lw眻Ĺ ΍pnu&).(HroG:@sy)]ͥR{71 IDATDٶ "rЅm鬛mbrq 6'[o]un/zyƺ)ma.y~_Dl^s>XP bՠ|syą`{ąDŽcHBA2j(F* C u)#%X\V^Q]u-$ɖsE2J>*τf貇p jy؊hm%Z*.A)eMO7ۚx^[Jy,ytt[w[|kn禃ޞ4u\⠻.=!8@w]T0ߧ ht7vND,.kec(,6孇+2/W)}gd ,W]Lru\wcnN6rųfͼHz]H,zLn;c' ttk0٦:J@7~sLoAuWotaܒl[nAFeS >֟gU7tBO wv=%^nstv׺M,Kr l]<!Ӷum-m; \X\[}Qm-79qo? v#y7yj.MA@^%=MP% ;fY=w ,b6OZ{RPw t}vcl]Uד.^G@I@0 –9 'v@[B9dP%w#ۭl,b<csgttsp \ے\jNI۲,mE .Dy|>汦DҺGw-wT|kmV\͡,Mgn'mIsxMnIˤכE .Dчny}dnMv"bBĝ_Έ p}=˞$]q)e[Iben{ @`1Yğonh6Smt׶,b:㞶-u%ml# 6ERۦw覯\_J7wk7.cllœqf&7`DlA1{ze )4iמvA vq:yɲC@tt!1q2|H=*Mfv=F7;_<&Am{ G@9D'Рm3œhhG!fSX`{ȚVt.} x ,⏹aUy0Z3tWw0V`Õ"g߮y4phlH3MlN+{݆n.K7*6^l&~ Ip <)IlI4mC=RM`:I*$rw-YAp=0<5"Tر'"j.͇=mPaݜ7\Z7=$s_1'wT46z?.((t@*t5R0wTf/$&| M}uA]Ɉhd;rFuNmt@2l*m.IAjR0fu2,O; |aq1Avn u@`D$j*Gl.pj\Q!ҝ)ڹ#g>r tnٗT0B@$**D[F*{Ys(#rW@%FG+ m r]Dk  һn >9f?|Mqns]:D:@`QRۈTԠHIOOVVaq6j LvvWqX_wP4?_UuaSHw3;QHP&.RJeDYny$v˝!JpUjEuҼ>$ wo|6iW8h\9R &MRxDaކ8/+ve)7;i~Zl;`>pJi) :)AҞ7jaD5 e+5Ta^mr2Ǽ[œwe)^R;ܳ:h%C)6ZGŷ׼nK:^z mjI'˒"JkvQӖq!,?+~ۓ|O7ѽnVf\!Hc/! BkC[IJ?_[{ Z.QTBB L tO[<~D+EһgŁ({¼ EvTRwe P)ULލ^˟{ZJ{c0@0:Q\YA;8=ˏ)kM Hc/35\c؅~DAk|߹i^#)%MLqoJoX3+gvS'~Lgo5t"}c^kϢ$mv+`@`0II)!/ry5moФ׬FC'Q. % qtWhsEtQu/`*ʉ ]v~%vuTJ7e.則*".ț\979<|H?zJ;Yynf$Kzt3]f|6dYny)] [L1Fld'>~S~YQwӓ楓q>/=$Mq=ȯrʛ 0/(5܀0}D^'&KW+ړ"5?̑цR@`0ImWo(#|ZnAM!w`;/l^u:tҿ0~ƣ7[%=  &.o3SN_;6g[e!(k^T'%u5 \)"S;gf8T8iu Ĥ9:Is]@0$nƵMW*oOm~v Q^H"✉IcUص_>ec۲`\)($9 &Yn Bq.{gf1wb+5D? s#~_ zF9l@>7=o3_jQtWhHmO="N#Ns\g0o 9 y0o:LqNAe_<}!ç{e3oA98r쇣8 &iX yssμĞn׼=s!'04vNx:98;?{#"j`TI@0梚"UŽE# |gp[A+wxe g/݌օ.fsw@`pqUSiq@7Sv9xWxr{8B (o OL{'Z=/i8ơaZLΕ]mU @\jZ]wV*)oqa݅V_}(>Z/"l2:|Y]9mU{$§P tn'UrAX#uկ>Tv<~}kIe41b^O/] N݇N+,@@`pIl tsk൱ /ϋ,q0<*S0O Qk#?S{?}dO_E+:h1k9W8Bf \\4ޱs,Z0/!9 0Oƨ2>} ,s=zFDO]omw`@`pIrK"'"of9z{1@}P͐He/$Ј"^"<661ɯ'uGᗴ;6qeZ!9s46t[]xub[^@|g.t#sSjfEny17 y&gw/‡?/uֹInzZ;u \1}@tmֈȓĥAy|k. RB|[ezmTDy4Wع]{?t%8<:A_EKbr+ۜu2ܱݶ4)vd&m)us.VNLL}2)[GK8gy1o#E[osC_y=5=o.m_ۄy$ʓ :+=&]=v}%;rJ};dޑΞ঳yS]ȴpu v9k|yUHBKHRTNf@N lrc'"O)⓳|yYz[Qjs*$~G(Ẻ*sOK;v~ŷ*GƧh/\_•MuOs&mmSKrk wP6Twγt1:FO_Ѵm~R1R9(V8ŜEg'gׯ|Ι˕)EZ=ז7ŶU7mSn.m):tbqz IDATwDJq 1#}\sKn n9ٝqܝV`*GGNwlaRa'uH.-1_Pp䜛W r[] Q=*S$7G|#n :\xu*cq58W{_D/h|ߺAcnKOj INYU$Iˈة(h)׏yNPN)ηKl+sv{!;o_ʡSB.>eOkHEIjrDv,: -LC5~5r; {Sc 0/rB5 K?%㌍ 9}Y|%rf-/_y'ۖ:e  Is;M\z塓ޞ ƈm:{?=*C @:{)E4<'՝>9~#^N8O=rUOHz#>smztG=) vungtu=^Ə@JS#S3`;/kY24<:t׼)"I$vhd]=r2T젹hieFOIFH]Pۜv"Pvt:ÃKlIBț)F.y!`NguA^lG}% Rd:{J?c4߼vrkNŰ^_5j>'%iDnztOD^m‹_ e:`yg;꫟]s./vhrӽŷN8ΣFz-VO<_5G=tw+@0<$ (gA3Ho ,宸9w&e_I:`Y<656ߞ~u7ީsPվ$z:rT(pw' V$ۄy5ADHص;x?'ek]q?Y%j1[y\ͳRPD2"yA+읙{߫{0AͅDs Y,'v5/2 Gy (Fޚ~P)[w_~;]wx[^ k/ v5 nU-@0\Di\ts$qh|t!K PNmMg:hЅy&ۙΞwTvWG{{s|pjPe'*I:geq槻;(tgTw^[SjA1F%!Ig}x:/&~)]w%wIgV\U#̬GK/Xxz4OD5Z躧mχ=]%! :Åk*D$"U 1p=ncw!}uhi}<|/=?W2Dy""bTuEZ-ey;,Z9 h t,-Al얻 yTk~vsU[͂}]i3@3=٘y4T٩(yß72mUOD@,p :ÇMuGtŭ73;~*5Qab\Aդԋ9N E .;02ƾrW#Uyo~IV68.]7%:@0|9[E4KLga3HϤ[y!zbN .*8gS_w3+gV*=}(׈(sQr6N6&@0|$`\,=cB.g*o; 8e(;S0O숱Regv8xػx?2޻"UwSq 9tyuM@0K* "VTcf7۳;ŦL<%hϊr: 8r< ַUvpbs.V<{ |D+u I[qY ˹j"@`XIJ40Suq?= 8{/[%ѳ;XeWO_~[ x\H|N;  /IŏlP( D,s81( G9ۏsW!;><ъ L0w3+w5ZօJ"9Jm'G~C:Ëm irAr uHYV,WY¼9ktjޏz_:BgvwIFcKyZ?n+i!`H@`q 9م)uSN.1blVo L/MAQihGJ1}bJщ)hZgOQLt,ei䴘yoD[I)]w%wΎ!M"aW `W{?Gl:6m^3OBt@;=y:XP|ϕTT暛ms nl>ۜI3=A"&#gGFXm>!5flb;0'J?JS)"FĹ`A_yP =S'ơq;{zBq>0@0ܸ6nm> "oᥬ%{ }5׼K"HgnO;aW.z'竕+j.:2H{n'C@pK`2a:Rb!q"X-;v((LYny m(7cH"bLTGɩiCǽ^V!MWmh'r xrl#K;}: BMxbN.;u&rbҬ9Ƿz8W~' *|wPeo9(޽vpz|{rF brI)IElSv=: 0Qta^}PsT(5ʰhI1o ׼rC{{c^ׯǦ٣GOF .&9D;\v=:(`=ҕ.?P__*|qBFv^\G}嚷g3ɑy~2.X/ũ׃"hIM2=<,4TLHoި+s{;AD=%z&5 qs*$~M)dX kP(co+wt0gX}r?|U*_شo'1 1i<t7#"^řh\[V'͹9 MYU3K3.䧿%."-&Brc@bqЭzçs{o[tѠ \May-"fpsqD\PPF7R})U߉\&aM@b\8s  %:'"jO'&t[Eat]s<~o9~WZBШб 7 [xhe⳥KUL"tNbqI.ʲjRGOgU@swp;t:tA(*g'gwO]7/9-䒪مzbrp`@ ̂EBF8oD$֖ڱsI>EG:~ A^L-YΞ3HEqBǧg_8Q[V[b[5DTF'+_gV?{o˒"2k!yH}VG#gݶg^  ~`b՞ېe -V<\2UY_D.IV/P_dFUo/]$O$KK*aX,Vb@gXXi .Ktח⭷~P{¬|.W̸ڝr"9r3b!uqބ~㻵wƒ֣V "k'ufOa1X,Vb@gXXiI\S}\3^Z*nNjV{hσ  ]Pl!TTC潦_IՓGzYߥkuqkbRnV]Zn-&Ra1X,Vb@gXXiI,Z8m~7oLKrc4$he/,d 7KG5GjAMܞ(~k7ٌa >TvY,Āb(\u߭p;?Bȱ<Tc~ʵcgny`?:sWBYo/] Wެݸz[-v6Z-8u=OHs ⁨ŐbX%bQ*zIW;;^|-[>Zn9sͥ1T*f*<TT ,:rb~pj~7~5н+SD}b:r5JzMl~" d 0*AFofd~?Sϲ[Aq H5 y\>}^Nk:~SY,1X,Ns`<`{;nݸUq;}R'\Fq[ 0]}D]sgH2j5׃߬Z^6`K$GbHgXb@gX>eʘ%Y4N@w :y5;0/]Ξ1s6Y6$%L6ߺy|Sx= tٮcPgXb@gX>QN:yF|wׂ2Sx:{عC#k5/7w_H11=+~㝚K w:6)ObY,V\.c8`m9zS~R0E+ Qo&P\ w7:x ܰ(gGbOwۍm{;ѐp wSF'9=j#< #[%'Í3T rr(%@šTk߼ZRp/j="PqQgXb@gXY6ݵCozfIye͜:=w|+`1{J/S  l}g@Z[[9{{Ozַ Ysiu|Cecr:E1X" { #.G/ެM^ܵr2?.cZ-3~ny+HQL7[+uQ9@NNMצ\~qw2+ Ww,2XE=K3X tUTgaa /]mvf<[Z57ӠsAdُSӀ8cuq:CY{wĀb6;0:mǛo~7|cR'0N船#[%'Í @`#Y[NIffW:ֿVt{1 #̋SDnN/lm.F2_ s~v8rNAqԅeT4X}tA::!1Xa5J@Hho'޺FzcB4:cZUByny62:Pn0 ʇN6#`ke|]oerC<ۻ-[KSoC; IDAT?x?y{fs`8T'>:>Fu8gn3~$TC6wɣVZ wg].gX%X,ְJT郎uM{{F﹩=&牤o?Any2F"-ƼܣRS{e 3¯xI]^WgRu-ٺ$@@,? 6X קv1SI۩i:lS~}.r[/6o>-kd- 'EL@\JNJS"BȆh7zy'C&K>y9b,t5@%yƀ8 A PǀnzBG?zo}=pkk̝k~sߊk>cL@uUDټ[7ւa ^%fRg?BTRBlx_S}_.,D1X`@`'S=ynVpG|N_ f`09*`TCg5{掏60 `'k짬 Z]Ss R;/_Wrt(@ןtKzƮrl6nݺ5}⵩ f 2 /+ZVXݕ"@ʛ2 gHX0O=dj>//?i2e+eHg*:*Sxq֨] -pY9+ aXK)A)xjC9Vpxp߾xb_p_XĀb5 ".aɳ牫NzS?a7(-/,"T̈df?7`^ םinhN"_ny0 l}vI6׹+\u$vF{Ǐ%뢀W/x㍻߾ycW&&'n@ 5bF9%%I @~T } Oh_?A;`z@e]y`,1X2r,0PYTftף&/K쿜ۯo5[) 'Í3kͮBs לJAʼ 'C ioNlG q(^?:jOV;N=POQ ^a/_pɋׂ0ڨ e!BRȋD !u)@vw6ģ{ÆQJXoܖ-yt|kX,V b@gXe `ɳ=s=:_~v?/&KJ)~ `^J{$4p 7=9O# ε{ծyo˥a:+2s_ eģ\yzݸs:;u.J[ݟXDT+;H&T1!  $RJKdM!@^#R(kLtQ0ݻ%_* ̻#vὯ>30ܷ3Y ŀbV'.`T,Ma&C fx:бsG\nʿ ?b3B)f妓ids4t9uEܞ69gg] TW^[< _磟rK_=݊Ջ#~fssuPL'Iw2t$},L >i_bcUW\Y6Úh~#|S -/-~-1ny #R5/zPߤ"r}OROu{e oUX(IUjЍ5}!u|h[oAJt=hY@)|WdƠ5jn9W^;;;{]'¿yb:ŪJ *Cv ߮x4ٺz#h^4Ʃ >Rȹ6f_Wp\M ,q]rɯP+W k<8g6 ,v F-wRfvԉ~bL@*Sΐb,tUҀ+׾2kǠD^(/:['yJ V~8̎K ՟Y,V b@gXUuegLjzǪܼ^ ]/Q9OgtT#lRӧ:Bu2(kn<۶@vEy|y!<}Y,Q~4ݹRPվ3ya'@Cs1XCbU-۩+'ςxmyZ+ W匊!&Fl:{]5w6ًV.J0/r%=\PҚ^'MbAp}=;Zm!rq;.W=F_M8wUk:OR qar;;?|f(=6VbHg:ŪZy)xd%@画'w䕋QH1SGS,+Y,I+u==*G_T`e1Tw_^iL5b6p'Ẅ幫qpO:0mZu{pSIO}|nE cQ/0H2ݦHpo>' }̽2+ É ӳ?Yj5eT'3XŀbNZ>vmPaE}˕hRw^_EMVnpy*9]in*;vw@vlf@+^clۺ`9k iڟ:FW.Wt,{IᭋW+N)p'=W!!tuJ䵀5ҤbGpp05: a$'$WL`#Y[O% ļSَZ<fYyjy7Mdxj3}-{‣$(G|P_Z` ̻}=jY`ދ5w B@9/vv6{gbJ:: QYQ+O$|1yAͰ.}i 7`̰90O` ul'\7 k߀hv'NFys۰ .X <nkݙ(կlMgbH*)嫗swM; =xbe::-Q?rG}$';/ 7k7kM2Dtv:Og/%ȸ#5ZyMro|um!܆i 0 C-pJl .0w]'ٚΎ}RBoNMM/?{ B*OC:A ,4cxAI@|L.\޽'6^{&뎹P- tuڢ`۵Cmȗ+KynpejZ\ G\'\nyUa `iAvLOhF9{zsm*trsq\yj*;/gv,0H;WnyenOaq%gO 纓i/t+Y,(t©mG{+;kwoNM˩THg׼*0 6P%Mp{o"4Ӻpxtfv&WO^?wty? $sT۽>#/0Pgn[X6[>Gr~J)dsbᇛ u耞{1X)b@gX" ҩ:.)gxbw[,FWog.Y(FSCk^tO,\)!7da\"0`ܫufMRz~0S|5ju8oxkN2(Αxۭ2S#G S'}qDqu1XŀbFEUvDzwV kҰ:25`ދ_iU5Q0O 1R)*I GC-5\`*yt7Nn#sb61ݵWV9iE tkO,|x:4:SM-F/O0{G)dmvOޏG?{YkZ I 5/9O AMThӳ)r)TADTb62ϚNWv~IW ;^FၺW4U+h6mljw{{WیrfXJ ,kx>5V2z]n"TEh Fξkͮ掟@ mbxvIivA-si0h:7 ɃM|կz~0}Xp`0*3/ל*EtvYb@gX*g䀘<9a ijGptFxmbJ6JיήUI :snXB!F-L F9ھFB3#&6Ng1k^JfM,3 _`86'K@:_ܯqϖ[0Q8NTl(VLLNXju.Y,Y,֨ c\ :mK _-wVn -w6`>L圻[H{%0.7ô+ v%nnH$myA_8>Rg/†\k"PoSZx䪥tx4o59[ ͌cxbZµ0SSӧSiǙΕM;.bj{8໰eyY`ދUScFE k ŹZN%jQ3(1XY,ָH8^gAo1g:;y֜͢ "5Kj2wlUչg(7n6Unׅ>k$s\vs0K#QPڡ.b 5s̟$Mg/#Nu; b8:Q\VHgXgzb@gX$ga[6h{i>Zz33uxҰU|jṙ\`*]B`ZC6y3 Sfm#6qM?"ݯ&JOgv$S$.L\ך`rG-Uw)rliV7Qff>a6s#pob6/+m_b;9 @k?\:О5ՀyXúj8RZvdMmd7ҳ s/t54ePP=xHsgmVoܖW'/)!N̍$<5D`^8V- xxJ97q5\/.WN\vg]5v&fӿr==Y~5g x.uu03TY`ލ5dᜆq͇c+p ىރ.WP|b31Xq³ɠBF?wxj01{Y1}]SRQ8? ( IDAT\9d))nvYn1aیcߚZ\`nC&sz;hqӟSzٳ^k^(5;ۛCN dCcΰY,8kHϊY[ێT70w c.D bҍ,!Ǯ#嚻6q]: mv=5N|dbjH%f3SPmy4gWs9WСZ{{:{`ةХQ0Kq/b+ף`:b@gXgA>P !OsЍ!YXUkfeyњWP'W O ;>a}4a\f;΄i}'\ZmX Rǁ}bă6єyoz>׳Xefc[hL6pks3Y@+Yc:b@gXgA ew}{TmE;O:BΕ00Rv˳įjp>`:4cvMv;fۊ w2q{,90+x@#$_hPW甅F-I-K8wAAVn4/>&yNvXJ ,( ~1[N8-GxQgekM^3ftȉ潦_IR:ϳQ;b؍էf;H̆a3>^jm[LLp<rZ>N.s'sý"Q}ElǼ,0csAd7,go\/V l7ۻ`9~y`:b@gXgMxj|7$tvr[3̬ʚs0/)7lC;A늡M0Y߭2@P O%Cm҉`l8V^0)T_}O5kWX 8Di)E8lH!'gg:>< nXgR ,,|uşzO ݆ï cػxELNI!kq4s$PnyeaskZPNLNMԕ#&dI2g/U@Nw^4:gGY.8W ?[!9q &.^4޽9rг4:wb@gXg]ڵ]2I25<\_U֦ڸr3<5%&~;ny ^As o`Oe8uӔ r0G9+ZE֡Q))}?&| d~~T~[^UBRH!ep!VK 1o)uĀb΃\<']pp}!@mF;OONJyB 5B8Q0O Qk^861ܓ̟V4L$/. 'v\$Rmܓoi}{mhG㚗q0=0/#VY`I)aN뵣 ?JkY/zdf΄Y,yQ0wm@@v]|.=5:pb1pBAv:w:=VP `VEK@@M9:b@gXMQo0{ 1M| mGhEH3K:薗nnyr^[^ =&ro70k[ݾh@ǜj{͛djCdgDy Dtd7 ݮyY@ލ5d2>{t;{a>;} xS2 XY[;B5r'댈bGQNzZ}5or}1=;xBnin'7xJ{\\PMLoϖϯs{/jmYNw8'㖧rY_tŹn9܋bWetSWL9p1ȨhxʭZ!jY5/3\L!'عv\sG2j2aSSuuSmj0}E]pƣկ|T3kO-,0/B<' ðݥ/:Ng:.db11X. }< uN`EOڳjBɽ|sBi1SP `C07Bn]Sr\p4#& TǮ#u9ݎ3y<}Oڳ~}E9TwcJKSsj֨yN&Xk+k+?K ,ֹ::rr9~uS8:PGߴ_uV'/FsRN4&siD2ZkT0!ԝ;8xR )TN&/?N0  z]@uyC-{OeƩ5/g4]s)͍?W9qztb;1X,VWQoA zr]zR~YjZo%y) E9u˽!F-L IfM7 @OTF'ð%Ա`\MgЕ3u|G/ +Tj\7]_S+X HًN-ޔPj=so)w.%0u~ĀbX/5r(w9T<qty9 }A,Wid7 V_4rnP`ܱsn0/gA/N Xm^+CuQg쥠ٜZM2xW6w| r:&) (kN]t).7ט`r)99]}"˗v©),'X9]v}LeV`^xTA;;_}Wz &G`QFOi:b@gX,Zx,<( Z/⨧S';E1'7Kϭ€:b@gXlr9zk0As\ox`nV7"Z"h\ku 5pgYMLf9smL&ǸF`t݉}Ep?Pmgqq_ahpp>ط8 ^1<5 9nyMR 8<:˵euCtB3;,0X,VVmQ A4Poo{WGA]Y1D(ሺC;@T+)'XñK'G`)sԹΥW{o6չr-0.T 32 . Ţ®yY`d\b'S+Gϗ/>} ](ןY,Y,+HٮKg\vAx.KOm/=}Y, 9QPJ*0/Cݫm^cNAFYN)'M© g%f+dqn*9.W;lЦ;}n_ey7V9qJqS c+պ-R/EQ0<\.::ĀbXt5Uz&y}@rc@쩣{F/''1!ͦA>t\iU4i}͵-03hss9f \s}[O 3ɜ_=`W`ʃNu`g.W_~.-ǀ8dq s/tNkr̓i׸,rĀν/ZOW?sLNDr5ny?t:Dӡ:<ӸQY:hN G'fs`po.88A6۟% 2y߉&Y(/-O<_caϞO?}P=(P9uX)tNinzu<ϔNաNT}PNl{:kjC{zV6"L;L*aupYetgqSۋhGiPJ$3%uN︬s4ϗ~ݕ/`n^ckt^Qs˵;jXoruI)ag{g᳏?6 tbK1X,V9£rGSnz2[NgQn2g۫sgQON˩zSԅ$;p`;2t7N^\uyp^Q؎f6x|Gm*ݯg/\$tz@]V ܱS@]No.5 t?]Z\|ߝzs 7/ɰXgK ,UHxs섻SNM\@G/ZOHMMfP&\*] mp|Lr],ͦaN9QN󠕙0=Hd>֚zi&!>9&~D< @L\oݯ4S2]a;87^㾷Z/>VCW! Qϟvu_bٔM! \[ k#3k׼0/ =N;j2w)xrӏ? c8֠pyHX+t:YQ}A 5Htxg/ QZXz]  ŧ1aCP[0hTs?ZN&Ԕr*1̾r.0׍SmV5uUwc  p@],ګ"<{LeutvuGx}mm L8tj zZmA)UkzcB T0+1j)[>&0^vn3ԴspL5w:)NَcqdkWd~묻WSk>IW>AVIE ~WAu(?[`Z 1XWbXU{G,?ׁ==B5GYئKD@+k[Wnץ|r"J3C]R.ABg8.Hdcr887'*}ikҵm @ٯǠԱM_g>-Oˆ\n{sq?]8=g TwI:[bbFC>POiz$.=K2:^K2}P ݭxoy>ژ=>/ )idr. v2tp+Q0TVc7ܚ.OmF'gtw׹%}Seyn_G~vgXen8Di ck:\9e!o|޻?Vj5xze8p|bFK>bpZƯY'2nFe덏Uks=ڝ~~\XNNɉ +\ hxgbzm6heRkىer1hes+W70۱8gWDZ_5嚏(Uk~@]$NQE6]/Q9L%C;܉bFO9hи<;r]pt啂u g涶PB,!.^dz1Pk;t7\j| \cNAVj̘=@yA+4 {S}E}vt`ލUNjw`9q|M'GϞ̽7_~J<ž.YNZbXbX*E=ع%% 'vRxg N[ "FsB SkP6cdss:;xMum `Ni sb3$c0w+/wzXF( {Nq1N5F5=x?Yx0\ojw<,ֹRbNw_ IDAT[w5.t<hm9I䒇LN͕`NO WlD}ԍ;7믾~"gb9[dcӋrVB~} z]g& a0<877I sp'Ijng̪.F-^XaH)%ng^\KitSYV젳X,( cuLn|qӳNw_q:;[g::AjꂘRr{e{l$4ί*Z;Z7Ρ(ukP,s2>}șuN Ϣ[b ;v>0ϷSnyO-%@@ԉss2~rp~Xs-t?@E&O:`'pN+.Y jF7wt\0ޭO0AѻΞR7tH^pԚk*1u4 9`ޟ2O/mc9> l%bN!NE`^(Vv>50Ͻw!,?[T:,SY,$tO vqL庉T{i!Z܋h% !B0F3b˨[k)pܝvY׍5@ JbcCz]ofM+7$*q~ix:{8e8wl5jRJYyw:9t|K5_b8`YY,k꺔 0'r%jz0ymhu6DB`b2hHI%f2E`26jN#y f㶁p: `:SIҧ۟v擾p$fW<(euty8B_|_<-\v $3εEcX,) ֱhRР [xg!L`UV#Ovf0{ڵWnܽuJ)BSu u$/*C3{ϡLcqYuqS$QW{QYk̻JS:ܧ@Xg.mUa!(ۯc8IB8=!I| s/vY,) }&kMY.yqicg^)͉B !DwL5~r vo6cT?^9Ddb; zu \Uȝ&(U(@˝=rA>O>Y[5v}yt::-mTw} ^4@Q`a~Z&V e֤B֫R,,\j?r`sߋ]oA35ޙ]40)'(|N 8CG0^ qr!Lv*v.Ojܗ^~ ]Წ9ϓbζ|upT/z^~hcgO. l4Z.io+M9 %MuWoqY.7n f;8o׺q o@Ovt {zyqacv57?&!bqC~wn9ʮOgO볚\,K:b3P)@ ? ?`<>-l(ڍqKzЬ'(ڞ]7+.Gl'sס̹\ `N"~^NwxeBj&_?_W[8#N-/w1#* 뫫۟I3\LPO(ts#vY,EC5uz_dڻ+0g[뭗a#IRH)4[==ݛ pocL2G9Ժq v9|Eט:8fU1PW +{6[>$͏ TB8j k=Ae, bX̦R}Wr9_vvWb@)Ãpuh;O+d8H0Ls̙ a2^{[vp캧<0=؎CIQXObԀ̋*f%!DqOSdpԴv SGb?1X, Mץ3.K^%,9/LN;s|rmP(! z F8Cv#M'zSFBï7\=ZkBAѬd?Qq#gZ_uqOۇL( uϞN5/ {NrS6-݅u<ÀyͧЕ `w{kO>. ֒SNMm[[uY,X,u>Y':[i3'K'Ip9͕sMZ=~su+W'8Rf %fJ+PH0OՒκQ-vdܱ[Cy17O I)``__,?.lB{=I\!] nrYbbXYQ0\IA NwMWq:{K /n/>_^&&SA )۬ى\sO'N>vk!}|or쨛[蠕5n rcq+r\eT)F޷0֎sv}Z{.w9 tbQPODMuįqQ ZtjJfr}:v6>\~꣣x^a- @NpTv2Q7 ©TyG#]b.}wo50P"'Ֆ/~' IZ?c;ȸF3aXY,UDÀzx'tIʭɚ>KkսTnE핥{_-ϽX] A,@ jz="1h\i(ݿݾbfCg̋*}O?qb;)ϻF}TT t:Tùc=ǙX,tb +ҭӁ(WQ? )O^gz{chõŧ/"!D01h됫OMO\=rskNNS iXCi=׼ },cU );k^b`sv0RBbc}}M֞iwd(xf,+QbXY]su#&m<赞@'s%˓`+9ڕkfoܾ|ׯ߽y+F=xmFb6ӱ6Qߴ6voV;n}Mun9˝2~y@J)_䛯 N\O';z z]tEQ|4 ,VbX*Tt <Q:UJ8Ԡ2Ob2n=>d}hf!@!z V:ƼWכ tyuu2Wގ[2!t@]łA`(Xɇ<#HyrOt|K59wMoGpb:bVXׅxiNA̫L,Gunv:qg{s{;FV 0 JNg!>u2PM eyY`ދu@CfQk^8Np^Q2/ts-ӿZ.d'xڽur]`bJ:bNJY֪ؑ 5:̛XT ] 5\}(`[/6ݟ{l6F kAq2;'ᆋuN\\@Y_łnr%TOwۯTJpxyZoGpb )tbW%jI?e§&7ʬPJE;;{>}91YZ٬K) s_W'tvO գe],T+5OH ;;۫_|Bp-֞X ĀbXqP[).S^6vn@AXO4&A/ \e k}82P$m:\},rKXeyXtqnjA{Kvzp۟/?>48۳Lk\svYŀbXqUZ}佾^سoZ;QG!\{O//m]h6d,O"\5P^],Vp~1sŠ|~PZ(7qї>L?y8gbbXrp}V7~k+0p=Y{%>0Ȱb(tb5I,I7E\u={6>B (ꬭn޿v ðVtP/2:4Pkoόk~@U$qO}TWQF,msb/>b*c;<{5ŪP ,:{_u ԗ>y nho{ UÃmU$611f~3Q׼L=ł p ]Sܕ=5g|{{r*1"yM}/9C;UY,u.=s<(`5M4r1zQ1c6_z2x~iݭZ= &']kԓۥ[XCh} 8BB{ٳoRmȞ=w  9UY,uU4@UwMw@|OqY] 4nq_$A($őY4Үִ\[.gllmGΌL3ڥDR @h}Tuu}!3*#<=#<3#,;3#U]UOwlmGBDD\ 2Zq*ض {{;kV;x*缡*r`I : (#+c=^';[mשT׏zGޮOmsH[U/-1Yڭ[ݻCwXeB8zr99ttAirvʵu h9OâZIWtv},>GeBP(QgU:CN|TܤPF<fB%mZIl}o)jV-|sVk A# H$kzYIVUg+YAE*ϫAѨܻpmA.#Ri$;yߚ'M 歷DY]10`vVcSO~xE#z,"#PAD5;HEwH{a3^ǢkPw8::<[wFJqDrX-NN |ZUh4k7޻{gtd4WmˢIRp]57%zY֜,9&=,~<,o坏?{*4Cb<↶'{Á  Q^=nb5+ߢ6e"֭shǷU&ff\΍;Ӆyy\=3m΀TMVߵv5 gg=O7{ C#UٿOtAIOTd^$Ѣ{bVyϞȇkk׫hX.OΗT߻ NY=jUT5mQE,ݻXV :9{͹z.fA : tYe0-L7=`KXߺw ,ojjrβl)塷}GZ޹:WeCʕ TFmw|/Z÷T<|h2H#'PA{^vIhlhFgPwvZV]]zTٞu]7eE>rNUMhejŬ^ e5"g)U.^=yځ^yw1 : e'<r 6Q5(íݍŅB>3=sziWM5y ;emRM%抛6r{'b.dRYP'Pw#GiJ˲`wʽ[נ*uke ; =AAA=gOy'~hHG }U_{w<2J)Չ\9kRnR pw^1)K6E7ۈF^BRXרBם7Zם?#HAAGAlr? IDATk0kSr6+\'zccɩi'߸)6%ZY=j9wVBk{j}hWE<F9G  ل':ש(`'ˤxz}cscc~~q\.D%S#&L~y =dK7T}5%yG+~T9:څ&G7 AAMܵ겡*nJ5HRL. bS҇jx^x)O2]؊ڽoA[yΫ}` H@AGA 24^65|./'kwwg^ϟp]'NѷNUHcj/YjejK1 @b hWY1t#HF@AGA_hǝ'N=/m[[ۇG['N۶㨛ALK[%O*kR `;򝝝tQ]T=gGAށ  u"amYŜݖl]qӒȬ`jydV\a3&v\lmmxRbV(( 2S=@ "98oyO{xDybrjVgfwI izLTū 5U%?$Toj++,˂VWU K:oX=G  C**a*묠2hvO8u.fvѷyU+&Z9 MR57% b;v!~rJi ϽCTA"APAdPޮ]WYg~-Q\rg,X꫘ Zt_6aA#fIMt%g!PVV|;Eמ{d(aPAdM(~JHy9e&'&Gf G\/ rY4RNJ})`z^cޝo4UhWЃyyA {A:r2=< [>FO8+x?|SS VZ_jzRSa4plw}؆ ȐtAy`O w:]s SۘYYj`F(\֔'M^?v:t۫!A&  q߃I̢Gy^?{olݵlۘ˭V!nk'K+P xVF},}.RJv1uq+ 9XAGAGjh6a '.Z%)"bbwX}o6]Lz_!Xհ  :  L'ДLxizffi\]˽bSE;G!٤cLIG i+mommh{x;  qGA]6ܝB6N!GMh~/~ztxx,3^>*]:uY;79=~Rʉ~drr.Qr\r֩vA$##  9WxD _'*gWV!R? &\eVjSw(8 U!23  :  ,I%Vtvػɇ}|{_p-^xUZvb$RvS9%lۖUEˀY2 'CADd^k_E> XKm&\I;) Vvcnm*n*'_Cw~zCN|h~ :d # "CVMU÷yj0p]6\G}ޚΞɫў 9nf({(v#&5Jı%_e 0( !鼙y۟|sGZ_ڀ  M̞Ni|n W{h4n@Eb[udtAAT{VbUe֭?kl]Sj_x?/BmÂvE1z]j.m֮w,M`:9!5 zAtAATIzYMtz^̲p%I>Uԇ&Y]jS}Wnhb޹/ҥ lKZAge=~dtAAt`%]T= s m^WW~`YzUZ~cfboȱLK9 Rb]7&G]єSDM mbY O Ȁ{A8(z 4( so߯TX LWCl59q䴛(52E(D{P-Cl₸r 3UPXAGA$-:b'L m96K`/+~rc9&f'SʉYVa+Ҧj ]*!ŝ'xn # Iue.ɝmnJlDk״ZٚcV{i&&ZQ:} MDaG  H7g^%=xTÕ_>Ox1[}6ˎ+p (yq?]4#HYA1 dtv;z~]UvFCfc KzJ+P QDF* s+4J{_t,bM@uq3o   24uaOpe س3sm˶y"jf٩+n*&KMkHs9C5s,rG۷j|0LG XAGAy5.ڱtln_!0wm\VETrrŦҭU9eYԳΜj.-GϠ# -(:!4ίW1j4 KQ솔6! ܙ0JW[|Ϝ;e۶DaG]e(gPA1Y%=X~|}zZPJpgHM}XnV9&Ĝ6݀PsV57Mص'_n-Um_.%A :  Fz@#VG5LVM嘨dm8BlR̓yMV[SJ_?seh8Щpw8I  ݀wfC4QzضΜ;ˍREZ9Kq}31=={GH( tVï-{+W_A7U5U17eJ̣ LU͓ ]앺`gk4xΫ@IG>נ#  d({9W=J=Kl#Eu o]j]ha* BkZ^^>+vlրY HAAGA>,ㄳ߫SJu8]iKV B-](o WY>W{/Ne#666uٗ]m :gO)<bqbUE)uFypuhWEUDA :  "ЪC[ɹS_pg$Znd(NKyW>a<4%qݙry%gZ:[;o ;AAn!+MA]\Z<8删c\ E!'X1r 9lS,sO/<9pmzIew ]AAn+Dog)RLqZcpyW\3kB1Oi; rO,X>wth_]tt( t$t[ gfgl!-t6.캘k싴E懳Dztz˹禦Ohss!4TKG  H-:*˧\~ڶ,W\k gpv 5t~[J!ϟ\?{p%]g6xM:$AAnf ./<66v-xX-m*]6wR>8r}i42>ѽ߃5:w?DAAp|r_(\Ǒ9.4Nd&4^csʦY RdӘ%ߑ s">X}tK|l۞k{ h.Z VAq$=~˗^bX|ٌ `bz'KӇ)\ wn$;,s7N,V><uG0( t AWEON= n.7DRz$Z3?=gXp8;R(N͜s 7>|QOW+=x PA:t5=37|ln=7\kV̕"7)զrԃÔP n.wfdthidem*%l#( t TV*zZWr9|v~q+)=ˢMr:Wk65')jqOJ);;:6+wy[9/;ۖA :  ݂=g'bo -A_Z>yq~a5|M̉)9`1WJ)ǽLygZ_J痖X,xM:h  HUJmYg%snL\TMde(ɬ~VGusg͍ Kvu:AAn7=Sp)J^^̣ p8xi849Z؎{bbbѱ+wH=9/W~A9P6ɡ` Ïlr8Vσٹs.|"Vq=saw.]y8;?3öRyڝ۫x4w:B2GGtAҒVA^܂y=ŋ_X|yH,Ɇ[Q m +'O-/U+Bt^dpq̉## : IQgVqurq7n07; ֓sʬT˕6W/ɾ88:>ݏ 8ٹ (ɮ͓8 YLVG{Nyxpuǽ?(g[˒knĔ &@V.<پDܔꃜ{`[x\ze~Dak;ҁZXAtAXx=r>[[* Izxͩ|m;V sxk/,m;N1" =ή9-!wgSbo1OBZ5&G9? @>Εj_Aw< nd1JP #sGp9{O]?{sTև@"uzIA"V١6D8OxwʣOvEMUMAgf8;E wM!|b~po._>99l[kV'Ѓ |hljx*;dX:4_{)|;_̿=:>'q|۷YYWyק=D~mq_' }XM Z>}™n}FW+Z'2*r&R 97wa||陃{w? qrYE]  : qGR9?}z|o^wRQr| ΄eO ?u—_: V׶  +ף3:xr`b8kO<=ϓ>fZmjyZm"'##hNV@$mض=^(^X\8Q}Ayc ; (h#Q,_ZꥫgFvUޫTE_ ډ(Fv^~ݙ_p﹎;/<6˼K4WdU,/L,CbތN\ֲ|xbyQ~D׳Cemd`AAGGQWp'jwsg߸o}? j1jYG K3_[^^}bjB-|}t{8PEVm OU)D+.^y. _ևݔѴM[Q[~ IDAT-sWGFʿ67?}S) h Wߠ3T*>W-GGY7t̙_[Ub7WGq8{gy3+~8s<:rcl|mP ގ 1(!(eUs7~/pߗ<Zb*DE5~M)ntTzsjz⍫O]}%wmZVU8QW&/vYAx?°8^~[b"躐R#iCӖϔJ#o,.-<Cd}fdAAGGOEbΫKo=3˟|FĜ=>,s]B\~o9:WxGG[F#Rg?\ ;\Nى %yuvxWkrjmJr\cAjyHrU1ofu'R Er\^RA{WGtytPYt9Q/򳯟?;{yG9: 9+̇rJIvy۶Jҫ'Ϝ ,LІ_ݭ@, OY=~d=Ea~%D2yPA'/>sqIo"NUsqU,}99gV.{zjfnݣChz !_M2P#ȣgY_yӧm LJ8+W܆Sޝp ,OOMuɋKK'ԡ-lyY}.d} @,ZƮS] YAu+*rSO?w…f;vb!•DN*zNG"-VʇZތJշj 6ǻZOo}n#h=@ZyȎk4XAGDEjl")+8=5MBHQߘ4m÷mKTu eYyuܜ{szfk׮sF`kkhw^e]T}yv Vؑ,l<;$p/2+/_\>DӉyʬU ^)j)1P<hT7J'r:tN !Ȁ }fQ}旧s699@C}o]Zd7.w9k'0X5bbN╫ ӳ9'_\Czuvm9 ~$dϴHynĉ7n |o/XyE{P;::j: 9NMV:24X,ܔ^aت4]=dNG goJ7sRض4:>:vჿu/Ԝ7=tdAAGB${p5}ƥsO?s[呑);rwV-O'Ү('3.>:63fO<5162ݿ kق.+0ϼ(H/}W1q*J^x/FGF4sDUblpvHkcBm( CUs3nwE9BP~{“s cyA9+uj.?}ƋOb ϧϫ .#yh7uV׃/$'2p:IV}owo%< ;! orZ'arX-@Ң^5<9fkG''_x?m`gR-w]r?rHkZ9ňk 9 !Vտ[jО4 =& 6):"H& : qrΞPFpay闞vTz'[?Bkœ#HFAAGG&l< :9{vqo|T.n!L]<4Vj7).d!f"$g[lݘWrűhyv?^5uy/Z'( 9Oyބp_ԍgmT|XL_wJ~&ڔGzėr s%ͬDCRQ*ݻ£؀y~b A;]t(9uji=WrMJ94/Qӣl !:{Ty}nvKK'8wkogs|ydoɴJeo:Fɫc _&c=/_z_ l>Tͳ*Y\/+:e@ё/6|O;L$Ԗ]2Cm@)@^|zG?ڝuhNx&I2j .[| "^4bQXYALMM>-v}?|w$kn 9)E:&c\ZI;#,.0.,.ܟѼ&y-=۱'L:{/=z[O?xooBEyr.v¼}r?^ dT*3g#qϿm;M9<7!+9'sns,nsc9fa\/y{G;;;Ӏ(5c2#`Wz9^s<15 J;hMT9[2xBCw-LZ3iOtqi^z7e}eۭѲR<[ L9_\?E={$k7@sފמoX=B}ƄKWjyyrLy?޲8+Us51h4j?(A : 6:CRyrnJz'-A7`;};E~s%=Z%w]=7Z.]y?on=w>*TaڗW]W `+8?OzJU(Z.a's\^_Xf!_y>P]16ԬiXg'i'+ {0GV =|ה[e?AbAAG!"&nn鍷^S3Jw[Mt sg`8{ӽͷN>xȿl,ŋppݍ[-h!l~>圗Bt*(fI"2Q\ z0O:oضS]knJ *&"Y))10&91jP\!}|eYbBHyfW^|^xw>޹h~ݠ7D%Jg90]WH_a$Quvכǟ|Sg0_(>pjytegҗr9iD:Er+j)s def|F<\.˯~u·)p'LYj9'.BHa{{>lGpw~w?ԆU#謜,{{/ZN c,#nw? @իW/>wBuDZ !Ю!! 6U171ϊ6&ԆryvK1$qjj4w*pGМŽ͙E3Y= `Ar>\y_͹o\ \ms2 %(4%, #9::kcc3/ޯU_Y`{{{ݻ{\T_aΜ*_:o_BF !9ƄGh4.4%]aS9j{}'ͬs:)!PTn7.(8zP$ke~+o=0-b\srƙN~/sٮN՜eS2Bl(ڶs<2rvdtf?V*lxskGZBpYU'2a2iy8GƠU326T<\.:h -lb)@%X|3&`sH!sk>jP$*d*r@NWOb;#o9>KVa@<*+9:9a>>ES(<_(SNޮղDz̈2%C[-Һ(孷j΂Ǝ)P${ƎN÷9<ͧgf#fkN:ifbjnV" fqYp,\wޛRinnqڵ+uwݽUBWT΁\*2s l &1$'AEu\ξuQN) ^:O[5o;N% _ kzpɬ^V1N/b4CjZ?::#Az7l{O\=wͻӝr&jnJ[o#j)x~@8` 쓮>W.3'=uV}R=x{tΝ=hΊ g=R B^_η^0I<ή]_r'N\,}?Ě!Hߨw6ЗsSbn"+PQ1|DܔgƯYYɉNs~/GGw+Pr"dAAG ;睼n=979ēY\5˒ۅ7`ld`DqrK2$b.M2 99{qs?ݩ]{{??:q?V\xUOll]J?ol:o+߼epB~>=sĉNJ\EOoۯϨm9E297)զ\-X-+Gz77|ʆzReBUAt*7^~^[^BlLTφ49&΄:τlIqN˥/{kwO7>W*Wͽ[キMig/o,NeϪeT%_{4ey=~|p*_,s unn.{>]ΩHWZíKSbߍB0̯x?dpP/6h4M^{š#:I褝7t5W]h˹/ffbS L<l\֢ħ^|SEyZYzW?ާ!qĊ':%:1K2]Uys tt4?zSM\wsūk5G,28(!|}- i )є}ZNR;#LdE t+k^ ޲,Tۛy!+Pm=Z[-GLt?5O {o}孯ML7m۾Oc1ԪL/S9iw|D)x͉(MH8& (߭GMe˝B@(Ditɉ+{6.َ{[.X`ݕ( 9\,ꊘgEzsN973r?!^=uAAv^%=,7/,, uF}g<,ͷL+˰P8MOeD(GܩzmY!`QЛBΣcEcv˫>+V>ZkJFZ^TQרT*A$ؘHdE;ދ4Cp"I- Ȉ[,sNT?[̗9:\Z@r@?(N "N5vUMdj,SB-V̓eDz0&9<&v>G>U+k*ᬔ# Ct/[g.9yc-5:&{2qrZo3!扲;>h&6P%',B.rL,ғ{^56QmZrxTWneh}}Cnو޳9|, h~ll86V(J.s\ۙm{Xd&)˱#Ŏe "kF;>2%&r ujY)Q6-1of2%禪橄J=!Ш7*;w7 ;0%; AHέ3ocőgyKpvbeBhJ#t,bYe˂q<) RЧ&C6~Gu<<hx^^}n4:mhWJ8F^ۭywT4 IDAT[ǭ|ZڮZu--)Z[e9[JżK6>[Ǖs**$1q"cZzJ"ױ7R]E)PϊeY(9ę#nfy< J= JGBz ߣ@Mڭ_PEX,ijSb9 O(@ 9˲e[6?ȷШ7@))O/McW軮 ה}ܔHw1QY93RZC Kyjq'+2qGL ř]N o__l{=Ḻ[-dN뭉]1%zY1[=-"Tߛ7{l@@Z-h|ŒČ+nNK3wE2McBr:ZeM̏_sYCY-ofecfvBm*G|P>+mh^}+NUc6 A Y.;җ~uzfPv'4rnX01ڧ]jS/^X=TwwB{HY<ڠbeJSds+2%杁)ryRniZ̛%P3 5mB)lmm}~:"R5a P{& & = >o{CV-eDcJM䘒r,}OEOnJ˴MI 'RJy kT͸jy3+ 9MIySRLjyl8YGQG t_flN=wO,)5o0pei폘Rp_eBcnVM昨GWs49YsjY)r"= s3tCٻT-OeB6nB,˂*ID5 <(][EñbXzW(L/NfZY}jA> 噐|S.z&$<6nNY5J{$s^y=csHkcBl?:2%7'LH'ԦrRٸxcέZhVs#f28#yTgm]{T_|K[懳e=DŽPQayTwGMHPkdḌ 4JsBm2'o}*ɏ6&ԆryKܔz%>q'j5"1G!Gt1 OyCÒ.sr'{̞̘dYg 2V/z9\PKVk&ҙ<gW_aJλ*]I1)Q6cy3S 5ӣKBmZ̃ŶeA^^' O'{:#H@AGsn&\t=303e.?d[']D9܄'Ƚf"z"TuSZLM 'K"#T1)j9X/Rɽ{qlBRwxxjvrd A{y\<"@^|oOrLTBz&qNbޱ0ƤaBm*gż1J%:BѨWw>uqır28#yxr<=WϾo˲իf+ jNVZ1tNteΉdR%Gj9TuS2tdVW\/ڔ0vcBmhjfvsck11oGch>|4ύx27Qp# fЙWEwk~܅~u)SlPGRpg$˔w6x~d}97cJ7Bve,njdjn؅y2%"^[TA[Jy-6  :Gt2٤pGHBm* b8˄WgCM}XnfFγZ5s }M+l0ǤP˝>_4SB}DNGļ 1oL,Ԝ^]ފyZ ECih=<d@AGtΛ ^筇ҫ4=7Mo̞$iN}P11= ;s9i:a9FTNV_[L9sb*1lJ΁8R9@α9E_r{oͬ̈9s⟠scͲ,vIZsY\4#Ȁ zs{V;'W(I??.yMyt'!i:E%MWs3Y<ڠb5Vꊘ-P3&sWxg~V1є9&Rߧj]hJrNA,(Ѓ wK5\_ <#zM-ԡ9I{`*G8+uj,rs #lGb5_4Bm*'[bJN4?B-DjrC@V^{nƓt# :`BmÂfB%mBU7tEW< ~9&ڔw0&Ԇr9V^[=$ԽsN9h4/|fog-֐GtG6k;6k7|+bY'{ҠKbZw1O՝ J, }j7I+Ԧr4\ڰ;b.\`z9snBmZ̏{9]18x_ 5ӫ B 1O%@4jw>{]6IH5,PDob8[ '+{3S_B-'Bi5bXڔfiȹ뻳)17誘J!):n-L9gV[97%Nѝ7)ޢ[Uc%!rd@AGL g>ykb/QzOc}UڔW_M~XlbB5&iZޠr޵ iRUǮN+9YJީ昒>ɬxKOiRSda<&FwQ1/{#hJ(1B3PWlml|{w;PBY=n8vP֑A:.ts8ʼnWeYU>cb"81>~~0}} ^nluNՄXGmZarZ{և  㟒"@'Ԓ,k~7r;pR}3X>zLj@٧Q C|+`8-򖐏_iN/#r:{%&Pg~ "bm C/}Á?Coy^^zNm7t`ot2{'A:"@'\4]v[5?~ 9H˽f;hDZAyfkf(Ǻs~PcS b ]{׸9s$4v,(O>&b] Q3ΌAp ~ ^o0{`y^{ pA8([$Ha0\ƙx=i8R$XL0\&Wo/}?O åj#H1Pg j{(q0|r~`ͼZ4-yL@LeGAn>=_jAtFc X/-\p0:vu{^?`}~888ײ *OirM$ҍ:x&]:}޽[=|! {h>3 }Pch.gv>iG@+%_Bj,|+>T@͵JhU6wa@A~A` ~^nNaW Q&@vvԃ([ bXLlY̸݇ i#vI:4ncBj@u`/0ܜQT 4dWG>{5v^فtcv}-ha |/d~vN}tڭf&T|( ̓(."8Ϣǯ/^p.tDN"Cy,\^=zdik̽c5 1OBp '2s l2^h@8 yj/Ac j `W*-?y^`njwvۂMjtO *<dz^,Nwa8DN"-IΥVk\!?|poCNXύ!8{(7&oE|~˕-W.[3{˽>%O$K IDAT>^ɖ\?(]BX.rs1և1 `Aw:vuzy<{AG"i&0.*ɂA^v2USk/_k6ٽEpNPN1"@'&ů?DJ~:cN V>GB>X@mc\lX@W0ɀf:W&`k" |n&(Lnl٧~=l4N}WS~@$V:e 2X*0i9DN\v-,ݿ+a8O bED>|=653o ;M @%jS}O|IcP<[Dב0v:0ADЩa uěn]L(׫q8I!tI,4wqB? u hbo! Z}sF❮xF jibyd/K0O3b\|[t4`k ֐\ׁ`{EpoooC,aB u ]iklS%uҍ:&K7{.:{R4<7PځHZN>P$42a?Lα|2``nP{ͼH }jRNg4BV^qqfg{{8vbC !C6g] 7 S ;7io\Ory_lX5ƂrS8y֓W cgEgT['eMʒ@u e,>I%tiZ*`ʠ߹wq $k zhss3/q z\e8ǀ\`cN1Ԕ34yMj Kq=e}a,1+`o/I篱eEӿEtUnRoYY4rQmGFU]yE<="@'FOmt~Yp8Tاs.z`.j̓@m3s `s;L|PS%=_Dj[{gۯ^ Ʒ9B05T"hɠ'{fL?l'dd:sҍ:馊qrGU-t`n`P X}jLSj@3'07NJ ׭RV(@0:OAF=eT&ZMgʷΔv@$$mAmfU}3Dq"@'Tùhq8w1m":V؝5W07WB9;c8 S0ͽ&Z}_&7#,tvu4p΀p8~n݀1` UtѭdSuvUe}/A=(ޓHK/tM({@\p?[(G i ,kʱ|| 5VwI,me>i@:^ca 1;RZ S0*(aA<{yq@?z0ΗL{|[QS xtcEN銃9_rb[.oMjdyZ`<+ݜP[l S0 ͼ&рڮS^-W 5 Ӹ-c Ϸ6=G> zUOuø)CBڋX2(7t I$I7M 6 O* %w @>y|?xZ{}5Cu z҂p̯[5O|Og71<7߽LfgГ2<ǡ[w:M`PƗߚY4I#tM0\ra8_R*zg=x4󹁹ؘf3!'zN50TYa>j k" 1嵔G^X|@mw$y#`<8ǯG>:rX0ğu“ҾVH7V褛$-{+/RNv3UG >-܏Cf!˖-;}&ZhqK-L|~p/&܋ǁo^>GCw@+07GcyJ/ʖ' {7[o^S]9&t7L:딩^H"@'t\PVGhÒ8 ׿m70>kSE+$eee-S% I$Mnt= \.ٸbĆL`.id }yj̓08i\V0ߤzz^)axSuLv#_`>ʋϤ|e(/X>I~W;??<~9k56>¤h-0~٠)[n7`7O|K`:[޻z<~?9\vs!|=l]UnцD"t/ dZV{0ȌX}`5knΗ 7 ͽ&Zit^xctp`8]_5*[͊1h4o?{+8r~{Y8\6Ϣ"h$ :)~y=S~ 2/C0+}?l ??`s @mic%-kZXSy^\.lx$Xs]@}[aH9:iŸxyN }7TF1ss+/ -gXhS7̥Xp-} RL@j,|+>V5&yN:^ٓn0 IP0\y8$ :&Igl{q@mc(0OC8\ssF@l@mQ)o@70~^pOF0 _ ԩ\b`zLd`0{7Fcp..ޜϞGg> D N"-I,-?/>+̤߳|("2{yc½U*Ds<3C(O欋d9C9HOa]@:*ܫ;~Fv_xO{{{/`Ӣ{ x]6\>},DZnD?P^zαܼP+ l&?j<0ܜ[ |fSQys\\lk`~*Ps-2jkIDz 7{ yt4-+VluRk"'H@NYYnzݕ;˂`t 6ce3 @8o>0ɀPRX^P#9V >5Z>9W1gs޾},j{s}p_ww2! 'HBU9D:馈xhܹ{o JSȏf d[j9jΞƙLiC{9"PC^W-Z*'x1`'vFϜנ:ՂpGzD"DNZf=#8fk{Q(p8$`ff^5ɂq \e87bsvsq@` yM@jL6 8_bAG ) 87;ټ- gr͹i$i&"@'4v}po}}}{ '#2|qd(qBa4 -P2|<-yLs48Ogd`~2#Ƅ|=t!t:}0s+azx0wD"e"tҲKb;9秷=xaR`4=-/'Tc5ɂqteD/ 0ds8_`07NJ ׭|0O| 𧳏\bԂV('#0 ðyqcOaWeeלAI$ Ue㞣& 9Zs| ܬ/|(qB6۱CyTr}+[us,(O#ol1e&{| v'<]wa8~18vj]&H$YՕ>PKU@=ԝPc,`ܢb!\@+%_@j,96̯Za5 %0lw[0k~sѢppT#8'H"@'-D~A6GXu4P+d8$_`9m07 Uc^#2|,07Fj~LylO Leh7;<11+`t09u=TQ7^H$R"@'-d7+A]vs{.3Ј@8o>0Pe!{ayZ0O07o?XYZ ̯ZeX1NJC([9/'ZwD",ENZV, 'VWWcIH `n ;#5O^+|!\8+%_H>s#63i2ZeԳs=[=/^ Hʱk@41'_`>ʋϤ|Zc%o<[0D]LzE`N"H3:i$Z .zù(=x\վ84j PwS0l0O܀|,07w Szo 6ie*Z`uF>~ss:Ao| ϚGrI$)Aѳuw'㺅{UMZ07VTcA`o`v-Ʀ~_7=MgW|@=[8s BpTPHʒܰ$+t2fz l֭ZGpNgj̓@mAZ=2ms0W3/G83qJ~ᓞh:/eF@=[0o=G5 1\{͗uD"ENZ&1pת0`4 8op?I >^yr, ^3r5Y$떨pS)[g luL4L4m]gP>s47]kΓs<{>P,>vd( fv>iG8+%_i>s!Lj0jPeI5l*vI$\ENZv\*wnAT*{Oh5Wف0&PcA8$-Pcnl`nyq>S-Ѐھ/]tp;KHp5G1 _8`n-Glkq$`'H,eu{Y]ѵ f ^v0,P{e)&р 2; [p2GNpn^Q=kFG}сtDʕI$Eu.8+o6qmI>> 6 O&n1|^WJ0n X>ys8GsJ"nڹyVUl<6HO"#t2Ht5zsP({xgB 2ggXPnkǺi\{c޴po/|S4* ʗk8,(Q4aXÄwp*H灝D"Me=WT*UoLOo|2VT f^3 ;M @%~jS}O|IU ]#c89̅!8[[2DʭI,E+čr>3`,jL2s̓ snP GԳsI\ (rDUqaZt O%HYNEg|w~0>mm>r>FѨC+ݜ r 2j}L\@ 2?MgCr>{\㺮نH$)"@'-Tן_/wlfZb(GXP=,0 fi礪@)*% G^y4Zq/Ƶ蹂9W6D+n?XQ(xuDI*nemmo |-k+ !ri$Vd 杔GXza4&܋a?^v(_lyUPW f%L fL"H!tҲn?nM  1OBp{=\Q~_35ɂqg*a.S8_`07gUJZM{g  7-dpL C`z%wDZ AIVW>v A_\yj㐼8 2sd)R9Zuaf IDAT}_&%0gpzn>X`nRX%H:i%[?us?;B> 1OBp ̭6 ͽ5O H-RuK,48Og/̯ZZ :#Os yBJQ]؀D"r-tҢIjI9~׎S18op?d˧+3r d ^XPnw6C=I‡{ Y-g-SbB91u5a\"H$DNZɦ; ΢ڏ B9pn<>I9I3s/,0 n6i> @wX`~*#\0l ^v`n]0uWZ4L H$)"@'-DZϞRX~}@u`XY󙂹V@B(m`: Ru Tr⃕5sAck8G 1|evpܩETtDʽIˠp{w A>CԘ? kn-YXaǼi}^2s3h4ǔRNgycev %Z3cfTA]z).z9DZIETSܣ׀Rq hP^ ' ^pޏg*'qLgOeuV ?`}ފN늮='H:i%u(_(Cϓoec=@P> >f^)aZ<el4O)!jl |$=;i9B0VXIx&7gՑH$R.ENZFɦj}e0 D3ss @飇 ɛO2phpNru_G X^قqVV:V/*)h:{$Ef>\cL0oj{ ԮN{ab_NI$ŠhR^-"qbX}f@`2cy`.0۬ІC~KNh5)I4]{Ql\ ?[0Nw, GwbqUlт$KYkE;w$ As@115V{p ,me>L>vX½Eh^c5n #W`UP>[ WD?<3Jt ƀ.\tt+QkWr=Ѩ XF@lX`.(,Oic%g*;O⿃}aLy97sE@mӟ[pWA0 i8;EkыbR.}7^_ 6 OX ͽ^WJ0n X>W| 0UF@ z~i:! gp,q81p ⪤jz;9DʥIˠܯA/ e-ܾn=PcA8$c:d%ky|2s3h@mߗɮ=kv^/jl0Oj,xs`[p׮2kDʝIj $jTBf^E;kSTcyJh4F@,C4^Mg}a <orleu#H .tҢ\=zW7% 8vq <1$/rq9b!H‚@>bS x-e|䕏ۥ4;cѠ0+UA@ѴwN"&t"Js!3VyW9m07 UV9PRX^P#y~#k̳s3/N\|0*XPNa|[ŝD"r%t"Hu[tQ)U6[Y fB;0J Ԙ>̯[X(63ib f^5&'a9WZIw C9r **ku;E:tV}Fm̵]4҂̓1&5TsnIlҀyU*ق$b.?0LcPT)+WNI$RDNZTɦ_OzX:kTB04a! .0czef^njLY|Z%lG*5[sj, Tc9W#qJnt2H\ҹ"qEtҵڜ~0 4S(Otqf>S-_\I xdʖbV@9&ʭ7la ʵFN sJe/i0W:9DʍI(Yp* 75 57gX0>i:W&`n5/,}pɔ-W|@bﰀs}WKޣ]"}~$)"@'-dgUg'xc({at9;c9ޗi\/MӂDK,0#5Ϥ|eF@ ~X`L  fx`> H:㸮[cI$RDNʻLIC} s&@\>iG8+%_i>#/l02ق"b.5C]0}'9:]\I$RENZFI@L'Ӡ9<8_607߀<*07h} H>K5]XKzj,T =,>\;9S"A'"H$MUIS2.[1 ,g X =mg̻1yK p PnTM̊t b\׭z|X>?] I$\ENZd%Ni링󼁹挀؜ ڢ"S07߀<*307Fj~LyQ\a04jW`Pm>XDZ0 qYRƣ2H'H܈tS`r8)xad9+9-cP'3}07o?2U@~X`ntebx@3&{H<~SfB(,"D"Y=@9.Pce:œU 0ǽ>c;5["*Pc G^y4Ps2فY#,yPOWc@~c/4FT N/2H˙wH$MaLCcGs«4M>! BP7GX("8O"%O`yί.!L=O8Uj!hh l5(h'4*3̸J@]gFAa#KRI(N"HeIS|JrO4l~9o@w1|̰C^`Ti=&Z!E^z8>&i5Z{;GX>b; 6 T;aϒ{08n EY6HȒPymwV+)@d03]i0j,فyyr~kcu}cֽo/WEG`侥i `Cټ/yCޘ%i>5^D [*pBq8DʍIyWtf[TPοu//AP(T khx (c}Wv6n7fL&L~`]Zރ<^__sF>Fƭ G^Vk ōsV^q||\L Z>cteN]uN|e)$)W"@'-cӽ[߇P1 z& 9c ?..g/^31 oy/'ܾsʭBT-JB 1'/`}'dVH <̀1v00 )ۿ߷?i: %~ic~=&Z 0:/SxYȕH*^t {.}]Z_~c[Ṭۥ5ώ^Mg€|9Pc%7%G08 z^wJRT.RVWnZ]VV׫jP(O~tC-ycR9g 梈߲ Nռ8m6[N|o o0x zai;Gk+o߽].*%Ui7q@so9V8nq |@ ]'H:iY8ǁ=8::88>:APiUV, czW F1N}7ن {0 t(R|@ϜݍŸp0pΎ뺮㺮Xamm}u}֭JRp EƘu1Ff *gYs,0@hXט_d^zGWAAA ~ݺIZ]fh}iUZOx{,8P(`:Cn+ʪHHg1k~ίo)JL3icx5c o~40ُ~:=˦2Y=|wPX}{}mmzRB\8$|G^y4ZYù!&GŌ1p`< ~ el\^\6. o0+=-8qϏv||Jrzڻ6'|0,0O, UHΖSD"VE?Pv3Q4+#Xp`+dA/>A c8 á? `0t;voVmzkK1lz=!~o~ޣGcHnìZ&cQY:9DIP](ZϞ`Aճ޿{ZA85P3g v=OEYV>q_={wo^ z0Βq@gE)suU>Fqh|vzxp?o눲0e H(lDBoNkzVkAw0^I0tZ8wנIvލ?wBWUWūW'PAiu{vouVnp$o8 @bHEQxcOώ>?wO9cK;8j#Pkyŕ!0D"-I ~'8 ܷ_|\[[( h3s ȣo'?^8k>1!=qPn-T `AW`ί!`\~8k p\ZY0쀾82Z4nyI? C?Uo Ɠ\u!g : x:ɋg8;;J   G@RA:jl:D"];@"`FE$QӓJv1;s @m9ћ>ۭ@;~ϕ 8Q=G0B|5+ZU^]T|յ۠9Og ̯Z"Gk7ᛯOˋ30 0 0ۏ.':I7 IDATdQO*@Al\*++l̀GX`fp <%1h7[66AolDI$JqH-gU_z]ogogseeru]q1cjKE(`o~/~ p>G t]4 gl]^ I| lwڗ~X,˿y<0y#W |ݝOk 2N>D' Th/f0tg{RԪSpU?FLʾe#@N"TE)2h,/wv6X]__.WF_r ,t<. =~=L{* gw`D' [(wMdssD [ns*4zO9\gȼQ^MʓfNnC蝜v;Z^T$a-7Pҡ1VH4ݝD"MEI]5]PWUgg'gˋwJ|hr LG [8v/=_^~, Ї2粌ye|Bs/~7P >++x`>ʉOγ^rqv}a@hzyttQ}0e(* ߉ZN}qy8,JZ~w+L>-Ws1h[_ʠH:i$ʢ߫]5M~jGGkk5qn`c?ISLE8n_|y8eL\V6U_2ɔ]~ à{arY꼁8pvzb6jggɯϏA(.v5ʜ@lZ,:&eA攂 ؿ{w]- p3~pc%&NJ6w?z093E5]:s TvD3WDVrn_\^4*Z\.rGkw_*+5z4G0| nƿ(NSI$BR-/3:׬F|owgP(ڽB0^=-++ ,AZ 'gϿϿv0}yOL ee.uKZ׿Nת+[$gї4[.ieZ7ϟ| #hyp5oo+Kem`dC 0`f믿/VAfllg~/\,hYNw|'3BP\cAG Գsqn={׾wAf:אɤ.:3MDvp`0Njj\l8WG`>]ii\^8xa7/v:cPFe/NHsY\+zYY);?;=i5/N+ZRP2@<ӠMN9eAqg0(IkVNusx0iVn}GZ>Pc9g2_0jP #a0|???uUq||,Ge.Aʏ&@. Cx}u@X` 08I+$ьszeݛL{H$\ENZtݲbrqkZv}VVjzrfU%*C#}c 0w~٧n.azsуl?W5=>AҠg>^__g]?c8lP>uxaw90ٯt1h L'MoILq .ϏIrT*Sd2+^W5cahų L@ߞ7@"Hs:iѥtb)^OQEq~zrtȀ;Qxd2,|5e?m~/?<Aj8D `A'Ms#p"<;wXj|-;%=_g q:o^j)A>ʌ-ZQ]5]vɇ@c`X/5t:ZRT6D-&Vb5&+ <^; .~Ar o7 [fI$ENZt`[vK5U[]9Ã^sQ*+x-$z1Ơ?t_<ۗϟ|2{8nPZ}sP{Pys` \=}9==yx!E^pI$i"@'-t"pl&rayaq,WnV[-J0 W`s4|ٯ6߽ 0j*>N: FŻm η]`~߻sj/zl0ftȁǼÁzfs~Y]]Ƴ.A x[~ ͕G[(h5h ;1 C0u'[[|y-&ec & *1D"*t2H5e]UuIԒ48dCx~V*3x$n@I\σbe.}<:<܁ lEi"(7sLavdlJ{<{FJ޾}G#`~`~JPK ,S~ռ|$NxEeM]Wj*m\eK^/|ټ%ד+EM.燎x+cnvo`1u;[zwI;$:!+ JhtuGI$i"@'-dףM&n:zT#OZc @8ʆ8?`w]kE@nRl"9 E]j 3Agsԯ3AwaPEP1l\ |6@, sk$6oH:lT졺.]<Eq kk]PuǂX>R !DڧG_yAQ\1MuUdž+¿D"Ceɭx(|.©6Aֻz^,WJ+b9Bu"<}o{_~t}DtQ ̣8<sto TZ{ۭL.¨3Xu$8RQM||ҝ;D1}_ytN>ǖNh6GZe\.ٕN+*1!_ZjAQ8Av7?|P:laCec:q+;.H$ENZf¸L8EY\k5;[N\./(O/ B88{Wfow L/.>iAkcUF=3$QnuƷ[sxѣJۉ=º9x>>jOm@.q{g0D 0~ߒJvKwQ2e/ꀳ `o1pz~q1ь1`Abg{k득w_ZCDb@g ]t{>Dޏ $iIENZf.) DQEA60h4CWWVoBQy{\v/"1߬{yH *PW_0 Fh8^>rbQJcx ժ48'_~w睝Z{aFw]z:vNla8D"*tҲEvkC Umpy'GGJXU\uב33Ơj~]n_ -ʈyɱDAde_>թ@-hPˋWo޼=™+<˲:SuOz{K:~2ӊi^{ZlJ Ӧ ZX`WzowtEC߱m%H7X褛 Z(U(?C/0 {^wggkWJ\Z)\ҶSהt`?9>zc^G7[(MNΣ,z*@}ڤEk}gkkk+k>tdZKQ||esƷVo` Γ`4O=Q >9 i>NtV[Y)-  fs׿y2y|-$8'hI$)7"@',$$zsNk7n--bR.kr!q 8|g|'E/JIOR݇[,`Lv։].\$ {_0\٭AkG`vk峧 t N%DC6/Y{RB9WppvzS Jvut`> mbqVr`owo_:.`1jfX`eʎNH$ENi _,em! n׿VjZ py,(W8v峧o>9=>ޅw\Is'[@N629 `}ƝzXP#ńr$l^zkke'_%>DjB9}qױag;A|mm=P, gMaA!jGCh4lWcF4Cu_O綛D"f tMtGQC.wY6=:u ^x8Wnc$3`~h0$˂2|Dt{zyd?p:z͗fsݫ^T$@ǩ<pO`3^0![]vlzGjVz#jUF@=;07k᳻-_Oo_]\LPmzNV+ 9>b&a?mmm~n6 4ˮ7IYsь4H܋tº,C¿LAnj]^*RP(Jiuz/>߽}2tѵT$@ d O`$i@ *Ho&̢ZԀX>q~#=R3gth5mnBQ7:& DmsӓbZ뺅[iyJ0Zᷯ_}< eI\fY{H$RDN2(. u<^"mllm'B-nX.>5"*A `0;ѫoo^~;M2e0aYaGϪ>;}n#I;TRkխ>ձ7<]7?t> IDATan}Ij^ * SLax'@ez5O+tFpKj%ީڱ[,^ogkZL>xf:^O "n募~n(ҽwJ*V*wҝ=y\2qi[3dC~C]N/nZK]&kNkHc}kO>>>z,JoOneAw}^]~8wVWEk۱i׍{P!gMk6ݥn>8:|7_,p ɲLãƟYtN2]OrVe]U?~?n-)6ptp_Ż!g32~{n~ttm~YŸf"?~>b=~p Ё3~ 9~BΪ7"\Xcwi|0xp*M)z^oœO?}쫯7nx4<{`p<Km8Z 0k)Rz(VCr\{U+d>NcWE1t׍FźŞ4@euIyKo`juJ-++Cz ֎ +DMk9ߎV??ɓ|-@8s,vϽ^ё;]^Gu&4¯ÞNMz?Xat`V(injl6*t@ws?7e>Lu7UUO/ӽxo0}dY^eYL,(VAN7_m~KWD\j|qRM}]kkrםׯ_>|dd@.3䧭o@}?ht|mo wnn2!n~sL:vZW/~`g{E'r(&?t̾tnBg_ʭznF@Bmq5W nklXޛ2zӻv w]7sɏGŪtw[=`+z˨T7Wwsop}ӿw+]lSfu=Ynw{t1`UǛ*noz(;Aۿ}h4[EV?eehl}B}wyFh'V0=0{Jb8 nS*QV UXu߯kuk/rJعjӽBϋu;)O yw{2_K`uU/==/+W;tnofAN>KUC^k[yt|>W#u8)ED騳~e;ZwOM{)!Ba],`jLZS3k}~oFN'vz;k=~UVv{h8E1o][XDžXUά Om˻F^u}wnt?|"<Ef?V2[UXwEy}{џn=*e^[9z!sy:#'U^o]Ӫl*U9BzXhmb,9 U}*xpmЁU@soRµߘqtk:^Wma\OӍNe=F+=V=y'^飏>ɲzDwaoF&U'˨r_z*,b:loE1XR9xVi?]Z8$`unP7鶭n}Xyt`y*!ᦫz5bt׈Sq*s*;J5M./uY|7}]̗zUs'2}ݔTխTv-&nGwe6-{ Uc;[bt%y1YLhr\ML40nt˻f=ﱪHh¬?Ϻĺ;'zkoosxΝGKb nv!RtweXP㔮|ƖCv|P@/soAݯ[Ͽ z\+[Us~ ʊVzx .2:[#ֲ ;,.TK Kcks>eռkr-nWe'!}W\GG^F^X)τ b ?{nП[?u))]w{_^Uȵ%k\XPu>ԕ]Wuyk[u(|SOkBtWW=w[ogradn:W彩X.O=/^NֹCXM|v>4cЮjy soǦD@ǺA^EƯ6wmuQL[ 0p#rx~mS+Sb?kS: M,+מu2%d2|.L7xWU5N0J$ҟC/c?T8tkkbW@oVt+@!W(@U *$2s׮n]d6[tA覥qouYS5 zbtk0ڛ7VZ9[V0O["bܞ]zJ9<_t/OgQSs|w띣uv5sc]BmMl~<<tA[O 5Vt @Z^[ *ji|Ŧ|b;|豐ù~kxxx|ӧ(wTowַp,c)&娽;;P3xB;Y{}^uM]ΤJ [ǩs%\nvѧWڮK?]Эk};X:$X<;.ͷ?߉d3-^|^z*^񰽱񓜽6@^5@ށnHw`nyusק' t+h[su[ 6@:pbAݪnFaznmt܎MűBYCޯr.~Pk~eVۜ%^P~jelZ*鱁~UD üX?\Cfz~fUSM\VPuoԅ:jTU5vWs]khtl?_*|70znyYiɲL/>/yOZrY;Ϭi"g;D +z,k;u(xj:Y; BЁ'uwXxW! ebzCrc;ݝ?_w\4oHS{=^rYYIpxt TSjrͅng0nyU@} $DЁK74 U[S*")ۄˡn~Cu>7`ww{>|ao Yhkg!V̮,񠳵KuRMurxϬtQסHRaJT4B@X5]y)A*6bEj2~ytl2ΫT;/+W>O0w<^^WNHX(岾ipASzU, /ZgeY&訳d2ٗC p)U r6>|%4H7*erW :F]lx\ח:Ub2ݻeM9S-_d=dY&ã^w{tՕ^U9szt8=c imԔW/nt^bP?ڛo&~[)~ӥW~Ejp0n,d:Nv&@f{>tXg(jL 6y}:pVuUհO)+ÃWEY^`X"kI -مFQw}cVC=ao)IS'nAk|(N&"Rnlע,3&WO'j{]|R^hacBEQ{{lHpUWO, eǎN~%#:TaK(r]}OYffݘT'yqpNZ ֛&5^5h`puOOY'T=:ܟwyדe!UUXGkR1] xp3mwUEw!]ew}7>5RkSUJ5H1~72N:TC[KZm#4fSYGsEd2766~[d`~{EjZ 'J yސ^o~Kckp)TGZ~+7GJ7V]=eww:ۯFͺy2 t,d<mmKQG2#$k{+F|WL`eZOwK~z8{x<>n6ǿQ]kbg/c=irhH{k]{MY#ȱwy]Qw^ a18*pšNUϫ Q:lVA]F;;;NӉPI -l첔O^wtI~?q`ҁ.̭n .Wy8gϋ^ 'W>3+xr\_gA⬁b-!}rU=]w8<|柦ª+ԝ}aN:tm@ b8AJD($.Sgw<.:ułeg rc>dvP8kX7wTXQtt@M< ݽ{/ƍ7x< u/r}%'[_?4tVnة@.t5=l2Lh(ʣd:,DRCԳ<ϲ<eEnk g̳]N=%2)r\7_,߅V޵N`%3Rչ7O[oy;"rrrכvtۧ<|}|woyh4<3YY)yHydyv$K&gݪVZjsʲi1)IQ,'EYLRE16ի"r(gxx -9 )h8< Ļ]keO:g$[w&e1=I"EYeQHQS) ) ) ˹O]\g{nb*;sV n6+Z\s}*7$HcЭu7놜u#[aݺvV> =N1~-:g>u0@N]o+XQtϪUѧ}|Dκύ/gAݗȵYiktsw.CǙB:aD@tDWߵ,.u*)!ݺ:~^:WUѭʹ(:@ uwwǥkwCƧP<S+"cS+躊zG tq!|jmwp+,xQʹuw] t=/d3XŢ?&:uS]׀tdB\tpt5D-ڐӳ5%cݿM.2_P:Zy \3t???=6_q発2@2COaoH\z8_.̭C V VEfCz,92[%_Հ uwUPZgpM>kwQc|8BЭP~j^Ȣ=t\Ck=6D@ uvDN¶Rjyj8wU??oPtk8 ~|c \tZi~v!=zh@8R .~<'5[*TU9sNg8>IDAT#,uB_5Nt]-ugt L΋!]1](S="R`v<co^PݿnO$nXBu@o).|uJzl8PnUCĶ8:JUHU#6͒\(niEa\lXQtqTAc!.2?{U<4MϫfYf@wcǦ0^+;k : U,VխYzoز窺T֭sn:Z ѝ=Ţ=tjzkXDlU|Bz\5-%v puFN?O Wu}hEZ㋆Ug0Կe Vw*- `F7p-j^TJN ݄sn(Csnz p5]'8Hr@X.<O,IENDB`PK{E`iisimpy-3.0/_static/favicon.ico hV  00 %f ; X(  IIIIIIGDBDA?̀>66!UUUYVRVSOTOMwPMKMJGJGDFDCDA?A>B?>6!;96gF.. WWQ/WUPUROTQMQQL/OKHLIFKHEIFDHEBGDBlB@=h@>;?<:=;9;;78[XTZVSXUQWSPUROTQLROMQNKOLINKHLIFKHEIFDHEBFDAEB?CA>B?=@>;><9k^[W]YV[XTZVSXUQWSPUROTPMROLQNJOLINKHLIFKHEIFCHEBFCAEB?C@>A?bc_[;c_[a]Z`\X^ZW]YU[XTZVSXUQWSPUROSPMROLQMJOLIMJGLIFJHEIFCHEBGGGeb^d`\c_[a]Z_\X^ZW\YU[XTYVSXUQVSPURNSPMROLPMJOLIMJGLIFJHEIFCGEBEBABB=6ccc6gc_ea^d`\b_[a]Y_\X^ZW\YU[WTYVSXTQVSPURNSPMROLPMJOLIMJGLIFJGEIFCGFCRicKde_gc_ea^d`]c`\P`[[-ffM ZZZZZVA\WUrXVRXTQVSPUQNSPMROKPMJOLIMJGLIFJGEBqcMTjbFUUU\\R[WTYVRXTQVSPUQNSPMROKPMJOLIMJGd^YV\YU[WTYVRXTQVSPUQNSOMQMJOUUUa]Y_[X^ZV\YU[WTYVRXTQVROfffea^c`\b^Za]Y_[X]ZV\XUZWTYVR7sg*FodWibhd`fc_ea]c`\b^Z`]Y_[X]ZV\XUZUU3UlZ~k|i%wh6rfGmdXibhd`fb^ea]c`\b^Z`]Y_[X]YV@@@oSnmll~k|i&vg7reHmdYhbhd`fb^ea]c_\b^Z`\Y^YU9rqponmlk~k{i&vg8qeImcZhbhd`fb^ea]c_]vytsrqponmlk~k{i'vg8qfJmb`\halhd`xdd]!{wvutsrqponmlkj$yxwwvutsrqonp{zyxwvvutsT}|{zyxwu~}|{zyy7~}|{z.u%rnqpkm~}|{q u?ttssrqj~}}{zyxwvutsro ~}|{zyxwvut?~~}|{y*yws*w~}}||{y=.~}{z>{4?????(0` GD@DEC?DB?CA>B@=333HECGDBFCAEC@DA?DA>bUUUSQNbRNN;MHC5JGDIFCHECGDBFCAEB@999 ;;; >:7<:7777YUQHVSPUROTQNROLUUU NIGLIFKHEJGDIFCHEBGDBGCAC?;=@>;?=:><9=;8;;7y@@@ZXSqYVRXUQWTPVSOUROTQNPPP SLL%PNKfOLINKHMJGLIFKHEJGDIFCHEBGEBwDDAGDDD"D@>C@>B?=A><@>;?<:><9:::#\XU[XTZWSYVRXUQWTPVSOURNTQNSPMROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDBFCAEB@DA?C@>B?=A><@=;@@7]ZW]YV\XU[XTZVSYVRXUQWTPVSOURNTQMSPMROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFCAEB@DA?C@>B?=CC7`\X_[X^ZW]YV\XU[WTZVSYURXUQWTPVSOURNTQMSPLROLQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFC@EB@DA?@@@a_YYa]Y`\Y_[X^ZW]YV\XU[WTZVSYURXTQWTPVSOURNTQMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFC@CCC```c_[b^Za]Y`\Y_[X^ZW]YV\XU[WTZVSYURXTQWSPVSOUQNTQMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGDAea]|d`\c_[b^Za]Y`\X_[X^ZW]YV\XU[WTZVSYURXTQWSPVROUQNTPMSPLROKQNKPMJOLINKHMJGLIFKHEJGDIFCHEBGE@oGBB6@@@cccfb^ea]d`\c_[b^Za]Y`\X_[W^ZW]YV\XU[WTZVSYURXTQWSPVROUQNTPMSOLROKQNJPMJOLINKHMJGLIFKHEJGDIFCHEBGDAFB@@@@ie`wgc_fb^ea]d`\c_[b^Za]Y`\X_[W^ZV]YV\XU[WTZVSYURXTQWSPVROUQNTPMSOLRNKQNJPLIOLINKHMJGLIFKHEJGDIFCHEBHCAj`gbhd`gc_fb^ea]d`\c_[b^Za]Ya\X_ZW_YV\XT[XT[WTZVSYURXTQWSPVROUQNTPMSOLRNKQMJPLINKHNKHLJGLIFJHEJGDHFCUibafahd`gc_fb^ea\tccZUUUZWTUZVSYURXTQWSPUROUQNSPMSOLQNKQMJOLINKHMJGLJGKIFJIEImmKlbWicbib'ZVR>ZWTZVSXURXTQVSPUROTQNSPMROLQNKPMJOLINKHMJGKHHU\YU[XTZWTYVSXURWTQVSPUROTQNSPMROLQNKPMKMMIB^[V]ZV\YU[XTZWSYVRXURWTQVSPUROTQNSPMRMM8`]Y_\X^[W]ZV\YU[XTZWSYVRXUQWTQVSPUSO{c_\Kb_[a^Z`]Y_\X^[W]ZV\YU[XTZWSYVRXUQXUPffa^dea]d`]c_\b^[a^Z`\Y_\X^[W]ZV\YU[XTZWSXVR@jj Njbe[hbee`gc_fb^ea]d`]c_\b^[a]Z`\Y_[X^[W]ZV\YU[XTZZS%zhG!xh.tg8qeCndOkcZhbfd`gc_fb^ea]d`\c_\b^[a]Z`\Y_[X^ZW]ZV\YUmlfk~k}j{i#wh.tg:qeDndOkc[hafd`gc_fb^ea]d`\c_[b^[a]Z`\Y_[X^ZW\YWdmntnmmlk~k}j{i#wh/tf:qeFndQkc]gahd`gc_fb^ea]d`\c_[b^Za]Z`\Y_[X mqponnmmlk~k}j{i$wh/tf;qeFndRjb]gahd`gc_fb^ea]d`\c_[b^Za]Yt,rrqpponnmmlk~k}jzi$wh0tf;qeGmdRjb^gahd`gc_fb^ea]d`\ccUwtssrrqpponnmmlk~k}jzi%wh0tfwvvuutssrqqpponnmll hyxxwvvuutssrqqpponmf zyyxxwvvuttssrqqFy({{zyyxxwvvuttu#|N||{{zyyxxwvt.}t~}||{{zyyxxY~}~~}||{{zy|!g~~}||{{y7s3qXqFqQ~~}||{uHtsrrqqpp~~}|}w>vuuttsrrqq|~}}||{zzxzxwwvuuttsrrs~}}||{zzyyxwwvuutts~ ~}}||{zzyxy&w\wvuu v'Y~}}||{zz.wwwv_~}}||{v yyxw~}}|{{z{rL~}}|zAn~{ +QvuU/|?p???0qq?PNG  IHDR>a{IDATx]ytřU_sjF%˒,,_ 1ƀ9 ؗ, Mrnv;䱛%/lB^؄10[6agzfzF3\=4U]]ݿ_}WgLQ(SbV&))r,f`,f`,f`,f.@!ݑ(T=;?Y״$p8z&C\Tg2YQe6(9D= aK;/DB-r.c}*<a*خ"gf KxB TwRA!z*'"AC /=# C.ys`tˮ(nqd& =Z* H`~{}na24NKRf4Ty-3%TŃ..OJzO)?|hI]7yٚƅG9w VLM8r />? @%f!f*.{r ||Y u{?3 9yi3Z=KcR];쒷>71  lu w);W~/ݷ-;: 8Uq@nG{/>cpϤ<し)(PcZ>0='m~JiM]w~g>Н)~|{G""/[--fK[ky*y॔FҾ2m k9s-^Mu'=0Dqqd_{p#>NZ^vdf}Z>=<LFL9<r<8QBi<ɠQ5 #XZ}8AjA)~µ}r牎vP=v <89jo|FSp)9/|M o`G\85Zxܭ8 a#zt(V5m2Vy"f-T.\.Z?SKN k୪ʌH)r&ۣJT M"Xyl_U[55׀@9^˧z.6i QHq~0a>}jêq@$(-64K - ~ćDsD&÷c,P~㗬W}.J)O'vqe w/n`FLpl7 Q"C)wpr4ud"uKVHsLü@*{l:nHIh/5_J= k5>:"vN j39*[/0/E} ʳ\rQS.A8 xKԈp\(6bxz 7>}>iRB@8sOc+#K0H 5$ suq ,늸:"g#=<(#at9i#:fPhܼ\hEǕgk" `*]uMHY:ez`wc_G kkrCpl>{Fv0Xc/^qec*c=x8>9@i`mZ_GOSPT}U[;^[S> DQ+Oz;vͯb-JҖ-gO6 $(*t>6_<;uՎCN?ZTp]}ry:/nδ~0OSܙӱ7> FL?fTXs v9zxtF&D4 gOnXuiqXiBFeSd#_o  ƠT`E8Xvx-q ISBd0 0ii.WJj9|J̡¡ 4(C{C +p'$l@,DZchƒ`5+g2<*`qU;JLjjz/ү^wY* R ׸H5(=`55y}j`~Va{vkfīKsDs:m<)6~\R'd,Y-lLLC TNwhz;4kR`@UZ Ϫ>!u@a)޹B(4`ج04g&#<4ʳpNd8+e`G,V⁛[VƁ5x mjiW%#2᳑ [4;0|զ-0Bb̿+E)6(@sRVBH'bkFSPshi1k-6r{xrg#Œ3 B_>mnY9,"E^ݼb郯}-w.` B :3RԥaK4]kCd']7PJq](OF~'a 9T)6@BzO4Y͔LIyzG_z!XgN%FB~De א3't ȿx1kPAa-ްe-w.O0u)isccBATL"L \hGlNeةH'|RoƇc{??rd`EΝNZ}[_L >1OE3B~+vuNي\ֲZ;[){ P"T@8 Qӧ_3rR&at#z=`Ɗ҆|UJPT@8^=}Ow9pNS\vU\hmMGO?Il5D@/b][e _[zjAJPJDI9̟"R30W<ˏB; 0^AkiG 1{P^U L|57 H$7Ίx}#ڑŔI 6QstHG=>+Dd(~ ?!6P٪6(T7K4FtPb[rC 6Qr&UZ]U-_I-IjV5YJ6 &!Za\;S?ݝx@`ZMT@P ` `[w.[#v}afb'p! |$03`RI]MOVn7 61'K#z)i(_ 7@=,6nKMW,Y-LcHy wO ʧq21iY?x= .t>jJy4_x52bt:.$8o|3çOicy}?["># Q`D#Bau Zŕ5uR- $$.gS \]o?[s2"X7rxB#Ɗjqk/t.Y^b;a8Mݧoly1c @' ,VaWZfM}Ü`R7ʼMolۍ>-O`G{p8HF, DQ1PP/Ħ-ji^a: TmZtw]3o cӎ5`[V@,uŚ ;`;ygh`>D46R `>U7.o]yb> ccG;^=.&f 0 I`"IZ7^wWjzJ W^; lwyu8MvB[}>RPoPhi㒇~)b8؞BJ/3DPp۱{玭,+q'XƀǮCaP=XhA&رcI1M`~Id@UF^HEVxڼ* ^(T #ٶ"v|95$Ir_ d:Q1odhhZNN#j]vٕ?[ Y(ᐒm7Ogb$vlsRb٪O>x3r݅]mD K@ݟG H~=ڦ`0!q"Z 72%:(Ah]hk%\AIL Srns>>'_gTS)@SWXVV^٨/39]q$o?zryL|vnCC(/蓷ݾݳ׋<٣[X[ڬNtqgP%82o7.b{Dw,!J*++笻vK~liOj%@_u_MM͏A%Ɋ9/ ?o#ؙ Gf/slEaI]T1jqMӸG?D3ϓ755}'Y|&/H>x}OG}΋JˮlΦd|B&9Y}>|O@d{?N}oGV'i>Og |o Tc~o|>g7::zlnآГ}6R @֭oh6ūq) 6p||R1``{cLO28WRjAOx&*0nbSk55xÇ쳲'b`JlGSNk+vUUUḌlbaO 45xP sЁ@'bWtET%`^悿 1Qƀ O \6*>> -sq\H8xǿUe/X(t eNg&:mDŽHu6 4Ko~p ̮mH*4_ Ų̰g7r|. ( Ga% >_ @H-+q33YM..3; &ja0G/KUUU5xa)Axu>V9ަT%/ͲYmeLF"ex5/O(FO Z-KR7 =SǕpE^5L&G,T||{]'Pj5]dlvd2[ a+#ol:X-Q`Z@+TH> pw|rO¸۳a`xDq+W-n{ѮΓ{^Y*.ijnLE)S#sK mV:@ .X)C}{?(L`۾]|[r5P(w}dc6R곂t2=ooԺbIrzxVEQF\Mf`ZaOm%pPNxl~= _rIqoi;+_BАpOשǃĎ J{A݇P_-+6766y^^\( =橓_1IH74} a8k9V^^4F@`tw׋`D|xSe𡑆Mkh%.ь}^WWGGGv8L#%A P(4p}_牣GW,k]q$gN|ݹ[Q#`5Q!e7!$9{NgRC.n`o;}2!$6=z=͋n% WooN0ul9JE 2H ;^ `I`{aCP9K#`=^|ٕWd2Udڙ<>q,ho~m)]-RV4ox\}`ZS}Q0ӕy} TQM(=VKx0=`/,li;348L;s\ݲ,kffj3~^EQ:OT HfLE 0D}ɚJ wfY[(:jmݼMI#ݝ^Fҕߧ+Y>تlhR*DlsRfJM0x f5":2so#~yLj^T]9xY I=~VYi )D"Ǐ= fK 4^ Q7\`9qkf"d*$&I"+4B70B'.O)9?@%u٢mmx{/%Nt+$E~#^z:%>zz/=SsBI[R\% Yp% Yp% }dG^8IENDB`PNG  IHDRx IDATxg$ŕ-ҕ9޴4ihV8!@Fb F7Ns1{ѝW#A$! ߴqhofUQY9esV,HDS BA{Q% $ F@n ?˶kpل:H5"S)GG=IlH@0ň@AaT|TàB|VE0 4;HUU^F~K ֻ`-\Kζv;Odǜ5I:\^sv6oki;mgri-өɦ츖< hفd#vm}~e @€,6 "Eyҹ-,4ws mN<5L5 mnh35IMs5 FPPO̼Nkvm/GwrYeώq q>{Gz^x ;ɺ- ;e0Xg L$|=`]׻a^𑶥sXkX0099 ̀]D=1rlC7l{igH~ϑw=y8 ϋٺc}cjJh 2~e˱g][=XҦ%(ڽpr ;Gye7qƝ엟,I߆@PmJ@Ⱦzx=1絑ovom|8rPQ" K"10 @ B$}4Uvvkgœڻ4 :U pt.e)gؘ{ܮg~}gz &1_NB`@% lI&a~6[gvdD 6 pyeٴ;rv9bt/  la=itS $hfH?=U`~5ˎ]ޡ00d$#"~ɸ7Lyzt~ܣ7lt Myn~M$$H Ќ_H,@rl>iOFTgc}+r7ykG /o@A◅Mwz|_}] du#u9B2d}17^I!\ " @3 >7Qh׷z{f5>h9XɢчPU\c4_2-6m캝fP~$$H P ~M`uF/u]6s3J'#uj6124;~Cp@7 դ $}~o0of1>' #Dįp!~Ojfr!,HB`@~Y۾ \!u'[?ݫah3OXv~"~e{% ~{rtw`)5! @@?#Yg^vMW~ ?БIw?]( ; @.eRSd毻۳;3y!PzE H+7XH|9׸VЦ|2"Г)9>uF"rg_=fT$Gd[(co?i͉?5+CtJRmGr(2zwp $b1BS H|e~ jfG1 @T@sD{v֢_*D, v,A" $H P/ Vq}._Drf=?XD Uρ'~7_/}@) & @ z@Z+ZWHh)?ԉߩ/ 9 Q|,7x:z@D?O޼x'M~{٪ [MW(?Bqn"84s}o%F H*BB~ .K{{[+ֆND4ruiIK/;$E(K k[>@g`$#"~"`fQn֎-C(7 I $H Pk >Ǒ?v}y\'u9#wbOt@< @ Ze-u'X.;-mYF}y}%[Da~DJ/?l<$ @ Zb{? ?xUϴ45}DNU#~#"`>;q[9۲ H"$nv~tR4qYy45oT7L޳L]C7N hV@ ,X\ѯPUM,`4#sx< @ 7 @ ,u_ͶKP[ݵEE{"~F"~!#w׏mF!$ h:@ӁbX]FɮB})\˄?Tk_NGF訓vR-mZMKfx½q6_(qB!>Ppj" HL%"ؕ֌O]xR_S%įWZmnao;p;K;IpqkС/[mX!6jkAk֢R2|l/` yP._$H 0֬O|G񄶞?ܩщċL^ka|rx1 &|VlM<'/CGͿ_9?;wr`S(HS>њϵ_ke"Wvٌ?n{:$+f3sNj lՓEK;3򹗷@>@DH@`*XO;ٜ{ŧ;J‰NGrAFx䡽o.ֶǼEp @:OcrMOcq,S*įP("|z$~H# qh0BdYN{H咏nڰ)t f“V{ Рd u?+Dя?6;~5F"Ͼ#( Kߌ>3S\Zŋ} @Sc?:jͩJ8i(D>lo-B?\/o?i;J_Sh`c0y&(D!U=۟JoB5C~}ﳟ?>P,c62)Ծ+fďVoC9`4Pj@PmS$>+zg-*5#? r%4(IXynh: T> @WdB/jįJMH [J?Q&Aa*.P0Gv|J+խkEIE< ¤C %n<;M,O!DJ|Q>NDf m, [FP `c¾CH.Ὧg_/r2dvƧO($EH4H&vY?9Ӗe* K?Ogg>t`0d>",|2 vOٵ#r.k5 Ѐ @V'5xN Sk⇿AΡ 'o??8f6)1ϼhtYrP0`@"@0iP[hϪ}. IUxvF>k|?lŀsHSFDE),G~ ; Ի; ;laspG6ΐUr}J{E@Qz dBFvNxF40DsHK&rc(ª}.5Ojَl;ʼnvzŀ_T  9S?QӴړqP|S4H&t~&ЗUpį&yGS 7U[iTG85E =F+܄/E/H5)H*pqh+݀4iFwrk|Xi.:Wqe=ƪ/ޭjW??|J]YB /nA0K}?@>ԏ?CgK[6"O9xgt^*Q(N{MikOyfQi>A/Xf>zɭA#č?5N0E\ Ȉ-11{'[/l', s?$@1H&dۧLC B_Mo{Oj?Y !rOgkqeua/]{G 㲋>r(!A B_h9s ޏ3 .F`S?vUy.}g5B rbT@J:4-V5~Sxf5{!O(@R>/~ۮuDAFD]gV៝9?7]>wً qMIKl=K?0MHZ_pؖ͹›HQ:8o3Cursgf(/8FrzrP)*H}M%{Þen*E7Wxvf1.KG@! d9X_h1)į e\ԼD'֤`x-g!x`" B T?f9c22/)u~(ڗ/%E(weG@$a h{>z+J_RD k&J v+\{%Tp_;<7m(7HGf /f)sM3{qG&~!EDMD7!wCSK\Ak $a]Ö{iq LQɍ_WA{.S7"~{f'C.  Aغ/|{E) 3>/[Jj֕C EDrD]mmV=,hژ 𙧜YbhmSrj?P?RFjDKƈC~UY P @oehoJW%D"`Kį[gG,][AM j%dUw(n*QEQT5ԯPh{- TmMjiT̈scШ5?P0fvv!W "~?"`"~f?Ej$A [\z9M D}0"7{S`o?Ej$~[p~@įpD~D5L xn@d~_u깉V})75&]UW#|6dsr9r'8le3Z.ur]vӴrMoaXaa0LK3 S3L}cff:&u{& Y6eFD!վ7~ErN~hȏ u䇏zg=?s^ڒ9p@~O~qO?!|pA exٵ=0g5g7/6{4ttDa' ;I!  B >f ][%$DzWSک=oޑݿsK@jNȡ@쓉Q~/{? t;}C۞J_]wr| ֱW?!Bg0 ?1gބ?"  IQv IDAT p4W)lto`OOA`?9_deߏ;P _5w%xy) YTnd eBo`K2ER[z0Ƴ+O<-Sk/]x3l<];dvAoLlj$\i$96mˑ?~a3_cz'ʤ?T\X@F(_:ӗi@MXP~:s01@BD(GX@2GS/<9g&q`Bh4GaO=Pļ^xȟk$ iĵDB?)O|݇~#(/#AYjwM0pP~v@&$mgNm+'_aSlMlc+Jnc̫p7?TPͿFAC:z[kݑ_T j SgrV [vkU_{1ž(oAx!OZԜuǬ0Vx6(@;0v{ߑ!xOx jWCj 0v\֜[DJ}-]}G/^5(_%~1xb$|^?@R{_˽HOo<3|=zWn*N"rN2[{|֕"Pa!k$@Ȱs HxHnХ/8n{ 1_|vWiU3|q@b4o1L-Oݛ~Ԏekbן[pk1!h E=Λ^}'>xE([g1Hj $<^}G->Ax+d3?}<@  ` ;Rf|K= Wg.YĜoYZiZ'~ۆ잧NoZ\%Q٨k.Դs/=Hbkװ1Q 6S  /b}떅تV79/ H'w5:z1kˣ闇AA; 'RAHhi/C/(¡ {R;Pc-C aywY~0! N9,q''fam&=nBl*k΢eܹ =C׌i]9@܁_ݽ3' O)H6u^@Lj.(! ?o?l,f$ q%/,]۳#g`bz|*ce֜ =3.]N~tGo現=oA[$ɞ9Yʯ ȿ@X$b#:"d|w:-ZGd b  Kgmze[⹌g=l:-b<:+vqƆ쑡>{H~!{h~CeL~VI~I$SDui`MΌ &J N?52qR$+UC= p(xao[,m9Ã}o 7DZ$?,Ilkl<QDhI$~ޥuDa}MSp% e!F̠<1~1 ppO,:5M|{fOdǙm0<HHJȍ?bŽM~a ,5GYM&k+ ~>QV PٔҲ]P @`6Xq-l03 "O* DQ n!ASd/@E/yBͅ 6B'` мp>": 憬&,!:3y'p?N} W:Ou(9@|DM2/A 1o "a!apyp%LZ *~G6 Oȉ?v=s#߶_M?H|ݲ`J}$z%~ f[gؕ^ y@ DOAH>eLȶ2r$ R`WJ@$^7HMM&"~uPFOj>]W}sz- N5f$RPx(B@+vzf[}}B6,ɉt XߥTިac104hCoy:,\qbҚGCh%a CIߨVc;Q][3?|ԫ( <"@oA  6 }Rˬ/7:fhZM 'Xub} #O`@(x$zėKZj2vp=J~ZhWurLj/[o~탉>4u#$cE6f>  @' 3θ0qK~jE;E7<;787G@6 1 UI 0PD@&Ξo.TƯzW$~qΣodՎz=(4䡖'@BP @ CL$P( 3o]OhbD{H~P@$~ ty`7wzAN2!@bP @ x=P 09*[1Qev!cCvS9{&@(ˆM0r/z?rMW. W,.sUɻ7N6;Y9D Le_?92GP !@L @@"`P<暯r $Pqtj w؛m#QAW$ H$f6"`/޿Ǯowjs|}r9AƭnlB@6/H& $yqp|m]:' CKfg!s;f~54QɈH* HFDw.3 ep;?w< b$| M̼1| J1xP{CD"l9<<';(A<@B $H ̀|@eW}dI3TGC}kSsxkW{oۊr? 5* H0 wBsɟ]ךT@r+KVC%ȤgGJ " )Hx 06k?3g?؉)K>_#sj HA >٨=z7;⏴^=mDFHv0>>O6ߑz|H47H@A+"ؠ@=zίu3 ݭs4Լ͔LyOnH!"I4'H@@)W`^:TFC=g@_ߗW3Po(@s $xHdJɀ-m/]Ƿ,K gW0Tפɉ_`ddйDBA2$]@ݗI%NU*_>PEpY(lÃ>~oo\䋮$$H  0&?C ?2 ?0PO[>36CRV&A!/_,60 : H!dd@1 ^ع|9Dw.3k&Wq |g{__&*A/z HA22DBJ"Lu4:y ?~ 470 : H(@'<܄wtf"#"~7%S``?|@fj9R @ t dD_zc1&~|"~Ѿ p4yCǃ[SS~@ $! P| 5 +?bqD' ⺎\/3ySc(Y (  $$ st~χZpj<"3p ďza/o'|r! !P>4h х H u=Fg:{YםyPp@w~rί}t; Bz4@+yKtzc(I@@>Q6G V\~U۟B^*%42kpJa0/.}7Pz e! pELk2-_NgaA^$H  ńn]d%6NnQjp/|4w9rY^{o `WA.[G !H@@>]" g\k: Rw#į$ K1&w-mo IDAT;П[nxӮh8ǀHaP%w.#{sYl{xꑽ }"E,6cus{@Q  bS[O=/qʙIW,?o _tQBȻyCaE |? =p$!O wv(4ed ԔQ" $*-0)] >+c1o"@'"~ 58`/_>Ȥsfs^ы_ jGtC1[79ft4MK{lg蹧zK/mۃBS/ u)H@H~MRaSl|@{k %Pܤ5(1#(/ %podB/~~WȤO^`  4"$@cg5V#`a qe-[ʼނ |&xjҡB=C/3S坔 '2+? ^)cq(Cpl]1@F,f8&Wtpy1Ǽ9_x'M!r] …! "AHS,E:t^֜X ޔL'\w'CA ш(5r3Mlgq[>smC!B!vTwW J@(F᭕_=dŴ5z7|B}G ~_H<**"dϜi֪5W_!1}jBj L>M6Mc(7 [~1z[^ >{UT 6m_atDŽZ߀S J rsAhm/,\zy~M@M C" C9`OG:Vuo(EA?* ~#JF$Y8eGgO8azE u `  9 u^ ?$~'tRU%~5}"?sE 5s.}٪UBAQ  L $M`" bzhn_PF I`'piuEq*#W_Ba7`!麑;^ٞ=B-ZmHD.߈5r[x1T7JǣΥ^S*?5~~v#0O;/E&B@6yi't>_r QQ~v)8e5R=RdMͫr.5?B_PT?f>/<Վ[GAȳ(6qU8NQ]sfH%9:DZ!g]'tщ_tQ!Q:tej^s? QY_\~6Uc;40?6iV"APM=~Z`Qi B".ziLEWMkz(S2# "cVBePԼш_C?*"SCk+g2Y/ZO?h6g#RF4>蹬.$9,YHg[ks-Ιo.;/bq5O2RU!~U?eY Um&Źpy{~B^6W65@9$ H2!8"[h_u'ǎ$0&)$S*O(j2ß!~7o}Gy h{ M+H@`3F P$PeP\֝_qʼnw[1-G*n DMGmgvgѣ?[B^> EFHPa !9f} Aex&\%o}OgS>Dj ~f߫?o'_lf޿!6qMWwz{{vQ>^TAj4(GpGx\o3VFG(ՎՉQG"~M\~_(&Z?u @ DL-(D}Id< "~\yU8 ++/5Udž_r_$# @ (e==pGZ`b@kEo从]Y"*.o<֦Bm}c ɽ(@M @zjr06 qK[r1;s ,_}ySzf3''/c"OS ᖖϤw\OO:-mZ⅕Wv)8eC45/3ԦgƬ܍x#כ0 @)p"p Y3@.Hl=mH?hj'SrNrݺc -s1Ћ[n(E"~/ԼSK5qG6v'~5<4h  XX0 // [il;O;?ajҬ'#"KN45o=r˚< _}YkW*E5I,bSHsKLn{GO0q ݀(k}ɘ(=5&jч{^B P>#0,I;_Xb / 1c '.Zfi> ~FJ2RU!~U?oB7@&X^ x܅Ƭw]8ibsaI>.ӊ歝^ү^}- $jt@#JX&Ĩ(JB` sަw'6ΜkDuLT}=Oi96lsxxͻnCY zS(H&r7vXؚ̜ǚ3kuGNjF! I<f?{<}.U~3ϥz߁ EsmHpPqT@)gw.gwdviŖuj !AǝXrWaץF45?PSm"#<|&I_$VO&j ̀ PO[t9g؊ǚ,/*N<5$zx=#j0;ҩw&d\$H4Bz ȒJd@<1Br͉c͜g. 9N45oߧt_(_k?أ7+(<?'5RH$hFT(D1 p ccWŗv22ykޏmˆ?2xm>Cو,_jH ЬIBO QO B /Ye%EV̰hjz"UPڿ Ek&@`bTT(jT@2!`Y\}|1ִ.9'1[4uYԼa6vщeS{CC/KC$H bD@5*1VWOc ˗h;j .JW4w'?XdTNܮ-=sW_y^gtk._ H5$LzEmsW^EeX05\%p3?mͷ]M ?D1Gdbo&EKX1=cY:cVlM34yy/v*UĈ0>>w_fKCp.5g @ B8x1`@ޝ0(_@U@gOc݆9/>-8TN[v?{<}.Uĉp`vG6pۯ=ҟ? 5M ho@ $V"₏hIU,kiMkHSZw_,+G!o.2 2TQ12+;fKg옭i5Լ~eE ~o9͈6Rw{{v>@C!iP+-&<]-_shuP@CQ|&?A}_e+,Z<M;6^;R?Im>7ګO6_?@ a DA r9v5-_3{tOy'n㵫1gFuσ $ՅPED 2$tWYxR4-wb6^Hgr/lN`ltȽw\.~Yֿ߿.y a0@&K!/Ĩ?LX V-[teKKk[M$zx=#jWhvC^g]X]H@0bAP,\jի̘1&!7'枷|' O$ L/D PȢ"A @|޼9s-䯯f*h:tz;nAq?ـ?uO@F/Okn"yOJ7"ppƌYN8y <P!ώ|Ň,֗-,ُzOH'EM~sȚd% u '_xR4Mjk7U/fߛw (٧_.@Hj4#V"}ֶ3|is]HSF)oNUCGG~gSw $ z`=Q $O Xv 'ɲb1UUl`xh`߽w}p ~,uσu- $6  rD BMDnPQ TqaB ҋwۻg{ƌ3nZ_nGlۻ1muM7H"Ay|Y`[Z [Ow‰֯߰Q7L*È?{<}.Uf?];Lo?E(@ =|zߋ ȡ XTEĨ@[ܒݶ:|s{iZB@c{_جmrx&E BzB)[X(3%rx0 mC(gkCܕe3+r_Fnz=xDFruҲm ZeZ(=S'BЀ{g #&P(A_:o?l&L f҈_U$~KU)(3f#}67 $(X /Ɗ `ÈC2Û#["LC?[WGW+w>/'oP !{o#I}#שּׁc{zfٙr%hȐ6قD`XA CH ,ChÂ.s}U]]YUy_#ex/"2+2*w/^devnQՀD ZaYOT,+w51Zit^ԠϏo;TdH.E_* $ 6\tGu _m}h,֏o.wԥS- ur}o]p4F'LG@鐓V(EViEsF A`Q rP" 5W &>OMǹy8qSwnsS|-N#  ]&* HlKZ.߸f0 >4;35>xC+ t댑nV@D H: PH1~muwu,8 g }ЏKCu D" e5 Go$W % Y(oݺ]Q?m>!,wc>ы~S!eQ&qREQ7I,2$R LS@<N>O듩mn#M;1X~/>FVFCχ JEFED"Jbx# 7^ n~rPܼ p(/Ҕ2 HdS`g2##(^Һ- A 2]"2$ɱmy IDAT*6\ut:hb _<=ESX ]5CED"%m fdgfnp)8P=Pw0K"َ/5dDdH$Rr&޿wZ5oHĴ0%'t1N1RAt= B^ @p H]I@-krPLD.Rf@I8.W{z"7$"@"M)P7yB!pӾd|w8EP I(2$a9 `U3(!K[_ܽc?#6 6B:LdH$ҸE4b`usky/s+<,<YdtH$d,0Vrܪ#Cc~P'3'nM[/ol]!q$Z%fV=Scs~7-?}7a6*2# D"5CRR&QdiKXg鐩@x)NruZcL{ G(]/'@ߋY^(PdH$҆iMjҙZ4,6 =_=(/_`6L:XDj#QDrKa7k fQDnNu{u7@QG/|#aFCDD"- z0kP(tNbtq Ƙzl>&_Zع_yl&ztH$7e$ƭ5Z0 ppy7@pc[mo B!"@"%M!=u]m3,E:08^HO,_u׮(!%@&MED"y)-oL|=2+/>ҟ:  vH$/b]?Ƹ~Z [e~;xyŗ߁} #"@"%2 %n ,N#:8Iy~A[qZܵ_ 5W P6䦌/|Ÿ@#7]6ԝĈ?L1_}BЛ q`ۉ Dr[&W߶m;?}Cx)7H$|?ڻw^M5l# mXTGH1lW 9d3_kTc=Գ'º]R]R:G}w;^1,[|cotqh>oϡ#ŗ=d#;Dd+̭^nAdO>ʛG"@~e}z_A1 ~^>߁Çk*(Q}r7KV3k>2he%/PK\5l3pkg [Bww@]p3C]aX:գNbiCNdR/ e*K w'A^Я[wEQ@+Ud:w'~xx@EF?PKo lbnݺw׊Ro* Mu[i4fWo\yM@l@6s<B큁޿AQkMPJ|Gi6͡JP3Qd07?- ~ɥ ,fNOOLΝdaax'@@S=.*/SoZG%,d?`O.\2ϿJ`&#ٿw:zl_N෈#|uut Zܯ5_TAK/wW^5yOo2dt?3BP{'9WKjUZ!_j-ß埯e/̀P@ HRG- ;o~r8_V_߽|(V%)& kdp06H 1CIC@-#|ϯ^˥̀l8bGi?2ѳlUoGw ?7zzbWvm:գ ~T5`fO@jlfn~ў}}u*[JE=Ǣў~5W*.gKT;7LLLAܵЪd'/8l۪~X_W_}n]?cotL1~=Q\.;S2)2( Zo|/ľSno3"lϛW:)@8bjX) WrKΟAUVj^糵b߿bB~/>sӑr?m~'1 ?d3Śa[ujl @JԘKWphh_sR7,?ÑH[pxPe$K *x#PpXײ~ݻO~9;^~&_r?i_sW Hɞ#Ǣ8}hCT^|3gO+Qq>~V?:iiPӥ:R,FƒL&pueK&@5[㷏92cϞC=HL8z43[1_GoL7^Qn(@4WTA믛б}{N?u Ug3/?;hJO*?H>l۱NΖZ,MTmT,|>?J$ff'FFИk@ȑ[#`+(}ƿG!Nz닩lT,3OM% @b]W_{.}~a:b+yWD)/p*h۶c'=W^:U5uA+˪ed4MhU5-ijFԬjMCAQ+|*E}>- )JPPQ( <miq$tC8g j^wt*=H5n!y 2 ~~[0<]n}n*[1-c']L}~I0Y3]"xg6즁_wnx~vm?j}m!3|x 2'ioG& kSْC-cimc8u:@ӠN෍kg>oujF@,2m.ao׶m;ՙ@]~r;~b_S,9*|hcI{~En5'G+V~f)L Y@"2#D_};˭" Oc,."qn8y3;HgeeFq hS o~'zvLK7-|57 @)(FC乭%gy/.thVfI"Іr8odx={}5CyxL햶阯 Ƙ9)ou'1- ~ϛ[Of2|&`z<l/K/#eW#$.Ĵ?j|.h $$EzGf8= xʖyxe_Jo,Q QEg4yf$y$2m$I?f>۶:ұLv"ܯug1Laבx<>q E$59f:QeK|޼j<˴zk_b'75oq/1vw/+(_B @{ɪx˶m[we;C_I _wu;. i:tZ|_"tc7+?ve_#R._|L*%>o^Y#?oKKWP*xE}$j8}Ry'ꀺV?NbmsoZ)?9*c/Tl|Q%HS|wc,θG`~Zlo}mN>O* oDWϽ===_F._j#N/ aum\;yk!3]E,2-,'`0sߑ% ~bC*P(ggA P*^dZ_!^[`2/kN9_WEN_=##++WdP.`l@iI @ @t=3%cqs#VPI:D 񕫣F>Ed/`[@dZ_ BoP`9- <15w jPo =џPu |>HRdrja~$UiJr![NdZP66ot޽YϋÆ^m:+t ƘD=~ytqvාQR1˧L*%t"ɬWleЧ$*k!sD%o#nέ6H7 ~>o8") \6l6d҉t*LRL&21Y~e YX@~& @ɦiؽD~q_>u{utG .hFY* \6dL:NSZ2X/ y- `FˢV XPD5%j_^# _H2-8 ԝܯug1:5jj.KeD&NdRd*Jq9yh C_[2wz o?W)V'zC MqWw^Srt*H$VUUe5\uc"0n.Ed5؉SG#蓵pON|20Y{`dK.^`>EH=~ i:t&6;=pq~q&N&P,^zbxOOc7_M֔? tĉ_)t#uG\ᮐ#I&cfg``_̀l=F!,UG с-[޷n(T?qN_9J$[zlϛW:KϪ#g̀S`U kݛu =+}!,˻ 1Mg\u#kM{95{?O% зg}y ^}#EƵZӄ??)"2 w޽#H /q~t؁Ao}\?4`~nLyfe9Em?r%2'?~EQ8΍#[wnz{ ;Vw y X[Pd6Y mY918'P߄/_?b}ڟUa=ʞŽ NAc?It"l> lb,."/_PI:D*L&Q?3IԪD;>$նh&"W[u{utG .X[uڏQ>'1o {<͕U#D3w~~-;iשyɤ_<ܿ?.[t!ؓD`%mAu_ ;)_ Nb\?kj޺_, k׮|\(F~|yF_OCd6A#@ 2e=O/ߴ:ԝVl IDATu{;tƈx6^F:?B)P5MV {=WW.IPw ~[՝N&]!Mi8 ?`03FDrKd3IL{_rᮐ4F:g~Pi"dqq@ "Q/ 16~b*[e:8I'n] g"=9~qu'1~?NbH7c~?6Ed];NCnor鰗nx~vZo^1\e\+} )"F ɜ:v`S;Љ෎kg[ǵ ݊8ˇ4j% @"mTdq ?@8I7nYCouĘWMb?ϧ+0HM&J2i ?0Ȯ!K.Gߏ5ͱm}3_/@@$E;[?E76~U%Dbl6jHPdpp%~ Z O{r1W|FS;z47CNjށB$5 Mqz_?~w c;gqptFDhx2lBL_g~'1 ~H(w5$5]dh4@/Ln.`7N(q- ~fkB0.?3Pdg<U|~S~ =p+q&_kS>@ϗPx/G.# ً zn4{PyeiuMq@ h,DSom-Hne=1&Ӊwt+8ǹ~ie3~4$6to_G5(ojLSnvO?\E:%UU5yEZv1t1lc4[;)øeLjpԯ,c#q iZRەS۵OSylF@c#@?iKE@)yl  5IdWxyێ/" :i snݸJ$Jl6>Z}ܹ}={n۶;ӻE댩lϛW\cϚcI 7 ?"[޾kyQQ,&Ř7JV^"jK TU&gg'{{ݻێ{lABI;sMCAogiZ&ISh4 X[7r(gMQ"P(筪 UNFPB++w/T48q/( i9yL˰:"@2H=o{7 bH$VI)lşWӚ෎il6Jdbemume5/JJ'c箽;w>w 9b}<ĥT@r]d(MӴ w4nsʒpg/{wyI@x<6z+dPfߍ%o'֒p-PXw AӇWsL*NœR<\(ЗJ:N>O?w{8jOD"[ @".2JW㵵ձ+#_*wnGQ6 @豈J;ʥ, Av B`a~~ma~~;z'Ne :b+5˦sl2&2t"JT*PU)qت\>q-C͟Ϥ CFV%yrه/R($~m@.K^t/gPfFhʥ_WrKûN6. <&/e%ʒAё /{Wl_K̔c7~ן@InIA_  >F 0QёnٻXgPni6>6zeԌ̀ D>QdK?>>|ݻw? Ag;_f @rM2EUYN_PP @/~[e@ϽG^Էbo/k<W`??ol^~4a ?Lʀw`g~T ~y\{wo]DtU'&1e%2c\v}7}@S]\ ` g5h4ƥkYPT୴blw_/͟=p%bJհ,bqOFQ[E bCÅ/^f@+P&<|Prw/2dIu]C@&c3Bӱ07 X_9y̻ǘ ϑ H$D;ui+R3`tzra|yiW^}whhJLf_hmmmܾ|!?L "}߿{_| y95&'UM߿YTZ}64+7%o42Tڥqĩsw8젾T~CMS++?RSDU0h_j|NzG ?/lyVWgh |] 0]奥x|dphx/격yn/-?bo Ew<YTUx:r>:?xBw '~x zCeeH$WD[3{Q \l秦'ǟ}7w4ٙWʍDTd7D}fa NN_:ުS6 P( gߋ7珳[>uŸ.L^__[zԙ"P_4uiqOUU]~+gInZAi.oJ*_?,=5dK_e,SO>̱c`+_4wo߼ }#g}r?q㐩F#`Ff}(7d/xD"mn]!Mi8N#2*kߋت_|b3kƪQ@ Sm6\ZL&86?=oUK[FTYsB*?VUsDwn޸45>s/|cph^{:$ (J7lrෂScGÜ2=ff.:rm7 bYǕKGaXu{hdۼoTB(0:nJҝ7(_gVw6f/?y5|cIUP\[@Pg4 ӏ?qɓ/D2x?Y7$X_$#jNa"tࡷ|~tm.]),)imްF4"Db' 1aӎkϒ̽a"@&Xm~1M $BoN=~wHpn=iӓ7o\Khxr9Bs:4(^Z?232|>tc/ue-j~W ̛5c; 2>649 ,dt(_.޸vߟhO=ʖ-4mvqr >x F8r,G}m:n6rU//i 禍e 4f ͪׯ]'x}hSO>J%63XF?'Y~')2$>cJX,/?'K~ p$f;ݑՕ+.|N7稱/8^2| $2Ȯ,$Æ;iZ_@}eY ~0b0bYI@U'{_xSP0j SL.K>oPzxdbCP|Jwt*9??7{ka~~ \Oy#Uc.&  R(ҷo];W3)c~֛4B >'64ߗvxP~YXyC)ZmKhߥ1 xѕ}~B!199~-e0Uf8T(J:|ՐiKPDχU=K>#641e4,+ǿXIi"" G;DEQ[l>][[z](Nδǹ~KƟoMӪ7ԞYYn_T&sWNhCYc>s_LU[Mjz}NWp%K`nfj–0&ZZ7TM+} ?N 4oraR!QIUH/AhS JCeG7,>:6=h7K<:zb8^̴'%%k+ ުJqi`l'WÈ ߮X"fMG?6C#JJЏfWK(-rKו,.-\޷o+a1i8o϶''D3EQzX)Nƴ2oc.9=:>~HPmor0a0v)* ԡ"С0XW/Yw̋͢1hd,0}[ P,MNM܀ȦYolmWKD["F>CH," sEgLժ|np~}Y|­ڮ`UK jAjڮNZ2IDATR @H3܋i\ש2B0 p5Ar@IU .@^/`rO8U'}g.mBrƀcc5M+~"! k[lvM JJ캽vsB< jsuj~5hSuX*jc I%2$l-5c?4d$C v7_[$%]qR1Rw d@7rbmmnu%~A}#h *0R $@4v|u>c#Tv8gplہH$DDHRl,`&  :3?73Cv] 裟 cm&!H dqMZ u͟W뮄ZSJSϗF&鈁H$R2וWe96_bB"z0-{{zwF{p/}Pț]y %U͗JZRF|` jeYD f#@&զ^72$ e`& e/((jW'|`0_+>|>_ϯ4hB1_(R!_|1i!2yQUI&24dPo C;~y\.9$LW?VewQ',b)L@ |_wԥ"@"Y 1>CLeFP< qh¢j(?Z8fHD"uHUJ0 l]ZNw'Ř$ ɉ0<Vc)n'H$2$w Q^|Q|za5`6mfK{ED5o@7֢RfBx3(O""@"YH#z{%/"?hJ[D" @"#[ _B Xi_fؚ7~#H$dH$[qM_2ynVK?`-2g2H$2$#M;;洨_~j,I$ z[!oM$ Ԙ`OVd;D2  I 4|K'EH$T't6ͺD"IEDDI$fgB"H$DD"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"PdH$DB H$ ED"H.D"P?TiGIENDB`PK{EEE simpy-3.0/_static/searchtools.js/* * searchtools.js_t * ~~~~~~~~~~~~~~~~ * * Sphinx JavaScript utilties for the full-text search. * * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /** * Porter Stemmer */ var Stemmer = function() { var step2list = { ational: 'ate', tional: 'tion', enci: 'ence', anci: 'ance', izer: 'ize', bli: 'ble', alli: 'al', entli: 'ent', eli: 'e', ousli: 'ous', ization: 'ize', ation: 'ate', ator: 'ate', alism: 'al', iveness: 'ive', fulness: 'ful', ousness: 'ous', aliti: 'al', iviti: 'ive', biliti: 'ble', logi: 'log' }; var step3list = { icate: 'ic', ative: '', alize: 'al', iciti: 'ic', ical: 'ic', ful: '', ness: '' }; var c = "[^aeiou]"; // consonant var v = "[aeiouy]"; // vowel var C = c + "[^aeiouy]*"; // consonant sequence var V = v + "[aeiou]*"; // vowel sequence var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 var s_v = "^(" + C + ")?" + v; // vowel in stem this.stemWord = function (w) { var stem; var suffix; var firstch; var origword = w; if (w.length < 3) return w; var re; var re2; var re3; var re4; firstch = w.substr(0,1); if (firstch == "y") w = firstch.toUpperCase() + w.substr(1); // Step 1a re = /^(.+?)(ss|i)es$/; re2 = /^(.+?)([^s])s$/; if (re.test(w)) w = w.replace(re,"$1$2"); else if (re2.test(w)) w = w.replace(re2,"$1$2"); // Step 1b re = /^(.+?)eed$/; re2 = /^(.+?)(ed|ing)$/; if (re.test(w)) { var fp = re.exec(w); re = new RegExp(mgr0); if (re.test(fp[1])) { re = /.$/; w = w.replace(re,""); } } else if (re2.test(w)) { var fp = re2.exec(w); stem = fp[1]; re2 = new RegExp(s_v); if (re2.test(stem)) { w = stem; re2 = /(at|bl|iz)$/; re3 = new RegExp("([^aeiouylsz])\\1$"); re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); if (re2.test(w)) w = w + "e"; else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); } else if (re4.test(w)) w = w + "e"; } } // Step 1c re = /^(.+?)y$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(s_v); if (re.test(stem)) w = stem + "i"; } // Step 2 re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; suffix = fp[2]; re = new RegExp(mgr0); if (re.test(stem)) w = stem + step2list[suffix]; } // Step 3 re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; suffix = fp[2]; re = new RegExp(mgr0); if (re.test(stem)) w = stem + step3list[suffix]; } // Step 4 re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; re2 = /^(.+?)(s|t)(ion)$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(mgr1); if (re.test(stem)) w = stem; } else if (re2.test(w)) { var fp = re2.exec(w); stem = fp[1] + fp[2]; re2 = new RegExp(mgr1); if (re2.test(stem)) w = stem; } // Step 5 re = /^(.+?)e$/; if (re.test(w)) { var fp = re.exec(w); stem = fp[1]; re = new RegExp(mgr1); re2 = new RegExp(meq1); re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) w = stem; } re = /ll$/; re2 = new RegExp(mgr1); if (re.test(w) && re2.test(w)) { re = /.$/; w = w.replace(re,""); } // and turn initial Y back to y if (firstch == "y") w = firstch.toLowerCase() + w.substr(1); return w; } } /** * Simple result scoring code. */ var Scorer = { // Implement the following function to further tweak the score for each result // The function takes a result array [filename, title, anchor, descr, score] // and returns the new score. /* score: function(result) { return result[4]; }, */ // query matches the full name of an object objNameMatch: 11, // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object objPrio: {0: 15, // used to be importantResults 1: 5, // used to be objectResults 2: -5}, // used to be unimportantResults // Used when the priority is not in the mapping. objPrioDefault: 0, // query found in title title: 15, // query found in terms term: 5 }; /** * Search Module */ var Search = { _index : null, _queued_query : null, _pulse_status : -1, init : function() { var params = $.getQueryParameters(); if (params.q) { var query = params.q[0]; $('input[name="q"]')[0].value = query; this.performSearch(query); } }, loadIndex : function(url) { $.ajax({type: "GET", url: url, data: null, dataType: "script", cache: true, complete: function(jqxhr, textstatus) { if (textstatus != "success") { document.getElementById("searchindexloader").src = url; } }}); }, setIndex : function(index) { var q; this._index = index; if ((q = this._queued_query) !== null) { this._queued_query = null; Search.query(q); } }, hasIndex : function() { return this._index !== null; }, deferQuery : function(query) { this._queued_query = query; }, stopPulse : function() { this._pulse_status = 0; }, startPulse : function() { if (this._pulse_status >= 0) return; function pulse() { var i; Search._pulse_status = (Search._pulse_status + 1) % 4; var dotString = ''; for (i = 0; i < Search._pulse_status; i++) dotString += '.'; Search.dots.text(dotString); if (Search._pulse_status > -1) window.setTimeout(pulse, 500); } pulse(); }, /** * perform a search for something (or wait until index is loaded) */ performSearch : function(query) { // create the required interface elements this.out = $('#search-results'); this.title = $('

        ' + _('Searching') + '

        ').appendTo(this.out); this.dots = $('').appendTo(this.title); this.status = $('

        ').appendTo(this.out); this.output = $('