60806040523480156200001157600080fd5b50604051806020016040528060008152506200003381620000f660201b60201c565b5062000054620000486200011260201b60201c565b6200011a60201b60201c565b6040518060400160405280600c81526020017f5261696e626f77426f726564000000000000000000000000000000000000000081525060049080519060200190620000a1929190620001e0565b506040518060400160405280600c81526020017f5261696e626f77426f726564000000000000000000000000000000000000000081525060059080519060200190620000ef929190620001e0565b50620002f5565b80600290805190602001906200010e929190620001e0565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001ee9062000290565b90600052602060002090601f0160209004810192826200021257600085556200025e565b82601f106200022d57805160ff19168380011785556200025e565b828001600101855582156200025e579182015b828111156200025d57825182559160200191906001019062000240565b5b5090506200026d919062000271565b5090565b5b808211156200028c57600081600090555060010162000272565b5090565b60006002820490506001821680620002a957607f821691505b60208210811415620002c057620002bf620002c6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613e6580620003056000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c8063862440e2116100ad578063c87b56dd11610071578063c87b56dd14610318578063d81d0a1514610348578063e985e9c514610364578063f242432a14610394578063f2fde38b146103b05761012b565b8063862440e2146102885780638da5cb5b146102a457806395d89b41146102c2578063a22cb465146102e0578063b390c0ab146102fc5761012b565b80632eb2c2d6116100f45780632eb2c2d6146101fa5780634e1273f414610216578063510f410414610246578063715018a61461026257806383ca4b6f1461026c5761012b565b8062fdd58e1461013057806301ffc9a71461016057806306fdde03146101905780630e89341c146101ae578063156e29f6146101de575b600080fd5b61014a60048036038101906101459190612b37565b6103cc565b6040516101579190613461565b60405180910390f35b61017a60048036038101906101759190612cba565b610495565b6040516101879190613244565b60405180910390f35b610198610577565b6040516101a5919061325f565b60405180910390f35b6101c860048036038101906101c39190612d14565b610605565b6040516101d5919061325f565b60405180910390f35b6101f860048036038101906101f39190612b77565b6106aa565b005b610214600480360381019061020f919061281b565b610746565b005b610230600480360381019061022b9190612bca565b6107e7565b60405161023d91906131eb565b60405180910390f35b610260600480360381019061025b9190612a0c565b610900565b005b61026a6109a9565b005b61028660048036038101906102819190612c42565b610a31565b005b6102a2600480360381019061029d9190612d41565b610a40565b005b6102ac610b20565b6040516102b9919061310e565b60405180910390f35b6102ca610b4a565b6040516102d7919061325f565b60405180910390f35b6102fa60048036038101906102f59190612af7565b610bd8565b005b61031660048036038101906103119190612d9d565b610bee565b005b610332600480360381019061032d9190612d14565b610bfd565b60405161033f919061325f565b60405180910390f35b610362600480360381019061035d9190612981565b610c9d565b005b61037e600480360381019061037991906127db565b610d39565b60405161038b9190613244565b60405180910390f35b6103ae60048036038101906103a991906128ea565b610dcd565b005b6103ca60048036038101906103c591906127ae565b610e6e565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906132c1565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056057507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610570575061056f82610f66565b5b9050919050565b6004805461058490613701565b80601f01602080910402602001604051908101604052809291908181526020018280546105b090613701565b80156105fd5780601f106105d2576101008083540402835291602001916105fd565b820191906000526020600020905b8154815290600101906020018083116105e057829003601f168201915b505050505081565b606060066000838152602001908152602001600020805461062590613701565b80601f016020809104026020016040519081016040528092919081815260200182805461065190613701565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b50505050509050919050565b6106b2610fd0565b73ffffffffffffffffffffffffffffffffffffffff166106d0610b20565b73ffffffffffffffffffffffffffffffffffffffff1614610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d906133c1565b60405180910390fd5b61074183838360405180602001604052806000815250610fd8565b505050565b61074e610fd0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061079457506107938561078e610fd0565b610d39565b5b6107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca90613361565b60405180910390fd5b6107e0858585858561116e565b5050505050565b6060815183511461082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490613401565b60405180910390fd5b6000835167ffffffffffffffff81111561084a5761084961383a565b5b6040519080825280602002602001820160405280156108785781602001602082028036833780820191505090505b50905060005b84518110156108f5576108c585828151811061089d5761089c61380b565b5b60200260200101518583815181106108b8576108b761380b565b5b60200260200101516103cc565b8282815181106108d8576108d761380b565b5b602002602001018181525050806108ee90613764565b905061087e565b508091505092915050565b610908610fd0565b73ffffffffffffffffffffffffffffffffffffffff16610926610b20565b73ffffffffffffffffffffffffffffffffffffffff161461097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906133c1565b60405180910390fd5b610987858585611482565b6109a285838360405180602001604052806000815250611733565b5050505050565b6109b1610fd0565b73ffffffffffffffffffffffffffffffffffffffff166109cf610b20565b73ffffffffffffffffffffffffffffffffffffffff1614610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c906133c1565b60405180910390fd5b610a2f6000611951565b565b610a3c338383611482565b5050565b610a48610fd0565b73ffffffffffffffffffffffffffffffffffffffff16610a66610b20565b73ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab3906133c1565b60405180910390fd5b80600660008481526020019081526020016000209080519060200190610ae3929190612486565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b82604051610b14919061325f565b60405180910390a25050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60058054610b5790613701565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8390613701565b8015610bd05780601f10610ba557610100808354040283529160200191610bd0565b820191906000526020600020905b815481529060010190602001808311610bb357829003601f168201915b505050505081565b610bea610be3610fd0565b8383611a17565b5050565b610bf9338383611b84565b5050565b60066020528060005260406000206000915090508054610c1c90613701565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4890613701565b8015610c955780601f10610c6a57610100808354040283529160200191610c95565b820191906000526020600020905b815481529060010190602001808311610c7857829003601f168201915b505050505081565b610ca5610fd0565b73ffffffffffffffffffffffffffffffffffffffff16610cc3610b20565b73ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d10906133c1565b60405180910390fd5b610d3483838360405180602001604052806000815250611733565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610dd5610fd0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610e1b5750610e1a85610e15610fd0565b610d39565b5b610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5190613321565b60405180910390fd5b610e678585858585611da1565b5050505050565b610e76610fd0565b73ffffffffffffffffffffffffffffffffffffffff16610e94610b20565b73ffffffffffffffffffffffffffffffffffffffff1614610eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee1906133c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906132e1565b60405180910390fd5b610f6381611951565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613441565b60405180910390fd5b6000611052610fd0565b90506110738160008761106488612023565b61106d88612023565b8761209d565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110d291906135f5565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161115092919061347c565b60405180910390a4611167816000878787876120a5565b5050505050565b81518351146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990613421565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990613341565b60405180910390fd5b600061122c610fd0565b905061123c81878787878761209d565b60005b84518110156113ed57600085828151811061125d5761125c61380b565b5b60200260200101519050600085838151811061127c5761127b61380b565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561131d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611314906133a1565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113d291906135f5565b92505081905550505050806113e690613764565b905061123f565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161146492919061320d565b60405180910390a461147a81878787878761228c565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990613381565b60405180910390fd5b8051825114611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613421565b60405180910390fd5b6000611540610fd0565b90506115608185600086866040518060200160405280600081525061209d565b60005b83518110156116ad5760008482815181106115815761158061380b565b5b6020026020010151905060008483815181106115a05761159f61380b565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890613301565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505080806116a590613764565b915050611563565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161172592919061320d565b60405180910390a450505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90613441565b60405180910390fd5b81518351146117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90613421565b60405180910390fd5b60006117f1610fd0565b90506118028160008787878761209d565b60005b84518110156118bb578381815181106118215761182061380b565b5b602002602001015160008087848151811061183f5761183e61380b565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118a191906135f5565b9250508190555080806118b390613764565b915050611805565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161193392919061320d565b60405180910390a461194a8160008787878761228c565b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d906133e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b779190613244565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90613381565b60405180910390fd5b6000611bfe610fd0565b9050611c2e81856000611c1087612023565b611c1987612023565b6040518060200160405280600081525061209d565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613301565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611d9292919061347c565b60405180910390a45050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0890613341565b60405180910390fd5b6000611e1b610fd0565b9050611e3b818787611e2c88612023565b611e3588612023565b8761209d565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec9906133a1565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f8791906135f5565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161200492919061347c565b60405180910390a461201a8288888888886120a5565b50505050505050565b60606000600167ffffffffffffffff8111156120425761204161383a565b5b6040519080825280602002602001820160405280156120705781602001602082028036833780820191505090505b50905082816000815181106120885761208761380b565b5b60200260200101818152505080915050919050565b505050505050565b6120c48473ffffffffffffffffffffffffffffffffffffffff16612473565b15612284578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161210a959493929190613191565b602060405180830381600087803b15801561212457600080fd5b505af192505050801561215557506040513d601f19601f820116820180604052508101906121529190612ce7565b60015b6121fb57612161613869565b806308c379a014156121be5750612176613d3d565b8061218157506121c0565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b5919061325f565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613281565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612279906132a1565b60405180910390fd5b505b505050505050565b6122ab8473ffffffffffffffffffffffffffffffffffffffff16612473565b1561246b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016122f1959493929190613129565b602060405180830381600087803b15801561230b57600080fd5b505af192505050801561233c57506040513d601f19601f820116820180604052508101906123399190612ce7565b60015b6123e257612348613869565b806308c379a014156123a5575061235d613d3d565b8061236857506123a7565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239c919061325f565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990613281565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612469576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612460906132a1565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b82805461249290613701565b90600052602060002090601f0160209004810192826124b457600085556124fb565b82601f106124cd57805160ff19168380011785556124fb565b828001600101855582156124fb579182015b828111156124fa5782518255916020019190600101906124df565b5b509050612508919061250c565b5090565b5b8082111561252557600081600090555060010161250d565b5090565b600061253c612537846134ca565b6134a5565b9050808382526020820190508285602086028201111561255f5761255e613890565b5b60005b8581101561258f5781612575888261268d565b845260208401935060208301925050600181019050612562565b5050509392505050565b60006125ac6125a7846134f6565b6134a5565b905080838252602082019050828560208602820111156125cf576125ce613890565b5b60005b858110156125ff57816125e58882612799565b8452602084019350602083019250506001810190506125d2565b5050509392505050565b600061261c61261784613522565b6134a5565b90508281526020810184848401111561263857612637613895565b5b6126438482856136bf565b509392505050565b600061265e61265984613553565b6134a5565b90508281526020810184848401111561267a57612679613895565b5b6126858482856136bf565b509392505050565b60008135905061269c81613dd3565b92915050565b600082601f8301126126b7576126b661388b565b5b81356126c7848260208601612529565b91505092915050565b600082601f8301126126e5576126e461388b565b5b81356126f5848260208601612599565b91505092915050565b60008135905061270d81613dea565b92915050565b60008135905061272281613e01565b92915050565b60008151905061273781613e01565b92915050565b600082601f8301126127525761275161388b565b5b8135612762848260208601612609565b91505092915050565b600082601f8301126127805761277f61388b565b5b813561279084826020860161264b565b91505092915050565b6000813590506127a881613e18565b92915050565b6000602082840312156127c4576127c361389f565b5b60006127d28482850161268d565b91505092915050565b600080604083850312156127f2576127f161389f565b5b60006128008582860161268d565b92505060206128118582860161268d565b9150509250929050565b600080600080600060a086880312156128375761283661389f565b5b60006128458882890161268d565b95505060206128568882890161268d565b945050604086013567ffffffffffffffff8111156128775761287661389a565b5b612883888289016126d0565b935050606086013567ffffffffffffffff8111156128a4576128a361389a565b5b6128b0888289016126d0565b925050608086013567ffffffffffffffff8111156128d1576128d061389a565b5b6128dd8882890161273d565b9150509295509295909350565b600080600080600060a086880312156129065761290561389f565b5b60006129148882890161268d565b95505060206129258882890161268d565b945050604061293688828901612799565b935050606061294788828901612799565b925050608086013567ffffffffffffffff8111156129685761296761389a565b5b6129748882890161273d565b9150509295509295909350565b60008060006060848603121561299a5761299961389f565b5b60006129a88682870161268d565b935050602084013567ffffffffffffffff8111156129c9576129c861389a565b5b6129d5868287016126d0565b925050604084013567ffffffffffffffff8111156129f6576129f561389a565b5b612a02868287016126d0565b9150509250925092565b600080600080600060a08688031215612a2857612a2761389f565b5b6000612a368882890161268d565b955050602086013567ffffffffffffffff811115612a5757612a5661389a565b5b612a63888289016126d0565b945050604086013567ffffffffffffffff811115612a8457612a8361389a565b5b612a90888289016126d0565b935050606086013567ffffffffffffffff811115612ab157612ab061389a565b5b612abd888289016126d0565b925050608086013567ffffffffffffffff811115612ade57612add61389a565b5b612aea888289016126d0565b9150509295509295909350565b60008060408385031215612b0e57612b0d61389f565b5b6000612b1c8582860161268d565b9250506020612b2d858286016126fe565b9150509250929050565b60008060408385031215612b4e57612b4d61389f565b5b6000612b5c8582860161268d565b9250506020612b6d85828601612799565b9150509250929050565b600080600060608486031215612b9057612b8f61389f565b5b6000612b9e8682870161268d565b9350506020612baf86828701612799565b9250506040612bc086828701612799565b9150509250925092565b60008060408385031215612be157612be061389f565b5b600083013567ffffffffffffffff811115612bff57612bfe61389a565b5b612c0b858286016126a2565b925050602083013567ffffffffffffffff811115612c2c57612c2b61389a565b5b612c38858286016126d0565b9150509250929050565b60008060408385031215612c5957612c5861389f565b5b600083013567ffffffffffffffff811115612c7757612c7661389a565b5b612c83858286016126d0565b925050602083013567ffffffffffffffff811115612ca457612ca361389a565b5b612cb0858286016126d0565b9150509250929050565b600060208284031215612cd057612ccf61389f565b5b6000612cde84828501612713565b91505092915050565b600060208284031215612cfd57612cfc61389f565b5b6000612d0b84828501612728565b91505092915050565b600060208284031215612d2a57612d2961389f565b5b6000612d3884828501612799565b91505092915050565b60008060408385031215612d5857612d5761389f565b5b6000612d6685828601612799565b925050602083013567ffffffffffffffff811115612d8757612d8661389a565b5b612d938582860161276b565b9150509250929050565b60008060408385031215612db457612db361389f565b5b6000612dc285828601612799565b9250506020612dd385828601612799565b9150509250929050565b6000612de983836130f0565b60208301905092915050565b612dfe8161364b565b82525050565b6000612e0f82613594565b612e1981856135c2565b9350612e2483613584565b8060005b83811015612e55578151612e3c8882612ddd565b9750612e47836135b5565b925050600181019050612e28565b5085935050505092915050565b612e6b8161365d565b82525050565b6000612e7c8261359f565b612e8681856135d3565b9350612e968185602086016136ce565b612e9f816138a4565b840191505092915050565b6000612eb5826135aa565b612ebf81856135e4565b9350612ecf8185602086016136ce565b612ed8816138a4565b840191505092915050565b6000612ef06034836135e4565b9150612efb826138c2565b604082019050919050565b6000612f136028836135e4565b9150612f1e82613911565b604082019050919050565b6000612f36602b836135e4565b9150612f4182613960565b604082019050919050565b6000612f596026836135e4565b9150612f64826139af565b604082019050919050565b6000612f7c6024836135e4565b9150612f87826139fe565b604082019050919050565b6000612f9f6029836135e4565b9150612faa82613a4d565b604082019050919050565b6000612fc26025836135e4565b9150612fcd82613a9c565b604082019050919050565b6000612fe56032836135e4565b9150612ff082613aeb565b604082019050919050565b60006130086023836135e4565b915061301382613b3a565b604082019050919050565b600061302b602a836135e4565b915061303682613b89565b604082019050919050565b600061304e6020836135e4565b915061305982613bd8565b602082019050919050565b60006130716029836135e4565b915061307c82613c01565b604082019050919050565b60006130946029836135e4565b915061309f82613c50565b604082019050919050565b60006130b76028836135e4565b91506130c282613c9f565b604082019050919050565b60006130da6021836135e4565b91506130e582613cee565b604082019050919050565b6130f9816136b5565b82525050565b613108816136b5565b82525050565b60006020820190506131236000830184612df5565b92915050565b600060a08201905061313e6000830188612df5565b61314b6020830187612df5565b818103604083015261315d8186612e04565b905081810360608301526131718185612e04565b905081810360808301526131858184612e71565b90509695505050505050565b600060a0820190506131a66000830188612df5565b6131b36020830187612df5565b6131c060408301866130ff565b6131cd60608301856130ff565b81810360808301526131df8184612e71565b90509695505050505050565b600060208201905081810360008301526132058184612e04565b905092915050565b600060408201905081810360008301526132278185612e04565b9050818103602083015261323b8184612e04565b90509392505050565b60006020820190506132596000830184612e62565b92915050565b600060208201905081810360008301526132798184612eaa565b905092915050565b6000602082019050818103600083015261329a81612ee3565b9050919050565b600060208201905081810360008301526132ba81612f06565b9050919050565b600060208201905081810360008301526132da81612f29565b9050919050565b600060208201905081810360008301526132fa81612f4c565b9050919050565b6000602082019050818103600083015261331a81612f6f565b9050919050565b6000602082019050818103600083015261333a81612f92565b9050919050565b6000602082019050818103600083015261335a81612fb5565b9050919050565b6000602082019050818103600083015261337a81612fd8565b9050919050565b6000602082019050818103600083015261339a81612ffb565b9050919050565b600060208201905081810360008301526133ba8161301e565b9050919050565b600060208201905081810360008301526133da81613041565b9050919050565b600060208201905081810360008301526133fa81613064565b9050919050565b6000602082019050818103600083015261341a81613087565b9050919050565b6000602082019050818103600083015261343a816130aa565b9050919050565b6000602082019050818103600083015261345a816130cd565b9050919050565b600060208201905061347660008301846130ff565b92915050565b600060408201905061349160008301856130ff565b61349e60208301846130ff565b9392505050565b60006134af6134c0565b90506134bb8282613733565b919050565b6000604051905090565b600067ffffffffffffffff8211156134e5576134e461383a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156135115761351061383a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561353d5761353c61383a565b5b613546826138a4565b9050602081019050919050565b600067ffffffffffffffff82111561356e5761356d61383a565b5b613577826138a4565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613600826136b5565b915061360b836136b5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136405761363f6137ad565b5b828201905092915050565b600061365682613695565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156136ec5780820151818401526020810190506136d1565b838111156136fb576000848401525b50505050565b6000600282049050600182168061371957607f821691505b6020821081141561372d5761372c6137dc565b5b50919050565b61373c826138a4565b810181811067ffffffffffffffff8211171561375b5761375a61383a565b5b80604052505050565b600061376f826136b5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137a2576137a16137ad565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156138885760046000803e6138856000516138b5565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d1015613d4d57613dd0565b613d556134c0565b60043d036004823e80513d602482011167ffffffffffffffff82111715613d7d575050613dd0565b808201805167ffffffffffffffff811115613d9b5750505050613dd0565b80602083010160043d038501811115613db8575050505050613dd0565b613dc782602001850186613733565b82955050505050505b90565b613ddc8161364b565b8114613de757600080fd5b50565b613df38161365d565b8114613dfe57600080fd5b50565b613e0a81613669565b8114613e1557600080fd5b50565b613e21816136b5565b8114613e2c57600080fd5b5056fea2646970667358221220d3fd4cf65235e1ab38c1b7861e3be6ed4b776583b146b37499e9be34e6d0c02464736f6c63430008070033