608060405267016345785d8a000060095567011c37937e080000600a55600b805465ffffffffffff19908116909155600d8054909116650402010108031790553480156200004c57600080fd5b506040518060400160405280600f81526020016e12185b985e985dd852d85b98539195608a1b815250604051806040016040528060048152602001634b414e4160e01b8152508160029081620000a39190620001c1565b506003620000b28282620001c1565b50506000805550620000c433620000ca565b6200028d565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200014757607f821691505b6020821081036200016857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001bc57600081815260208120601f850160051c81016020861015620001975750805b601f850160051c820191505b81811015620001b857828155600101620001a3565b5050505b505050565b81516001600160401b03811115620001dd57620001dd6200011c565b620001f581620001ee845462000132565b846200016e565b602080601f8311600181146200022d5760008415620002145750858301515b600019600386901b1c1916600185901b178555620001b8565b600085815260208120601f198616915b828110156200025e578886015182559484019460019091019084016200023d565b50858210156200027d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613329806200029d6000396000f3fe6080604052600436106103125760003560e01c80636352211e1161019a578063ad570dd5116100e1578063dc33e6811161008a578063e985e9c511610064578063e985e9c5146108a7578063f0ae3149146108fd578063f2fde38b1461091d57600080fd5b8063dc33e68114610852578063e1911d7014610872578063e1c2caa91461088757600080fd5b8063becd61d8116100bb578063becd61d8146107fe578063c50497ae14610813578063c87b56dd1461083257600080fd5b8063ad570dd5146107c2578063b079fe74146107d8578063b88d4fde146107eb57600080fd5b80638342083a1161014357806395d89b411161011d57806395d89b411461076d578063a22cb46514610782578063aa059db3146107a257600080fd5b80638342083a146107085780638535923f146107225780638da5cb5b1461074257600080fd5b8063715018a611610174578063715018a6146106b15780637cb64759146106c65780637e06f64e146106e657600080fd5b80636352211e1461065e5780636b80ba181461067e57806370a082311461069157600080fd5b806322fa3dfa1161025e5780634312dc7c116102075780635d82cf6e116101e15780635d82cf6e14610609578063611f3f1014610629578063634c2b6d1461063f57600080fd5b80634312dc7c14610599578063463ccb55146105b95780635af744ec146105e957600080fd5b80633d272294116102385780633d2722941461054657806342842e0e1461056657806342966c681461057957600080fd5b806322fa3dfa146104fd57806323b872dd1461051d57806332cb6b0c1461053057600080fd5b8063081812fc116102c057806318160ddd1161029a57806318160ddd1461048057806318f0c43e146104a35780631a6eedb4146104c457600080fd5b8063081812fc14610412578063095ea7b314610457578063144a79e31461046a57600080fd5b806302ddb65b116102f157806302ddb65b146103a357806302fe5305146103d057806306fdde03146103f057600080fd5b8062f714ce1461031757806301ffc9a71461033957806302c43a111461036e575b600080fd5b34801561032357600080fd5b50610337610332366004612b11565b61093d565b005b34801561034557600080fd5b50610359610354366004612b6b565b610a64565b60405190151581526020015b60405180910390f35b34801561037a57600080fd5b50600d546103919065010000000000900460ff1681565b60405160ff9091168152602001610365565b3480156103af57600080fd5b506103b96107d081565b60405165ffffffffffff9091168152602001610365565b3480156103dc57600080fd5b506103376103eb366004612b88565b610b49565b3480156103fc57600080fd5b50610405610ba3565b6040516103659190612c68565b34801561041e57600080fd5b5061043261042d366004612c7b565b610c35565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610365565b610337610465366004612c94565b610c9f565b34801561047657600080fd5b506103b9610fff81565b34801561048c57600080fd5b50600154600054035b604051908152602001610365565b3480156104af57600080fd5b50600d54610391906301000000900460ff1681565b3480156104d057600080fd5b506104e46104df366004612cbe565b610db4565b60405167ffffffffffffffff9091168152602001610365565b34801561050957600080fd5b506104e4610518366004612cbe565b610dfc565b61033761052b366004612cd9565b610e31565b34801561053c57600080fd5b506103b9611a0a81565b34801561055257600080fd5b50610337610561366004612c7b565b6110f5565b610337610574366004612cd9565b611171565b34801561058557600080fd5b50610337610594366004612c7b565b611191565b3480156105a557600080fd5b506103376105b4366004612d2b565b611212565b3480156105c557600080fd5b506103596105d4366004612cbe565b600c6020526000908152604090205460ff1681565b3480156105f557600080fd5b50600d546103919062010000900460ff1681565b34801561061557600080fd5b50610337610624366004612c7b565b611317565b34801561063557600080fd5b5061049560095481565b34801561064b57600080fd5b50600d5461039190610100900460ff1681565b34801561066a57600080fd5b50610432610679366004612c7b565b611393565b61033761068c366004612d55565b61139e565b34801561069d57600080fd5b506104956106ac366004612cbe565b61178b565b3480156106bd57600080fd5b5061033761180d565b3480156106d257600080fd5b506103376106e1366004612c7b565b611821565b3480156106f257600080fd5b50600d5461039190640100000000900460ff1681565b34801561071457600080fd5b50600d546103919060ff1681565b34801561072e57600080fd5b506104e461073d366004612cbe565b61185c565b34801561074e57600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff16610432565b34801561077957600080fd5b50610405611891565b34801561078e57600080fd5b5061033761079d366004612dd9565b6118a0565b3480156107ae57600080fd5b506103376107bd366004612e15565b611937565b3480156107ce57600080fd5b50610495600a5481565b6103376107e6366004612e38565b6119f5565b6103376107f9366004612e82565b611cf0565b34801561080a57600080fd5b506103b9600f81565b34801561081f57600080fd5b50600b546103b99065ffffffffffff1681565b34801561083e57600080fd5b5061040561084d366004612c7b565b611d5a565b34801561085e57600080fd5b5061049561086d366004612cbe565b611df7565b34801561087e57600080fd5b50610405611e2f565b34801561089357600080fd5b506103376108a2366004612d55565b611ebd565b3480156108b357600080fd5b506103596108c2366004612f7c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561090957600080fd5b50610337610918366004612e15565b61219f565b34801561092957600080fd5b50610337610938366004612cbe565b6121f4565b6109456122ab565b4782811015610980576040517f9abc749100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d80600081146109da576040519150601f19603f3d011682016040523d82523d6000602084013e6109df565b606091505b505090508273ffffffffffffffffffffffffffffffffffffffff16847f8353ffcac0876ad14e226d9783c04540bfebf13871e868157d2a391cad98e91860405160405180910390a380610a5e576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161480610af757507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610b4357507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610b516122ab565b600e610b5e82848361303f565b508181604051610b6f92919061315a565b604051908190038120907f562bf0237fa5139edc73ec903039c3a552e19ae62cc8292da62afeea43024b0a90600090a25050565b606060028054610bb290612fa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610bde90612fa6565b8015610c2b5780601f10610c0057610100808354040283529160200191610c2b565b820191906000526020600020905b815481529060010190602001808311610c0e57829003601f168201915b5050505050905090565b6000610c408261232c565b610c76576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610caa82611393565b90503373ffffffffffffffffffffffffffffffffffffffff821614610d335773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610d33576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000600f6008610de98473ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205460c01c90565b67ffffffffffffffff16901c1692915050565b6000600f6004610de98473ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205460c01c90565b6000610e3c8261236c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ea3576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054610edc8187335b73ffffffffffffffffffffffffffffffffffffffff9081169116811491141790565b610f4a5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16610f4a576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610f97576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610fa257600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c0200000000000000000000000000000000000000000000000000000000841690036110915760018401600081815260046020526040812054900361108f57600054811461108f5760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6110fd6122ab565b662386f26fc1000081101561113e576040517f9713e00b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a81905560405181907f7d4366e70f76342b93de4f6d6a7db9ce74705441e46d25d0aea894b430d28b3990600090a250565b61118c83838360405180602001604052806000815250611cf0565b505050565b6111996122ab565b6111a33382612423565b6111d9576040517fb5b5504400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111e48160016124e3565b60405181907fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb90600090a250565b61121a6122ab565b600d546301000000900460ff1665ffffffffffff82161115611268576040517f2370216f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b54611a0a9061128290839065ffffffffffff16613199565b65ffffffffffff1611156112c2576040517f2370216f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112d4828265ffffffffffff166126bc565b600b80548291906000906112f190849065ffffffffffff16613199565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b61131f6122ab565b662386f26fc10000811015611360576040517f9713e00b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600981905560405181907fda25869ecc04491e922bb8c554c6ef8967b063207ae489515c67ace4e304b32790600090a250565b6000610b438261236c565b3233146113d7576040517f7df1f81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f601082901c811690601883901c16610fff83166000819003611427576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b54611a0a9061144190839065ffffffffffff16613199565b65ffffffffffff161115611481576040517f2370216f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b1660208201527fffffffffffff000000000000000000000000000000000000000000000000000060d086811b8216603484015285901b16603a820152600091016040516020818303038152906040528051906020012090506115108787600f54846127fa565b611546576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54610100900460ff1665ffffffffffff841614611591576040517f28132a6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54610100810460ff90811664010000000090920416146115df576040517f28132a6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604081205460c01c9050600481901c600f1665ffffffffffff86811690611613908616836131bf565b67ffffffffffffffff161115611655576040517f26f890c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5461166a9065ffffffffffff86166131e0565b3410156116a3576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116b5338565ffffffffffff166126bc565b60006116cd65fffffffffff0600487901b16846131bf565b90508765ffffffffffff168565ffffffffffff167fd5a06ab27fda8c8f87b18fc92d660297a64163493811b3877b0b77232ebcf01f60405160405180910390a3336000908152600560205260409020805477ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b179055600b805486919060009061175d90849065ffffffffffff16613199565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166117da576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b6118156122ab565b61181f6000612812565b565b6118296122ab565b600f81905560405181907f914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a4690600090a250565b6000600f600c610de98473ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205460c01c90565b606060038054610bb290612fa6565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61193f6122ab565b600d54610100900460ff9081168183161b90811660000361198c576040517fc665121c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff84811682029290921792839055604051920416907f147cb9ee5ba689a286d380cacd4c839f90b74c7723f5c7556c73d121fe4318d390600090a25050565b323314611a2e576040517f7df1f81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b548190611a0a90611a4a90839065ffffffffffff16613199565b65ffffffffffff161115611abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d617820737570706c792065786365656465642100000000000000000000000060448201526064015b60405180910390fd5b600d54610100810460ff908116620100009092041614611b0b576040517f28132a6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8165ffffffffffff16600003611b4d576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604081205460c01c600d54909150600c82901c600f169060ff16611b8465ffffffffffff8616836131bf565b67ffffffffffffffff161115611bc6576040517f26f890c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600954611bdb9065ffffffffffff86166131e0565b341015611c14576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c26338565ffffffffffff166126bc565b6000611c3e65fffffffff000600c87901b16846131bf565b905060008565ffffffffffff167fd5a06ab27fda8c8f87b18fc92d660297a64163493811b3877b0b77232ebcf01f60405160405180910390a3336000908152600560205260409020805477ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b179055600b8054869190600090611cc790849065ffffffffffff16613199565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050505050565b611cfb848484610e31565b73ffffffffffffffffffffffffffffffffffffffff83163b15610a5e57611d2484848484612889565b610a5e576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060611d658261232c565b611d9b576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611da56129ff565b90508051600003611dc55760405180602001604052806000815250611df0565b80611dcf84612a0e565b604051602001611de09291906131f7565b6040516020818303038152906040525b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408082205467ffffffffffffffff911c16610b43565b600e8054611e3c90612fa6565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6890612fa6565b8015611eb55780601f10611e8a57610100808354040283529160200191611eb5565b820191906000526020600020905b815481529060010190602001808311611e9857829003601f168201915b505050505081565b323314611ef6576040517f7df1f81700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f601082901c811690601883901c16610fff83166000819003611f46576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b546107d090611f6090839065ffffffffffff16613199565b65ffffffffffff161115611fa0576040517f7870189600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b1660208201527fffffffffffff000000000000000000000000000000000000000000000000000060d086811b8216603484015285901b16603a8201526000910160405160208183030381529060405280519060200120905061202f8787600f54846127fa565b612065576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54610100900460ff1665ffffffffffff8416146120b0576040517f28132a6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54610100810460ff9081166501000000000090920416146120ff576040517f28132a6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604081205460c01c9050600881901c600f1665ffffffffffff86811690612133908616836131bf565b67ffffffffffffffff161115612175576040517f26f890c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612187338565ffffffffffff166126bc565b60006116cd65ffffffffff00600887901b16846131bf565b6121a76122ab565b600d54610100900460ff9081168183161c90811660000361198c576040517fc665121c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121fc6122ab565b73ffffffffffffffffffffffffffffffffffffffff811661229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401611ab6565b6122a881612812565b50565b60085473ffffffffffffffffffffffffffffffffffffffff16331461181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611ab6565b6000805482108015610b435750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6000816000548110156123f157600081815260046020526040812054907c0100000000000000000000000000000000000000000000000000000000821690036123ef575b80600003611df057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016000818152600460205260409020546123b0565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061242f83611393565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061249d575073ffffffffffffffffffffffffffffffffffffffff80821660009081526007602090815260408083209388168352929052205460ff165b806124db57508373ffffffffffffffffffffffffffffffffffffffff166124c384610c35565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b60006124ee8361236c565b90508060008061250c86600090815260066020526040902080549091565b91509150841561258f57612521818433610eba565b61258f5773ffffffffffffffffffffffffffffffffffffffff8316600090815260076020908152604080832033845290915290205460ff1661258f576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561259a57600082555b73ffffffffffffffffffffffffffffffffffffffff8316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b177c0300000000000000000000000000000000000000000000000000000000176000878152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000085169003612667576001860160008181526004602052604081205490036126655760005481146126655760008181526004602052604090208590555b505b604051869060009073ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b60008054908290036126fa576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146127b657808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460010161277e565b50816000036127f1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b600082612808868685612a70565b1495945050505050565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906128e4903390899088908890600401613226565b6020604051808303816000875af192505050801561293d575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261293a9181019061326f565b60015b6129b4573d80801561296b576040519150601f19603f3d011682016040523d82523d6000602084013e612970565b606091505b5080516000036129ac576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506124db565b6060600e8054610bb290612fa6565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480612a2857508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b600081815b84811015612ab357612a9f82878784818110612a9357612a9361328c565b90506020020135612abc565b915080612aab816132bb565b915050612a75565b50949350505050565b6000818310612ad8576000828152602084905260409020611df0565b5060009182526020526040902090565b803573ffffffffffffffffffffffffffffffffffffffff81168114612b0c57600080fd5b919050565b60008060408385031215612b2457600080fd5b82359150612b3460208401612ae8565b90509250929050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146122a857600080fd5b600060208284031215612b7d57600080fd5b8135611df081612b3d565b60008060208385031215612b9b57600080fd5b823567ffffffffffffffff80821115612bb357600080fd5b818501915085601f830112612bc757600080fd5b813581811115612bd657600080fd5b866020828501011115612be857600080fd5b60209290920196919550909350505050565b60005b83811015612c15578181015183820152602001612bfd565b50506000910152565b60008151808452612c36816020860160208601612bfa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611df06020830184612c1e565b600060208284031215612c8d57600080fd5b5035919050565b60008060408385031215612ca757600080fd5b612cb083612ae8565b946020939093013593505050565b600060208284031215612cd057600080fd5b611df082612ae8565b600080600060608486031215612cee57600080fd5b612cf784612ae8565b9250612d0560208501612ae8565b9150604084013590509250925092565b803565ffffffffffff81168114612b0c57600080fd5b60008060408385031215612d3e57600080fd5b612d4783612ae8565b9150612b3460208401612d15565b600080600060408486031215612d6a57600080fd5b833567ffffffffffffffff80821115612d8257600080fd5b818601915086601f830112612d9657600080fd5b813581811115612da557600080fd5b8760208260051b8501011115612dba57600080fd5b602092830195509350612dd09186019050612d15565b90509250925092565b60008060408385031215612dec57600080fd5b612df583612ae8565b915060208301358015158114612e0a57600080fd5b809150509250929050565b600060208284031215612e2757600080fd5b813560ff81168114611df057600080fd5b600060208284031215612e4a57600080fd5b611df082612d15565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215612e9857600080fd5b612ea185612ae8565b9350612eaf60208601612ae8565b925060408501359150606085013567ffffffffffffffff80821115612ed357600080fd5b818701915087601f830112612ee757600080fd5b813581811115612ef957612ef9612e53565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715612f3f57612f3f612e53565b816040528281528a6020848701011115612f5857600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215612f8f57600080fd5b612f9883612ae8565b9150612b3460208401612ae8565b600181811c90821680612fba57607f821691505b602082108103612ff3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561118c57600081815260208120601f850160051c810160208610156130205750805b601f850160051c820191505b818110156110ed5782815560010161302c565b67ffffffffffffffff83111561305757613057612e53565b61306b836130658354612fa6565b83612ff9565b6000601f8411600181146130bd57600085156130875750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355613153565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561310c57868501358255602094850194600190920191016130ec565b5086821015613147577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b65ffffffffffff8181168382160190808211156131b8576131b861316a565b5092915050565b67ffffffffffffffff8181168382160190808211156131b8576131b861316a565b8082028115828204841417610b4357610b4361316a565b60008351613209818460208801612bfa565b83519083019061321d818360208801612bfa565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526132656080830184612c1e565b9695505050505050565b60006020828403121561328157600080fd5b8151611df081612b3d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ec576132ec61316a565b506001019056fea2646970667358221220a7a805ef8fd0a16011d16b4974874918ef88d8107b1700b0dbfc56824dc2686364736f6c63430008110033