0x60806040523480156200001157600080fd5b50604051620060383803806200603883398181016040528101906200003791906200022f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200007157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ab57600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a8060038190555060006004819055506001600560006101000a81548160ff0219169083151502179055506001600560016101000a81548160ff0219169083151502179055506000600a81905550505062000276565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001f782620001ca565b9050919050565b6200020981620001ea565b81146200021557600080fd5b50565b6000815190506200022981620001fe565b92915050565b60008060408385031215620002495762000248620001c5565b5b6000620002598582860162000218565b92505060206200026c8582860162000218565b9150509250929050565b615db280620002866000396000f3fe6080604052600436106101fd5760003560e01c806393f3fe891161010d578063be82753c116100a0578063d483e2431161006f578063d483e24314610736578063def92c691461075f578063e5f5ff1d1461078a578063ec84a3ca146107b3578063ff7a071b146107de5761023d565b8063be82753c14610687578063bff02e20146106c6578063c7d8b38e14610703578063d0e30db01461072c5761023d565b8063ad7ed8fe116100dc578063ad7ed8fe146105cd578063ae7d41db146105f6578063b5d896271461061f578063ba89a0951461065c5761023d565b806393f3fe891461050f578063a082a8991461053a578063a15131a314610579578063ab94276a146105a25761023d565b80634192cd04116101905780637d5fa2a71161015f5780637d5fa2a71461043c5780637d96f69314610465578063867378c514610490578063882f3e16146104bb578063893d20e8146104e45761023d565b80634192cd04146103a6578063564a80cf146103cf57806359e1e134146103e65780635ebb0ca4146104115761023d565b806321473c4c116101cc57806321473c4c146102ea5780632e1a7d4d146103155780632f54bf6e1461033e5780633d18b9121461037b5761023d565b80630329ae51146102425780630c101c751461026d578063107c60e31461029657806311faa48b146102bf5761023d565b3661023d577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258743334604051610233929190613bcf565b60405180910390a1005b600080fd5b34801561024e57600080fd5b50610257610809565b6040516102649190613bf8565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f9190613c82565b610813565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190613d07565b610af9565b005b3480156102cb57600080fd5b506102d4610ba4565b6040516102e19190613d34565b60405180910390f35b3480156102f657600080fd5b506102ff610bce565b60405161030c9190613d5e565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613da5565b610be5565b005b34801561034a57600080fd5b5061036560048036038101906103609190613dfe565b611156565b6040516103729190613d5e565b60405180910390f35b34801561038757600080fd5b506103906111ae565b60405161039d9190613bf8565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190613f0d565b61125e565b005b3480156103db57600080fd5b506103e4611977565b005b3480156103f257600080fd5b506103fb611c23565b6040516104089190613bf8565b60405180910390f35b34801561041d57600080fd5b50610426611c2d565b6040516104339190613bf8565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190613d07565b611c37565b005b34801561047157600080fd5b5061047a611ce2565b6040516104879190613bf8565b60405180910390f35b34801561049c57600080fd5b506104a5611d04565b6040516104b29190613bf8565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190613dfe565b611d12565b005b3480156104f057600080fd5b506104f961204d565b6040516105069190613d34565b60405180910390f35b34801561051b57600080fd5b50610524612076565b6040516105319190613d5e565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190613fa2565b61208d565b604051610570939291906141d3565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190614275565b612382565b005b3480156105ae57600080fd5b506105b761282b565b6040516105c49190613d34565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190613da5565b612855565b005b34801561060257600080fd5b5061061d6004803603810190610618919061431a565b6128ed565b005b34801561062b57600080fd5b5061064660048036038101906106419190613da5565b612e37565b60405161065391906144b5565b60405180910390f35b34801561066857600080fd5b50610671612f2e565b60405161067e9190613bf8565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190613dfe565b612f3c565b6040516106bd939291906144e6565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e8919061451d565b613086565b6040516106fa9190614669565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061468b565b61327d565b005b6107346133d9565b005b34801561074257600080fd5b5061075d600480360381019061075891906146b8565b613583565b005b34801561076b57600080fd5b5061077461381e565b6040516107819190613bf8565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac919061468b565b61382c565b005b3480156107bf57600080fd5b506107c8613ac2565b6040516107d59190613bf8565b60405180910390f35b3480156107ea57600080fd5b506107f3613af1565b6040516108009190613bf8565b60405180910390f35b6000600354905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890614775565b60405180910390fd5b600060048111156108b5576108b461401b565b5b600883836040516108c79291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156108f8576108f761401b565b5b03610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092f90614839565b60405180910390fd5b60046008838360405161094c9291906147d4565b908152602001604051809103902060020160006101000a81548160ff0219169083600481111561097f5761097e61401b565b5b0217905550600882826040516109969291906147d4565b908152602001604051809103902060010154600a60008282546109b99190614888565b925050819055506000600883836040516109d49291906147d4565b9081526020016040518091039020600001549050600060016009805490506109fc9190614888565b905060098181548110610a1257610a116148bc565b5b9060005260206000200160098381548110610a3057610a2f6148bc565b5b906000526020600020019081610a469190614b51565b5081600860098481548110610a5e57610a5d6148bc565b5b90600052602060002001604051610a759190614cbc565b9081526020016040518091039020600001819055506009805480610a9c57610a9b614cd3565b5b600190038181906000526020600020016000610ab89190613b18565b90557fe0daf65ed663c9a9016796bb4bf222fec6f5bd68fccfe6b268792d6df8d3944e8484604051610aeb929190614d2f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90614775565b60405180910390fd5b80600560016101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560019054906101000a900460ff16905090565b600560009054906101000a900460ff1615610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90614d9f565b60405180910390fd5b60006001811115610c4957610c4861401b565b5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115610cab57610caa61401b565b5b14610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290614e0b565b60405180910390fd5b80600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610d479190613d34565b602060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190614e40565b1015610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090614eb9565b60405180910390fd5b600354600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442610e179190614888565b11610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90614f25565b60405180910390fd5b6000479050818110610f7757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b8152600401610ec0929190613bcf565b600060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610f38573d6000803e3d6000fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d53383604051610f6a929190613bcf565b60405180910390a1611152565b6001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836001811115610fdd57610fdc61401b565b5b021790555081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555042600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555081600460008282546110829190614f45565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b81526004016110e6929190613bcf565b600060405180830381600087803b15801561110057600080fd5b505af1158015611114573d6000803e3d6000fd5b505050507f6add04759c04cdae5cb45895c6ee7765110bfa28d26eafb565d543598481c01c3383604051611149929190613bcf565b60405180910390a15b5050565b60008173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614e40565b47600a5461124f9190614f45565b6112599190614888565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390614775565b60405180910390fd5b84600160028111156113015761130061401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156113375761133661401b565b5b14611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90614fc5565b60405180910390fd5b8282905085859050146113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690615031565b60405180910390fd5b6000600b60008881526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1660028111156114225761142161401b565b5b60028111156114345761143361401b565b5b81525050905060008686905090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b785aca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d5919061508d565b63ffffffff16905060006103e88285600001516114f291906150ba565b6114fc9190615143565b905060008185600001516115109190614888565b90506000856040015190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190615189565b905060005b868110156118b9576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318f8f8581811061160e5761160d6148bc565b5b90506020020160208101906116239190613dfe565b6040518263ffffffff1660e01b815260040161163f9190613d34565b602060405180830381865afa15801561165c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116809190614e40565b905060008960200151868361169591906150ba565b61169f9190615143565b90508e8e848181106116b4576116b36148bc565b5b90506020020160208101906116c99190613dfe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361170a5786816117079190614f45565b90505b8c8c8481811061171d5761171c6148bc565b5b9050602002013581106117a157600a816117379190615143565b8d8d8581811061174a576117496148bc565b5b905060200201358261175c9190614888565b1061179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390615202565b60405180910390fd5b611836565b8c8c848181106117b4576117b36148bc565b5b9050602002013581101561183557600a816117cf9190615143565b818e8e868181106117e3576117e26148bc565b5b905060200201356117f49190614888565b10611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90615202565b60405180910390fd5b5b5b8c8c84818110611849576118486148bc565b5b905060200201358561185b9190614f45565b945089600001518511156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90615202565b60405180910390fd5b505080806118b190615222565b9150506115b3565b5081600b60008f815260200190815260200160002060020181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390e27e5e8d8d8d8d6040518563ffffffff1660e01b81526004016119369493929190615397565b600060405180830381600087803b15801561195057600080fd5b505af1158015611964573d6000803e3d6000fd5b5050505050505050505050505050505050565b60018081111561198a5761198961401b565b5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660018111156119ec576119eb61401b565b5b14611a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a239061541e565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166001811115611a9d57611a9c61401b565b5b6001811115611aaf57611aae61401b565b5b81526020016001820154815260200160028201548152505090508060200151471015611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790614eb9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f19350505050158015611b5a573d6000803e3d6000fd5b50806020015160046000828254611b719190614888565b925050819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836001811115611bde57611bdd61401b565b5b02179055507ffae868f1af4b3cc4b1d46af30e96235ebc5c80fc6060dbef53ab54071942ee64338260200151604051611c18929190613bcf565b60405180910390a150565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90614775565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b6000690878678326eac9000000600980549050611cff91906150ba565b905090565b69043c33c193756480000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614775565b60405180910390fd5b600180811115611db357611db261401b565b5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115611e1557611e1461401b565b5b14611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9061541e565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166001811115611ec657611ec561401b565b5b6001811115611ed857611ed761401b565b5b81526020016001820154815260200160028201548152505090508060200151471015611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090614eb9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f19350505050158015611f83573d6000803e3d6000fd5b50806020015160046000828254611f9a9190614888565b925050819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908360018111156120075761200661401b565b5b02179055507ffae868f1af4b3cc4b1d46af30e96235ebc5c80fc6060dbef53ab54071942ee64828260200151604051612041929190613bcf565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560009054906101000a900460ff16905090565b6060806060600085859050905060008167ffffffffffffffff8111156120b6576120b5614961565b5b6040519080825280602002602001820160405280156120e45781602001602082028036833780820191505090505b50905060008267ffffffffffffffff81111561210357612102614961565b5b6040519080825280602002602001820160405280156121315781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156121505761214f614961565b5b60405190808252806020026020018201604052801561217e5781602001602082028036833780820191505090505b50905060005b8481101561236d57600760008b8b848181106121a3576121a26148bc565b5b90506020020160208101906121b89190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16848281518110612216576122156148bc565b5b602002602001019060018111156122305761222f61401b565b5b908160018111156122445761224361401b565b5b81525050600760008b8b8481811061225f5761225e6148bc565b5b90506020020160208101906122749190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548382815181106122c5576122c46148bc565b5b602002602001018181525050600760008b8b848181106122e8576122e76148bc565b5b90506020020160208101906122fd9190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015482828151811061234e5761234d6148bc565b5b602002602001018181525050808061236590615222565b915050612184565b50828282965096509650505050509250925092565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240790614775565b60405180910390fd5b818190508484905014612458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244f90615031565b60405180910390fd5b60005b848490508110156125c8576000600481111561247a5761247961401b565b5b600886868481811061248f5761248e6148bc565b5b90506020028101906124a1919061544d565b6040516124af9291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156124e0576124df61401b565b5b03612520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251790614839565b60405180910390fd5b828282818110612533576125326148bc565b5b9050602002013569043c33c1937564800000111580156125765750690a968163f0a57b40000083838381811061256c5761256b6148bc565b5b9050602002013511155b6125b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ac906154fc565b60405180910390fd5b80806125c090615222565b91505061245b565b5060005b84849050811015612824578282828181106125ea576125e96148bc565b5b905060200201356008868684818110612606576126056148bc565b5b9050602002810190612618919061544d565b6040516126269291906147d4565b90815260200160405180910390206001015411612729576008858583818110612652576126516148bc565b5b9050602002810190612664919061544d565b6040516126729291906147d4565b908152602001604051809103902060010154838383818110612697576126966148bc565b5b905060200201356126a89190614888565b600a60008282546126b99190614f45565b925050819055508282828181106126d3576126d26148bc565b5b9050602002013560088686848181106126ef576126ee6148bc565b5b9050602002810190612701919061544d565b60405161270f9291906147d4565b908152602001604051809103902060010181905550612811565b82828281811061273c5761273b6148bc565b5b905060200201356008868684818110612758576127576148bc565b5b905060200281019061276a919061544d565b6040516127789291906147d4565b9081526020016040518091039020600101546127949190614888565b600a60008282546127a59190614888565b925050819055508282828181106127bf576127be6148bc565b5b9050602002013560088686848181106127db576127da6148bc565b5b90506020028101906127ed919061544d565b6040516127fb9291906147d4565b9081526020016040518091039020600101819055505b808061281c90615222565b9150506125cc565b5050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90614775565b60405180910390fd5b8060038190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297290614775565b60405180910390fd5b602087879050146129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061558e565b60405180910390fd5b600160ff16878760008181106129da576129d96148bc565b5b9050013560f81c60f81b60f81c60ff1614612a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2190615620565b60405180910390fd5b6000612a478888600c908092612a429392919061564a565b613afe565b90508073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614612ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aae906156d1565b60405180910390fd5b670de0b6b3a7640000821015612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af99061573d565b60405180910390fd5b6000633b9aca0083612b14919061575d565b14612b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4b90615800565b60405180910390fd5b6000633b9aca0083612b669190615143565b905067ffffffffffffffff8016811115612bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bac9061586c565b60405180910390fd5b82612bbe613ac2565b1015612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf6906158d8565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4070c46848d8d8d8d8d8d8d8d6040518a63ffffffff1660e01b8152600401612c69989796959493929190615a36565b6000604051808303818588803b158015612c8257600080fd5b505af1158015612c96573d6000803e3d6000fd5b505050505060006004811115612caf57612cae61401b565b5b60088c8c604051612cc19291906147d4565b908152602001604051809103902060020160009054906101000a900460ff166004811115612cf257612cf161401b565b5b03612def5760006040518060600160405280600980549050815260200185815260200160016004811115612d2957612d2861401b565b5b81525090508060088d8d604051612d419291906147d4565b9081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836004811115612d8e57612d8d61401b565b5b021790555090505060098c8c90918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182612dd3929190615ab6565b5083600a6000828254612de69190614f45565b92505081905550505b7f53124bbe4480b1c7855b0d57ee072204d73b3d3183112d377b160e15dbdea5a38b8b85604051612e2293929190615b86565b60405180910390a15050505050505050505050565b60606009805490508210612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7790615bde565b60405180910390fd5b60098281548110612e9457612e936148bc565b5b906000526020600020018054612ea99061491a565b80601f0160208091040260200160405190810160405280929190818152602001828054612ed59061491a565b8015612f225780601f10612ef757610100808354040283529160200191612f22565b820191906000526020600020905b815481529060010190602001808311612f0557829003601f168201915b50505050509050919050565b690878678326eac900000081565b6000806000600180811115612f5457612f5361401b565b5b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115612fb657612fb561401b565b5b03613073576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600181111561302c5761302b61401b565b5b600181111561303e5761303d61401b565b5b81526020016001820154815260200160028201548152505090508060000151816020015182604001519350935093505061307f565b60008060009250925092505b9193909250565b60608183106130ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c190615bde565b60405180910390fd5b6000836009805490506130dd9190614888565b600185856130eb9190614888565b6130f59190614f45565b10613110578360098054905061310b9190614888565b613129565b6001848461311e9190614888565b6131289190614f45565b5b905060008167ffffffffffffffff81111561314757613146614961565b5b60405190808252806020026020018201604052801561317a57816020015b60608152602001906001900390816131655790505b50905060005b8281101561327157600086826131969190614f45565b9050600981815481106131ac576131ab6148bc565b5b9060005260206000200180546131c19061491a565b80601f01602080910402602001604051908101604052809291908181526020018280546131ed9061491a565b801561323a5780601f1061320f5761010080835404028352916020019161323a565b820191906000526020600020905b81548152906001019060200180831161321d57829003601f168201915b5050505050838381518110613252576132516148bc565b5b602002602001018190525050808061326990615222565b915050613180565b50809250505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461330b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330290614775565b60405180910390fd5b80600160028111156133205761331f61401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156133565761335561401b565b5b14613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d90614fc5565b60405180910390fd5b6002600b600084815260200190815260200160002060030160006101000a81548160ff021916908360028111156133d0576133cf61401b565b5b02179055505050565b600560019054906101000a900460ff1615613429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342090615c4a565b60405180910390fd5b683635c9adc5dea00000341015613475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346c9061573d565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933346040518363ffffffff1660e01b81526004016134d2929190613bcf565b600060405180830381600087803b1580156134ec57600080fd5b505af1158015613500573d6000803e3d6000fd5b5050505042600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c43334604051613579929190613bcf565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360890614775565b60405180910390fd5b600060048111156136255761362461401b565b5b600884846040516136379291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156136685761366761401b565b5b036136a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369f90614839565b60405180910390fd5b8069043c33c1937564800000111580156136cc5750690a968163f0a57b4000008111155b61370b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613702906154fc565b60405180910390fd5b806008848460405161371e9291906147d4565b908152602001604051809103902060010154116137a957600883836040516137479291906147d4565b908152602001604051809103902060010154816137649190614888565b600a60008282546137759190614f45565b92505081905550806008848460405161378f9291906147d4565b908152602001604051809103902060010181905550613819565b80600884846040516137bc9291906147d4565b9081526020016040518091039020600101546137d89190614888565b600a60008282546137e99190614888565b9250508190555080600884846040516138039291906147d4565b9081526020016040518091039020600101819055505b505050565b690a968163f0a57b40000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146138ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138b190614775565b60405180910390fd5b80600060028111156138cf576138ce61401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156139055761390461401b565b5b14613945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393c90615cb6565b60405180910390fd5b600061394f6111ae565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9acfb736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e49190614e40565b9050600060405180608001604052808481526020018381526020016000815260200160016002811115613a1a57613a1961401b565b5b815250905080600b600087815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836002811115613a7c57613a7b61401b565b5b02179055509050507f35b8e4cd29053a5cb0a89d8b29e54ff5d38d4d36a0aaea03daf3a9ea30b096b085604051613ab39190615cd6565b60405180910390a15050505050565b600080479050600454811115613ae85760045481613ae09190614888565b915050613aee565b60009150505b90565b6000600980549050905090565b6000828290613b0d9190615d1d565b60601c905092915050565b508054613b249061491a565b6000825580601f10613b365750613b55565b601f016020900490600052602060002090810190613b549190613b58565b5b50565b5b80821115613b71576000816000905550600101613b59565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ba082613b75565b9050919050565b613bb081613b95565b82525050565b6000819050919050565b613bc981613bb6565b82525050565b6000604082019050613be46000830185613ba7565b613bf16020830184613bc0565b9392505050565b6000602082019050613c0d6000830184613bc0565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112613c4257613c41613c1d565b5b8235905067ffffffffffffffff811115613c5f57613c5e613c22565b5b602083019150836001820283011115613c7b57613c7a613c27565b5b9250929050565b60008060208385031215613c9957613c98613c13565b5b600083013567ffffffffffffffff811115613cb757613cb6613c18565b5b613cc385828601613c2c565b92509250509250929050565b60008115159050919050565b613ce481613ccf565b8114613cef57600080fd5b50565b600081359050613d0181613cdb565b92915050565b600060208284031215613d1d57613d1c613c13565b5b6000613d2b84828501613cf2565b91505092915050565b6000602082019050613d496000830184613ba7565b92915050565b613d5881613ccf565b82525050565b6000602082019050613d736000830184613d4f565b92915050565b613d8281613bb6565b8114613d8d57600080fd5b50565b600081359050613d9f81613d79565b92915050565b600060208284031215613dbb57613dba613c13565b5b6000613dc984828501613d90565b91505092915050565b613ddb81613b95565b8114613de657600080fd5b50565b600081359050613df881613dd2565b92915050565b600060208284031215613e1457613e13613c13565b5b6000613e2284828501613de9565b91505092915050565b6000819050919050565b613e3e81613e2b565b8114613e4957600080fd5b50565b600081359050613e5b81613e35565b92915050565b60008083601f840112613e7757613e76613c1d565b5b8235905067ffffffffffffffff811115613e9457613e93613c22565b5b602083019150836020820283011115613eb057613eaf613c27565b5b9250929050565b60008083601f840112613ecd57613ecc613c1d565b5b8235905067ffffffffffffffff811115613eea57613ee9613c22565b5b602083019150836020820283011115613f0657613f05613c27565b5b9250929050565b600080600080600060608688031215613f2957613f28613c13565b5b6000613f3788828901613e4c565b955050602086013567ffffffffffffffff811115613f5857613f57613c18565b5b613f6488828901613e61565b9450945050604086013567ffffffffffffffff811115613f8757613f86613c18565b5b613f9388828901613eb7565b92509250509295509295909350565b60008060208385031215613fb957613fb8613c13565b5b600083013567ffffffffffffffff811115613fd757613fd6613c18565b5b613fe385828601613e61565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061405b5761405a61401b565b5b50565b600081905061406c8261404a565b919050565b600061407c8261405e565b9050919050565b61408c81614071565b82525050565b600061409e8383614083565b60208301905092915050565b6000602082019050919050565b60006140c282613fef565b6140cc8185613ffa565b93506140d78361400b565b8060005b838110156141085781516140ef8882614092565b97506140fa836140aa565b9250506001810190506140db565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61414a81613bb6565b82525050565b600061415c8383614141565b60208301905092915050565b6000602082019050919050565b600061418082614115565b61418a8185614120565b935061419583614131565b8060005b838110156141c65781516141ad8882614150565b97506141b883614168565b925050600181019050614199565b5085935050505092915050565b600060608201905081810360008301526141ed81866140b7565b905081810360208301526142018185614175565b905081810360408301526142158184614175565b9050949350505050565b60008083601f84011261423557614234613c1d565b5b8235905067ffffffffffffffff81111561425257614251613c22565b5b60208301915083602082028301111561426e5761426d613c27565b5b9250929050565b6000806000806040858703121561428f5761428e613c13565b5b600085013567ffffffffffffffff8111156142ad576142ac613c18565b5b6142b98782880161421f565b9450945050602085013567ffffffffffffffff8111156142dc576142db613c18565b5b6142e887828801613eb7565b925092505092959194509250565b600080fd5b600060608284031215614311576143106142f6565b5b81905092915050565b600080600080600080600080600060c08a8c03121561433c5761433b613c13565b5b60008a013567ffffffffffffffff81111561435a57614359613c18565b5b6143668c828d01613c2c565b995099505060208a013567ffffffffffffffff81111561438957614388613c18565b5b6143958c828d01613c2c565b975097505060408a013567ffffffffffffffff8111156143b8576143b7613c18565b5b6143c48c828d01613c2c565b955095505060606143d78c828d01613e4c565b93505060808a013567ffffffffffffffff8111156143f8576143f7613c18565b5b6144048c828d016142fb565b92505060a06144158c828d01613d90565b9150509295985092959850929598565b600081519050919050565b600082825260208201905092915050565b60005b8381101561445f578082015181840152602081019050614444565b60008484015250505050565b6000601f19601f8301169050919050565b600061448782614425565b6144918185614430565b93506144a1818560208601614441565b6144aa8161446b565b840191505092915050565b600060208201905081810360008301526144cf818461447c565b905092915050565b6144e081614071565b82525050565b60006060820190506144fb60008301866144d7565b6145086020830185613bc0565b6145156040830184613bc0565b949350505050565b6000806040838503121561453457614533613c13565b5b600061454285828601613d90565b925050602061455385828601613d90565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b60006145a582614425565b6145af8185614589565b93506145bf818560208601614441565b6145c88161446b565b840191505092915050565b60006145df838361459a565b905092915050565b6000602082019050919050565b60006145ff8261455d565b6146098185614568565b93508360208202850161461b85614579565b8060005b85811015614657578484038952815161463885826145d3565b9450614643836145e7565b925060208a0199505060018101905061461f565b50829750879550505050505092915050565b6000602082019050818103600083015261468381846145f4565b905092915050565b6000602082840312156146a1576146a0613c13565b5b60006146af84828501613e4c565b91505092915050565b6000806000604084860312156146d1576146d0613c13565b5b600084013567ffffffffffffffff8111156146ef576146ee613c18565b5b6146fb86828701613c2c565b9350935050602061470e86828701613d90565b9150509250925092565b600082825260208201905092915050565b7f4e6f74417574686f72697a656400000000000000000000000000000000000000600082015250565b600061475f600d83614718565b915061476a82614729565b602082019050919050565b6000602082019050818103600083015261478e81614752565b9050919050565b600081905092915050565b82818337600083830152505050565b60006147bb8385614795565b93506147c88385846147a0565b82840190509392505050565b60006147e18284866147af565b91508190509392505050565b7f4e6f742065786973742076616c696461746f7200000000000000000000000000600082015250565b6000614823601383614718565b915061482e826147ed565b602082019050919050565b6000602082019050818103600083015261485281614816565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061489382613bb6565b915061489e83613bb6565b92508282039050818111156148b6576148b5614859565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061493257607f821691505b602082108103614945576149446148eb565b5b50919050565b60008154905061495a8161491a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826149ca565b614a1186836149ca565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614a4e614a49614a4484613bb6565b614a29565b613bb6565b9050919050565b6000819050919050565b614a6883614a33565b614a7c614a7482614a55565b8484546149d7565b825550505050565b600090565b614a91614a84565b614a9c818484614a5f565b505050565b5b81811015614ac057614ab5600082614a89565b600181019050614aa2565b5050565b601f821115614b0557614ad681614990565b614adf846149ba565b81016020851015614aee578190505b614b02614afa856149ba565b830182614aa1565b50505b505050565b600082821c905092915050565b6000614b2860001984600802614b0a565b1980831691505092915050565b6000614b418383614b17565b9150826002028217905092915050565b818103614b5f575050614c37565b614b688261494b565b67ffffffffffffffff811115614b8157614b80614961565b5b614b8b825461491a565b614b96828285614ac4565b6000601f831160018114614bc55760008415614bb3578287015490505b614bbd8582614b35565b865550614c30565b601f198416614bd3876149a5565b9650614bde86614990565b60005b82811015614c0657848901548255600182019150600185019450602081019050614be1565b86831015614c235784890154614c1f601f891682614b17565b8355505b6001600288020188555050505b5050505050505b565b60008154614c468161491a565b614c508186614795565b94506001821660008114614c6b5760018114614c8057614cb3565b60ff1983168652811515820286019350614cb3565b614c8985614990565b60005b83811015614cab57815481890152600182019150602081019050614c8c565b838801955050505b50505092915050565b6000614cc88284614c39565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000614d0e8385614430565b9350614d1b8385846147a0565b614d248361446b565b840190509392505050565b60006020820190508181036000830152614d4a818486614d02565b90509392505050565b7f5061757365642077697468647261770000000000000000000000000000000000600082015250565b6000614d89600f83614718565b9150614d9482614d53565b602082019050919050565b60006020820190508181036000830152614db881614d7c565b9050919050565b7f416c726561647920626f6f6b6564000000000000000000000000000000000000600082015250565b6000614df5600e83614718565b9150614e0082614dbf565b602082019050919050565b60006020820190508181036000830152614e2481614de8565b9050919050565b600081519050614e3a81613d79565b92915050565b600060208284031215614e5657614e55613c13565b5b6000614e6484828501614e2b565b91505092915050565b7f496e73756666696369656e740000000000000000000000000000000000000000600082015250565b6000614ea3600c83614718565b9150614eae82614e6d565b602082019050919050565b60006020820190508181036000830152614ed281614e96565b9050919050565b7f576169746520746f207769746864726177000000000000000000000000000000600082015250565b6000614f0f601183614718565b9150614f1a82614ed9565b602082019050919050565b60006020820190508181036000830152614f3e81614f02565b9050919050565b6000614f5082613bb6565b9150614f5b83613bb6565b9250828201905080821115614f7357614f72614859565b5b92915050565b7f4e6f74206f70656e656400000000000000000000000000000000000000000000600082015250565b6000614faf600a83614718565b9150614fba82614f79565b602082019050919050565b60006020820190508181036000830152614fde81614fa2565b9050919050565b7f4c656e67746820697320646966666572656e7400000000000000000000000000600082015250565b600061501b601383614718565b915061502682614fe5565b602082019050919050565b6000602082019050818103600083015261504a8161500e565b9050919050565b600063ffffffff82169050919050565b61506a81615051565b811461507557600080fd5b50565b60008151905061508781615061565b92915050565b6000602082840312156150a3576150a2613c13565b5b60006150b184828501615078565b91505092915050565b60006150c582613bb6565b91506150d083613bb6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561510957615108614859565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061514e82613bb6565b915061515983613bb6565b92508261516957615168615114565b5b828204905092915050565b60008151905061518381613dd2565b92915050565b60006020828403121561519f5761519e613c13565b5b60006151ad84828501615174565b91505092915050565b7f4572726f7220696e207265776172647300000000000000000000000000000000600082015250565b60006151ec601083614718565b91506151f7826151b6565b602082019050919050565b6000602082019050818103600083015261521b816151df565b9050919050565b600061522d82613bb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361525f5761525e614859565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b61528e81613b95565b82525050565b60006152a08383615285565b60208301905092915050565b60006152bb6020840184613de9565b905092915050565b6000602082019050919050565b60006152dc838561526a565b93506152e78261527b565b8060005b85811015615320576152fd82846152ac565b6153078882615294565b9750615312836152c3565b9250506001810190506152eb565b5085925050509392505050565b600080fd5b82818337505050565b60006153478385614120565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561537a5761537961532d565b5b60208302925061538b838584615332565b82840190509392505050565b600060408201905081810360008301526153b28186886152d0565b905081810360208301526153c781848661533b565b905095945050505050565b7f4e6f7420626f6f6b656400000000000000000000000000000000000000000000600082015250565b6000615408600a83614718565b9150615413826153d2565b602082019050919050565b60006020820190508181036000830152615437816153fb565b9050919050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261546a5761546961543e565b5b80840192508235915067ffffffffffffffff82111561548c5761548b615443565b5b6020830192506001820236038313156154a8576154a7615448565b5b509250929050565b7f41626e6f726d616c2062616c616e636500000000000000000000000000000000600082015250565b60006154e6601083614718565b91506154f1826154b0565b602082019050919050565b60006020820190508181036000830152615515816154d9565b9050919050565b7f496e76616c6964207769746864726177616c2063726564656e7469616c73206c60008201527f656e677468000000000000000000000000000000000000000000000000000000602082015250565b6000615578602583614718565b91506155838261551c565b604082019050919050565b600060208201905081810360008301526155a78161556b565b9050919050565b7f496e76616c6964207769746864726177616c2063726564656e7469616c73207460008201527f7970650000000000000000000000000000000000000000000000000000000000602082015250565b600061560a602383614718565b9150615615826155ae565b604082019050919050565b60006020820190508181036000830152615639816155fd565b9050919050565b600080fd5b600080fd5b6000808585111561565e5761565d615640565b5b8386111561566f5761566e615645565b5b6001850283019150848603905094509492505050565b7f496e76616c6964207769746864726177616c2061646472657373000000000000600082015250565b60006156bb601a83614718565b91506156c682615685565b602082019050919050565b600060208201905081810360008301526156ea816156ae565b9050919050565b7f4465706f7369747320746f6f206c6f7700000000000000000000000000000000600082015250565b6000615727601083614718565b9150615732826156f1565b602082019050919050565b600060208201905081810360008301526157568161571a565b9050919050565b600061576882613bb6565b915061577383613bb6565b92508261578357615782615114565b5b828206905092915050565b7f4465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677760008201527f6569000000000000000000000000000000000000000000000000000000000000602082015250565b60006157ea602283614718565b91506157f58261578e565b604082019050919050565b60006020820190508181036000830152615819816157dd565b9050919050565b7f4465706f7369742076616c756520746f6f206869676800000000000000000000600082015250565b6000615856601683614718565b915061586182615820565b602082019050919050565b6000602082019050818103600083015261588581615849565b9050919050565b7f42616c616e636520697320696e73756666696369656e74000000000000000000600082015250565b60006158c2601783614718565b91506158cd8261588c565b602082019050919050565b600060208201905081810360008301526158f1816158b5565b9050919050565b61590181613e2b565b82525050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261593357615932615911565b5b83810192508235915060208301925067ffffffffffffffff82111561595b5761595a615907565b5b6001820236038313156159715761597061590c565b5b509250929050565b60006159858385614589565b93506159928385846147a0565b61599b8361446b565b840190509392505050565b60006159b56020840184613e4c565b905092915050565b6159c681613e2b565b82525050565b6000606083016159df60008401846152ac565b6159ec6000860182615285565b506159fa6020840184615916565b8583036020870152615a0d838284615979565b92505050615a1e60408401846159a6565b615a2b60408601826159bd565b508091505092915050565b600060a0820190508181036000830152615a51818a8c614d02565b90508181036020830152615a6681888a614d02565b90508181036040830152615a7b818688614d02565b9050615a8a60608301856158f8565b8181036080830152615a9c81846159cc565b90509998505050505050505050565b600082905092915050565b615ac08383615aab565b67ffffffffffffffff811115615ad957615ad8614961565b5b615ae3825461491a565b615aee828285614ac4565b6000601f831160018114615b1d5760008415615b0b578287013590505b615b158582614b35565b865550615b7d565b601f198416615b2b86614990565b60005b82811015615b5357848901358255600182019150602085019450602081019050615b2e565b86831015615b705784890135615b6c601f891682614b17565b8355505b6001600288020188555050505b50505050505050565b60006040820190508181036000830152615ba1818587614d02565b9050615bb06020830184613bc0565b949350505050565b50565b6000615bc8600083614718565b9150615bd382615bb8565b600082019050919050565b60006020820190508181036000830152615bf781615bbb565b9050919050565b7f506175736564206465706f736974000000000000000000000000000000000000600082015250565b6000615c34600e83614718565b9150615c3f82615bfe565b602082019050919050565b60006020820190508181036000830152615c6381615c27565b9050919050565b7f416c7265616479206f70656e6564000000000000000000000000000000000000600082015250565b6000615ca0600e83614718565b9150615cab82615c6a565b602082019050919050565b60006020820190508181036000830152615ccf81615c93565b9050919050565b6000602082019050615ceb60008301846158f8565b92915050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000615d298383615aab565b82615d348135615cf1565b92506014821015615d7457615d6f7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026149ca565b831692505b50509291505056fea2646970667358221220d71d7570f597310fc875b1c81269c85290b6337111ae4eace550a8a1c17406d664736f6c63430008100033000000000000000000000000d91603940cb995a2c698b7139cd12c3e73a1d403000000000000000000000000c11adf2bdf377dbabfb4344b7b8a18d552982680
0x6080604052600436106101fd5760003560e01c806393f3fe891161010d578063be82753c116100a0578063d483e2431161006f578063d483e24314610736578063def92c691461075f578063e5f5ff1d1461078a578063ec84a3ca146107b3578063ff7a071b146107de5761023d565b8063be82753c14610687578063bff02e20146106c6578063c7d8b38e14610703578063d0e30db01461072c5761023d565b8063ad7ed8fe116100dc578063ad7ed8fe146105cd578063ae7d41db146105f6578063b5d896271461061f578063ba89a0951461065c5761023d565b806393f3fe891461050f578063a082a8991461053a578063a15131a314610579578063ab94276a146105a25761023d565b80634192cd04116101905780637d5fa2a71161015f5780637d5fa2a71461043c5780637d96f69314610465578063867378c514610490578063882f3e16146104bb578063893d20e8146104e45761023d565b80634192cd04146103a6578063564a80cf146103cf57806359e1e134146103e65780635ebb0ca4146104115761023d565b806321473c4c116101cc57806321473c4c146102ea5780632e1a7d4d146103155780632f54bf6e1461033e5780633d18b9121461037b5761023d565b80630329ae51146102425780630c101c751461026d578063107c60e31461029657806311faa48b146102bf5761023d565b3661023d577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258743334604051610233929190613bcf565b60405180910390a1005b600080fd5b34801561024e57600080fd5b50610257610809565b6040516102649190613bf8565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f9190613c82565b610813565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190613d07565b610af9565b005b3480156102cb57600080fd5b506102d4610ba4565b6040516102e19190613d34565b60405180910390f35b3480156102f657600080fd5b506102ff610bce565b60405161030c9190613d5e565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613da5565b610be5565b005b34801561034a57600080fd5b5061036560048036038101906103609190613dfe565b611156565b6040516103729190613d5e565b60405180910390f35b34801561038757600080fd5b506103906111ae565b60405161039d9190613bf8565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190613f0d565b61125e565b005b3480156103db57600080fd5b506103e4611977565b005b3480156103f257600080fd5b506103fb611c23565b6040516104089190613bf8565b60405180910390f35b34801561041d57600080fd5b50610426611c2d565b6040516104339190613bf8565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190613d07565b611c37565b005b34801561047157600080fd5b5061047a611ce2565b6040516104879190613bf8565b60405180910390f35b34801561049c57600080fd5b506104a5611d04565b6040516104b29190613bf8565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190613dfe565b611d12565b005b3480156104f057600080fd5b506104f961204d565b6040516105069190613d34565b60405180910390f35b34801561051b57600080fd5b50610524612076565b6040516105319190613d5e565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190613fa2565b61208d565b604051610570939291906141d3565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190614275565b612382565b005b3480156105ae57600080fd5b506105b761282b565b6040516105c49190613d34565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190613da5565b612855565b005b34801561060257600080fd5b5061061d6004803603810190610618919061431a565b6128ed565b005b34801561062b57600080fd5b5061064660048036038101906106419190613da5565b612e37565b60405161065391906144b5565b60405180910390f35b34801561066857600080fd5b50610671612f2e565b60405161067e9190613bf8565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190613dfe565b612f3c565b6040516106bd939291906144e6565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e8919061451d565b613086565b6040516106fa9190614669565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061468b565b61327d565b005b6107346133d9565b005b34801561074257600080fd5b5061075d600480360381019061075891906146b8565b613583565b005b34801561076b57600080fd5b5061077461381e565b6040516107819190613bf8565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac919061468b565b61382c565b005b3480156107bf57600080fd5b506107c8613ac2565b6040516107d59190613bf8565b60405180910390f35b3480156107ea57600080fd5b506107f3613af1565b6040516108009190613bf8565b60405180910390f35b6000600354905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890614775565b60405180910390fd5b600060048111156108b5576108b461401b565b5b600883836040516108c79291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156108f8576108f761401b565b5b03610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092f90614839565b60405180910390fd5b60046008838360405161094c9291906147d4565b908152602001604051809103902060020160006101000a81548160ff0219169083600481111561097f5761097e61401b565b5b0217905550600882826040516109969291906147d4565b908152602001604051809103902060010154600a60008282546109b99190614888565b925050819055506000600883836040516109d49291906147d4565b9081526020016040518091039020600001549050600060016009805490506109fc9190614888565b905060098181548110610a1257610a116148bc565b5b9060005260206000200160098381548110610a3057610a2f6148bc565b5b906000526020600020019081610a469190614b51565b5081600860098481548110610a5e57610a5d6148bc565b5b90600052602060002001604051610a759190614cbc565b9081526020016040518091039020600001819055506009805480610a9c57610a9b614cd3565b5b600190038181906000526020600020016000610ab89190613b18565b90557fe0daf65ed663c9a9016796bb4bf222fec6f5bd68fccfe6b268792d6df8d3944e8484604051610aeb929190614d2f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90614775565b60405180910390fd5b80600560016101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560019054906101000a900460ff16905090565b600560009054906101000a900460ff1615610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90614d9f565b60405180910390fd5b60006001811115610c4957610c4861401b565b5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115610cab57610caa61401b565b5b14610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290614e0b565b60405180910390fd5b80600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610d479190613d34565b602060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190614e40565b1015610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090614eb9565b60405180910390fd5b600354600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442610e179190614888565b11610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90614f25565b60405180910390fd5b6000479050818110610f7757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b8152600401610ec0929190613bcf565b600060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610f38573d6000803e3d6000fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d53383604051610f6a929190613bcf565b60405180910390a1611152565b6001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836001811115610fdd57610fdc61401b565b5b021790555081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555042600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555081600460008282546110829190614f45565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b81526004016110e6929190613bcf565b600060405180830381600087803b15801561110057600080fd5b505af1158015611114573d6000803e3d6000fd5b505050507f6add04759c04cdae5cb45895c6ee7765110bfa28d26eafb565d543598481c01c3383604051611149929190613bcf565b60405180910390a15b5050565b60008173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614e40565b47600a5461124f9190614f45565b6112599190614888565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390614775565b60405180910390fd5b84600160028111156113015761130061401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156113375761133661401b565b5b14611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90614fc5565b60405180910390fd5b8282905085859050146113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690615031565b60405180910390fd5b6000600b60008881526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1660028111156114225761142161401b565b5b60028111156114345761143361401b565b5b81525050905060008686905090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b785aca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d5919061508d565b63ffffffff16905060006103e88285600001516114f291906150ba565b6114fc9190615143565b905060008185600001516115109190614888565b90506000856040015190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190615189565b905060005b868110156118b9576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318f8f8581811061160e5761160d6148bc565b5b90506020020160208101906116239190613dfe565b6040518263ffffffff1660e01b815260040161163f9190613d34565b602060405180830381865afa15801561165c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116809190614e40565b905060008960200151868361169591906150ba565b61169f9190615143565b90508e8e848181106116b4576116b36148bc565b5b90506020020160208101906116c99190613dfe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361170a5786816117079190614f45565b90505b8c8c8481811061171d5761171c6148bc565b5b9050602002013581106117a157600a816117379190615143565b8d8d8581811061174a576117496148bc565b5b905060200201358261175c9190614888565b1061179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390615202565b60405180910390fd5b611836565b8c8c848181106117b4576117b36148bc565b5b9050602002013581101561183557600a816117cf9190615143565b818e8e868181106117e3576117e26148bc565b5b905060200201356117f49190614888565b10611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90615202565b60405180910390fd5b5b5b8c8c84818110611849576118486148bc565b5b905060200201358561185b9190614f45565b945089600001518511156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90615202565b60405180910390fd5b505080806118b190615222565b9150506115b3565b5081600b60008f815260200190815260200160002060020181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390e27e5e8d8d8d8d6040518563ffffffff1660e01b81526004016119369493929190615397565b600060405180830381600087803b15801561195057600080fd5b505af1158015611964573d6000803e3d6000fd5b5050505050505050505050505050505050565b60018081111561198a5761198961401b565b5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660018111156119ec576119eb61401b565b5b14611a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a239061541e565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166001811115611a9d57611a9c61401b565b5b6001811115611aaf57611aae61401b565b5b81526020016001820154815260200160028201548152505090508060200151471015611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790614eb9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f19350505050158015611b5a573d6000803e3d6000fd5b50806020015160046000828254611b719190614888565b925050819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836001811115611bde57611bdd61401b565b5b02179055507ffae868f1af4b3cc4b1d46af30e96235ebc5c80fc6060dbef53ab54071942ee64338260200151604051611c18929190613bcf565b60405180910390a150565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90614775565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b6000690878678326eac9000000600980549050611cff91906150ba565b905090565b69043c33c193756480000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614775565b60405180910390fd5b600180811115611db357611db261401b565b5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115611e1557611e1461401b565b5b14611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9061541e565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166001811115611ec657611ec561401b565b5b6001811115611ed857611ed761401b565b5b81526020016001820154815260200160028201548152505090508060200151471015611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090614eb9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f19350505050158015611f83573d6000803e3d6000fd5b50806020015160046000828254611f9a9190614888565b925050819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908360018111156120075761200661401b565b5b02179055507ffae868f1af4b3cc4b1d46af30e96235ebc5c80fc6060dbef53ab54071942ee64828260200151604051612041929190613bcf565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560009054906101000a900460ff16905090565b6060806060600085859050905060008167ffffffffffffffff8111156120b6576120b5614961565b5b6040519080825280602002602001820160405280156120e45781602001602082028036833780820191505090505b50905060008267ffffffffffffffff81111561210357612102614961565b5b6040519080825280602002602001820160405280156121315781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156121505761214f614961565b5b60405190808252806020026020018201604052801561217e5781602001602082028036833780820191505090505b50905060005b8481101561236d57600760008b8b848181106121a3576121a26148bc565b5b90506020020160208101906121b89190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16848281518110612216576122156148bc565b5b602002602001019060018111156122305761222f61401b565b5b908160018111156122445761224361401b565b5b81525050600760008b8b8481811061225f5761225e6148bc565b5b90506020020160208101906122749190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548382815181106122c5576122c46148bc565b5b602002602001018181525050600760008b8b848181106122e8576122e76148bc565b5b90506020020160208101906122fd9190613dfe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015482828151811061234e5761234d6148bc565b5b602002602001018181525050808061236590615222565b915050612184565b50828282965096509650505050509250925092565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240790614775565b60405180910390fd5b818190508484905014612458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244f90615031565b60405180910390fd5b60005b848490508110156125c8576000600481111561247a5761247961401b565b5b600886868481811061248f5761248e6148bc565b5b90506020028101906124a1919061544d565b6040516124af9291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156124e0576124df61401b565b5b03612520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251790614839565b60405180910390fd5b828282818110612533576125326148bc565b5b9050602002013569043c33c1937564800000111580156125765750690a968163f0a57b40000083838381811061256c5761256b6148bc565b5b9050602002013511155b6125b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ac906154fc565b60405180910390fd5b80806125c090615222565b91505061245b565b5060005b84849050811015612824578282828181106125ea576125e96148bc565b5b905060200201356008868684818110612606576126056148bc565b5b9050602002810190612618919061544d565b6040516126269291906147d4565b90815260200160405180910390206001015411612729576008858583818110612652576126516148bc565b5b9050602002810190612664919061544d565b6040516126729291906147d4565b908152602001604051809103902060010154838383818110612697576126966148bc565b5b905060200201356126a89190614888565b600a60008282546126b99190614f45565b925050819055508282828181106126d3576126d26148bc565b5b9050602002013560088686848181106126ef576126ee6148bc565b5b9050602002810190612701919061544d565b60405161270f9291906147d4565b908152602001604051809103902060010181905550612811565b82828281811061273c5761273b6148bc565b5b905060200201356008868684818110612758576127576148bc565b5b905060200281019061276a919061544d565b6040516127789291906147d4565b9081526020016040518091039020600101546127949190614888565b600a60008282546127a59190614888565b925050819055508282828181106127bf576127be6148bc565b5b9050602002013560088686848181106127db576127da6148bc565b5b90506020028101906127ed919061544d565b6040516127fb9291906147d4565b9081526020016040518091039020600101819055505b808061281c90615222565b9150506125cc565b5050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90614775565b60405180910390fd5b8060038190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297290614775565b60405180910390fd5b602087879050146129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061558e565b60405180910390fd5b600160ff16878760008181106129da576129d96148bc565b5b9050013560f81c60f81b60f81c60ff1614612a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2190615620565b60405180910390fd5b6000612a478888600c908092612a429392919061564a565b613afe565b90508073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614612ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aae906156d1565b60405180910390fd5b670de0b6b3a7640000821015612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af99061573d565b60405180910390fd5b6000633b9aca0083612b14919061575d565b14612b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4b90615800565b60405180910390fd5b6000633b9aca0083612b669190615143565b905067ffffffffffffffff8016811115612bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bac9061586c565b60405180910390fd5b82612bbe613ac2565b1015612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf6906158d8565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4070c46848d8d8d8d8d8d8d8d6040518a63ffffffff1660e01b8152600401612c69989796959493929190615a36565b6000604051808303818588803b158015612c8257600080fd5b505af1158015612c96573d6000803e3d6000fd5b505050505060006004811115612caf57612cae61401b565b5b60088c8c604051612cc19291906147d4565b908152602001604051809103902060020160009054906101000a900460ff166004811115612cf257612cf161401b565b5b03612def5760006040518060600160405280600980549050815260200185815260200160016004811115612d2957612d2861401b565b5b81525090508060088d8d604051612d419291906147d4565b9081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836004811115612d8e57612d8d61401b565b5b021790555090505060098c8c90918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182612dd3929190615ab6565b5083600a6000828254612de69190614f45565b92505081905550505b7f53124bbe4480b1c7855b0d57ee072204d73b3d3183112d377b160e15dbdea5a38b8b85604051612e2293929190615b86565b60405180910390a15050505050505050505050565b60606009805490508210612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7790615bde565b60405180910390fd5b60098281548110612e9457612e936148bc565b5b906000526020600020018054612ea99061491a565b80601f0160208091040260200160405190810160405280929190818152602001828054612ed59061491a565b8015612f225780601f10612ef757610100808354040283529160200191612f22565b820191906000526020600020905b815481529060010190602001808311612f0557829003601f168201915b50505050509050919050565b690878678326eac900000081565b6000806000600180811115612f5457612f5361401b565b5b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166001811115612fb657612fb561401b565b5b03613073576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600181111561302c5761302b61401b565b5b600181111561303e5761303d61401b565b5b81526020016001820154815260200160028201548152505090508060000151816020015182604001519350935093505061307f565b60008060009250925092505b9193909250565b60608183106130ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c190615bde565b60405180910390fd5b6000836009805490506130dd9190614888565b600185856130eb9190614888565b6130f59190614f45565b10613110578360098054905061310b9190614888565b613129565b6001848461311e9190614888565b6131289190614f45565b5b905060008167ffffffffffffffff81111561314757613146614961565b5b60405190808252806020026020018201604052801561317a57816020015b60608152602001906001900390816131655790505b50905060005b8281101561327157600086826131969190614f45565b9050600981815481106131ac576131ab6148bc565b5b9060005260206000200180546131c19061491a565b80601f01602080910402602001604051908101604052809291908181526020018280546131ed9061491a565b801561323a5780601f1061320f5761010080835404028352916020019161323a565b820191906000526020600020905b81548152906001019060200180831161321d57829003601f168201915b5050505050838381518110613252576132516148bc565b5b602002602001018190525050808061326990615222565b915050613180565b50809250505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461330b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330290614775565b60405180910390fd5b80600160028111156133205761331f61401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156133565761335561401b565b5b14613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d90614fc5565b60405180910390fd5b6002600b600084815260200190815260200160002060030160006101000a81548160ff021916908360028111156133d0576133cf61401b565b5b02179055505050565b600560019054906101000a900460ff1615613429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342090615c4a565b60405180910390fd5b683635c9adc5dea00000341015613475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346c9061573d565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933346040518363ffffffff1660e01b81526004016134d2929190613bcf565b600060405180830381600087803b1580156134ec57600080fd5b505af1158015613500573d6000803e3d6000fd5b5050505042600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c43334604051613579929190613bcf565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360890614775565b60405180910390fd5b600060048111156136255761362461401b565b5b600884846040516136379291906147d4565b908152602001604051809103902060020160009054906101000a900460ff1660048111156136685761366761401b565b5b036136a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369f90614839565b60405180910390fd5b8069043c33c1937564800000111580156136cc5750690a968163f0a57b4000008111155b61370b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613702906154fc565b60405180910390fd5b806008848460405161371e9291906147d4565b908152602001604051809103902060010154116137a957600883836040516137479291906147d4565b908152602001604051809103902060010154816137649190614888565b600a60008282546137759190614f45565b92505081905550806008848460405161378f9291906147d4565b908152602001604051809103902060010181905550613819565b80600884846040516137bc9291906147d4565b9081526020016040518091039020600101546137d89190614888565b600a60008282546137e99190614888565b9250508190555080600884846040516138039291906147d4565b9081526020016040518091039020600101819055505b505050565b690a968163f0a57b40000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146138ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138b190614775565b60405180910390fd5b80600060028111156138cf576138ce61401b565b5b600b600083815260200190815260200160002060030160009054906101000a900460ff1660028111156139055761390461401b565b5b14613945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393c90615cb6565b60405180910390fd5b600061394f6111ae565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9acfb736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e49190614e40565b9050600060405180608001604052808481526020018381526020016000815260200160016002811115613a1a57613a1961401b565b5b815250905080600b600087815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836002811115613a7c57613a7b61401b565b5b02179055509050507f35b8e4cd29053a5cb0a89d8b29e54ff5d38d4d36a0aaea03daf3a9ea30b096b085604051613ab39190615cd6565b60405180910390a15050505050565b600080479050600454811115613ae85760045481613ae09190614888565b915050613aee565b60009150505b90565b6000600980549050905090565b6000828290613b0d9190615d1d565b60601c905092915050565b508054613b249061491a565b6000825580601f10613b365750613b55565b601f016020900490600052602060002090810190613b549190613b58565b5b50565b5b80821115613b71576000816000905550600101613b59565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ba082613b75565b9050919050565b613bb081613b95565b82525050565b6000819050919050565b613bc981613bb6565b82525050565b6000604082019050613be46000830185613ba7565b613bf16020830184613bc0565b9392505050565b6000602082019050613c0d6000830184613bc0565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112613c4257613c41613c1d565b5b8235905067ffffffffffffffff811115613c5f57613c5e613c22565b5b602083019150836001820283011115613c7b57613c7a613c27565b5b9250929050565b60008060208385031215613c9957613c98613c13565b5b600083013567ffffffffffffffff811115613cb757613cb6613c18565b5b613cc385828601613c2c565b92509250509250929050565b60008115159050919050565b613ce481613ccf565b8114613cef57600080fd5b50565b600081359050613d0181613cdb565b92915050565b600060208284031215613d1d57613d1c613c13565b5b6000613d2b84828501613cf2565b91505092915050565b6000602082019050613d496000830184613ba7565b92915050565b613d5881613ccf565b82525050565b6000602082019050613d736000830184613d4f565b92915050565b613d8281613bb6565b8114613d8d57600080fd5b50565b600081359050613d9f81613d79565b92915050565b600060208284031215613dbb57613dba613c13565b5b6000613dc984828501613d90565b91505092915050565b613ddb81613b95565b8114613de657600080fd5b50565b600081359050613df881613dd2565b92915050565b600060208284031215613e1457613e13613c13565b5b6000613e2284828501613de9565b91505092915050565b6000819050919050565b613e3e81613e2b565b8114613e4957600080fd5b50565b600081359050613e5b81613e35565b92915050565b60008083601f840112613e7757613e76613c1d565b5b8235905067ffffffffffffffff811115613e9457613e93613c22565b5b602083019150836020820283011115613eb057613eaf613c27565b5b9250929050565b60008083601f840112613ecd57613ecc613c1d565b5b8235905067ffffffffffffffff811115613eea57613ee9613c22565b5b602083019150836020820283011115613f0657613f05613c27565b5b9250929050565b600080600080600060608688031215613f2957613f28613c13565b5b6000613f3788828901613e4c565b955050602086013567ffffffffffffffff811115613f5857613f57613c18565b5b613f6488828901613e61565b9450945050604086013567ffffffffffffffff811115613f8757613f86613c18565b5b613f9388828901613eb7565b92509250509295509295909350565b60008060208385031215613fb957613fb8613c13565b5b600083013567ffffffffffffffff811115613fd757613fd6613c18565b5b613fe385828601613e61565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061405b5761405a61401b565b5b50565b600081905061406c8261404a565b919050565b600061407c8261405e565b9050919050565b61408c81614071565b82525050565b600061409e8383614083565b60208301905092915050565b6000602082019050919050565b60006140c282613fef565b6140cc8185613ffa565b93506140d78361400b565b8060005b838110156141085781516140ef8882614092565b97506140fa836140aa565b9250506001810190506140db565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61414a81613bb6565b82525050565b600061415c8383614141565b60208301905092915050565b6000602082019050919050565b600061418082614115565b61418a8185614120565b935061419583614131565b8060005b838110156141c65781516141ad8882614150565b97506141b883614168565b925050600181019050614199565b5085935050505092915050565b600060608201905081810360008301526141ed81866140b7565b905081810360208301526142018185614175565b905081810360408301526142158184614175565b9050949350505050565b60008083601f84011261423557614234613c1d565b5b8235905067ffffffffffffffff81111561425257614251613c22565b5b60208301915083602082028301111561426e5761426d613c27565b5b9250929050565b6000806000806040858703121561428f5761428e613c13565b5b600085013567ffffffffffffffff8111156142ad576142ac613c18565b5b6142b98782880161421f565b9450945050602085013567ffffffffffffffff8111156142dc576142db613c18565b5b6142e887828801613eb7565b925092505092959194509250565b600080fd5b600060608284031215614311576143106142f6565b5b81905092915050565b600080600080600080600080600060c08a8c03121561433c5761433b613c13565b5b60008a013567ffffffffffffffff81111561435a57614359613c18565b5b6143668c828d01613c2c565b995099505060208a013567ffffffffffffffff81111561438957614388613c18565b5b6143958c828d01613c2c565b975097505060408a013567ffffffffffffffff8111156143b8576143b7613c18565b5b6143c48c828d01613c2c565b955095505060606143d78c828d01613e4c565b93505060808a013567ffffffffffffffff8111156143f8576143f7613c18565b5b6144048c828d016142fb565b92505060a06144158c828d01613d90565b9150509295985092959850929598565b600081519050919050565b600082825260208201905092915050565b60005b8381101561445f578082015181840152602081019050614444565b60008484015250505050565b6000601f19601f8301169050919050565b600061448782614425565b6144918185614430565b93506144a1818560208601614441565b6144aa8161446b565b840191505092915050565b600060208201905081810360008301526144cf818461447c565b905092915050565b6144e081614071565b82525050565b60006060820190506144fb60008301866144d7565b6145086020830185613bc0565b6145156040830184613bc0565b949350505050565b6000806040838503121561453457614533613c13565b5b600061454285828601613d90565b925050602061455385828601613d90565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b60006145a582614425565b6145af8185614589565b93506145bf818560208601614441565b6145c88161446b565b840191505092915050565b60006145df838361459a565b905092915050565b6000602082019050919050565b60006145ff8261455d565b6146098185614568565b93508360208202850161461b85614579565b8060005b85811015614657578484038952815161463885826145d3565b9450614643836145e7565b925060208a0199505060018101905061461f565b50829750879550505050505092915050565b6000602082019050818103600083015261468381846145f4565b905092915050565b6000602082840312156146a1576146a0613c13565b5b60006146af84828501613e4c565b91505092915050565b6000806000604084860312156146d1576146d0613c13565b5b600084013567ffffffffffffffff8111156146ef576146ee613c18565b5b6146fb86828701613c2c565b9350935050602061470e86828701613d90565b9150509250925092565b600082825260208201905092915050565b7f4e6f74417574686f72697a656400000000000000000000000000000000000000600082015250565b600061475f600d83614718565b915061476a82614729565b602082019050919050565b6000602082019050818103600083015261478e81614752565b9050919050565b600081905092915050565b82818337600083830152505050565b60006147bb8385614795565b93506147c88385846147a0565b82840190509392505050565b60006147e18284866147af565b91508190509392505050565b7f4e6f742065786973742076616c696461746f7200000000000000000000000000600082015250565b6000614823601383614718565b915061482e826147ed565b602082019050919050565b6000602082019050818103600083015261485281614816565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061489382613bb6565b915061489e83613bb6565b92508282039050818111156148b6576148b5614859565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061493257607f821691505b602082108103614945576149446148eb565b5b50919050565b60008154905061495a8161491a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826149ca565b614a1186836149ca565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614a4e614a49614a4484613bb6565b614a29565b613bb6565b9050919050565b6000819050919050565b614a6883614a33565b614a7c614a7482614a55565b8484546149d7565b825550505050565b600090565b614a91614a84565b614a9c818484614a5f565b505050565b5b81811015614ac057614ab5600082614a89565b600181019050614aa2565b5050565b601f821115614b0557614ad681614990565b614adf846149ba565b81016020851015614aee578190505b614b02614afa856149ba565b830182614aa1565b50505b505050565b600082821c905092915050565b6000614b2860001984600802614b0a565b1980831691505092915050565b6000614b418383614b17565b9150826002028217905092915050565b818103614b5f575050614c37565b614b688261494b565b67ffffffffffffffff811115614b8157614b80614961565b5b614b8b825461491a565b614b96828285614ac4565b6000601f831160018114614bc55760008415614bb3578287015490505b614bbd8582614b35565b865550614c30565b601f198416614bd3876149a5565b9650614bde86614990565b60005b82811015614c0657848901548255600182019150600185019450602081019050614be1565b86831015614c235784890154614c1f601f891682614b17565b8355505b6001600288020188555050505b5050505050505b565b60008154614c468161491a565b614c508186614795565b94506001821660008114614c6b5760018114614c8057614cb3565b60ff1983168652811515820286019350614cb3565b614c8985614990565b60005b83811015614cab57815481890152600182019150602081019050614c8c565b838801955050505b50505092915050565b6000614cc88284614c39565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000614d0e8385614430565b9350614d1b8385846147a0565b614d248361446b565b840190509392505050565b60006020820190508181036000830152614d4a818486614d02565b90509392505050565b7f5061757365642077697468647261770000000000000000000000000000000000600082015250565b6000614d89600f83614718565b9150614d9482614d53565b602082019050919050565b60006020820190508181036000830152614db881614d7c565b9050919050565b7f416c726561647920626f6f6b6564000000000000000000000000000000000000600082015250565b6000614df5600e83614718565b9150614e0082614dbf565b602082019050919050565b60006020820190508181036000830152614e2481614de8565b9050919050565b600081519050614e3a81613d79565b92915050565b600060208284031215614e5657614e55613c13565b5b6000614e6484828501614e2b565b91505092915050565b7f496e73756666696369656e740000000000000000000000000000000000000000600082015250565b6000614ea3600c83614718565b9150614eae82614e6d565b602082019050919050565b60006020820190508181036000830152614ed281614e96565b9050919050565b7f576169746520746f207769746864726177000000000000000000000000000000600082015250565b6000614f0f601183614718565b9150614f1a82614ed9565b602082019050919050565b60006020820190508181036000830152614f3e81614f02565b9050919050565b6000614f5082613bb6565b9150614f5b83613bb6565b9250828201905080821115614f7357614f72614859565b5b92915050565b7f4e6f74206f70656e656400000000000000000000000000000000000000000000600082015250565b6000614faf600a83614718565b9150614fba82614f79565b602082019050919050565b60006020820190508181036000830152614fde81614fa2565b9050919050565b7f4c656e67746820697320646966666572656e7400000000000000000000000000600082015250565b600061501b601383614718565b915061502682614fe5565b602082019050919050565b6000602082019050818103600083015261504a8161500e565b9050919050565b600063ffffffff82169050919050565b61506a81615051565b811461507557600080fd5b50565b60008151905061508781615061565b92915050565b6000602082840312156150a3576150a2613c13565b5b60006150b184828501615078565b91505092915050565b60006150c582613bb6565b91506150d083613bb6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561510957615108614859565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061514e82613bb6565b915061515983613bb6565b92508261516957615168615114565b5b828204905092915050565b60008151905061518381613dd2565b92915050565b60006020828403121561519f5761519e613c13565b5b60006151ad84828501615174565b91505092915050565b7f4572726f7220696e207265776172647300000000000000000000000000000000600082015250565b60006151ec601083614718565b91506151f7826151b6565b602082019050919050565b6000602082019050818103600083015261521b816151df565b9050919050565b600061522d82613bb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361525f5761525e614859565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b61528e81613b95565b82525050565b60006152a08383615285565b60208301905092915050565b60006152bb6020840184613de9565b905092915050565b6000602082019050919050565b60006152dc838561526a565b93506152e78261527b565b8060005b85811015615320576152fd82846152ac565b6153078882615294565b9750615312836152c3565b9250506001810190506152eb565b5085925050509392505050565b600080fd5b82818337505050565b60006153478385614120565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561537a5761537961532d565b5b60208302925061538b838584615332565b82840190509392505050565b600060408201905081810360008301526153b28186886152d0565b905081810360208301526153c781848661533b565b905095945050505050565b7f4e6f7420626f6f6b656400000000000000000000000000000000000000000000600082015250565b6000615408600a83614718565b9150615413826153d2565b602082019050919050565b60006020820190508181036000830152615437816153fb565b9050919050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261546a5761546961543e565b5b80840192508235915067ffffffffffffffff82111561548c5761548b615443565b5b6020830192506001820236038313156154a8576154a7615448565b5b509250929050565b7f41626e6f726d616c2062616c616e636500000000000000000000000000000000600082015250565b60006154e6601083614718565b91506154f1826154b0565b602082019050919050565b60006020820190508181036000830152615515816154d9565b9050919050565b7f496e76616c6964207769746864726177616c2063726564656e7469616c73206c60008201527f656e677468000000000000000000000000000000000000000000000000000000602082015250565b6000615578602583614718565b91506155838261551c565b604082019050919050565b600060208201905081810360008301526155a78161556b565b9050919050565b7f496e76616c6964207769746864726177616c2063726564656e7469616c73207460008201527f7970650000000000000000000000000000000000000000000000000000000000602082015250565b600061560a602383614718565b9150615615826155ae565b604082019050919050565b60006020820190508181036000830152615639816155fd565b9050919050565b600080fd5b600080fd5b6000808585111561565e5761565d615640565b5b8386111561566f5761566e615645565b5b6001850283019150848603905094509492505050565b7f496e76616c6964207769746864726177616c2061646472657373000000000000600082015250565b60006156bb601a83614718565b91506156c682615685565b602082019050919050565b600060208201905081810360008301526156ea816156ae565b9050919050565b7f4465706f7369747320746f6f206c6f7700000000000000000000000000000000600082015250565b6000615727601083614718565b9150615732826156f1565b602082019050919050565b600060208201905081810360008301526157568161571a565b9050919050565b600061576882613bb6565b915061577383613bb6565b92508261578357615782615114565b5b828206905092915050565b7f4465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677760008201527f6569000000000000000000000000000000000000000000000000000000000000602082015250565b60006157ea602283614718565b91506157f58261578e565b604082019050919050565b60006020820190508181036000830152615819816157dd565b9050919050565b7f4465706f7369742076616c756520746f6f206869676800000000000000000000600082015250565b6000615856601683614718565b915061586182615820565b602082019050919050565b6000602082019050818103600083015261588581615849565b9050919050565b7f42616c616e636520697320696e73756666696369656e74000000000000000000600082015250565b60006158c2601783614718565b91506158cd8261588c565b602082019050919050565b600060208201905081810360008301526158f1816158b5565b9050919050565b61590181613e2b565b82525050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261593357615932615911565b5b83810192508235915060208301925067ffffffffffffffff82111561595b5761595a615907565b5b6001820236038313156159715761597061590c565b5b509250929050565b60006159858385614589565b93506159928385846147a0565b61599b8361446b565b840190509392505050565b60006159b56020840184613e4c565b905092915050565b6159c681613e2b565b82525050565b6000606083016159df60008401846152ac565b6159ec6000860182615285565b506159fa6020840184615916565b8583036020870152615a0d838284615979565b92505050615a1e60408401846159a6565b615a2b60408601826159bd565b508091505092915050565b600060a0820190508181036000830152615a51818a8c614d02565b90508181036020830152615a6681888a614d02565b90508181036040830152615a7b818688614d02565b9050615a8a60608301856158f8565b8181036080830152615a9c81846159cc565b90509998505050505050505050565b600082905092915050565b615ac08383615aab565b67ffffffffffffffff811115615ad957615ad8614961565b5b615ae3825461491a565b615aee828285614ac4565b6000601f831160018114615b1d5760008415615b0b578287013590505b615b158582614b35565b865550615b7d565b601f198416615b2b86614990565b60005b82811015615b5357848901358255600182019150602085019450602081019050615b2e565b86831015615b705784890135615b6c601f891682614b17565b8355505b6001600288020188555050505b50505050505050565b60006040820190508181036000830152615ba1818587614d02565b9050615bb06020830184613bc0565b949350505050565b50565b6000615bc8600083614718565b9150615bd382615bb8565b600082019050919050565b60006020820190508181036000830152615bf781615bbb565b9050919050565b7f506175736564206465706f736974000000000000000000000000000000000000600082015250565b6000615c34600e83614718565b9150615c3f82615bfe565b602082019050919050565b60006020820190508181036000830152615c6381615c27565b9050919050565b7f416c7265616479206f70656e6564000000000000000000000000000000000000600082015250565b6000615ca0600e83614718565b9150615cab82615c6a565b602082019050919050565b60006020820190508181036000830152615ccf81615c93565b9050919050565b6000602082019050615ceb60008301846158f8565b92915050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000615d298383615aab565b82615d348135615cf1565b92506014821015615d7457615d6f7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026149ca565b831692505b50509291505056fea2646970667358221220d71d7570f597310fc875b1c81269c85290b6337111ae4eace550a8a1c17406d664736f6c63430008100033