0x60806040523480156200001157600080fd5b506040518060400160405280600281526020017f31410000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f314100000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000412565b508060019081620000a1919062000412565b505050620000c4620000b8620000ca60201b60201c565b620000d260201b60201c565b620004f9565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200021a57607f821691505b60208210810362000230576200022f620001d2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200029a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200025b565b620002a686836200025b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002f3620002ed620002e784620002be565b620002c8565b620002be565b9050919050565b6000819050919050565b6200030f83620002d2565b620003276200031e82620002fa565b84845462000268565b825550505050565b600090565b6200033e6200032f565b6200034b81848462000304565b505050565b5b8181101562000373576200036760008262000334565b60018101905062000351565b5050565b601f821115620003c2576200038c8162000236565b62000397846200024b565b81016020851015620003a7578190505b620003bf620003b6856200024b565b83018262000350565b50505b505050565b600082821c905092915050565b6000620003e760001984600802620003c7565b1980831691505092915050565b6000620004028383620003d4565b9150826002028217905092915050565b6200041d8262000198565b67ffffffffffffffff811115620004395762000438620001a3565b5b62000445825462000201565b6200045282828562000377565b600060209050601f8311600181146200048a576000841562000475578287015190505b620004818582620003f4565b865550620004f1565b601f1984166200049a8662000236565b60005b82811015620004c4578489015182556001820191506020850194506020810190506200049d565b86831015620004e45784890151620004e0601f891682620003d4565b8355505b6001600288020188555050505b505050505050565b613a5f80620005096000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636352211e116100b8578063a22cb4651161007c578063a22cb4651461034e578063b88d4fde1461036a578063c87b56dd14610386578063cd279c7c146103b6578063e985e9c5146103d2578063f2fde38b1461040257610137565b80636352211e146102a857806370a08231146102d8578063715018a6146103085780638da5cb5b1461031257806395d89b411461033057610137565b806323b872dd116100ff57806323b872dd146101f45780632f745c591461021057806342842e0e1461024057806342966c681461025c5780634f6ccce71461027857610137565b806301ffc9a71461013c57806306fdde031461016c578063081812fc1461018a578063095ea7b3146101ba57806318160ddd146101d6575b600080fd5b610156600480360381019061015191906125c6565b61041e565b604051610163919061260e565b60405180910390f35b610174610430565b60405161018191906126b9565b60405180910390f35b6101a4600480360381019061019f9190612711565b6104c2565b6040516101b1919061277f565b60405180910390f35b6101d460048036038101906101cf91906127c6565b610508565b005b6101de61061f565b6040516101eb9190612815565b60405180910390f35b61020e60048036038101906102099190612830565b61062c565b005b61022a600480360381019061022591906127c6565b61068c565b6040516102379190612815565b60405180910390f35b61025a60048036038101906102559190612830565b610731565b005b61027660048036038101906102719190612711565b610751565b005b610292600480360381019061028d9190612711565b6107ad565b60405161029f9190612815565b60405180910390f35b6102c260048036038101906102bd9190612711565b61081e565b6040516102cf919061277f565b60405180910390f35b6102f260048036038101906102ed9190612883565b6108a4565b6040516102ff9190612815565b60405180910390f35b61031061095b565b005b61031a61096f565b604051610327919061277f565b60405180910390f35b610338610999565b60405161034591906126b9565b60405180910390f35b610368600480360381019061036391906128dc565b610a2b565b005b610384600480360381019061037f9190612a51565b610a41565b005b6103a0600480360381019061039b9190612711565b610aa3565b6040516103ad91906126b9565b60405180910390f35b6103d060048036038101906103cb9190612b75565b610ab5565b005b6103ec60048036038101906103e79190612be4565b610ad6565b6040516103f9919061260e565b60405180910390f35b61041c60048036038101906104179190612883565b610b6a565b005b600061042982610bed565b9050919050565b60606000805461043f90612c53565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90612c53565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b5050505050905090565b60006104cd82610c4e565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105138261081e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612cf6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105a2610c99565b73ffffffffffffffffffffffffffffffffffffffff1614806105d157506105d0816105cb610c99565b610ad6565b5b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790612d88565b60405180910390fd5b61061a8383610ca1565b505050565b6000600880549050905090565b61063d610637610c99565b82610d5a565b61067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390612e1a565b60405180910390fd5b610687838383610def565b505050565b6000610697836108a4565b82106106d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cf90612eac565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61074c83838360405180602001604052806000815250610a41565b505050565b61076261075c610c99565b82610d5a565b6107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890612e1a565b60405180910390fd5b6107aa816110e8565b50565b60006107b761061f565b82106107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90612f3e565b60405180910390fd5b6008828154811061080c5761080b612f5e565b5b90600052602060002001549050919050565b60008061082a836110f4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089290612fd9565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b9061306b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610963611131565b61096d60006111af565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546109a890612c53565b80601f01602080910402602001604051908101604052809291908181526020018280546109d490612c53565b8015610a215780601f106109f657610100808354040283529160200191610a21565b820191906000526020600020905b815481529060010190602001808311610a0457829003601f168201915b5050505050905090565b610a3d610a36610c99565b8383611275565b5050565b610a52610a4c610c99565b83610d5a565b610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612e1a565b60405180910390fd5b610a9d848484846113e1565b50505050565b6060610aae8261143d565b9050919050565b610abd611131565b610ac7838361154f565b610ad1828261156d565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b72611131565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906130fd565b60405180910390fd5b610bea816111af565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c475750610c4682611611565b5b9050919050565b610c578161168b565b610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d90612fd9565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d148361081e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d668361081e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610da85750610da78185610ad6565b5b80610de657508373ffffffffffffffffffffffffffffffffffffffff16610dce846104c2565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e0f8261081e565b73ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c9061318f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90613221565b60405180910390fd5b610ee183838360016116cc565b8273ffffffffffffffffffffffffffffffffffffffff16610f018261081e565b73ffffffffffffffffffffffffffffffffffffffff1614610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e9061318f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110e383838360016116de565b505050565b6110f1816116e4565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611139610c99565b73ffffffffffffffffffffffffffffffffffffffff1661115761096f565b73ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a49061328d565b60405180910390fd5b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112da906132f9565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113d4919061260e565b60405180910390a3505050565b6113ec848484610def565b6113f884848484611737565b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e9061338b565b60405180910390fd5b50505050565b606061144882610c4e565b6000600a6000848152602001908152602001600020805461146890612c53565b80601f016020809104026020016040519081016040528092919081815260200182805461149490612c53565b80156114e15780601f106114b6576101008083540402835291602001916114e1565b820191906000526020600020905b8154815290600101906020018083116114c457829003601f168201915b5050505050905060006114f26118be565b9050600081510361150757819250505061154a565b60008251111561153c5780826040516020016115249291906133e7565b6040516020818303038152906040529250505061154a565b611545846118d5565b925050505b919050565b61156982826040518060200160405280600081525061193d565b5050565b6115768261168b565b6115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac9061347d565b60405180910390fd5b80600a600084815260200190815260200160002090816115d59190613649565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516116059190612815565b60405180910390a15050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611684575061168382611998565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166116ad836110f4565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6116d884848484611a7a565b50505050565b50505050565b6116ed81611bd8565b6000600a6000838152602001908152602001600020805461170d90612c53565b90501461173457600a6000828152602001908152602001600020600061173391906124fd565b5b50565b60006117588473ffffffffffffffffffffffffffffffffffffffff16611d26565b156118b1578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611781610c99565b8786866040518563ffffffff1660e01b81526004016117a39493929190613770565b6020604051808303816000875af19250505080156117df57506040513d601f19601f820116820180604052508101906117dc91906137d1565b60015b611861573d806000811461180f576040519150601f19603f3d011682016040523d82523d6000602084013e611814565b606091505b506000815103611859576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118509061338b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506118b6565b600190505b949350505050565b606060405180602001604052806000815250905090565b60606118e082610c4e565b60006118ea6118be565b9050600081511161190a5760405180602001604052806000815250611935565b8061191484611d49565b6040516020016119259291906133e7565b6040516020818303038152906040525b915050919050565b6119478383611e17565b6119546000848484611737565b611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a9061338b565b60405180910390fd5b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a6357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611a735750611a7282612034565b5b9050919050565b611a868484848461209e565b6001811115611aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac190613870565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b1157611b0c816120a4565b611b50565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b4f57611b4e85826120ed565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b9257611b8d8161225a565b611bd1565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611bd057611bcf848261232b565b5b5b5050505050565b6000611be38261081e565b9050611bf38160008460016116cc565b611bfc8261081e565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611d228160008460016116de565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606060006001611d58846123aa565b01905060008167ffffffffffffffff811115611d7757611d76612926565b5b6040519080825280601f01601f191660200182016040528015611da95781602001600182028036833780820191505090505b509050600082602001820190505b600115611e0c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611e0057611dff613890565b5b04945060008503611db7575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061390b565b60405180910390fd5b611e8f8161168b565b15611ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec690613977565b60405180910390fd5b611edd6000838360016116cc565b611ee68161168b565b15611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613977565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46120306000838360016116de565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016120fa846108a4565b61210491906139c6565b90506000600760008481526020019081526020016000205490508181146121e9576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061226e91906139c6565b905060006009600084815260200190815260200160002054905060006008838154811061229e5761229d612f5e565b5b9060005260206000200154905080600883815481106122c0576122bf612f5e565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061230f5761230e6139fa565b5b6001900381819060005260206000200160009055905550505050565b6000612336836108a4565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612408577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816123fe576123fd613890565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612445576d04ee2d6d415b85acef8100000000838161243b5761243a613890565b5b0492506020810190505b662386f26fc10000831061247457662386f26fc10000838161246a57612469613890565b5b0492506010810190505b6305f5e100831061249d576305f5e100838161249357612492613890565b5b0492506008810190505b61271083106124c25761271083816124b8576124b7613890565b5b0492506004810190505b606483106124e557606483816124db576124da613890565b5b0492506002810190505b600a83106124f4576001810190505b80915050919050565b50805461250990612c53565b6000825580601f1061251b575061253a565b601f016020900490600052602060002090810190612539919061253d565b5b50565b5b8082111561255657600081600090555060010161253e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125a38161256e565b81146125ae57600080fd5b50565b6000813590506125c08161259a565b92915050565b6000602082840312156125dc576125db612564565b5b60006125ea848285016125b1565b91505092915050565b60008115159050919050565b612608816125f3565b82525050565b600060208201905061262360008301846125ff565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612663578082015181840152602081019050612648565b60008484015250505050565b6000601f19601f8301169050919050565b600061268b82612629565b6126958185612634565b93506126a5818560208601612645565b6126ae8161266f565b840191505092915050565b600060208201905081810360008301526126d38184612680565b905092915050565b6000819050919050565b6126ee816126db565b81146126f957600080fd5b50565b60008135905061270b816126e5565b92915050565b60006020828403121561272757612726612564565b5b6000612735848285016126fc565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127698261273e565b9050919050565b6127798161275e565b82525050565b60006020820190506127946000830184612770565b92915050565b6127a38161275e565b81146127ae57600080fd5b50565b6000813590506127c08161279a565b92915050565b600080604083850312156127dd576127dc612564565b5b60006127eb858286016127b1565b92505060206127fc858286016126fc565b9150509250929050565b61280f816126db565b82525050565b600060208201905061282a6000830184612806565b92915050565b60008060006060848603121561284957612848612564565b5b6000612857868287016127b1565b9350506020612868868287016127b1565b9250506040612879868287016126fc565b9150509250925092565b60006020828403121561289957612898612564565b5b60006128a7848285016127b1565b91505092915050565b6128b9816125f3565b81146128c457600080fd5b50565b6000813590506128d6816128b0565b92915050565b600080604083850312156128f3576128f2612564565b5b6000612901858286016127b1565b9250506020612912858286016128c7565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61295e8261266f565b810181811067ffffffffffffffff8211171561297d5761297c612926565b5b80604052505050565b600061299061255a565b905061299c8282612955565b919050565b600067ffffffffffffffff8211156129bc576129bb612926565b5b6129c58261266f565b9050602081019050919050565b82818337600083830152505050565b60006129f46129ef846129a1565b612986565b905082815260208101848484011115612a1057612a0f612921565b5b612a1b8482856129d2565b509392505050565b600082601f830112612a3857612a3761291c565b5b8135612a488482602086016129e1565b91505092915050565b60008060008060808587031215612a6b57612a6a612564565b5b6000612a79878288016127b1565b9450506020612a8a878288016127b1565b9350506040612a9b878288016126fc565b925050606085013567ffffffffffffffff811115612abc57612abb612569565b5b612ac887828801612a23565b91505092959194509250565b600067ffffffffffffffff821115612aef57612aee612926565b5b612af88261266f565b9050602081019050919050565b6000612b18612b1384612ad4565b612986565b905082815260208101848484011115612b3457612b33612921565b5b612b3f8482856129d2565b509392505050565b600082601f830112612b5c57612b5b61291c565b5b8135612b6c848260208601612b05565b91505092915050565b600080600060608486031215612b8e57612b8d612564565b5b6000612b9c868287016127b1565b9350506020612bad868287016126fc565b925050604084013567ffffffffffffffff811115612bce57612bcd612569565b5b612bda86828701612b47565b9150509250925092565b60008060408385031215612bfb57612bfa612564565b5b6000612c09858286016127b1565b9250506020612c1a858286016127b1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c6b57607f821691505b602082108103612c7e57612c7d612c24565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ce0602183612634565b9150612ceb82612c84565b604082019050919050565b60006020820190508181036000830152612d0f81612cd3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612d72603d83612634565b9150612d7d82612d16565b604082019050919050565b60006020820190508181036000830152612da181612d65565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612e04602d83612634565b9150612e0f82612da8565b604082019050919050565b60006020820190508181036000830152612e3381612df7565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612e96602b83612634565b9150612ea182612e3a565b604082019050919050565b60006020820190508181036000830152612ec581612e89565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612f28602c83612634565b9150612f3382612ecc565b604082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612fc3601883612634565b9150612fce82612f8d565b602082019050919050565b60006020820190508181036000830152612ff281612fb6565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613055602983612634565b915061306082612ff9565b604082019050919050565b6000602082019050818103600083015261308481613048565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130e7602683612634565b91506130f28261308b565b604082019050919050565b60006020820190508181036000830152613116816130da565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613179602583612634565b91506131848261311d565b604082019050919050565b600060208201905081810360008301526131a88161316c565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061320b602483612634565b9150613216826131af565b604082019050919050565b6000602082019050818103600083015261323a816131fe565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613277602083612634565b915061328282613241565b602082019050919050565b600060208201905081810360008301526132a68161326a565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006132e3601983612634565b91506132ee826132ad565b602082019050919050565b60006020820190508181036000830152613312816132d6565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613375603283612634565b915061338082613319565b604082019050919050565b600060208201905081810360008301526133a481613368565b9050919050565b600081905092915050565b60006133c182612629565b6133cb81856133ab565b93506133db818560208601612645565b80840191505092915050565b60006133f382856133b6565b91506133ff82846133b6565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000613467602e83612634565b91506134728261340b565b604082019050919050565b600060208201905081810360008301526134968161345a565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026134ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826134c2565b61350986836134c2565b95508019841693508086168417925050509392505050565b6000819050919050565b600061354661354161353c846126db565b613521565b6126db565b9050919050565b6000819050919050565b6135608361352b565b61357461356c8261354d565b8484546134cf565b825550505050565b600090565b61358961357c565b613594818484613557565b505050565b5b818110156135b8576135ad600082613581565b60018101905061359a565b5050565b601f8211156135fd576135ce8161349d565b6135d7846134b2565b810160208510156135e6578190505b6135fa6135f2856134b2565b830182613599565b50505b505050565b600082821c905092915050565b600061362060001984600802613602565b1980831691505092915050565b6000613639838361360f565b9150826002028217905092915050565b61365282612629565b67ffffffffffffffff81111561366b5761366a612926565b5b6136758254612c53565b6136808282856135bc565b600060209050601f8311600181146136b357600084156136a1578287015190505b6136ab858261362d565b865550613713565b601f1984166136c18661349d565b60005b828110156136e9578489015182556001820191506020850194506020810190506136c4565b868310156137065784890151613702601f89168261360f565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b60006137428261371b565b61374c8185613726565b935061375c818560208601612645565b6137658161266f565b840191505092915050565b60006080820190506137856000830187612770565b6137926020830186612770565b61379f6040830185612806565b81810360608301526137b18184613737565b905095945050505050565b6000815190506137cb8161259a565b92915050565b6000602082840312156137e7576137e6612564565b5b60006137f5848285016137bc565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b600061385a603583612634565b9150613865826137fe565b604082019050919050565b600060208201905081810360008301526138898161384d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006138f5602083612634565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613961601c83612634565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139d1826126db565b91506139dc836126db565b92508282039050818111156139f4576139f3613997565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122039290b714c2e7580db613fb134eab41655e42184bf906ab764b5d46d626b2f3964736f6c63430008120033