Loading
61010060405234801561001157600080fd5b506040516166d93803806166d983398181016040528101906100339190611881565b85858584600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a95760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100a09190611955565b60405180910390fd5b6100b88161019460201b60201c565b5082600390816100c89190611b87565b5081600490816100d89190611b87565b5060128160ff161015610117576040517f98790fd500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060ff1660808160ff1681525050608051600a6101349190611dbb565b60a081815250504660c0818152505061015161025860201b60201c565b60e0818152505050505061016c8160016102e460201b60201c565b6101898160a0518561017e9190611e06565b6103cf60201b60201c565b505050505050612106565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600360405161028a9190611eeb565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016102c9959493929190611f2a565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361034a576040517fa41e3d3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156103645761035f826104b360201b60201c565b610374565b610373826104f060201b60201c565b5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610435576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8000000000000000000000000000000000000000000000000000000000000000816005546104649190611f7d565b111561049c576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ae6000838361055960201b60201c565b505050565b60006104c48261089360201b60201c565b905060005b818110156104eb576104e0836108df60201b60201c565b8060010190506104c9565b505050565b600060a05161050483610a1d60201b60201c565b61050e9190611fe0565b905060006105218361089360201b60201c565b905060005b81836105329190612011565b8110156105535761054884610a6660201b60201c565b806001019050610526565b50505050565b60008061056b85610a1d60201b60201c565b9050600061057e85610a1d60201b60201c565b9050610591868686610c2a60201b60201c565b60006105a287610d8a60201b60201c565b905060006105b587610d8a60201b60201c565b90508180156105c15750805b61088457811561066057600060a051846105db9190611fe0565b60a051600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106289190611fe0565b6106329190612011565b905060005b818110156106595761064e89610a6660201b60201c565b806001019050610637565b5050610883565b80156106fb57600060a051600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106b59190611fe0565b60a051866106c39190611fe0565b6106cd9190612011565b905060005b818110156106f4576106e98a6108df60201b60201c565b8060010190506106d2565b5050610882565b600060a0518761070b9190611fe0565b905060005b818110156107e95760006001600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506107699190612011565b90506000600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106107be576107bd612045565b5b906000526020600020015490506107dc8c8c83610e1660201b60201c565b8260010192505050610710565b508060a0516107fd8b610a1d60201b60201c565b6108079190611fe0565b60a051876108159190611fe0565b61081f9190612011565b111561083557610834896108df60201b60201c565b5b8060a051856108449190611fe0565b60a0516108568b610a1d60201b60201c565b6108609190611fe0565b61086a9190612011565b11156108805761087f88610a6660201b60201c565b5b505b5b5b60019450505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610945576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506109d59190612011565b815481106109e6576109e5612045565b5b90600052602060002001549050610a0582600083610e1660201b60201c565b610a198160016111a660201b90919060201c565b5050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610acc576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ade60016112c960201b60201c565b610af957610af2600161133960201b60201c565b9050610b9b565b600660008154610b0890612074565b919050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065403610b6a576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f8000000000000000000000000000000000000000000000000000000000000000610b989190611f7d565b90505b6000610bac8261149d60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c25818484610e1660201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7c578060056000828254610c709190611f7d565b92505081905550610cd3565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ccb9190612011565b925050819055505b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d7d91906120bc565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610e0f5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611021576009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050610f109190612011565b81548110610f2157610f20612045565b5b90600052602060002001549050818114610fba576000610f46836114d560201b60201c565b905081600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610f9a57610f99612045565b5b9060005260206000200181905550610fb882826114fa60201b60201c565b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611009576110086120d7565b5b60019003818190600052602060002001600090559055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461112e5761106581836115cd60201b60201c565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055611129816001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061111e9190612011565b6114fa60201b60201c565b611146565b600b6000828152602001908152602001600020600090555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600060018360000160009054906101000a90046fffffffffffffffffffffffffffffffff160390508260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff160361124b576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81836001016000836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808360000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16149050919050565b6000808260000160109054906101000a90046fffffffffffffffffffffffffffffffff1690508260000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16036113dc576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600190039050826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020549150826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060009055808360000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050919050565b600080600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff8116915050919050565b600080600b60008481526020019081526020016000205490508060a01c915050919050565b6000600b600084815260200190815260200160002054905060a07fffffffffffffffffffffffff0000000000000000000000000000000000000000901c821115611570576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff00000000000000000000000000000000000000008260a01b1673ffffffffffffffffffffffffffffffffffffffff821601905080600b600085815260200190815260200160002081905550505050565b6000600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff0000000000000000000000000000000000000000821601905080600b600085815260200190815260200160002081905550505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116a68261165d565b810181811067ffffffffffffffff821117156116c5576116c461166e565b5b80604052505050565b60006116d861163f565b90506116e4828261169d565b919050565b600067ffffffffffffffff8211156117045761170361166e565b5b61170d8261165d565b9050602081019050919050565b60005b8381101561173857808201518184015260208101905061171d565b60008484015250505050565b6000611757611752846116e9565b6116ce565b90508281526020810184848401111561177357611772611658565b5b61177e84828561171a565b509392505050565b600082601f83011261179b5761179a611653565b5b81516117ab848260208601611744565b91505092915050565b600060ff82169050919050565b6117ca816117b4565b81146117d557600080fd5b50565b6000815190506117e7816117c1565b92915050565b6000819050919050565b611800816117ed565b811461180b57600080fd5b50565b60008151905061181d816117f7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061184e82611823565b9050919050565b61185e81611843565b811461186957600080fd5b50565b60008151905061187b81611855565b92915050565b60008060008060008060c0878903121561189e5761189d611649565b5b600087015167ffffffffffffffff8111156118bc576118bb61164e565b5b6118c889828a01611786565b965050602087015167ffffffffffffffff8111156118e9576118e861164e565b5b6118f589828a01611786565b955050604061190689828a016117d8565b945050606061191789828a0161180e565b935050608061192889828a0161186c565b92505060a061193989828a0161186c565b9150509295509295509295565b61194f81611843565b82525050565b600060208201905061196a6000830184611946565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119c257607f821691505b6020821081036119d5576119d461197b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611a00565b611a478683611a00565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a84611a7f611a7a846117ed565b611a5f565b6117ed565b9050919050565b6000819050919050565b611a9e83611a69565b611ab2611aaa82611a8b565b848454611a0d565b825550505050565b600090565b611ac7611aba565b611ad2818484611a95565b505050565b5b81811015611af657611aeb600082611abf565b600181019050611ad8565b5050565b601f821115611b3b57611b0c816119db565b611b15846119f0565b81016020851015611b24578190505b611b38611b30856119f0565b830182611ad7565b50505b505050565b600082821c905092915050565b6000611b5e60001984600802611b40565b1980831691505092915050565b6000611b778383611b4d565b9150826002028217905092915050565b611b9082611970565b67ffffffffffffffff811115611ba957611ba861166e565b5b611bb382546119aa565b611bbe828285611afa565b600060209050601f831160018114611bf15760008415611bdf578287015190505b611be98582611b6b565b865550611c51565b601f198416611bff866119db565b60005b82811015611c2757848901518255600182019150602085019450602081019050611c02565b86831015611c445784890151611c40601f891682611b4d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611cdf57808604811115611cbb57611cba611c59565b5b6001851615611cca5780820291505b8081029050611cd885611c88565b9450611c9f565b94509492505050565b600082611cf85760019050611db4565b81611d065760009050611db4565b8160018114611d1c5760028114611d2657611d55565b6001915050611db4565b60ff841115611d3857611d37611c59565b5b8360020a915084821115611d4f57611d4e611c59565b5b50611db4565b5060208310610133831016604e8410600b8410161715611d8a5782820a905083811115611d8557611d84611c59565b5b611db4565b611d978484846001611c95565b92509050818404811115611dae57611dad611c59565b5b81810290505b9392505050565b6000611dc6826117ed565b9150611dd1836117b4565b9250611dfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ce8565b905092915050565b6000611e11826117ed565b9150611e1c836117ed565b9250828202611e2a816117ed565b91508282048414831517611e4157611e40611c59565b5b5092915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154611e75816119aa565b611e7f8186611e48565b94506001821660008114611e9a5760018114611eaf57611ee2565b60ff1983168652811515820286019350611ee2565b611eb885611e53565b60005b83811015611eda57815481890152600182019150602081019050611ebb565b838801955050505b50505092915050565b6000611ef78284611e68565b915081905092915050565b6000819050919050565b611f1581611f02565b82525050565b611f24816117ed565b82525050565b600060a082019050611f3f6000830188611f0c565b611f4c6020830187611f0c565b611f596040830186611f0c565b611f666060830185611f1b565b611f736080830184611946565b9695505050505050565b6000611f88826117ed565b9150611f93836117ed565b9250828201905080821115611fab57611faa611c59565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611feb826117ed565b9150611ff6836117ed565b92508261200657612005611fb1565b5b828204905092915050565b600061201c826117ed565b9150612027836117ed565b925082820390508181111561203f5761203e611c59565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061207f826117ed565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120b1576120b0611c59565b5b600182019050919050565b60006020820190506120d16000830184611f1b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60805160a05160c05160e05161454d61218c6000396000610b6f01526000610b3b015260008181610f0001528181611c57015281816123b1015281816123dd01528181612482015281816124ed0152818161254d0152818161265301528181612687015281816126ce015281816126fa0152612de301526000610b15015261454d6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80638a696e501161013b578063c6e672b9116100b8578063dd6376991161007c578063dd63769914610767578063dfabc03314610783578063e985e9c51461079f578063f2fde38b146107cf578063f780bc1a146107eb57610248565b8063c6e672b91461069f578063c87b56dd146106bb578063d505accf146106eb578063d96ca0b914610707578063dd62ed3e1461073757610248565b8063a9059cbb116100ff578063a9059cbb146105d5578063b1ab931714610605578063b3f9ea3414610635578063b88d4fde14610665578063c5ab3ba61461068157610248565b80638a696e50146105435780638da5cb5b1461055f57806395d89b411461057d578063976a84351461059b578063a22cb465146105b957610248565b80633644e515116101c95780636e8f624b1161018d5780636e8f624b1461049d57806370a08231146104bb578063715018a6146104eb5780637ecebe00146104f557806389fb4c661461052557610248565b80633644e515146103e557806342842e0e146104035780634d9660721461041f5780634f02c4201461044f5780636352211e1461046d57610248565b806309674eb01161021057806309674eb01461032b57806309f0ef651461034957806318160ddd1461037957806323b872dd14610397578063313ce567146103c757610248565b806301ffc9a71461024d57806302519da31461027d57806306fdde03146102ad578063081812fc146102cb578063095ea7b3146102fb575b600080fd5b61026760048036038101906102629190613758565b61081b565b60405161027491906137a0565b60405180910390f35b61029760048036038101906102929190613819565b6108ed565b6040516102a4919061385f565b60405180910390f35b6102b5610936565b6040516102c2919061390a565b60405180910390f35b6102e560048036038101906102e09190613958565b6109c4565b6040516102f29190613994565b60405180910390f35b610315600480360381019061031091906139af565b6109f7565b60405161032291906137a0565b60405180910390f35b610333610a32565b604051610340919061385f565b60405180910390f35b610363600480360381019061035e9190613819565b610a43565b60405161037091906137a0565b60405180910390f35b610381610acf565b60405161038e919061385f565b60405180910390f35b6103b160048036038101906103ac91906139ef565b610ad5565b6040516103be91906137a0565b60405180910390f35b6103cf610b13565b6040516103dc9190613a5e565b60405180910390f35b6103ed610b37565b6040516103fa9190613a92565b60405180910390f35b61041d600480360381019061041891906139ef565b610b94565b005b610439600480360381019061043491906139af565b610bb4565b60405161044691906137a0565b60405180910390f35b610457610d0b565b604051610464919061385f565b60405180910390f35b61048760048036038101906104829190613958565b610d11565b6040516104949190613994565b60405180910390f35b6104a5610dc8565b6040516104b2919061385f565b60405180910390f35b6104d560048036038101906104d09190613819565b610dec565b6040516104e2919061385f565b60405180910390f35b6104f3610e04565b005b61050f600480360381019061050a9190613819565b610e18565b60405161051c919061385f565b60405180910390f35b61052d610e30565b60405161053a919061385f565b60405180910390f35b61055d60048036038101906105589190613ad9565b610e3a565b005b610567610e47565b6040516105749190613994565b60405180910390f35b610585610e70565b604051610592919061390a565b60405180910390f35b6105a3610efe565b6040516105b0919061385f565b60405180910390f35b6105d360048036038101906105ce9190613b06565b610f22565b005b6105ef60048036038101906105ea91906139af565b611085565b6040516105fc91906137a0565b60405180910390f35b61061f600480360381019061061a9190613819565b6110ff565b60405161062c9190613c04565b60405180910390f35b61064f600480360381019061064a9190613819565b611196565b60405161065c919061385f565b60405180910390f35b61067f600480360381019061067a9190613d5b565b6111e2565b005b610689611358565b604051610696919061385f565b60405180910390f35b6106b960048036038101906106b49190613b06565b611362565b005b6106d560048036038101906106d09190613958565b611378565b6040516106e2919061390a565b60405180910390f35b61070560048036038101906107009190613e36565b6113a9565b005b610721600480360381019061071c91906139ef565b611736565b60405161072e91906137a0565b60405180910390f35b610751600480360381019061074c9190613ed8565b61194d565b60405161075e919061385f565b60405180910390f35b610781600480360381019061077c91906139ef565b611972565b005b61079d600480360381019061079891906139af565b611c8b565b005b6107b960048036038101906107b49190613ed8565b611e44565b6040516107c691906137a0565b60405180910390f35b6107e960048036038101906107e49190613819565b611e73565b005b61080560048036038101906108009190613f18565b611ef9565b6040516108129190613c04565b60405180910390f35b60007fcaf91ff5000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108e657507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6003805461094390613f87565b80601f016020809104026020016040519081016040528092919081815260200182805461096f90613f87565b80156109bc5780601f10610991576101008083540402835291602001916109bc565b820191906000526020600020905b81548152906001019060200180831161099f57829003601f168201915b505050505081565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a0282611fb5565b15610a1657610a118383611c8b565b610a27565b610a208383610bb4565b9050610a2c565b600190505b92915050565b6000610a3e600161200d565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610ac85750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b60055481565b6000610ae082611fb5565b15610af557610af0848484611972565b610b07565b610b00848484611736565b9050610b0c565b600190505b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000004614610b6d57610b6861206b565b610b8f565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b610baf838383604051806020016040528060008152506111e2565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1b576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cf9919061385f565b60405180910390a36001905092915050565b60065481565b6000610d1c826120f7565b9050610d2782611fb5565b610d5d576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dc3576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b7f800000000000000000000000000000000000000000000000000000000000000081565b60076020528060005260406000206000915090505481565b610e0c61212f565b610e1660006121b6565b565b600e6020528060005260406000206000915090505481565b6000600554905090565b610e44338261227a565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60048054610e7d90613f87565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea990613f87565b8015610ef65780601f10610ecb57610100808354040283529160200191610ef6565b820191906000526020600020905b815481529060010190602001808311610ed957829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f88576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161107991906137a0565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ec576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f7338484612359565b905092915050565b6060600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561118a57602002820191906000526020600020905b815481526020019060010190808311611176575b50505050509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6111eb82611fb5565b611221576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122c848484610ad5565b5060008373ffffffffffffffffffffffffffffffffffffffff163b1415801561131b575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b81526004016112b6949392919061400d565b6020604051808303816000875af11580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f9919061406e565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611352576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000600654905090565b61136a61212f565b611374828261227a565b5050565b606061138382612759565b60405160200161139391906140fd565b6040516020818303038152906040529050919050565b428410156113e3576040517f05787bdf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ec85611fb5565b15611423576040517f1f3e0de800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611489576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001611495610b37565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600e60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161151d96959493929190614123565b604051602081830303815290604052805190602001206040516020016115449291906141f1565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161157a9493929190614228565b6020604051602081039080840390855afa15801561159c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061160f57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611646576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611725919061385f565b60405180910390a350505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361179d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611803576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119385782816118b7919061429c565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943858585612359565b9150509392505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d8576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a47816120f7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611aab576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b6e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bd957506009600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611c10576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c1982610a43565b15611c50576040517f5ce7539700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7b83837f0000000000000000000000000000000000000000000000000000000000000000612827565b611c86838383612987565b505050565b6000611c96826120f7565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d5b5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d92576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600a6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b611e7b61212f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eed5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611ee49190613994565b60405180910390fd5b611ef6816121b6565b50565b606060008267ffffffffffffffff811115611f1757611f16613c30565b5b604051908082528060200260200182016040528015611f455781602001602082028036833780820191505090505b50905060008490505b8385611f5a91906142d0565b811015611faa57611f75816001612cff90919063ffffffff16565b828683611f82919061429c565b81518110611f9357611f92614304565b5b602002602001018181525050806001019050611f4e565b508091505092915050565b60007f80000000000000000000000000000000000000000000000000000000000000008211801561200657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214155b9050919050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff16036fffffffffffffffffffffffffffffffff169050919050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600360405161209d91906143d6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016120dc9594939291906143ed565b60405160208183030381529060405280519060200120905090565b600080600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff8116915050919050565b612137612da6565b73ffffffffffffffffffffffffffffffffffffffff16612155610e47565b73ffffffffffffffffffffffffffffffffffffffff16146121b457612178612da6565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016121ab9190613994565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e0576040517fa41e3d3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156122f4576122ef82612dae565b6122fe565b6122fd82612ddf565b5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080612365856108ed565b90506000612372856108ed565b905061237f868686612827565b600061238a87610a43565b9050600061239787610a43565b90508180156123a35750805b61274a5781156124785760007f0000000000000000000000000000000000000000000000000000000000000000846123db919061446f565b7f0000000000000000000000000000000000000000000000000000000000000000600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612446919061446f565b612450919061429c565b905060005b818110156124715761246689612e54565b806001019050612455565b5050612749565b80156125495760007f0000000000000000000000000000000000000000000000000000000000000000600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124eb919061446f565b7f000000000000000000000000000000000000000000000000000000000000000086612517919061446f565b612521919061429c565b905060005b81811015612542576125378a613000565b806001019050612526565b5050612748565b60007f000000000000000000000000000000000000000000000000000000000000000087612577919061446f565b905060005b8181101561264f5760006001600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506125d5919061429c565b90506000600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061262a57612629614304565b5b906000526020600020015490506126428c8c83612987565b826001019250505061257c565b50807f000000000000000000000000000000000000000000000000000000000000000061267b8b6108ed565b612685919061446f565b7f0000000000000000000000000000000000000000000000000000000000000000876126b1919061446f565b6126bb919061429c565b11156126cb576126ca89613000565b5b807f0000000000000000000000000000000000000000000000000000000000000000856126f8919061446f565b7f00000000000000000000000000000000000000000000000000000000000000006127228b6108ed565b61272c919061446f565b612736919061429c565b11156127465761274588612e54565b5b505b5b5b60019450505050509392505050565b60606000600161276884613138565b01905060008167ffffffffffffffff81111561278757612786613c30565b5b6040519080825280601f01601f1916602001820160405280156127b95781602001600182028036833780820191505090505b509050600082602001820190505b60011561281c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816128105761280f614440565b5b049450600085036127c7575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361287957806005600082825461286d91906142d0565b925050819055506128d0565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128c8919061429c565b925050819055505b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161297a919061385f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b86576009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612a81919061429c565b81548110612a9257612a91614304565b5b90600052602060002001549050818114612b1f576000612ab18361328b565b905081600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612b0557612b04614304565b5b9060005260206000200181905550612b1d82826132b0565b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612b6e57612b6d6144a0565b5b60019003818190600052602060002001600090559055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612c8757612bc48183613383565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055612c82816001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612c7d919061429c565b6132b0565b612c9f565b600b6000828152602001908152602001600020600090555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612d0a8361200d565b8210612d42576040517f580821e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001016000838560000160009054906101000a90046fffffffffffffffffffffffffffffffff16016fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6000612db982611196565b905060005b81811015612dda57612dcf83613000565b806001019050612dbe565b505050565b60007f0000000000000000000000000000000000000000000000000000000000000000612e0b836108ed565b612e15919061446f565b90506000612e2283611196565b905060005b8183612e33919061429c565b811015612e4e57612e4384612e54565b806001019050612e27565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612eba576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ec660016133f5565b612edb57612ed46001613465565b9050612f7d565b600660008154612eea906144cf565b919050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065403612f4c576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f8000000000000000000000000000000000000000000000000000000000000000612f7a91906142d0565b90505b6000612f88826120f7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ff0576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612ffb818484612987565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613066576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506130f6919061429c565b8154811061310757613106614304565b5b9060005260206000200154905061312082600083612987565b6131348160016135c990919063ffffffff16565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613196577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161318c5761318b614440565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106131d3576d04ee2d6d415b85acef810000000083816131c9576131c8614440565b5b0492506020810190505b662386f26fc10000831061320257662386f26fc1000083816131f8576131f7614440565b5b0492506010810190505b6305f5e100831061322b576305f5e100838161322157613220614440565b5b0492506008810190505b612710831061325057612710838161324657613245614440565b5b0492506004810190505b60648310613273576064838161326957613268614440565b5b0492506002810190505b600a8310613282576001810190505b80915050919050565b600080600b60008481526020019081526020016000205490508060a01c915050919050565b6000600b600084815260200190815260200160002054905060a07fffffffffffffffffffffffff0000000000000000000000000000000000000000901c821115613326576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff00000000000000000000000000000000000000008260a01b1673ffffffffffffffffffffffffffffffffffffffff821601905080600b600085815260200190815260200160002081905550505050565b6000600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff0000000000000000000000000000000000000000821601905080600b600085815260200190815260200160002081905550505050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16149050919050565b6000808260000160109054906101000a90046fffffffffffffffffffffffffffffffff1690508260000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1603613508576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600190039050826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020549150826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060009055808360000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050919050565b600060018360000160009054906101000a90046fffffffffffffffffffffffffffffffff160390508260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff160361366e576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81836001016000836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808360000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61373581613700565b811461374057600080fd5b50565b6000813590506137528161372c565b92915050565b60006020828403121561376e5761376d6136f6565b5b600061377c84828501613743565b91505092915050565b60008115159050919050565b61379a81613785565b82525050565b60006020820190506137b56000830184613791565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137e6826137bb565b9050919050565b6137f6816137db565b811461380157600080fd5b50565b600081359050613813816137ed565b92915050565b60006020828403121561382f5761382e6136f6565b5b600061383d84828501613804565b91505092915050565b6000819050919050565b61385981613846565b82525050565b60006020820190506138746000830184613850565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138b4578082015181840152602081019050613899565b60008484015250505050565b6000601f19601f8301169050919050565b60006138dc8261387a565b6138e68185613885565b93506138f6818560208601613896565b6138ff816138c0565b840191505092915050565b6000602082019050818103600083015261392481846138d1565b905092915050565b61393581613846565b811461394057600080fd5b50565b6000813590506139528161392c565b92915050565b60006020828403121561396e5761396d6136f6565b5b600061397c84828501613943565b91505092915050565b61398e816137db565b82525050565b60006020820190506139a96000830184613985565b92915050565b600080604083850312156139c6576139c56136f6565b5b60006139d485828601613804565b92505060206139e585828601613943565b9150509250929050565b600080600060608486031215613a0857613a076136f6565b5b6000613a1686828701613804565b9350506020613a2786828701613804565b9250506040613a3886828701613943565b9150509250925092565b600060ff82169050919050565b613a5881613a42565b82525050565b6000602082019050613a736000830184613a4f565b92915050565b6000819050919050565b613a8c81613a79565b82525050565b6000602082019050613aa76000830184613a83565b92915050565b613ab681613785565b8114613ac157600080fd5b50565b600081359050613ad381613aad565b92915050565b600060208284031215613aef57613aee6136f6565b5b6000613afd84828501613ac4565b91505092915050565b60008060408385031215613b1d57613b1c6136f6565b5b6000613b2b85828601613804565b9250506020613b3c85828601613ac4565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b7b81613846565b82525050565b6000613b8d8383613b72565b60208301905092915050565b6000602082019050919050565b6000613bb182613b46565b613bbb8185613b51565b9350613bc683613b62565b8060005b83811015613bf7578151613bde8882613b81565b9750613be983613b99565b925050600181019050613bca565b5085935050505092915050565b60006020820190508181036000830152613c1e8184613ba6565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c68826138c0565b810181811067ffffffffffffffff82111715613c8757613c86613c30565b5b80604052505050565b6000613c9a6136ec565b9050613ca68282613c5f565b919050565b600067ffffffffffffffff821115613cc657613cc5613c30565b5b613ccf826138c0565b9050602081019050919050565b82818337600083830152505050565b6000613cfe613cf984613cab565b613c90565b905082815260208101848484011115613d1a57613d19613c2b565b5b613d25848285613cdc565b509392505050565b600082601f830112613d4257613d41613c26565b5b8135613d52848260208601613ceb565b91505092915050565b60008060008060808587031215613d7557613d746136f6565b5b6000613d8387828801613804565b9450506020613d9487828801613804565b9350506040613da587828801613943565b925050606085013567ffffffffffffffff811115613dc657613dc56136fb565b5b613dd287828801613d2d565b91505092959194509250565b613de781613a42565b8114613df257600080fd5b50565b600081359050613e0481613dde565b92915050565b613e1381613a79565b8114613e1e57600080fd5b50565b600081359050613e3081613e0a565b92915050565b600080600080600080600060e0888a031215613e5557613e546136f6565b5b6000613e638a828b01613804565b9750506020613e748a828b01613804565b9650506040613e858a828b01613943565b9550506060613e968a828b01613943565b9450506080613ea78a828b01613df5565b93505060a0613eb88a828b01613e21565b92505060c0613ec98a828b01613e21565b91505092959891949750929550565b60008060408385031215613eef57613eee6136f6565b5b6000613efd85828601613804565b9250506020613f0e85828601613804565b9150509250929050565b60008060408385031215613f2f57613f2e6136f6565b5b6000613f3d85828601613943565b9250506020613f4e85828601613943565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f9f57607f821691505b602082108103613fb257613fb1613f58565b5b50919050565b600081519050919050565b600082825260208201905092915050565b6000613fdf82613fb8565b613fe98185613fc3565b9350613ff9818560208601613896565b614002816138c0565b840191505092915050565b60006080820190506140226000830187613985565b61402f6020830186613985565b61403c6040830185613850565b818103606083015261404e8184613fd4565b905095945050505050565b6000815190506140688161372c565b92915050565b600060208284031215614084576140836136f6565b5b600061409284828501614059565b91505092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f000000000000815250565b600081905092915050565b60006140d78261387a565b6140e181856140c1565b93506140f1818560208601613896565b80840191505092915050565b60006141088261409b565b601a8201915061411882846140cc565b915081905092915050565b600060c0820190506141386000830189613a83565b6141456020830188613985565b6141526040830187613985565b61415f6060830186613850565b61416c6080830185613850565b61417960a0830184613850565b979650505050505050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006141ba6002836140c1565b91506141c582614184565b600282019050919050565b6000819050919050565b6141eb6141e682613a79565b6141d0565b82525050565b60006141fc826141ad565b915061420882856141da565b60208201915061421882846141da565b6020820191508190509392505050565b600060808201905061423d6000830187613a83565b61424a6020830186613a4f565b6142576040830185613a83565b6142646060830184613a83565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142a782613846565b91506142b283613846565b92508282039050818111156142ca576142c961426d565b5b92915050565b60006142db82613846565b91506142e683613846565b92508282019050808211156142fe576142fd61426d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b60008190508160005260206000209050919050565b6000815461436081613f87565b61436a8186614333565b94506001821660008114614385576001811461439a576143cd565b60ff19831686528115158202860193506143cd565b6143a38561433e565b60005b838110156143c5578154818901526001820191506020810190506143a6565b838801955050505b50505092915050565b60006143e28284614353565b915081905092915050565b600060a0820190506144026000830188613a83565b61440f6020830187613a83565b61441c6040830186613a83565b6144296060830185613850565b6144366080830184613985565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061447a82613846565b915061448583613846565b92508261449557614494614440565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006144da82613846565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361450c5761450b61426d565b5b60018201905091905056fea2646970667358221220182a104e2d7e10e12e95a6255bd1251b37aa05d09a89874e429ab0c455c4b26664736f6c634300081b003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000e8713ec6ec0b23d8d9c118cf13c934cbd3fc6375000000000000000000000000e8713ec6ec0b23d8d9c118cf13c934cbd3fc6375000000000000000000000000000000000000000000000000000000000000000b4552433430342d3136343000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076572633136343000000000000000000000000000000000000000000000000000