60e0604052600160055534801561001557600080fd5b50604051615d22380380615d228339818101604052810190610037919061053d565b33604051806020016040528060008152506100578161022560201b60201c565b5060016003819055506000600460006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ed5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100e4919061063a565b60405180910390fd5b6100fc8161023860201b60201c565b50876006908161010c919061086c565b50866007908161011c919061086c565b508573ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508360c081815250506103e88211156101c9576040517f6d24edae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a819055508260098190555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505061093e565b8060029081610234919061086c565b5050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6103658261031c565b810181811067ffffffffffffffff821117156103845761038361032d565b5b80604052505050565b60006103976102fe565b90506103a3828261035c565b919050565b600067ffffffffffffffff8211156103c3576103c261032d565b5b6103cc8261031c565b9050602081019050919050565b60005b838110156103f75780820151818401526020810190506103dc565b60008484015250505050565b6000610416610411846103a8565b61038d565b90508281526020810184848401111561043257610431610317565b5b61043d8482856103d9565b509392505050565b600082601f83011261045a57610459610312565b5b815161046a848260208601610403565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061049e82610473565b9050919050565b6104ae81610493565b81146104b957600080fd5b50565b6000815190506104cb816104a5565b92915050565b6000819050919050565b6104e4816104d1565b81146104ef57600080fd5b50565b600081519050610501816104db565b92915050565b6000819050919050565b61051a81610507565b811461052557600080fd5b50565b60008151905061053781610511565b92915050565b600080600080600080600080610100898b03121561055e5761055d610308565b5b600089015167ffffffffffffffff81111561057c5761057b61030d565b5b6105888b828c01610445565b985050602089015167ffffffffffffffff8111156105a9576105a861030d565b5b6105b58b828c01610445565b97505060406105c68b828c016104bc565b96505060606105d78b828c016104bc565b95505060806105e88b828c016104f2565b94505060a06105f98b828c01610528565b93505060c061060a8b828c01610528565b92505060e061061b8b828c016104bc565b9150509295985092959890939650565b61063481610493565b82525050565b600060208201905061064f600083018461062b565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106a757607f821691505b6020821081036106ba576106b9610660565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106e5565b61072c86836106e5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061076961076461075f84610507565b610744565b610507565b9050919050565b6000819050919050565b6107838361074e565b61079761078f82610770565b8484546106f2565b825550505050565b600090565b6107ac61079f565b6107b781848461077a565b505050565b5b818110156107db576107d06000826107a4565b6001810190506107bd565b5050565b601f821115610820576107f1816106c0565b6107fa846106d5565b81016020851015610809578190505b61081d610815856106d5565b8301826107bc565b50505b505050565b600082821c905092915050565b600061084360001984600802610825565b1980831691505092915050565b600061085c8383610832565b9150826002028217905092915050565b61087582610655565b67ffffffffffffffff81111561088e5761088d61032d565b5b610898825461068f565b6108a38282856107df565b600060209050601f8311600181146108d657600084156108c4578287015190505b6108ce8582610850565b865550610936565b601f1984166108e4866106c0565b60005b8281101561090c578489015182556001820191506020850194506020810190506108e7565b868310156109295784890151610925601f891682610832565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05161539261099060003960008181610a880152818161268b01526126b701526000818161154401528181611c900152612779015260008181611272015261152001526153926000f3fe60806040526004361061023e5760003560e01c8063741bef1a1161012e578063be22fa28116100ab578063f1a640f81161006f578063f1a640f814610853578063f242432a1461087e578063f2fde38b146108a7578063ff5169ab146108d0578063ffdceb811461090d57610245565b8063be22fa2814610767578063dce0b4e414610797578063e1f1c4a7146107c2578063e985e9c5146107ed578063f160d3691461082a57610245565b806395d89b41116100f257806395d89b411461068f578063a0712d68146106ba578063a22cb465146106d6578063ad39277e146106ff578063b09afec11461072a57610245565b8063741bef1a146105ce5780637f9c344c146105f95780638456cb5914610624578063897925f51461063b5780638da5cb5b1461066457610245565b80633f4ba83a116101bc5780635c975abb116101805780635c975abb1461050f57806367c9b0171461053a5780636db79437146105655780636ff1c9bc1461058e578063715018a6146105b757610245565b80633f4ba83a1461043c578063469048401461045357806346cb755f1461047e5780634a8477a6146104a75780634e1273f4146104d257610245565b806317b2a9bc1161020357806317b2a9bc1461035757806318e97fd11461039457806326232a2e146103bd57806327431b5c146103e85780632eb2c2d61461041357610245565b8062fdd58e1461024a57806301ffc9a7146102875780630582c10b146102c457806306fdde03146102ef5780630e89341c1461031a57610245565b3661024557005b600080fd5b34801561025657600080fd5b50610271600480360381019061026c91906138d4565b61094a565b60405161027e9190613923565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190613996565b6109a4565b6040516102bb91906139de565b60405180910390f35b3480156102d057600080fd5b506102d9610a86565b6040516102e69190613a12565b60405180910390f35b3480156102fb57600080fd5b50610304610aaa565b6040516103119190613abd565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190613adf565b610b3c565b60405161034e9190613abd565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190613b0c565b610c3e565b60405161038b91906139de565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190613c81565b610d07565b005b3480156103c957600080fd5b506103d2610e3e565b6040516103df9190613923565b60405180910390f35b3480156103f457600080fd5b506103fd610e44565b60405161040a9190613abd565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613e46565b610ed2565b005b34801561044857600080fd5b50610451610f7a565b005b34801561045f57600080fd5b50610468610f8c565b6040516104759190613f24565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a09190613f3f565b610fb2565b005b3480156104b357600080fd5b506104bc611147565b6040516104c99190613a12565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f49190614042565b61114d565b6040516105069190614178565b60405180910390f35b34801561051b57600080fd5b50610524611256565b60405161053191906139de565b60405180910390f35b34801561054657600080fd5b5061054f61126d565b60405161055c9190613923565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f3f565b61133e565b005b34801561059a57600080fd5b506105b560048036038101906105b0919061419a565b6113cd565b005b3480156105c357600080fd5b506105cc61150a565b005b3480156105da57600080fd5b506105e361151e565b6040516105f09190614226565b60405180910390f35b34801561060557600080fd5b5061060e611542565b60405161061b9190614262565b60405180910390f35b34801561063057600080fd5b50610639611566565b005b34801561064757600080fd5b50610662600480360381019061065d9190613f3f565b611578565b005b34801561067057600080fd5b506106796116a6565b6040516106869190613f24565b60405180910390f35b34801561069b57600080fd5b506106a46116d0565b6040516106b19190613abd565b60405180910390f35b6106d460048036038101906106cf9190613adf565b611762565b005b3480156106e257600080fd5b506106fd60048036038101906106f891906142a9565b611c36565b005b34801561070b57600080fd5b50610714611c4c565b6040516107219190613abd565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c9190613adf565b611d7d565b60405161075e91906143da565b60405180910390f35b610781600480360381019061077c91906143fc565b611f25565b60405161078e9190613923565b60405180910390f35b3480156107a357600080fd5b506107ac6122ae565b6040516107b99190613923565b60405180910390f35b3480156107ce57600080fd5b506107d76122b4565b6040516107e49190613923565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061447f565b6122ba565b60405161082191906139de565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c919061419a565b61234e565b005b34801561085f57600080fd5b50610868612437565b6040516108759190613923565b60405180910390f35b34801561088a57600080fd5b506108a560048036038101906108a091906144bf565b61243c565b005b3480156108b357600080fd5b506108ce60048036038101906108c9919061419a565b6124e4565b005b3480156108dc57600080fd5b506108f760048036038101906108f29190613adf565b61256a565b6040516109049190613923565b60405180910390f35b34801561091957600080fd5b50610934600480360381019061092f91906145b1565b612654565b6040516109419190613a12565b60405180910390f35b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a6f57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a7f5750610a7e82612862565b5b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060068054610ab99061462d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae59061462d565b8015610b325780601f10610b0757610100808354040283529160200191610b32565b820191906000526020600020905b815481529060010190602001808311610b1557829003601f168201915b5050505050905090565b60606008600083815260200190815260200160002060030160009054906101000a900460ff16610b98576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860008381526020019081526020016000206002018054610bb99061462d565b80601f0160208091040260200160405190810160405280929190818152602001828054610be59061462d565b8015610c325780601f10610c0757610100808354040283529160200191610c32565b820191906000526020600020905b815481529060010190602001808311610c1557829003601f168201915b50505050509050919050565b60006008600084815260200190815260200160002060030160009054906101000a900460ff16610c9a576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60006008600084815260200190815260200160002090508060030160009054906101000a900460ff16610d66576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610def576040517fddba2c5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816002019081610e009190614800565b50827f931f495b9a8e5d8e61946ea5d61e021f636cfe213a801f97589c18c152e408bd83604051610e319190613abd565b60405180910390a2505050565b600a5481565b600d8054610e519061462d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7d9061462d565b8015610eca5780601f10610e9f57610100808354040283529160200191610eca565b820191906000526020600020905b815481529060010190602001808311610ead57829003601f168201915b505050505081565b6000610edc6128cc565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f215750610f1f86826122ba565b155b15610f655780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610f5c9291906148d2565b60405180910390fd5b610f7286868686866128d4565b505050505050565b610f826129cc565b610f8a612a53565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006008600084815260200190815260200160002090508060030160009054906101000a900460ff16611011576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109a576040517fddba2c5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036110d4576040517f16b9203300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818160000160008282546110e8919061492a565b9250508190555061110a33848460405180602001604052806000815250612ab6565b827f30d2b2e241c83cfd7899facc4b67c8e4dbde9c83d26ffcf9628ce5e102968e718360405161113a9190613923565b60405180910390a2505050565b600c5481565b6060815183511461119957815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161119092919061495e565b60405180910390fd5b6000835167ffffffffffffffff8111156111b6576111b5613b56565b5b6040519080825280602002602001820160405280156111e45781602001602082028036833780820191505090505b50905060005b845181101561124b576112216112098287612b4f90919063ffffffff16565b61121c8387612b6390919063ffffffff16565b61094a565b82828151811061123457611233614987565b5b6020026020010181815250508060010190506111ea565b508091505092915050565b6000600460009054906101000a900460ff16905090565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff91906149fe565b6fffffffffffffffffffffffffffffffff169050600081118015611327575064174876e80081105b15611335578091505061133b565b60009150505b90565b6113466129cc565b6103e8811115611382576040517f6d24edae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160098190555080600a819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a182826040516113c192919061495e565b60405180910390a15050565b6113d56129cc565b600047905060008103611414576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161143a90614a5c565b60006040518083038185875af1925050503d8060008114611477576040519150601f19603f3d011682016040523d82523d6000602084013e61147c565b606091505b50509050806114b7576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695836040516114fd9190613923565b60405180910390a2505050565b6115126129cc565b61151c6000612b77565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61156e6129cc565b611576612c3d565b565b60006008600084815260200190815260200160002090508060030160009054906101000a900460ff166115d7576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611660576040517fddba2c5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818160010181905550827fd9cc159fa79112d02593601db522a6696e6c5c82d9e9ca9332f89ec824935bb0836040516116999190613923565b60405180910390a2505050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600780546116df9061462d565b80601f016020809104026020016040519081016040528092919081815260200182805461170b9061462d565b80156117585780601f1061172d57610100808354040283529160200191611758565b820191906000526020600020905b81548152906001019060200180831161173b57829003601f168201915b5050505050905090565b61176a612ca0565b611772612ce6565b60006008600083815260200190815260200160002090508060030160009054906101000a900460ff166117d1576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600001540361180f576040517f33aa101c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061181961126d565b905060008103611854576040517ebfc92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081670de0b6b3a7640000846001015461186f9190614a71565b6118799190614ae2565b9050803410156118b5576040517f3c6b4b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612710600a54836118c89190614a71565b6118d29190614ae2565b905060006127108560040154846118e99190614a71565b6118f39190614ae2565b905060008183856119049190614b13565b61190e9190614b13565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161195890614a5c565b60006040518083038185875af1925050503d8060008114611995576040519150601f19603f3d011682016040523d82523d6000602084013e61199a565b606091505b50509050806119d5576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168284611a1c919061492a565b604051611a2890614a5c565b60006040518083038185875af1925050503d8060008114611a65576040519150601f19603f3d011682016040523d82523d6000602084013e611a6a565b606091505b50508091505080611aa7576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ac33389600160405180602001604052806000815250612ab6565b6001876000016000828254611ad89190614b13565b925050819055508660030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16897fd8af28a4b41bc7e07437dd832e30236e9b3485030273287105cf4d20283ee236888888604051611b6593929190614b47565b60405180910390a484341115611c24573373ffffffffffffffffffffffffffffffffffffffff168534611b989190614b13565b604051611ba490614a5c565b60006040518083038185875af1925050503d8060008114611be1576040519150601f19603f3d011682016040523d82523d6000602084013e611be6565b606091505b50508091505080611c23576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050505050611c33612d27565b50565b611c48611c416128cc565b8383612d31565b5050565b60606000801b600c5403611c8c576040517f11813b7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b1d6bb97600c546040518263ffffffff1660e01b8152600401611ce99190613a12565b600060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2f9190614e72565b9050806040015115611d48578060800151915050611d7a565b6040517f7290b20a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90565b611d856137de565b6008600083815260200190815260200160002060030160009054906101000a900460ff16611ddf576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860008381526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282018054611e219061462d565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4d9061462d565b8015611e9a5780601f10611e6f57610100808354040283529160200191611e9a565b820191906000526020600020905b815481529060010190602001808311611e7d57829003601f168201915b505050505081526020016003820160009054906101000a900460ff161515151581526020016003820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815250509050919050565b6000600954341015611f63576040517f3c6b4b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107d0821115611f9f576040517f4d2bb5a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060056000815480929190611fb490614ebb565b9190505590506040518060c001604052808781526020018581526020018681526020016001151581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200184815250600860008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201908161203c9190614800565b5060608201518160030160006101000a81548160ff02191690831515021790555060808201518160030160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600401559050506120cc33828860405180602001604052806000815250612ab6565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660095460405161211690614a5c565b60006040518083038185875af1925050503d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b5050905080612193576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095434111561224e573373ffffffffffffffffffffffffffffffffffffffff16600954346121c29190614b13565b6040516121ce90614a5c565b60006040518083038185875af1925050503d806000811461220b576040519150601f19603f3d011682016040523d82523d6000602084013e612210565b606091505b5050809150508061224d576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b3373ffffffffffffffffffffffffffffffffffffffff16827f92aa9d058b0ed24557c2e2ab66cabb6f73f62b015bb26c7a3fe4dcee323e89e689888860405161229993929190614b47565b60405180910390a38192505050949350505050565b60095481565b61271081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123566129cc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f6d24edae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc28160405161242c9190613f24565b60405180910390a150565b600681565b60006124466128cc565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561248b575061248986826122ba565b155b156124cf5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016124c69291906148d2565b60405180910390fd5b6124dc8686868686612ea1565b505050505050565b6124ec6129cc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361255e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016125559190613f24565b60405180910390fd5b61256781612b77565b50565b60006008600083815260200190815260200160002060030160009054906101000a900460ff166125c6576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006125d061126d565b90506000810361260b576040517ebfc92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600860008581526020019081526020016000206001015490506000670de0b6b3a76400008261263c9190614a71565b9050828161264a9190614ae2565b9350505050919050565b600080838360405160200161266a929190614f33565b604051602081830303815290604052905060006040518061012001604052807f000000000000000000000000000000000000000000000000000000000000000081526020018381526020017f0000000000000000000000000000000000000000000000000000000000000000815260200160405180604001604052806001815260200160008152508152602001600161ffff1681526020016040518060400160405280600181526020016000815250815260200160016fffffffffffffffffffffffffffffffff168152602001624c4b406fffffffffffffffffffffffffffffffff168152602001436040516020016127639190614f6d565b60405160208183030381529060405281525090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633e8389dc826040518263ffffffff1660e01b81526004016127d091906150f2565b6020604051808303816000875af11580156127ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128139190615114565b600c81905550600c547f29ea317b7ce1dc90100486e5125578c9fa277e8085a76f5a5427c91de452f522868660405161284d92919061516e565b60405180910390a2600c549250505092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036129465760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161293d9190613f24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129b85760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129af9190613f24565b60405180910390fd5b6129c58585858585612fac565b5050505050565b6129d46128cc565b73ffffffffffffffffffffffffffffffffffffffff166129f26116a6565b73ffffffffffffffffffffffffffffffffffffffff1614612a5157612a156128cc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612a489190613f24565b60405180910390fd5b565b612a5b61305e565b6000600460006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612a9f6128cc565b604051612aac9190613f24565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612b285760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612b1f9190613f24565b60405180910390fd5b600080612b35858561309e565b91509150612b47600087848487612fac565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612c45612ce6565b6001600460006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612c896128cc565b604051612c969190613f24565b60405180910390a1565b600260035403612cdc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381905550565b612cee611256565b15612d25576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6001600381905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da35760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401612d9a9190613f24565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612e9491906139de565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612f135760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f0a9190613f24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612f855760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401612f7c9190613f24565b60405180910390fd5b600080612f92858561309e565b91509150612fa38787848487612fac565b50505050505050565b612fb8858585856130ce565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614613057576000612ff66128cc565b90506001845103613046576000613017600086612b6390919063ffffffff16565b9050600061302f600086612b6390919063ffffffff16565b905061303f838989858589613476565b5050613055565b61305481878787878761362a565b5b505b5050505050565b613066611256565b61309c576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461311857815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161310f92919061495e565b60405180910390fd5b60006131226128cc565b905060005b83518110156133315760006131458286612b6390919063ffffffff16565b9050600061315c8386612b6390919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461328957600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561323157888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016132289493929190615192565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613324578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461331c919061492a565b925050819055505b5050806001019050613127565b5060018351036133f0576000613351600085612b6390919063ffffffff16565b90506000613369600085612b6390919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516133e192919061495e565b60405180910390a4505061346f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516134669291906151d7565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115613622578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016134d7959493929190615258565b6020604051808303816000875af192505050801561351357506040513d601f19601f8201168201806040525081019061351091906152c7565b60015b613597573d8060008114613543576040519150601f19603f3d011682016040523d82523d6000602084013e613548565b606091505b50600081510361358f57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016135869190613f24565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461362057846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016136179190613f24565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156137d6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161368b9594939291906152f4565b6020604051808303816000875af19250505080156136c757506040513d601f19601f820116820180604052508101906136c491906152c7565b60015b61374b573d80600081146136f7576040519150601f19603f3d011682016040523d82523d6000602084013e6136fc565b606091505b50600081510361374357846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161373a9190613f24565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146137d457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016137cb9190613f24565b60405180910390fd5b505b505050505050565b6040518060c00160405280600081526020016000815260200160608152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061386b82613840565b9050919050565b61387b81613860565b811461388657600080fd5b50565b60008135905061389881613872565b92915050565b6000819050919050565b6138b18161389e565b81146138bc57600080fd5b50565b6000813590506138ce816138a8565b92915050565b600080604083850312156138eb576138ea613836565b5b60006138f985828601613889565b925050602061390a858286016138bf565b9150509250929050565b61391d8161389e565b82525050565b60006020820190506139386000830184613914565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6139738161393e565b811461397e57600080fd5b50565b6000813590506139908161396a565b92915050565b6000602082840312156139ac576139ab613836565b5b60006139ba84828501613981565b91505092915050565b60008115159050919050565b6139d8816139c3565b82525050565b60006020820190506139f360008301846139cf565b92915050565b6000819050919050565b613a0c816139f9565b82525050565b6000602082019050613a276000830184613a03565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a67578082015181840152602081019050613a4c565b60008484015250505050565b6000601f19601f8301169050919050565b6000613a8f82613a2d565b613a998185613a38565b9350613aa9818560208601613a49565b613ab281613a73565b840191505092915050565b60006020820190508181036000830152613ad78184613a84565b905092915050565b600060208284031215613af557613af4613836565b5b6000613b03848285016138bf565b91505092915050565b60008060408385031215613b2357613b22613836565b5b6000613b31858286016138bf565b9250506020613b4285828601613889565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b8e82613a73565b810181811067ffffffffffffffff82111715613bad57613bac613b56565b5b80604052505050565b6000613bc061382c565b9050613bcc8282613b85565b919050565b600067ffffffffffffffff821115613bec57613beb613b56565b5b613bf582613a73565b9050602081019050919050565b82818337600083830152505050565b6000613c24613c1f84613bd1565b613bb6565b905082815260208101848484011115613c4057613c3f613b51565b5b613c4b848285613c02565b509392505050565b600082601f830112613c6857613c67613b4c565b5b8135613c78848260208601613c11565b91505092915050565b60008060408385031215613c9857613c97613836565b5b6000613ca6858286016138bf565b925050602083013567ffffffffffffffff811115613cc757613cc661383b565b5b613cd385828601613c53565b9150509250929050565b600067ffffffffffffffff821115613cf857613cf7613b56565b5b602082029050602081019050919050565b600080fd5b6000613d21613d1c84613cdd565b613bb6565b90508083825260208201905060208402830185811115613d4457613d43613d09565b5b835b81811015613d6d5780613d5988826138bf565b845260208401935050602081019050613d46565b5050509392505050565b600082601f830112613d8c57613d8b613b4c565b5b8135613d9c848260208601613d0e565b91505092915050565b600067ffffffffffffffff821115613dc057613dbf613b56565b5b613dc982613a73565b9050602081019050919050565b6000613de9613de484613da5565b613bb6565b905082815260208101848484011115613e0557613e04613b51565b5b613e10848285613c02565b509392505050565b600082601f830112613e2d57613e2c613b4c565b5b8135613e3d848260208601613dd6565b91505092915050565b600080600080600060a08688031215613e6257613e61613836565b5b6000613e7088828901613889565b9550506020613e8188828901613889565b945050604086013567ffffffffffffffff811115613ea257613ea161383b565b5b613eae88828901613d77565b935050606086013567ffffffffffffffff811115613ecf57613ece61383b565b5b613edb88828901613d77565b925050608086013567ffffffffffffffff811115613efc57613efb61383b565b5b613f0888828901613e18565b9150509295509295909350565b613f1e81613860565b82525050565b6000602082019050613f396000830184613f15565b92915050565b60008060408385031215613f5657613f55613836565b5b6000613f64858286016138bf565b9250506020613f75858286016138bf565b9150509250929050565b600067ffffffffffffffff821115613f9a57613f99613b56565b5b602082029050602081019050919050565b6000613fbe613fb984613f7f565b613bb6565b90508083825260208201905060208402830185811115613fe157613fe0613d09565b5b835b8181101561400a5780613ff68882613889565b845260208401935050602081019050613fe3565b5050509392505050565b600082601f83011261402957614028613b4c565b5b8135614039848260208601613fab565b91505092915050565b6000806040838503121561405957614058613836565b5b600083013567ffffffffffffffff8111156140775761407661383b565b5b61408385828601614014565b925050602083013567ffffffffffffffff8111156140a4576140a361383b565b5b6140b085828601613d77565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140ef8161389e565b82525050565b600061410183836140e6565b60208301905092915050565b6000602082019050919050565b6000614125826140ba565b61412f81856140c5565b935061413a836140d6565b8060005b8381101561416b57815161415288826140f5565b975061415d8361410d565b92505060018101905061413e565b5085935050505092915050565b60006020820190508181036000830152614192818461411a565b905092915050565b6000602082840312156141b0576141af613836565b5b60006141be84828501613889565b91505092915050565b6000819050919050565b60006141ec6141e76141e284613840565b6141c7565b613840565b9050919050565b60006141fe826141d1565b9050919050565b6000614210826141f3565b9050919050565b61422081614205565b82525050565b600060208201905061423b6000830184614217565b92915050565b600061424c826141f3565b9050919050565b61425c81614241565b82525050565b60006020820190506142776000830184614253565b92915050565b614286816139c3565b811461429157600080fd5b50565b6000813590506142a38161427d565b92915050565b600080604083850312156142c0576142bf613836565b5b60006142ce85828601613889565b92505060206142df85828601614294565b9150509250929050565b600082825260208201905092915050565b600061430582613a2d565b61430f81856142e9565b935061431f818560208601613a49565b61432881613a73565b840191505092915050565b61433c816139c3565b82525050565b61434b81613860565b82525050565b600060c08301600083015161436960008601826140e6565b50602083015161437c60208601826140e6565b506040830151848203604086015261439482826142fa565b91505060608301516143a96060860182614333565b5060808301516143bc6080860182614342565b5060a08301516143cf60a08601826140e6565b508091505092915050565b600060208201905081810360008301526143f48184614351565b905092915050565b6000806000806080858703121561441657614415613836565b5b6000614424878288016138bf565b945050602085013567ffffffffffffffff8111156144455761444461383b565b5b61445187828801613c53565b9350506040614462878288016138bf565b9250506060614473878288016138bf565b91505092959194509250565b6000806040838503121561449657614495613836565b5b60006144a485828601613889565b92505060206144b585828601613889565b9150509250929050565b600080600080600060a086880312156144db576144da613836565b5b60006144e988828901613889565b95505060206144fa88828901613889565b945050604061450b888289016138bf565b935050606061451c888289016138bf565b925050608086013567ffffffffffffffff81111561453d5761453c61383b565b5b61454988828901613e18565b9150509295509295909350565b600080fd5b60008083601f84011261457157614570613b4c565b5b8235905067ffffffffffffffff81111561458e5761458d614556565b5b6020830191508360018202830111156145aa576145a9613d09565b5b9250929050565b600080602083850312156145c8576145c7613836565b5b600083013567ffffffffffffffff8111156145e6576145e561383b565b5b6145f28582860161455b565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061464557607f821691505b602082108103614658576146576145fe565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026146c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614683565b6146ca8683614683565b95508019841693508086168417925050509392505050565b60006146fd6146f86146f38461389e565b6141c7565b61389e565b9050919050565b6000819050919050565b614717836146e2565b61472b61472382614704565b848454614690565b825550505050565b600090565b614740614733565b61474b81848461470e565b505050565b5b8181101561476f57614764600082614738565b600181019050614751565b5050565b601f8211156147b4576147858161465e565b61478e84614673565b8101602085101561479d578190505b6147b16147a985614673565b830182614750565b50505b505050565b600082821c905092915050565b60006147d7600019846008026147b9565b1980831691505092915050565b60006147f083836147c6565b9150826002028217905092915050565b61480982613a2d565b67ffffffffffffffff81111561482257614821613b56565b5b61482c825461462d565b614837828285614773565b600060209050601f83116001811461486a5760008415614858578287015190505b61486285826147e4565b8655506148ca565b601f1984166148788661465e565b60005b828110156148a05784890151825560018201915060208501945060208101905061487b565b868310156148bd57848901516148b9601f8916826147c6565b8355505b6001600288020188555050505b505050505050565b60006040820190506148e76000830185613f15565b6148f46020830184613f15565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149358261389e565b91506149408361389e565b9250828201905080821115614958576149576148fb565b5b92915050565b60006040820190506149736000830185613914565b6149806020830184613914565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006fffffffffffffffffffffffffffffffff82169050919050565b6149db816149b6565b81146149e657600080fd5b50565b6000815190506149f8816149d2565b92915050565b600060208284031215614a1457614a13613836565b5b6000614a22848285016149e9565b91505092915050565b600081905092915050565b50565b6000614a46600083614a2b565b9150614a5182614a36565b600082019050919050565b6000614a6782614a39565b9150819050919050565b6000614a7c8261389e565b9150614a878361389e565b9250828202614a958161389e565b91508282048414831517614aac57614aab6148fb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614aed8261389e565b9150614af88361389e565b925082614b0857614b07614ab3565b5b828204905092915050565b6000614b1e8261389e565b9150614b298361389e565b9250828203905081811115614b4157614b406148fb565b5b92915050565b6000606082019050614b5c6000830186613914565b614b696020830185613914565b614b766040830184613914565b949350505050565b600080fd5b600080fd5b6000614b9b614b9684613bd1565b613bb6565b905082815260208101848484011115614bb757614bb6613b51565b5b614bc2848285613a49565b509392505050565b600082601f830112614bdf57614bde613b4c565b5b8151614bef848260208601614b88565b91505092915050565b614c01816139f9565b8114614c0c57600080fd5b50565b600081519050614c1e81614bf8565b92915050565b600081519050614c338161427d565b92915050565b600060ff82169050919050565b614c4f81614c39565b8114614c5a57600080fd5b50565b600081519050614c6c81614c46565b92915050565b6000614c85614c8084613da5565b613bb6565b905082815260208101848484011115614ca157614ca0613b51565b5b614cac848285613a49565b509392505050565b600082601f830112614cc957614cc8613b4c565b5b8151614cd9848260208601614c72565b91505092915050565b600067ffffffffffffffff82169050919050565b614cff81614ce2565b8114614d0a57600080fd5b50565b600081519050614d1c81614cf6565b92915050565b60006101208284031215614d3957614d38614b7e565b5b614d44610120613bb6565b9050600082015167ffffffffffffffff811115614d6457614d63614b83565b5b614d7084828501614bca565b6000830152506020614d8484828501614c0f565b6020830152506040614d9884828501614c24565b6040830152506060614dac84828501614c5d565b606083015250608082015167ffffffffffffffff811115614dd057614dcf614b83565b5b614ddc84828501614cb4565b60808301525060a0614df084828501614d0d565b60a08301525060c0614e04848285016149e9565b60c08301525060e082015167ffffffffffffffff811115614e2857614e27614b83565b5b614e3484828501614cb4565b60e08301525061010082015167ffffffffffffffff811115614e5957614e58614b83565b5b614e6584828501614cb4565b6101008301525092915050565b600060208284031215614e8857614e87613836565b5b600082015167ffffffffffffffff811115614ea657614ea561383b565b5b614eb284828501614d22565b91505092915050565b6000614ec68261389e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614ef857614ef76148fb565b5b600182019050919050565b600081905092915050565b6000614f1a8385614f03565b9350614f27838584613c02565b82840190509392505050565b6000614f40828486614f0e565b91508190509392505050565b6000819050919050565b614f67614f628261389e565b614f4c565b82525050565b6000614f798284614f56565b60208201915081905092915050565b614f91816139f9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000614fbe82614f97565b614fc88185614fa2565b9350614fd8818560208601613a49565b614fe181613a73565b840191505092915050565b600061ffff82169050919050565b61500381614fec565b82525050565b615012816149b6565b82525050565b6000610120830160008301516150316000860182614f88565b50602083015184820360208601526150498282614fb3565b915050604083015161505e6040860182614f88565b50606083015184820360608601526150768282614fb3565b915050608083015161508b6080860182614ffa565b5060a083015184820360a08601526150a38282614fb3565b91505060c08301516150b860c0860182615009565b5060e08301516150cb60e0860182615009565b506101008301518482036101008601526150e58282614fb3565b9150508091505092915050565b6000602082019050818103600083015261510c8184615018565b905092915050565b60006020828403121561512a57615129613836565b5b600061513884828501614c0f565b91505092915050565b600061514d8385613a38565b935061515a838584613c02565b61516383613a73565b840190509392505050565b60006020820190508181036000830152615189818486615141565b90509392505050565b60006080820190506151a76000830187613f15565b6151b46020830186613914565b6151c16040830185613914565b6151ce6060830184613914565b95945050505050565b600060408201905081810360008301526151f1818561411a565b90508181036020830152615205818461411a565b90509392505050565b600082825260208201905092915050565b600061522a82614f97565b615234818561520e565b9350615244818560208601613a49565b61524d81613a73565b840191505092915050565b600060a08201905061526d6000830188613f15565b61527a6020830187613f15565b6152876040830186613914565b6152946060830185613914565b81810360808301526152a6818461521f565b90509695505050505050565b6000815190506152c18161396a565b92915050565b6000602082840312156152dd576152dc613836565b5b60006152eb848285016152b2565b91505092915050565b600060a0820190506153096000830188613f15565b6153166020830187613f15565b8181036040830152615328818661411a565b9050818103606083015261533c818561411a565b90508181036080830152615350818461521f565b9050969550505050505056fea2646970667358221220acff0288bdadaec171036a7492a0114958291abe2831480697b9d5663fdf6c7564736f6c6343000819003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000d4d56e3883abfd69e6aa77a9955e7ec96dc64b98000000000000000000000000cbc8a3159535bfe276adaa8604940602e02c54576f7b0b6788c82718bc134febaabe090eb8e7fb758efea2845c459a9c1d9f5f7b00000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000000000104d794e46544d61726b6574706c6163650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d4e465400000000000000000000000000000000000000000000000000000000