0 txs
0 calls
constructor
constructor(address elementEx)
functions
checkERC1155BuyOrder
viewfunction checkERC1155BuyOrder(tuple order, address taker, uint256 erc1155TokenId, uint128 erc1155SellAmount) view returns (tuple info, tuple takerCheckInfo)
checkERC1155BuyOrderEx
viewfunction checkERC1155BuyOrderEx(tuple order, address taker, uint256 erc1155TokenId, uint128 erc1155SellAmount, tuple signature) view returns (tuple info, tuple takerCheckInfo, bool validSignature)
checkERC1155SellOrder
viewfunction checkERC1155SellOrder(tuple order, address taker, uint128 erc1155BuyAmount) view returns (tuple info, tuple takerCheckInfo)
checkERC1155SellOrderEx
viewfunction checkERC1155SellOrderEx(tuple order, address taker, uint128 erc1155BuyAmount, tuple signature) view returns (tuple info, tuple takerCheckInfo, bool validSignature)
checkERC721BuyOrder
viewfunction checkERC721BuyOrder(tuple order, address taker, uint256 erc721TokenId) view returns (tuple info, tuple takerCheckInfo)
checkERC721BuyOrderEx
viewfunction checkERC721BuyOrderEx(tuple order, address taker, uint256 erc721TokenId, tuple signature) view returns (tuple info, tuple takerCheckInfo, bool validSignature)
checkERC721SellOrder
viewfunction checkERC721SellOrder(tuple order, address taker) view returns (tuple info, tuple takerCheckInfo)
checkERC721SellOrderEx
viewfunction checkERC721SellOrderEx(tuple order, address taker, tuple signature) view returns (tuple info, tuple takerCheckInfo, bool validSignature)
ELEMENT_EX
viewfunction ELEMENT_EX() view returns (address)
getERC1155BuyOrderInfo
viewfunction getERC1155BuyOrderInfo(tuple order) view returns (tuple orderInfo)
getERC1155SellOrderInfo
viewfunction getERC1155SellOrderInfo(tuple order) view returns (tuple orderInfo)
getERC721BuyOrderHash
viewfunction getERC721BuyOrderHash(tuple order) view returns (bytes32)
getERC721SellOrderHash
viewfunction getERC721SellOrderHash(tuple order) view returns (bytes32)
getHashNonce
viewfunction getHashNonce(address maker) view returns (uint256)
isERC1155OrderNonceCancelled
viewfunction isERC1155OrderNonceCancelled(address account, uint256 nonce) view returns (bool filled)
isERC721OrderNonceFilled
viewfunction isERC721OrderNonceFilled(address account, uint256 nonce) view returns (bool filled)
validateERC1155BuyOrderSignature
viewfunction validateERC1155BuyOrderSignature(tuple order, tuple signature) view returns (bool valid)
validateERC1155SellOrderSignature
viewfunction validateERC1155SellOrderSignature(tuple order, tuple signature) view returns (bool valid)
validateERC721BuyOrderSignature
viewfunction validateERC721BuyOrderSignature(tuple order, tuple signature) view returns (bool valid)
validateERC721SellOrderSignature
viewfunction validateERC721SellOrderSignature(tuple order, tuple signature) view returns (bool valid)
events
No events.
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162005be438038062005be48339818101604052810190620000379190620000dc565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200010e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a48262000077565b9050919050565b620000b68162000097565b8114620000c257600080fd5b50565b600081519050620000d681620000ab565b92915050565b600060208284031215620000f557620000f462000072565b5b60006200010584828501620000c5565b91505092915050565b608051615a27620001bd600039600081816104ef015281816105d5015281816106820152818161076e0152818161084601528181610d6901528181610d9001528181610f100152818161121a0152818161136f01528181611413015281816115e20152818161198b01528181611a2a01528181611acf01528181611c0901528181612005015281816120a901528181612234015281816127550152818161297101526129a60152615a276000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806361578d2c116100ad578063894e8ad911610071578063894e8ad9146103f85780639314590714610428578063bd7ad3e514610459578063c67a891114610489578063d2e5cfb1146104b95761012c565b806361578d2c14610303578063648daa321461033557806366e32165146103675780636e74f68a1461039857806388df8e9e146103c85761012c565b80633c82fb56116100f45780633c82fb561461022457806341924c6d146102425780634549a894146102725780635e725186146102a35780635edb57f3146102d35761012c565b8063078e6b3314610131578063161ad1c014610161578063287846681461019357806328cdc923146101c35780632e3bf8c3146101f3575b600080fd5b61014b6004803603810190610146919061340f565b6104eb565b6040516101589190613471565b60405180910390f35b61017b60048036038101906101769190613529565b610598565b60405161018a9392919061379a565b60405180910390f35b6101ad60048036038101906101a891906137d4565b6105d1565b6040516101ba9190613471565b60405180910390f35b6101dd60048036038101906101d8919061383d565b61067e565b6040516101ea9190613899565b60405180910390f35b61020d6004803603810190610208919061391c565b61071d565b60405161021b929190613ba1565b60405180910390f35b61022c610d67565b6040516102399190613bdb565b60405180910390f35b61025c60048036038101906102579190613c22565b610d8b565b6040516102699190613899565b60405180910390f35b61028c60048036038101906102879190613c62565b610e4d565b60405161029a929190613efc565b60405180910390f35b6102bd60048036038101906102b89190613f27565b61136b565b6040516102ca9190613f63565b60405180910390f35b6102ed60048036038101906102e89190613c22565b61140e565b6040516102fa9190613899565b60405180910390f35b61031d60048036038101906103189190613f7e565b6114d0565b60405161032c93929190614016565b60405180910390f35b61034f600480360381019061034a9190614050565b61150d565b60405161035e939291906140d3565b60405180910390f35b610381600480360381019061037c919061410d565b611548565b60405161038f929190614169565b60405180910390f35b6103b260048036038101906103ad9190614194565b611987565b6040516103bf9190613899565b60405180910390f35b6103e260048036038101906103dd91906141f0565b611a26565b6040516103ef9190613899565b60405180910390f35b610412600480360381019061040d919061424c565b611ac5565b60405161041f9190614370565b60405180910390f35b610442600480360381019061043d919061438b565b611b6f565b6040516104509291906145c1565b60405180910390f35b610473600480360381019061046e91906145ec565b611ffb565b6040516104809190614370565b60405180910390f35b6104a3600480360381019061049e9190614635565b6120a5565b6040516104b09190613899565b60405180910390f35b6104d360048036038101906104ce9190614691565b612144565b6040516104e293929190614714565b60405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663078e6b33836040518263ffffffff1660e01b81526004016105469190614de9565b602060405180830381865afa92505050801561058057506040513d601f19601f8201168201806040525081019061057d9190614e37565b60015b1561058e5780915050610593565b600090505b919050565b6105a0612fdf565b6105a8613070565b60006105b48686611548565b80935081945050506105c68685611987565b905093509350939050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166328784668836040518263ffffffff1660e01b815260040161062c9190614f73565b602060405180830381865afa92505050801561066657506040513d601f19601f820116820180604052508101906106639190614e37565b60015b156106745780915050610679565b600090505b919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166328cdc92384846040518363ffffffff1660e01b81526004016106db9291906151fe565b60006040518083038186803b1580156106f357600080fd5b505afa925050508015610704575060015b156107125760019050610717565b600090505b92915050565b6107256130ae565b61072d613156565b600061073886611ffb565b90506000806107928860e00160208101906107539190613f27565b8961010001358a600001602081019061076c9190613f27565b7f000000000000000000000000000000000000000000000000000000000000000061217f565b915091506107b18860000160208101906107ac9190613f27565b61136b565b856020018181525050826000015185604001818152505082606001516fffffffffffffffffffffffffffffffff1685606001818152505081856080018181525050600073ffffffffffffffffffffffffffffffffffffffff1688600001602081019061081d9190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158560a00190151590811515815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1688602001602081019061088e9190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158560c00190151590811515815250506108c288604001356121aa565b8560e00190151590811515815250506108de88604001356121d1565b856101000190151590811515815250506108fb88604001356121e8565b8561012001901515908115158152505061092b8860000160208101906109219190613f27565b8960600135610d8b565b158561014001901515908115158152505060008560600151118561016001901515908115158152505061096c888060c00190610967919061523d565b61221f565b856101800190151590811515815250506109998860a00135898060c00190610994919061523d565b612374565b85610220018181525050876101200160208101906109b791906152a0565b6fffffffffffffffffffffffffffffffff16821015856101e00190151590811515815250508085610200019015159081151581525050610a0a6001896080016020810190610a0591906152cd565b6123dd565b856101a0019015159081151581525050610a358860e0016020810190610a309190613f27565b61247c565b856101c0019015159081151581525050610a4e85612516565b856000019015159081151581525050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610d5c57600088610120016020810190610aa791906152a0565b6fffffffffffffffffffffffffffffffff161115610be957610b0f866fffffffffffffffffffffffffffffffff168960a00135610ae49190615329565b89610120016020810190610af891906152a0565b6fffffffffffffffffffffffffffffffff166125ae565b84604001818152505060005b888060c00190610b2b919061523d565b9050811015610be35788610120016020810190610b4891906152a0565b6fffffffffffffffffffffffffffffffff16876fffffffffffffffffffffffffffffffff168a8060c00190610b7d919061523d565b84818110610b8e57610b8d61536b565b5b9050602002810190610ba0919061539a565b60200135610bae9190615329565b610bb891906153f1565b85604001818151610bc99190615422565b915081815250508080610bdb90615456565b915050610b1b565b50610c06565b6fffffffffffffffffffffffffffffffff80168460400181815250505b610c296001888a6080016020810190610c1f91906152cd565b87604001516125db565b85606001866000018281525082151515158152505050610c626001888a6080016020810190610c5891906152cd565b87604001516126b8565b856080018660200182815250821515151581525050508460600151866fffffffffffffffffffffffffffffffff1611158460a001901515908115158152505063ffffffff60208960400135901c164210158460c00190151590811515815250508673ffffffffffffffffffffffffffffffffffffffff16886020016020810190610cec9190613f27565b73ffffffffffffffffffffffffffffffffffffffff161480610d4c5750600073ffffffffffffffffffffffffffffffffffffffff16886020016020810190610d349190613f27565b73ffffffffffffffffffffffffffffffffffffffff16145b8460e00190151590811515815250505b505050935093915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632011b06a85600886901c6040518363ffffffff1660e01b8152600401610ded9291906154d8565b602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190615516565b9050600060ff84166001901b9050600081831614159250505092915050565b610e556131a5565b610e5d613254565b6000610e6887611ac5565b9050610e85876000016020810190610e809190613f27565b61136b565b836020018181525050806000015183604001818152505080606001516fffffffffffffffffffffffffffffffff16836060018181525050600073ffffffffffffffffffffffffffffffffffffffff16876000016020810190610ee79190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158360800190151590811515815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16876020016020810190610f589190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158360a0019015159081151581525050610f8c87604001356121aa565b8360c0019015159081151581525050610fa887604001356121d1565b8360e0019015159081151581525050610fd7876000016020810190610fcd9190613f27565b8860600135610d8b565b1583610100019015159081151581525050600083606001511183610120019015159081151581525050611018878060c00190611013919061523d565b61221f565b836101400190151590811515815250506110478780610120019061103c9190615543565b89610100013561278b565b83610160019015159081151581525050611074600088608001602081019061106f91906152cd565b6123dd565b8361018001901515908115158152505061109f8760e001602081019061109a9190613f27565b61247c565b836101a00190151590811515815250506110cc8760a00135888060c001906110c7919061523d565b612374565b836101c001818152505061110c60008860000160208101906110ee9190613f27565b89608001602081019061110191906152cd565b866101c001516125db565b8461022001856101e001828152508215151515815250505061115a600088600001602081019061113c9190613f27565b89608001602081019061114f91906152cd565b866101c001516126b8565b84610240018561020001828152508215151515815250505061117b83612867565b836000019015159081151581525050600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611361576111f1878061012001906111d29190615543565b8960e00160208101906111e59190613f27565b8a6101000135896128fe565b82602001901515908115158152505061123e8760e00160208101906112169190613f27565b86887f000000000000000000000000000000000000000000000000000000000000000061217f565b836000018460600182151515158152508281525050508160000151846fffffffffffffffffffffffffffffffff1611158260400190151590811515815250508260600151846fffffffffffffffffffffffffffffffff16111582608001901515908115158152505063ffffffff60208860400135901c164210158260a00190151590811515815250508573ffffffffffffffffffffffffffffffffffffffff168760200160208101906112f19190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614806113515750600073ffffffffffffffffffffffffffffffffffffffff168760200160208101906113399190613f27565b73ffffffffffffffffffffffffffffffffffffffff16145b8260c00190151590811515815250505b5094509492505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635e725186836040518263ffffffff1660e01b81526004016113c69190613bdb565b602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114079190615516565b9050919050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663030b273085600886901c6040518363ffffffff1660e01b81526004016114709291906154d8565b602060405180830381865afa15801561148d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b19190615516565b9050600060ff84166001901b9050600081831614159250505092915050565b6114d86131a5565b6114e0613254565b60006114ee88888888610e4d565b8093508194505050611500888561067e565b9050955095509592505050565b6115156130ae565b61151d613156565b600061152a87878761071d565b809350819450505061153c8785611a26565b90509450945094915050565b611550612fdf565b611558613070565b61157384600001602081019061156e9190613f27565b61136b565b826020018181525050611585846105d1565b826040018181525050600073ffffffffffffffffffffffffffffffffffffffff168460000160208101906115b99190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158260600190151590811515815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684602001602081019061162a9190613f27565b73ffffffffffffffffffffffffffffffffffffffff16141582608001901515908115158152505061165e84604001356121aa565b8260a001901515908115158152505061167a84604001356121d1565b8260c001901515908115158152505061169684604001356121e8565b8260e00190151590811515815250506116c58460000160208101906116bb9190613f27565b856060013561140e565b15826101000190151590811515815250506116ee848060c001906116e9919061523d565b61221f565b8261012001901515908115158152505061171b8460a00135858060c00190611716919061523d565b612374565b826101c00181815250506117598460e001602081019061173b9190613f27565b8561010001358660000160208101906117549190613f27565b612922565b8261018001901515908115158152505061179d8460e001602081019061177f9190613f27565b8561010001358660000160208101906117989190613f27565b612965565b826101a00190151590811515815250506117ca60018560800160208101906117c591906152cd565b6123dd565b826101400190151590811515815250506117f58460e00160208101906117f09190613f27565b612a06565b8261016001901515908115158152505061180e82612aa0565b826000019015159081151581525050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119805763ffffffff60208560400135901c164210158160800190151590811515815250508273ffffffffffffffffffffffffffffffffffffffff1684602001602081019061189c9190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614806118fc5750600073ffffffffffffffffffffffffffffffffffffffff168460200160208101906118e49190613f27565b73ffffffffffffffffffffffffffffffffffffffff16145b8160a001901515908115158152505061192f60018486608001602081019061192491906152cd565b856101c001516125db565b8260400183600001828152508215151515815250505061196960018486608001602081019061195e91906152cd565b856101c001516126b8565b826060018360200182815250821515151581525050505b9250929050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e74f68a84846040518363ffffffff1660e01b81526004016119e49291906155a6565b60006040518083038186803b1580156119fc57600080fd5b505afa925050508015611a0d575060015b15611a1b5760019050611a20565b600090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166388df8e9e84846040518363ffffffff1660e01b8152600401611a83929190615702565b60006040518083038186803b158015611a9b57600080fd5b505afa925050508015611aac575060015b15611aba5760019050611abf565b600090505b92915050565b611acd61329d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663894e8ad9836040518263ffffffff1660e01b8152600401611b269190615732565b608060405180830381865afa925050508015611b6057506040513d601f19601f82011682018060405250810190611b5d9190615886565b60015b15611b6a57809150505b919050565b611b776132fe565b611b7f61339d565b611b9a856000016020810190611b959190613f27565b61136b565b826020018181525050611bac856104eb565b826040018181525050600073ffffffffffffffffffffffffffffffffffffffff16856000016020810190611be09190613f27565b73ffffffffffffffffffffffffffffffffffffffff1614158260600190151590811515815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16856020016020810190611c519190613f27565b73ffffffffffffffffffffffffffffffffffffffff161415826080019015159081151581525050611c8585604001356121aa565b8260a0019015159081151581525050611ca185604001356121d1565b8260c0019015159081151581525050611cd0856000016020810190611cc69190613f27565b866060013561140e565b158260e0019015159081151581525050611cf8858060c00190611cf3919061523d565b61221f565b82610100019015159081151581525050611d2785806101200190611d1c9190615543565b87610100013561278b565b82610120019015159081151581525050611d546000866080016020810190611d4f91906152cd565b6123dd565b82610140019015159081151581525050611d7f8560e0016020810190611d7a9190613f27565b612a06565b82610160019015159081151581525050611dac8560a00135868060c00190611da7919061523d565b612374565b82610180018181525050611dec6000866000016020810190611dce9190613f27565b876080016020810190611de191906152cd565b8561018001516125db565b836101e001846101a0018281525082151515158152505050611e3a6000866000016020810190611e1c9190613f27565b876080016020810190611e2f91906152cd565b8561018001516126b8565b8361020001846101c0018281525082151515158152505050611e5b82612b28565b826000019015159081151581525050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ff35763ffffffff60208660400135901c164210158160600190151590811515815250508373ffffffffffffffffffffffffffffffffffffffff16856020016020810190611ee99190613f27565b73ffffffffffffffffffffffffffffffffffffffff161480611f495750600073ffffffffffffffffffffffffffffffffffffffff16856020016020810190611f319190613f27565b73ffffffffffffffffffffffffffffffffffffffff16145b816080019015159081151581525050611f8b85806101200190611f6c9190615543565b8760e0016020810190611f7f9190613f27565b886101000135876128fe565b816000019015159081151581525050611fb78560e0016020810190611fb09190613f27565b8486612922565b816020019015159081151581525050611fe38560e0016020810190611fdc9190613f27565b8486612965565b8160400190151590811515815250505b935093915050565b61200361329d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bd7ad3e5836040518263ffffffff1660e01b815260040161205c91906158b3565b608060405180830381865afa92505050801561209657506040513d601f19601f820116820180604052508101906120939190615886565b60015b156120a057809150505b919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c67a891184846040518363ffffffff1660e01b81526004016121029291906158d5565b60006040518083038186803b15801561211a57600080fd5b505afa92505050801561212b575060015b15612139576001905061213e565b600090505b92915050565b61214c6132fe565b61215461339d565b6000612161878787611b6f565b809350819450505061217387856120a5565b90509450945094915050565b60008061218d868587612bb0565b9150600061219e8760008787612bfe565b11905094509492505050565b60008063ffffffff602084901c169050600063ffffffff8416905080821092505050919050565b60008063ffffffff83169050428111915050919050565b6000600160fc83901c0361221557600063ffffffff604084901c1690506305f5e10081111591505061221a565b600190505b919050565b600080600090505b83839050811015612368577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684848381811061227c5761227b61536b565b5b905060200281019061228e919061539a565b60000160208101906122a09190613f27565b73ffffffffffffffffffffffffffffffffffffffff16036122c557600091505061236e565b60008484838181106122da576122d961536b565b5b90506020028101906122ec919061539a565b80604001906122fb9190615905565b9050118015612346575061234484848381811061231b5761231a61536b565b5b905060200281019061232d919061539a565b600001602081019061233f9190613f27565b612c19565b155b1561235557600091505061236e565b808061236090615456565b915050612227565b50600190505b92915050565b60008084905060005b848490508110156123d15784848281811061239b5761239a61536b565b5b90506020028101906123ad919061539a565b60200135826123bc9190615422565b915080806123c990615456565b91505061237d565b50809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361241b5760009050612476565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361246a57829050612476565b61247382612c19565b90505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806124f7575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156125055760009050612511565b61250e82612c19565b90505b919050565b60008160a00151801561252a57508160c001515b801561253757508160e001515b801561254557508161010001515b801561255357508161012001515b801561256157508161014001515b801561256f57508161016001515b801561257d57508161018001515b801561258b5750816101a001515b80156125995750816101e001515b80156125a757508161020001515b9050919050565b600081600183856125bf9190615422565b6125c99190615968565b6125d391906153f1565b905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361261e57600080915091506126af565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361269c578515612690578473ffffffffffffffffffffffffffffffffffffffff163190508281101591506126af565b600080915091506126af565b6126a68486612c2c565b90508281101591505b94509492505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036126fb5760008091509150612782565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361274e5785600091509150612782565b61277984867f0000000000000000000000000000000000000000000000000000000000000000612d12565b90508281101591505b94509492505050565b60008084849050111561285b57600082146127a95760009050612860565b60005b848490508110156128595760008585838181106127cc576127cb61536b565b5b90506020028101906127de919061599c565b60000160208101906127f091906159c4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612835575061283381612c19565b155b1561284557600092505050612860565b50808061285190615456565b9150506127ac565b505b600190505b9392505050565b60008160800151801561287b57508160a001515b801561288857508160c001515b801561289557508160e001515b80156128a357508161010001515b80156128b157508161012001515b80156128bf57508161014001515b80156128cd57508161016001515b80156128db57508161018001515b80156128e957508161022001515b80156128f757508161024001515b9050919050565b6000808686905003612914578183149050612919565b600190505b95945050505050565b60008173ffffffffffffffffffffffffffffffffffffffff166129458585612d2b565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b600080612995856001857f0000000000000000000000000000000000000000000000000000000000000000612bfe565b11156129a457600190506129ff565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166129e58585612d81565b73ffffffffffffffffffffffffffffffffffffffff161490505b9392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612a81575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612a8f5760009050612a9b565b612a9882612c19565b90505b919050565b600081606001518015612ab4575081608001515b8015612ac157508160a001515b8015612ace57508160c001515b8015612adb57508160e001515b8015612ae957508161010001515b8015612af757508161012001515b8015612b0557508161018001515b8015612b135750816101a001515b8015612b2157508161014001515b9050919050565b600081606001518015612b3c575081608001515b8015612b4957508160a001515b8015612b5657508160c001515b8015612b6357508160e001515b8015612b7157508161010001515b8015612b7f57508161012001515b8015612b8d5750816101e001515b8015612b9b57508161020001515b8015612ba957508161014001515b9050919050565b60006040517efdd58e000000000000000000000000000000000000000000000000000000008152836004820152826024820152602081604483885afa15612bf657805191505b509392505050565b6000612c0c85858585612dd7565b5080915050949350505050565b600080823b905060008111915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612ca7575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612ccb578173ffffffffffffffffffffffffffffffffffffffff16319050612d0c565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152826004820152602081602483875afa15612d0a57805191505b505b92915050565b6000612d1f848484612ede565b50809150509392505050565b60006040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602483875afa15612d7a57600160a01b81511015612d7957805191505b5b5092915050565b60006040517f081812fc000000000000000000000000000000000000000000000000000000008152826004820152602081602483875afa15612dd057600160a01b81511015612dcf57805191505b5b5092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480612e54575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15612e655760008091509150612ed5565b60006040517fe985e9c50000000000000000000000000000000000000000000000000000000081528560048201528460248201526020816044838b5afa15612eb757600081511115612eb657600191505b5b508015612ecc57600160009250925050612ed5565b60008092509250505b94509492505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612f5b575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15612f8c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600091509150612fd7565b6040517fdd62ed3e000000000000000000000000000000000000000000000000000000008152846004820152836024820152602081604483895afa15612fd55780519250600191505b505b935093915050565b604051806101e001604052806000151581526020016000815260200160008019168152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600081525090565b6040518060c0016040528060008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b60405180610240016040528060001515815260200160008152602001600080191681526020016000815260200160008152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600015158152602001600081525090565b6040518061010001604052806000815260200160008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581525090565b6040518061026001604052806000151581526020016000815260200160008019168152602001600081526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060e00160405280600081526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581525090565b604051806080016040528060008019168152602001600060038111156132c6576132c5614295565b5b815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff1681525090565b60405180610220016040528060001515815260200160008152602001600080191681526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060a001604052806000151581526020016000151581526020016000151581526020016000151581526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b60006101408284031215613406576134056133ea565b5b81905092915050565b600060208284031215613425576134246133e0565b5b600082013567ffffffffffffffff811115613443576134426133e5565b5b61344f848285016133ef565b91505092915050565b6000819050919050565b61346b81613458565b82525050565b60006020820190506134866000830184613462565b92915050565b600061012082840312156134a3576134a26133ea565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134d7826134ac565b9050919050565b6134e7816134cc565b81146134f257600080fd5b50565b600081359050613504816134de565b92915050565b6000608082840312156135205761351f6133ea565b5b81905092915050565b600080600060c08486031215613542576135416133e0565b5b600084013567ffffffffffffffff8111156135605761355f6133e5565b5b61356c8682870161348c565b935050602061357d868287016134f5565b925050604061358e8682870161350a565b9150509250925092565b60008115159050919050565b6135ad81613598565b82525050565b6000819050919050565b6135c6816135b3565b82525050565b6135d581613458565b82525050565b6101e0820160008201516135f260008501826135a4565b50602082015161360560208501826135bd565b50604082015161361860408501826135cc565b50606082015161362b60608501826135a4565b50608082015161363e60808501826135a4565b5060a082015161365160a08501826135a4565b5060c082015161366460c08501826135a4565b5060e082015161367760e08501826135a4565b5061010082015161368c6101008501826135a4565b506101208201516136a16101208501826135a4565b506101408201516136b66101408501826135a4565b506101608201516136cb6101608501826135a4565b506101808201516136e06101808501826135a4565b506101a08201516136f56101a08501826135a4565b506101c082015161370a6101c08501826135bd565b50505050565b60c08201600082015161372660008501826135bd565b50602082015161373960208501826135bd565b50604082015161374c60408501826135a4565b50606082015161375f60608501826135a4565b50608082015161377260808501826135a4565b5060a082015161378560a08501826135a4565b50505050565b61379481613598565b82525050565b60006102c0820190506137b060008301866135db565b6137be6101e0830185613710565b6137cc6102a083018461378b565b949350505050565b6000602082840312156137ea576137e96133e0565b5b600082013567ffffffffffffffff811115613808576138076133e5565b5b6138148482850161348c565b91505092915050565b60006101608284031215613834576138336133ea565b5b81905092915050565b60008060a08385031215613854576138536133e0565b5b600083013567ffffffffffffffff811115613872576138716133e5565b5b61387e8582860161381d565b925050602061388f8582860161350a565b9150509250929050565b60006020820190506138ae600083018461378b565b92915050565b600061014082840312156138cb576138ca6133ea565b5b81905092915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6138f9816138d4565b811461390457600080fd5b50565b600081359050613916816138f0565b92915050565b600080600060608486031215613935576139346133e0565b5b600084013567ffffffffffffffff811115613953576139526133e5565b5b61395f868287016138b4565b9350506020613970868287016134f5565b925050604061398186828701613907565b9150509250925092565b610240820160008201516139a260008501826135a4565b5060208201516139b560208501826135bd565b5060408201516139c860408501826135cc565b5060608201516139db60608501826135bd565b5060808201516139ee60808501826135bd565b5060a0820151613a0160a08501826135a4565b5060c0820151613a1460c08501826135a4565b5060e0820151613a2760e08501826135a4565b50610100820151613a3c6101008501826135a4565b50610120820151613a516101208501826135a4565b50610140820151613a666101408501826135a4565b50610160820151613a7b6101608501826135a4565b50610180820151613a906101808501826135a4565b506101a0820151613aa56101a08501826135a4565b506101c0820151613aba6101c08501826135a4565b506101e0820151613acf6101e08501826135a4565b50610200820151613ae46102008501826135a4565b50610220820151613af96102208501826135bd565b50505050565b61010082016000820151613b1660008501826135bd565b506020820151613b2960208501826135bd565b506040820151613b3c60408501826135bd565b506060820151613b4f60608501826135a4565b506080820151613b6260808501826135a4565b5060a0820151613b7560a08501826135a4565b5060c0820151613b8860c08501826135a4565b5060e0820151613b9b60e08501826135a4565b50505050565b600061034082019050613bb7600083018561398b565b613bc5610240830184613aff565b9392505050565b613bd5816134cc565b82525050565b6000602082019050613bf06000830184613bcc565b92915050565b613bff816135b3565b8114613c0a57600080fd5b50565b600081359050613c1c81613bf6565b92915050565b60008060408385031215613c3957613c386133e0565b5b6000613c47858286016134f5565b9250506020613c5885828601613c0d565b9150509250929050565b60008060008060808587031215613c7c57613c7b6133e0565b5b600085013567ffffffffffffffff811115613c9a57613c996133e5565b5b613ca68782880161381d565b9450506020613cb7878288016134f5565b9350506040613cc887828801613c0d565b9250506060613cd987828801613907565b91505092959194509250565b61026082016000820151613cfc60008501826135a4565b506020820151613d0f60208501826135bd565b506040820151613d2260408501826135cc565b506060820151613d3560608501826135bd565b506080820151613d4860808501826135a4565b5060a0820151613d5b60a08501826135a4565b5060c0820151613d6e60c08501826135a4565b5060e0820151613d8160e08501826135a4565b50610100820151613d966101008501826135a4565b50610120820151613dab6101208501826135a4565b50610140820151613dc06101408501826135a4565b50610160820151613dd56101608501826135a4565b50610180820151613dea6101808501826135a4565b506101a0820151613dff6101a08501826135a4565b506101c0820151613e146101c08501826135bd565b506101e0820151613e296101e08501826135bd565b50610200820151613e3e6102008501826135bd565b50610220820151613e536102208501826135a4565b50610240820151613e686102408501826135a4565b50505050565b60e082016000820151613e8460008501826135bd565b506020820151613e9760208501826135a4565b506040820151613eaa60408501826135a4565b506060820151613ebd60608501826135a4565b506080820151613ed060808501826135a4565b5060a0820151613ee360a08501826135a4565b5060c0820151613ef660c08501826135a4565b50505050565b600061034082019050613f126000830185613ce5565b613f20610260830184613e6e565b9392505050565b600060208284031215613f3d57613f3c6133e0565b5b6000613f4b848285016134f5565b91505092915050565b613f5d816135b3565b82525050565b6000602082019050613f786000830184613f54565b92915050565b60008060008060006101008688031215613f9b57613f9a6133e0565b5b600086013567ffffffffffffffff811115613fb957613fb86133e5565b5b613fc58882890161381d565b9550506020613fd6888289016134f5565b9450506040613fe788828901613c0d565b9350506060613ff888828901613907565b92505060806140098882890161350a565b9150509295509295909350565b60006103608201905061402c6000830186613ce5565b61403a610260830185613e6e565b61404861034083018461378b565b949350505050565b60008060008060e0858703121561406a576140696133e0565b5b600085013567ffffffffffffffff811115614088576140876133e5565b5b614094878288016138b4565b94505060206140a5878288016134f5565b93505060406140b687828801613907565b92505060606140c78782880161350a565b91505092959194509250565b6000610360820190506140e9600083018661398b565b6140f7610240830185613aff565b61410561034083018461378b565b949350505050565b60008060408385031215614124576141236133e0565b5b600083013567ffffffffffffffff811115614142576141416133e5565b5b61414e8582860161348c565b925050602061415f858286016134f5565b9150509250929050565b60006102a08201905061417f60008301856135db565b61418d6101e0830184613710565b9392505050565b60008060a083850312156141ab576141aa6133e0565b5b600083013567ffffffffffffffff8111156141c9576141c86133e5565b5b6141d58582860161348c565b92505060206141e68582860161350a565b9150509250929050565b60008060a08385031215614207576142066133e0565b5b600083013567ffffffffffffffff811115614225576142246133e5565b5b614231858286016138b4565b92505060206142428582860161350a565b9150509250929050565b600060208284031215614262576142616133e0565b5b600082013567ffffffffffffffff8111156142805761427f6133e5565b5b61428c8482850161381d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106142d5576142d4614295565b5b50565b60008190506142e6826142c4565b919050565b60006142f6826142d8565b9050919050565b614306816142eb565b82525050565b614315816138d4565b82525050565b60808201600082015161433160008501826135cc565b50602082015161434460208501826142fd565b506040820151614357604085018261430c565b50606082015161436a606085018261430c565b50505050565b6000608082019050614385600083018461431b565b92915050565b6000806000606084860312156143a4576143a36133e0565b5b600084013567ffffffffffffffff8111156143c2576143c16133e5565b5b6143ce868287016133ef565b93505060206143df868287016134f5565b92505060406143f086828701613c0d565b9150509250925092565b6102208201600082015161441160008501826135a4565b50602082015161442460208501826135bd565b50604082015161443760408501826135cc565b50606082015161444a60608501826135a4565b50608082015161445d60808501826135a4565b5060a082015161447060a08501826135a4565b5060c082015161448360c08501826135a4565b5060e082015161449660e08501826135a4565b506101008201516144ab6101008501826135a4565b506101208201516144c06101208501826135a4565b506101408201516144d56101408501826135a4565b506101608201516144ea6101608501826135a4565b506101808201516144ff6101808501826135bd565b506101a08201516145146101a08501826135bd565b506101c08201516145296101c08501826135bd565b506101e082015161453e6101e08501826135a4565b506102008201516145536102008501826135a4565b50505050565b60a08201600082015161456f60008501826135a4565b50602082015161458260208501826135a4565b50604082015161459560408501826135a4565b5060608201516145a860608501826135a4565b5060808201516145bb60808501826135a4565b50505050565b60006102c0820190506145d760008301856143fa565b6145e5610220830184614559565b9392505050565b600060208284031215614602576146016133e0565b5b600082013567ffffffffffffffff8111156146205761461f6133e5565b5b61462c848285016138b4565b91505092915050565b60008060a0838503121561464c5761464b6133e0565b5b600083013567ffffffffffffffff81111561466a576146696133e5565b5b614676858286016133ef565b92505060206146878582860161350a565b9150509250929050565b60008060008060e085870312156146ab576146aa6133e0565b5b600085013567ffffffffffffffff8111156146c9576146c86133e5565b5b6146d5878288016133ef565b94505060206146e6878288016134f5565b93505060406146f787828801613c0d565b92505060606147088782880161350a565b91505092959194509250565b60006102e08201905061472a60008301866143fa565b614738610220830185614559565b6147466102c083018461378b565b949350505050565b600061475d60208401846134f5565b905092915050565b61476e816134cc565b82525050565b60006147836020840184613c0d565b905092915050565b6000614796826134cc565b9050919050565b6147a68161478b565b81146147b157600080fd5b50565b6000813590506147c38161479d565b92915050565b60006147d860208401846147b4565b905092915050565b6000819050919050565b60006148056148006147fb846134ac565b6147e0565b6134ac565b9050919050565b6000614817826147ea565b9050919050565b60006148298261480c565b9050919050565b6148398161481e565b82525050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261486b5761486a614849565b5b83810192508235915060208301925067ffffffffffffffff8211156148935761489261483f565b5b6020820236038313156148a9576148a8614844565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b600080833560016020038436030381126148e9576148e8614849565b5b83810192508235915060208301925067ffffffffffffffff8211156149115761491061483f565b5b60018202360383131561492757614926614844565b5b509250929050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061496c838561492f565b9350614979838584614940565b6149828361494f565b840190509392505050565b6000606083016149a0600084018461474e565b6149ad6000860182614765565b506149bb6020840184614774565b6149c860208601826135bd565b506149d660408401846148cc565b85830360408701526149e9838284614960565b925050508091505092915050565b6000614a03838361498d565b905092915050565b600082356001606003833603038112614a2757614a26614849565b5b82810191505092915050565b6000602082019050919050565b6000614a4c83856148b1565b935083602084028501614a5e846148c2565b8060005b87811015614aa2578484038952614a798284614a0b565b614a8385826149f7565b9450614a8e83614a33565b925060208a01995050600181019050614a62565b50829750879450505050509392505050565b60008083356001602003843603038112614ad157614ad0614849565b5b83810192508235915060208301925067ffffffffffffffff821115614af957614af861483f565b5b602082023603831315614b0f57614b0e614844565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b6000614b3d826134cc565b9050919050565b614b4d81614b32565b8114614b5857600080fd5b50565b600081359050614b6a81614b44565b92915050565b6000614b7f6020840184614b5b565b905092915050565b6000614b928261480c565b9050919050565b614ba281614b87565b82525050565b600060408301614bbb6000840184614b70565b614bc86000860182614b99565b50614bd660208401846148cc565b8583036020870152614be9838284614960565b925050508091505092915050565b6000614c038383614ba8565b905092915050565b600082356001604003833603038112614c2757614c26614849565b5b82810191505092915050565b6000602082019050919050565b6000614c4c8385614b17565b935083602084028501614c5e84614b28565b8060005b87811015614ca2578484038952614c798284614c0b565b614c838582614bf7565b9450614c8e83614c33565b925060208a01995050600181019050614c62565b50829750879450505050509392505050565b60006101408301614cc8600084018461474e565b614cd56000860182614765565b50614ce3602084018461474e565b614cf06020860182614765565b50614cfe6040840184614774565b614d0b60408601826135bd565b50614d196060840184614774565b614d2660608601826135bd565b50614d3460808401846147c9565b614d416080860182614830565b50614d4f60a0840184614774565b614d5c60a08601826135bd565b50614d6a60c084018461484e565b85830360c0870152614d7d838284614a40565b92505050614d8e60e084018461474e565b614d9b60e0860182614765565b50614daa610100840184614774565b614db86101008601826135bd565b50614dc7610120840184614ab4565b858303610120870152614ddb838284614c40565b925050508091505092915050565b60006020820190508181036000830152614e038184614cb4565b905092915050565b614e1481613458565b8114614e1f57600080fd5b50565b600081519050614e3181614e0b565b92915050565b600060208284031215614e4d57614e4c6133e0565b5b6000614e5b84828501614e22565b91505092915050565b60006101208301614e78600084018461474e565b614e856000860182614765565b50614e93602084018461474e565b614ea06020860182614765565b50614eae6040840184614774565b614ebb60408601826135bd565b50614ec96060840184614774565b614ed660608601826135bd565b50614ee460808401846147c9565b614ef16080860182614830565b50614eff60a0840184614774565b614f0c60a08601826135bd565b50614f1a60c084018461484e565b85830360c0870152614f2d838284614a40565b92505050614f3e60e084018461474e565b614f4b60e0860182614765565b50614f5a610100840184614774565b614f686101008601826135bd565b508091505092915050565b60006020820190508181036000830152614f8d8184614e64565b905092915050565b6000614fa46020840184613907565b905092915050565b60006101608301614fc0600084018461474e565b614fcd6000860182614765565b50614fdb602084018461474e565b614fe86020860182614765565b50614ff66040840184614774565b61500360408601826135bd565b506150116060840184614774565b61501e60608601826135bd565b5061502c60808401846147c9565b6150396080860182614830565b5061504760a0840184614774565b61505460a08601826135bd565b5061506260c084018461484e565b85830360c0870152615075838284614a40565b9250505061508660e084018461474e565b61509360e0860182614765565b506150a2610100840184614774565b6150b06101008601826135bd565b506150bf610120840184614ab4565b8583036101208701526150d3838284614c40565b925050506150e5610140840184614f95565b6150f361014086018261430c565b508091505092915050565b600060ff82169050919050565b615114816150fe565b811461511f57600080fd5b50565b6000813590506151318161510b565b92915050565b60006151466020840184615122565b905092915050565b615157816150fe565b82525050565b60008135905061516c81614e0b565b92915050565b6000615181602084018461515d565b905092915050565b6080820161519a6000830183615137565b6151a7600085018261514e565b506151b56020830183615137565b6151c2602085018261514e565b506151d06040830183615172565b6151dd60408501826135cc565b506151eb6060830183615172565b6151f860608501826135cc565b50505050565b600060a08201905081810360008301526152188185614fac565b90506152276020830184615189565b9392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261525a5761525961522e565b5b80840192508235915067ffffffffffffffff82111561527c5761527b615233565b5b60208301925060208202360383131561529857615297615238565b5b509250929050565b6000602082840312156152b6576152b56133e0565b5b60006152c484828501613907565b91505092915050565b6000602082840312156152e3576152e26133e0565b5b60006152f1848285016147b4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000615334826135b3565b915061533f836135b3565b925082820261534d816135b3565b91508282048414831517615364576153636152fa565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000823560016060038336030381126153b6576153b561522e565b5b80830191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006153fc826135b3565b9150615407836135b3565b925082615417576154166153c2565b5b828204905092915050565b600061542d826135b3565b9150615438836135b3565b92508282019050808211156154505761544f6152fa565b5b92915050565b6000615461826135b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615493576154926152fa565b5b600182019050919050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6154d28161549e565b82525050565b60006040820190506154ed6000830185613bcc565b6154fa60208301846154c9565b9392505050565b60008151905061551081613bf6565b92915050565b60006020828403121561552c5761552b6133e0565b5b600061553a84828501615501565b91505092915050565b600080833560016020038436030381126155605761555f61522e565b5b80840192508235915067ffffffffffffffff82111561558257615581615233565b5b60208301925060208202360383131561559e5761559d615238565b5b509250929050565b600060a08201905081810360008301526155c08185614e64565b90506155cf6020830184615189565b9392505050565b600061014083016155ea600084018461474e565b6155f76000860182614765565b50615605602084018461474e565b6156126020860182614765565b506156206040840184614774565b61562d60408601826135bd565b5061563b6060840184614774565b61564860608601826135bd565b5061565660808401846147c9565b6156636080860182614830565b5061567160a0840184614774565b61567e60a08601826135bd565b5061568c60c084018461484e565b85830360c087015261569f838284614a40565b925050506156b060e084018461474e565b6156bd60e0860182614765565b506156cc610100840184614774565b6156da6101008601826135bd565b506156e9610120840184614f95565b6156f761012086018261430c565b508091505092915050565b600060a082019050818103600083015261571c81856155d6565b905061572b6020830184615189565b9392505050565b6000602082019050818103600083015261574c8184614fac565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6157918261494f565b810181811067ffffffffffffffff821117156157b0576157af615759565b5b80604052505050565b60006157c36133d6565b90506157cf8282615788565b919050565b600481106157e157600080fd5b50565b6000815190506157f3816157d4565b92915050565b600081519050615808816138f0565b92915050565b60006080828403121561582457615823615754565b5b61582e60806157b9565b9050600061583e84828501614e22565b6000830152506020615852848285016157e4565b6020830152506040615866848285016157f9565b604083015250606061587a848285016157f9565b60608301525092915050565b60006080828403121561589c5761589b6133e0565b5b60006158aa8482850161580e565b91505092915050565b600060208201905081810360008301526158cd81846155d6565b905092915050565b600060a08201905081810360008301526158ef8185614cb4565b90506158fe6020830184615189565b9392505050565b600080833560016020038436030381126159225761592161522e565b5b80840192508235915067ffffffffffffffff82111561594457615943615233565b5b6020830192506001820236038313156159605761595f615238565b5b509250929050565b6000615973826135b3565b915061597e836135b3565b9250828203905081811115615996576159956152fa565b5b92915050565b6000823560016040038336030381126159b8576159b761522e565b5b80830191505092915050565b6000602082840312156159da576159d96133e0565b5b60006159e884828501614b5b565b9150509291505056fea2646970667358221220e77586a47a129cfeb9fb5d536cd12bf4a86c7f278b83c69b73f2a9ee6a89255564736f6c6343000811003300000000000000000000000018cd9270dbdca86d470cfb3be1b156241fffa9de