60806040523480156200001157600080fd5b506200001d336200003a565b600680546001600160a01b0319163317905560fa6007556200008a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613431806200009a6000396000f3fe608060405234801561001057600080fd5b50600436106101ac5760003560e01c80636c8b703f116100ee578063b48ab8b611610097578063f2fde38b11610071578063f2fde38b1461041b578063f5298aca1461042e578063f6eb127a14610441578063f8707ab51461045457600080fd5b8063b48ab8b6146103c7578063e985e9c5146103da578063f242432a1461040857600080fd5b8063731133e9116100c8578063731133e9146103795780638da5cb5b1461038c578063a22cb465146103b457600080fd5b80636c8b703f1461033b5780636d2bce341461034e578063715018a61461037157600080fd5b80632a55205a1161015b578063404899cd11610135578063404899cd146102e2578063469e4025146102f55780634d564dc0146103085780634e1273f41461031b57600080fd5b80632a55205a1461027d5780632eb2c2d6146102bc57806333373cea146102cf57600080fd5b80630e89341c1161018c5780630e89341c1461022757806312efaf1c146102475780631f72d8311461026a57600080fd5b80629ee39c146101b1578062fdd58e146101c657806301ffc9a714610204575b600080fd5b6101c46101bf36600461270e565b610467565b005b6101f16101d4366004612732565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61021761021236600461278c565b610550565b60405190151581526020016101fb565b61023a6102353660046127a9565b610681565b6040516101fb9190612826565b6102176102553660046127a9565b60046020526000908152604090205460ff1681565b6101c46102783660046127a9565b610723565b61029061028b366004612839565b6107c5565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101fb565b6101c46102ca3660046128e2565b610837565b6101c46102dd366004612839565b610c2c565b6101c46102f03660046129a1565b610cdb565b6101c46103033660046129e3565b610dee565b6101c46103163660046129a1565b610f88565b61032e610329366004612a66565b611096565b6040516101fb9190612b0d565b61023a6103493660046127a9565b61120e565b61021761035c3660046127a9565b60056020526000908152604090205460ff1681565b6101c46112a8565b6101c4610387366004612b20565b611351565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fb565b6101c46103c2366004612b8a565b6114b0565b6101c46103d5366004612cb0565b611547565b6102176103e8366004612d41565b600260209081526000928352604080842090915290825290205460ff1681565b6101c4610416366004612d6f565b6116d6565b6101c461042936600461270e565b6119e0565b6101c461043c366004612dd9565b611b2c565b6101c461044f366004612e0e565b611bf1565b6101c4610462366004612a66565b611cb6565b3361048760005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806105e357507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061062f57507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061067b57507f2a55205a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600081815260036020526040902080546060919061069e90612e84565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90612e84565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b50505050509050919050565b3361074360005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146107c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b600755565b60008281526008602052604081205481908190156107f257506000848152600860205260409020546107f7565b506007545b60006127106108068387612f06565b6108109190612f1d565b60065473ffffffffffffffffffffffffffffffffffffffff169450925050505b9250929050565b8483146108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610500565b3373ffffffffffffffffffffffffffffffffffffffff891614806108f4575073ffffffffffffffffffffffffffffffffffffffff8816600090815260026020908152604080832033845290915290205460ff165b61095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610500565b60008060005b87811015610a335788888281811061097a5761097a612f58565b90506020020135925086868281811061099557610995612f58565b73ffffffffffffffffffffffffffffffffffffffff8e166000908152600160209081526040808320898452825282208054939091029490940135955085939250906109e1908490612f87565b909155505073ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020908152604080832086845290915281208054849290610a26908490612f9a565b9091555050600101610960565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051610aae9493929190612ff8565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610ba0576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c8190610b359033908f908e908e908e908e908e908e90600401613068565b6020604051808303816000875af1158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7891906130d9565b7fffffffff000000000000000000000000000000000000000000000000000000001614610bba565b73ffffffffffffffffffffffffffffffffffffffff891615155b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610500565b50505050505050505050565b33610c4c60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60009182526008602052604090912055565b33610cfb60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60005b81811015610de957600160046000858585818110610d9b57610d9b612f58565b6020908102929092013583525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610d7b565b505050565b33610e0e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60008481526005602052604090205460ff1615610f04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f7765640000000000000000006044820152606401610500565b60005b85811015610f7f57610f77878783818110610f2457610f24612f58565b9050602002016020810190610f39919061270e565b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f3a92505050565b600101610f07565b50505050505050565b33610fa860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60005b81811015610de95760016005600085858581811061104857611048612f58565b6020908102929092013583525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611028565b6060838214611101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610500565b8367ffffffffffffffff81111561111a5761111a612bc8565b604051908082528060200260200182016040528015611143578160200160208202803683370190505b50905060005b84811015611205576001600087878481811061116757611167612f58565b905060200201602081019061117c919061270e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008585848181106111ca576111ca612f58565b905060200201358152602001908152602001600020548282815181106111f2576111f2612f58565b6020908102919091010152600101611149565b50949350505050565b6003602052600090815260409020805461122790612e84565b80601f016020809104026020016040519081016040528092919081815260200182805461125390612e84565b80156112a05780601f10611275576101008083540402835291602001916112a0565b820191906000526020600020905b81548152906001019060200180831161128357829003601f168201915b505050505081565b336112c860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b61134f6000612140565b565b3361137160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146113ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60008481526005602052604090205460ff1615611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f7765640000000000000000006044820152606401610500565b6114a985858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f3a92505050565b5050505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b3361156760005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b60005b8451811015611693576005600086838151811061160657611606612f58565b60209081029190910181015182528101919091526040016000205460ff161561168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206d6f7265206d696e74696e6720616c6c6f7765640000000000000000006044820152606401610500565b6001016115e7565b506114a985858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121b592505050565b3373ffffffffffffffffffffffffffffffffffffffff8716148061172a575073ffffffffffffffffffffffffffffffffffffffff8616600090815260026020908152604080832033845290915290205460ff165b611790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610500565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600160209081526040808320878452909152812080548592906117d0908490612f87565b909155505073ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832087845290915281208054859290611815908490612f9a565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15611958576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e61906118ed9033908b908a908a908a908a906004016130f6565b6020604051808303816000875af115801561190c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193091906130d9565b7fffffffff000000000000000000000000000000000000000000000000000000001614611972565b73ffffffffffffffffffffffffffffffffffffffff851615155b6119d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610500565b505050505050565b33611a0060005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b73ffffffffffffffffffffffffffffffffffffffff8116611b20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610500565b611b2981612140565b50565b3373ffffffffffffffffffffffffffffffffffffffff84161480611b80575073ffffffffffffffffffffffffffffffffffffffff8316600090815260026020908152604080832033845290915290205460ff165b611be6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610500565b610de98383836124b0565b3373ffffffffffffffffffffffffffffffffffffffff84161480611c45575073ffffffffffffffffffffffffffffffffffffffff8316600090815260026020908152604080832033845290915290205460ff165b611cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610500565b610de9838383612550565b33611cd660005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b828114611dbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c656e677468206d69736d6174636800000000000000000000000000000000006044820152606401610500565b60005b838110156114a95760046000868684818110611ddd57611ddd612f58565b602090810292909201358352508101919091526040016000205460ff1615611e61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f555249206c6f636b6564000000000000000000000000000000000000000000006044820152606401610500565b828282818110611e7357611e73612f58565b9050602002810190611e859190613148565b60036000888886818110611e9b57611e9b612f58565b9050602002013581526020019081526020016000209182611ebd9291906131f3565b50848482818110611ed057611ed0612f58565b905060200201357f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b848484818110611f0a57611f0a612f58565b9050602002810190611f1c9190613148565b604051611f2a92919061330d565b60405180910390a2600101611dbf565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832086845290915281208054849290611f7a908490612f9a565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b156120ba576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e619061204f903390600090899089908990600401613329565b6020604051808303816000875af115801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906130d9565b7fffffffff0000000000000000000000000000000000000000000000000000000016146120d4565b73ffffffffffffffffffffffffffffffffffffffff841615155b61213a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610500565b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b825182518114612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610500565b60005b818110156122cb5783818151811061223e5761223e612f58565b6020026020010151600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061229957612299612f58565b6020026020010151815260200190815260200160002060008282546122be9190612f9a565b9091555050600101612224565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161234392919061336e565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15612430576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063bc197c81906123c59033906000908a908a908a9060040161339c565b6020604051808303816000875af11580156123e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240891906130d9565b7fffffffff00000000000000000000000000000000000000000000000000000000161461244a565b73ffffffffffffffffffffffffffffffffffffffff851615155b6114a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610500565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160209081526040808320858452909152812080548392906124f0908490612f87565b9091555050604080518381526020810183905260009173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b8151815181146125bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610500565b60005b81811015612666578281815181106125d9576125d9612f58565b6020026020010151600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061263457612634612f58565b6020026020010151815260200190815260200160002060008282546126599190612f87565b90915550506001016125bf565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516126de92919061336e565b60405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611b2957600080fd5b60006020828403121561272057600080fd5b813561272b816126ec565b9392505050565b6000806040838503121561274557600080fd5b8235612750816126ec565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611b2957600080fd5b60006020828403121561279e57600080fd5b813561272b8161275e565b6000602082840312156127bb57600080fd5b5035919050565b6000815180845260005b818110156127e8576020818501810151868301820152016127cc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061272b60208301846127c2565b6000806040838503121561284c57600080fd5b50508035926020909101359150565b60008083601f84011261286d57600080fd5b50813567ffffffffffffffff81111561288557600080fd5b6020830191508360208260051b850101111561083057600080fd5b60008083601f8401126128b257600080fd5b50813567ffffffffffffffff8111156128ca57600080fd5b60208301915083602082850101111561083057600080fd5b60008060008060008060008060a0898b0312156128fe57600080fd5b8835612909816126ec565b97506020890135612919816126ec565b9650604089013567ffffffffffffffff8082111561293657600080fd5b6129428c838d0161285b565b909850965060608b013591508082111561295b57600080fd5b6129678c838d0161285b565b909650945060808b013591508082111561298057600080fd5b5061298d8b828c016128a0565b999c989b5096995094979396929594505050565b600080602083850312156129b457600080fd5b823567ffffffffffffffff8111156129cb57600080fd5b6129d78582860161285b565b90969095509350505050565b600080600080600080608087890312156129fc57600080fd5b863567ffffffffffffffff80821115612a1457600080fd5b612a208a838b0161285b565b909850965060208901359550604089013594506060890135915080821115612a4757600080fd5b50612a5489828a016128a0565b979a9699509497509295939492505050565b60008060008060408587031215612a7c57600080fd5b843567ffffffffffffffff80821115612a9457600080fd5b612aa08883890161285b565b90965094506020870135915080821115612ab957600080fd5b50612ac68782880161285b565b95989497509550505050565b600081518084526020808501945080840160005b83811015612b0257815187529582019590820190600101612ae6565b509495945050505050565b60208152600061272b6020830184612ad2565b600080600080600060808688031215612b3857600080fd5b8535612b43816126ec565b94506020860135935060408601359250606086013567ffffffffffffffff811115612b6d57600080fd5b612b79888289016128a0565b969995985093965092949392505050565b60008060408385031215612b9d57600080fd5b8235612ba8816126ec565b915060208301358015158114612bbd57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612c0857600080fd5b8135602067ffffffffffffffff80831115612c2557612c25612bc8565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715612c6857612c68612bc8565b604052938452858101830193838101925087851115612c8657600080fd5b83870191505b84821015612ca557813583529183019190830190612c8c565b979650505050505050565b600080600080600060808688031215612cc857600080fd5b8535612cd3816126ec565b9450602086013567ffffffffffffffff80821115612cf057600080fd5b612cfc89838a01612bf7565b95506040880135915080821115612d1257600080fd5b612d1e89838a01612bf7565b94506060880135915080821115612d3457600080fd5b50612b79888289016128a0565b60008060408385031215612d5457600080fd5b8235612d5f816126ec565b91506020830135612bbd816126ec565b60008060008060008060a08789031215612d8857600080fd5b8635612d93816126ec565b95506020870135612da3816126ec565b94506040870135935060608701359250608087013567ffffffffffffffff811115612dcd57600080fd5b612a5489828a016128a0565b600080600060608486031215612dee57600080fd5b8335612df9816126ec565b95602085013595506040909401359392505050565b600080600060608486031215612e2357600080fd5b8335612e2e816126ec565b9250602084013567ffffffffffffffff80821115612e4b57600080fd5b612e5787838801612bf7565b93506040860135915080821115612e6d57600080fd5b50612e7a86828701612bf7565b9150509250925092565b600181811c90821680612e9857607f821691505b602082108103612ed1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761067b5761067b612ed7565b600082612f53577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8181038181111561067b5761067b612ed7565b8082018082111561067b5761067b612ed7565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612fdf57600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061300c604083018688612fad565b8281036020840152612ca5818587612fad565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a060408301526130a260a08301888a612fad565b82810360608401526130b5818789612fad565b905082810360808401526130ca81858761301f565b9b9a5050505050505050505050565b6000602082840312156130eb57600080fd5b815161272b8161275e565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261313c60a08301848661301f565b98975050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261317d57600080fd5b83018035915067ffffffffffffffff82111561319857600080fd5b60200191503681900382131561083057600080fd5b601f821115610de957600081815260208120601f850160051c810160208610156131d45750805b601f850160051c820191505b818110156119d8578281556001016131e0565b67ffffffffffffffff83111561320b5761320b612bc8565b61321f836132198354612e84565b836131ad565b6000601f841160018114613271576000851561323b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556114a9565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156132c057868501358255602094850194600190920191016132a0565b50868210156132fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152600061332160208301848661301f565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152612ca560a08301846127c2565b6040815260006133816040830185612ad2565b82810360208401526133938185612ad2565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526133d560a0830186612ad2565b82810360608401526133e78186612ad2565b9050828103608084015261313c81856127c256fea264697066735822122089ddd7820be7dc6d9df993cc7846a801cd8635d73751562a3c6be7d83e87561264736f6c63430008110033