github.com/hashgraph/hedera-sdk-go/v2@v2.48.0/examples/precompile_example/PrecompileExample.json (about)

     1  {
     2      "abi": [
     3          {
     4              "inputs": [
     5                  {
     6                      "internalType": "address payable",
     7                      "name": "_owner",
     8                      "type": "address"
     9                  },
    10                  {
    11                      "internalType": "address payable",
    12                      "name": "_aliceAccount",
    13                      "type": "address"
    14                  }
    15              ],
    16              "stateMutability": "nonpayable",
    17              "type": "constructor"
    18          },
    19          {
    20              "anonymous": false,
    21              "inputs": [
    22                  {
    23                      "indexed": false,
    24                      "internalType": "bool",
    25                      "name": "",
    26                      "type": "bool"
    27                  },
    28                  {
    29                      "indexed": false,
    30                      "internalType": "bytes",
    31                      "name": "",
    32                      "type": "bytes"
    33                  }
    34              ],
    35              "name": "CallResponseEvent",
    36              "type": "event"
    37          },
    38          {
    39              "inputs": [],
    40              "name": "getPseudorandomSeed",
    41              "outputs": [
    42                  {
    43                      "internalType": "bytes32",
    44                      "name": "seedBytes",
    45                      "type": "bytes32"
    46                  }
    47              ],
    48              "stateMutability": "nonpayable",
    49              "type": "function"
    50          },
    51          {
    52              "inputs": [
    53                  {
    54                      "internalType": "address",
    55                      "name": "token",
    56                      "type": "address"
    57                  },
    58                  {
    59                      "internalType": "bytes",
    60                      "name": "encodedFunctionSelector",
    61                      "type": "bytes"
    62                  }
    63              ],
    64              "name": "redirectForToken",
    65              "outputs": [
    66                  {
    67                      "internalType": "int256",
    68                      "name": "responseCode",
    69                      "type": "int256"
    70                  },
    71                  {
    72                      "internalType": "bytes",
    73                      "name": "response",
    74                      "type": "bytes"
    75                  }
    76              ],
    77              "stateMutability": "nonpayable",
    78              "type": "function"
    79          },
    80          {
    81              "inputs": [],
    82              "name": "step0",
    83              "outputs": [
    84                  {
    85                      "internalType": "bytes32",
    86                      "name": "result",
    87                      "type": "bytes32"
    88                  }
    89              ],
    90              "stateMutability": "nonpayable",
    91              "type": "function"
    92          },
    93          {
    94              "inputs": [],
    95              "name": "step1",
    96              "outputs": [
    97                  {
    98                      "internalType": "int256",
    99                      "name": "responseCode",
   100                      "type": "int256"
   101                  }
   102              ],
   103              "stateMutability": "payable",
   104              "type": "function"
   105          },
   106          {
   107              "inputs": [],
   108              "name": "step10",
   109              "outputs": [
   110                  {
   111                      "internalType": "int256",
   112                      "name": "responseCode",
   113                      "type": "int256"
   114                  }
   115              ],
   116              "stateMutability": "nonpayable",
   117              "type": "function"
   118          },
   119          {
   120              "inputs": [
   121                  {
   122                      "internalType": "bytes",
   123                      "name": "keyBytes",
   124                      "type": "bytes"
   125                  }
   126              ],
   127              "name": "step11",
   128              "outputs": [
   129                  {
   130                      "internalType": "int256",
   131                      "name": "responseCode",
   132                      "type": "int256"
   133                  },
   134                  {
   135                      "internalType": "address",
   136                      "name": "",
   137                      "type": "address"
   138                  }
   139              ],
   140              "stateMutability": "payable",
   141              "type": "function"
   142          },
   143          {
   144              "inputs": [
   145                  {
   146                      "internalType": "bytes[]",
   147                      "name": "metadatas",
   148                      "type": "bytes[]"
   149                  }
   150              ],
   151              "name": "step12",
   152              "outputs": [
   153                  {
   154                      "internalType": "int256",
   155                      "name": "responseCode",
   156                      "type": "int256"
   157                  }
   158              ],
   159              "stateMutability": "nonpayable",
   160              "type": "function"
   161          },
   162          {
   163              "inputs": [],
   164              "name": "step13",
   165              "outputs": [
   166                  {
   167                      "internalType": "int256",
   168                      "name": "responseCode",
   169                      "type": "int256"
   170                  }
   171              ],
   172              "stateMutability": "nonpayable",
   173              "type": "function"
   174          },
   175          {
   176              "inputs": [],
   177              "name": "step14",
   178              "outputs": [
   179                  {
   180                      "internalType": "int256",
   181                      "name": "responseCode",
   182                      "type": "int256"
   183                  }
   184              ],
   185              "stateMutability": "nonpayable",
   186              "type": "function"
   187          },
   188          {
   189              "inputs": [],
   190              "name": "step15",
   191              "outputs": [
   192                  {
   193                      "internalType": "int256",
   194                      "name": "responseCode",
   195                      "type": "int256"
   196                  }
   197              ],
   198              "stateMutability": "nonpayable",
   199              "type": "function"
   200          },
   201          {
   202              "inputs": [],
   203              "name": "step16",
   204              "outputs": [
   205                  {
   206                      "internalType": "int256",
   207                      "name": "responseCode",
   208                      "type": "int256"
   209                  }
   210              ],
   211              "stateMutability": "nonpayable",
   212              "type": "function"
   213          },
   214          {
   215              "inputs": [],
   216              "name": "step2",
   217              "outputs": [
   218                  {
   219                      "internalType": "int256",
   220                      "name": "responseCode",
   221                      "type": "int256"
   222                  }
   223              ],
   224              "stateMutability": "nonpayable",
   225              "type": "function"
   226          },
   227          {
   228              "inputs": [],
   229              "name": "step3",
   230              "outputs": [
   231                  {
   232                      "internalType": "int256",
   233                      "name": "responseCode",
   234                      "type": "int256"
   235                  }
   236              ],
   237              "stateMutability": "nonpayable",
   238              "type": "function"
   239          },
   240          {
   241              "inputs": [],
   242              "name": "step4",
   243              "outputs": [
   244                  {
   245                      "internalType": "int256",
   246                      "name": "responseCode",
   247                      "type": "int256"
   248                  }
   249              ],
   250              "stateMutability": "nonpayable",
   251              "type": "function"
   252          },
   253          {
   254              "inputs": [],
   255              "name": "step5",
   256              "outputs": [
   257                  {
   258                      "internalType": "int256",
   259                      "name": "responseCode",
   260                      "type": "int256"
   261                  }
   262              ],
   263              "stateMutability": "nonpayable",
   264              "type": "function"
   265          },
   266          {
   267              "inputs": [],
   268              "name": "step6",
   269              "outputs": [
   270                  {
   271                      "internalType": "int256",
   272                      "name": "responseCode",
   273                      "type": "int256"
   274                  }
   275              ],
   276              "stateMutability": "nonpayable",
   277              "type": "function"
   278          },
   279          {
   280              "inputs": [],
   281              "name": "step7",
   282              "outputs": [
   283                  {
   284                      "internalType": "int256",
   285                      "name": "responseCode",
   286                      "type": "int256"
   287                  }
   288              ],
   289              "stateMutability": "nonpayable",
   290              "type": "function"
   291          },
   292          {
   293              "inputs": [],
   294              "name": "step8",
   295              "outputs": [
   296                  {
   297                      "internalType": "int256",
   298                      "name": "responseCode",
   299                      "type": "int256"
   300                  }
   301              ],
   302              "stateMutability": "nonpayable",
   303              "type": "function"
   304          },
   305          {
   306              "inputs": [],
   307              "name": "step9",
   308              "outputs": [
   309                  {
   310                      "internalType": "int256",
   311                      "name": "responseCode",
   312                      "type": "int256"
   313                  }
   314              ],
   315              "stateMutability": "nonpayable",
   316              "type": "function"
   317          },
   318          {
   319              "inputs": [
   320                  {
   321                      "internalType": "address",
   322                      "name": "token",
   323                      "type": "address"
   324                  },
   325                  {
   326                      "internalType": "address",
   327                      "name": "from",
   328                      "type": "address"
   329                  },
   330                  {
   331                      "internalType": "address",
   332                      "name": "to",
   333                      "type": "address"
   334                  },
   335                  {
   336                      "internalType": "uint256",
   337                      "name": "amount",
   338                      "type": "uint256"
   339                  }
   340              ],
   341              "name": "transferFrom",
   342              "outputs": [
   343                  {
   344                      "internalType": "int64",
   345                      "name": "responseCode",
   346                      "type": "int64"
   347                  }
   348              ],
   349              "stateMutability": "nonpayable",
   350              "type": "function"
   351          },
   352          {
   353              "inputs": [
   354                  {
   355                      "internalType": "address",
   356                      "name": "token",
   357                      "type": "address"
   358                  },
   359                  {
   360                      "internalType": "address",
   361                      "name": "from",
   362                      "type": "address"
   363                  },
   364                  {
   365                      "internalType": "address",
   366                      "name": "to",
   367                      "type": "address"
   368                  },
   369                  {
   370                      "internalType": "uint256",
   371                      "name": "serialNumber",
   372                      "type": "uint256"
   373                  }
   374              ],
   375              "name": "transferFromNFT",
   376              "outputs": [
   377                  {
   378                      "internalType": "int64",
   379                      "name": "responseCode",
   380                      "type": "int64"
   381                  }
   382              ],
   383              "stateMutability": "nonpayable",
   384              "type": "function"
   385          }
   386      ],
   387      "bytecode": "60806040523480156200001157600080fd5b50604051620049a5380380620049a5833981810160405281019062000037919062000304565b60018060008060068111156200005257620000516200034b565b5b60068111156200006757620000666200034b565b5b815260200190815260200160002081905550600260016000600160068111156200009657620000956200034b565b5b6006811115620000ab57620000aa6200034b565b5b81526020019081526020016000208190555060046001600060026006811115620000da57620000d96200034b565b5b6006811115620000ef57620000ee6200034b565b5b815260200190815260200160002081905550600860016000600360068111156200011e576200011d6200034b565b5b60068111156200013357620001326200034b565b5b815260200190815260200160002081905550601060016000600460068111156200016257620001616200034b565b5b60068111156200017757620001766200034b565b5b81526020019081526020016000208190555060206001600060056006811115620001a657620001a56200034b565b5b6006811115620001bb57620001ba6200034b565b5b815260200190815260200160002081905550604060016000600680811115620001e957620001e86200034b565b5b6006811115620001fe57620001fd6200034b565b5b81526020019081526020016000208190555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200037a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002cc826200029f565b9050919050565b620002de81620002bf565b8114620002ea57600080fd5b50565b600081519050620002fe81620002d3565b92915050565b600080604083850312156200031e576200031d6200029a565b5b60006200032e85828601620002ed565b92505060206200034185828601620002ed565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b61461b806200038a6000396000f3fe60806040526004361061012a5760003560e01c80639b23d3d9116100ab578063c30131c51161006f578063c30131c514610403578063d40a71fb1461042e578063d83bf9a11461044c578063df4ec24914610477578063eb7c6f72146104a2578063fb5d7376146104cd5761012a565b80639b23d3d91461031a578063a3221c8e14610357578063ade094b414610382578063bdc7a422146103ad578063bddd3a6b146103d85761012a565b80634fb4bcec116100f25780634fb4bcec1461021e578063618dc65e146102495780637f990e8f146102875780637fbaadba146102c45780638f4ed333146102ef5761012a565b806315dacbea1461012f57806323a452ad1461016c57806336f468911461019d57806344ac2d48146101c8578063462a08df146101f3575b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190613240565b6104f8565b60405161016391906132c3565b60405180910390f35b61018660048036038101906101819190613424565b610616565b604051610194929190613495565b60405180910390f35b3480156101a957600080fd5b506101b26109ec565b6040516101bf91906134be565b60405180910390f35b3480156101d457600080fd5b506101dd610a9e565b6040516101ea91906134f2565b60405180910390f35b3480156101ff57600080fd5b50610208610b70565b60405161021591906134be565b60405180910390f35b34801561022a57600080fd5b50610233610c91565b60405161024091906134be565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b919061350d565b610d42565b60405161027e9291906135e8565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906136fe565b610eaf565b6040516102bb91906134be565b60405180910390f35b3480156102d057600080fd5b506102d9610ffd565b6040516102e691906134be565b60405180910390f35b3480156102fb57600080fd5b506103046110af565b60405161031191906134be565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190613240565b6111ac565b60405161034e91906132c3565b60405180910390f35b34801561036357600080fd5b5061036c6112ca565b60405161037991906134be565b60405180910390f35b34801561038e57600080fd5b5061039761137c565b6040516103a491906134be565b60405180910390f35b3480156103b957600080fd5b506103c261146d565b6040516103cf91906134be565b60405180910390f35b3480156103e457600080fd5b506103ed61151c565b6040516103fa91906134be565b60405180910390f35b34801561040f57600080fd5b506104186115a8565b60405161042591906134be565b60405180910390f35b610436611659565b60405161044391906134be565b60405180910390f35b34801561045857600080fd5b506104616119c9565b60405161046e91906134f2565b60405180910390f35b34801561048357600080fd5b5061048c611b01565b60405161049991906134be565b60405180910390f35b3480156104ae57600080fd5b506104b7611bb0565b6040516104c491906134be565b60405180910390f35b3480156104d957600080fd5b506104e2611c3c565b6040516104ef91906134be565b60405180910390f35b600080600061016773ffffffffffffffffffffffffffffffffffffffff166315dacbea60e01b888888886040516024016105359493929190613756565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161059f91906137d7565b6000604051808303816000865af19150503d80600081146105dc576040519150601f19603f3d011682016040523d82523d6000602084013e6105e1565b606091505b5091509150816105f2576015610607565b808060200190518101906106069190613827565b5b60030b92505050949350505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461067357600080fd5b6000600167ffffffffffffffff8111156106905761068f6132f9565b5b6040519080825280602002602001820160405280156106c957816020015b6106b661300f565b8152602001906001900390816106ae5790505b5090506106db60006004600287611cee565b816000815181106106ef576106ee613854565b5b60200260200101819052506000600167ffffffffffffffff811115610717576107166132f9565b5b60405190808252806020026020018201604052801561075057816020015b61073d61302f565b8152602001906001900390816107355790505b5090506107836305f5e100600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d27565b8160008151811061079757610796613854565b5b602002602001018190525061090c6040518061012001604052806040518060400160405280601181526020017f4578616d706c65204e465420746f6b656e00000000000000000000000000000081525081526020016040518060400160405280600481526020017f454e46540000000000000000000000000000000000000000000000000000000081525081526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600481526020017f6d656d6f0000000000000000000000000000000000000000000000000000000081525081526020016001151581526020016103e860070b81526020016000151581526020018481526020016108ae30626acfc0611d90565b81525082600067ffffffffffffffff8111156108cd576108cc6132f9565b5b60405190808252806020026020018201604052801561090657816020015b6108f3613091565b8152602001906001900390816108eb5790505b50611de8565b600560008291906101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508195505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109bc573d6000803e3d6000fd5b5083600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935093505050915091565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a4857600080fd5b610a99600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611f5e565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1663d83bf9a16040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b91906138af565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcc57600080fd5b6000600167ffffffffffffffff811115610be957610be86132f9565b5b604051908082528060200260200182016040528015610c175781602001602082028036833780820191505090505b509050600381600081518110610c3057610c2f613854565b5b602002602001019060070b908160070b815250506000610c74600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008461207c565b809250819450505060028160070b14610c8c57600080fd5b505090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ced57600080fd5b610d3d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646121a4565b905090565b6000606060008061016773ffffffffffffffffffffffffffffffffffffffff1663618dc65e60e01b8787604051602401610d7d9291906138dc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610de791906137d7565b6000604051808303816000865af19150503d8060008114610e24576040519150601f19603f3d011682016040523d82523d6000602084013e610e29565b606091505b50915091507f4af4780e06fe8cb9df64b0794fa6f01399af979175bb988e35e0e57e594567bc8282604051610e5f929190613927565b60405180910390a181610e8357601560405180602001604052806000815250610e98565b80806020019051810190610e9791906139c7565b5b8160030b9150809450819550505050509250929050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0b57600080fd5b6003825114610f1957600080fd5b60006060610f4b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000866122bf565b80935081945082955050505060038260070b14610f6757600080fd5b6003815114610f7557600080fd5b600181600081518110610f8b57610f8a613854565b5b602002602001015160070b14610fa057600080fd5b600281600181518110610fb657610fb5613854565b5b602002602001015160070b14610fcb57600080fd5b600381600281518110610fe157610fe0613854565b5b602002602001015160070b14610ff657600080fd5b5050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105957600080fd5b6110a7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612437565b60070b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461110b57600080fd5b6000606061118b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600067ffffffffffffffff811115611152576111516132f9565b5b60405190808252806020026020018201604052801561118557816020015b60608152602001906001900390816111705790505b506122bf565b80935081945082955050505060c88260070b146111a757600080fd5b505090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16639b23d3d960e01b888888886040516024016111e99493929190613756565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161125391906137d7565b6000604051808303816000865af19150503d8060008114611290576040519150601f19603f3d011682016040523d82523d6000602084013e611295565b606091505b5091509150816112a65760156112bb565b808060200190518101906112ba9190613827565b5b60030b92505050949350505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461132657600080fd5b611374600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661254f565b60070b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d857600080fd5b6000611451600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166032600067ffffffffffffffff81111561141d5761141c6132f9565b5b60405190808252806020026020018201604052801561144b5781602001602082028036833780820191505090505b5061207c565b809250819350505060968160070b1461146957600080fd5b5090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114c957600080fd5b611517600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612667565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461157857600080fd5b6115a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661277f565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461160457600080fd5b611654600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002612894565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b557600080fd5b6000600467ffffffffffffffff8111156116d2576116d16132f9565b5b60405190808252806020026020018201604052801561170b57816020015b6116f861300f565b8152602001906001900390816116f05790505b50905061172c60006006600060405180602001604052806000815250611cee565b816000815181106117405761173f613854565b5b602002602001018190525061176760026000604051806020016040528060008152506129af565b8160018151811061177b5761177a613854565b5b60200260200101819052506117a260036000604051806020016040528060008152506129af565b816002815181106117b6576117b5613854565b5b60200260200101819052506117dd60046000604051806020016040528060008152506129af565b816003815181106117f1576117f0613854565b5b60200260200101819052506119146040518061012001604052806040518060400160405280601681526020017f4578616d706c652046756e6769626c6520746f6b656e0000000000000000000081525081526020016040518060400160405280600181526020017f450000000000000000000000000000000000000000000000000000000000000081525081526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600481526020017f6d656d6f0000000000000000000000000000000000000000000000000000000081525081526020016001151581526020016103e860070b815260200160001515815260200183815260200161190830626acfc0611d90565b815250606460006129e6565b600460008291906101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508193505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156119c4573d6000803e3d6000fd5b505090565b600080600061016973ffffffffffffffffffffffffffffffffffffffff1663d83bf9a160e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5f91906137d7565b6000604051808303816000865af19150503d8060008114611a9c576040519150601f19603f3d011682016040523d82523d6000602084013e611aa1565b606091505b509150915081611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90613a80565b60405180910390fd5b80806020019051810190611afa91906138af565b9250505090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b5d57600080fd5b611bab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612667565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c0c57600080fd5b611c37600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b5c565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9857600080fd5b611ce9600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064612c71565b905090565b611cf661300f565b6040518060400160405280611d0b8787612d8f565b8152602001611d1a8585612de5565b8152509050949350505050565b611d2f61302f565b82816000019060070b908160070b81525050600181604001901515908115158152505081816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505092915050565b611d986130fe565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019060070b908160070b8152505092915050565b6000808460008161010001516000015160070b148015611e14575060008161010001516040015160070b145b15611e37576276a70060030b8161010001516040019060070b908160070b815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff163463abb54eb560e01b8a8a8a604051602401611e7193929190614054565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611edb91906137d7565b60006040518083038185875af1925050503d8060008114611f18576040519150601f19603f3d011682016040523d82523d6000602084013e611f1d565b606091505b509150915081611f305760156000611f45565b80806020019051810190611f4491906140de565b5b8160030b91508095508196505050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f9b949392919061411e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161200591906137d7565b6000604051808303816000865af19150503d8060008114612042576040519150601f19603f3d011682016040523d82523d6000602084013e612047565b606091505b50915091508161205857601561206d565b8080602001905181019061206c9190613827565b5b60030b92505050949350505050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663d6910d0660e01b8888886040516024016120b893929190614212565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161212291906137d7565b6000604051808303816000865af19150503d806000811461215f576040519150601f19603f3d011682016040523d82523d6000602084013e612164565b606091505b509150915081612177576015600061218c565b8080602001905181019061218b919061427c565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663e1f21c6760e01b8787876040516024016121df939291906142bc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161224991906137d7565b6000604051808303816000865af19150503d8060008114612286576040519150601f19603f3d011682016040523d82523d6000602084013e61228b565b606091505b50915091508161229c5760156122b1565b808060200190518101906122b09190613827565b5b60030b925050509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663e0f4059a60e01b8989896040516024016122fd939291906143b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161236791906137d7565b6000604051808303816000865af19150503d80600081146123a4576040519150601f19603f3d011682016040523d82523d6000602084013e6123a9565b606091505b50915091508161240557601560008067ffffffffffffffff8111156123d1576123d06132f9565b5b6040519080825280602002602001820160405280156123ff5781602001602082028036833780820191505090505b5061241a565b8080602001905181019061241991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166352f9138760e01b8686604051602401612470929190614525565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124da91906137d7565b6000604051808303816000865af19150503d8060008114612517576040519150601f19603f3d011682016040523d82523d6000602084013e61251c565b606091505b50915091508161252d576015612542565b808060200190518101906125419190613827565b5b60030b9250505092915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635b8f858460e01b8686604051602401612588929190614525565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516125f291906137d7565b6000604051808303816000865af19150503d806000811461262f576040519150601f19603f3d011682016040523d82523d6000602084013e612634565b606091505b50915091508161264557601561265a565b808060200190518101906126599190613827565b5b60030b9250505092915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b86866040516024016126a0929190614525565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161270a91906137d7565b6000604051808303816000865af19150503d8060008114612747576040519150601f19603f3d011682016040523d82523d6000602084013e61274c565b606091505b50915091508161275d576015612772565b808060200190518101906127719190613827565b5b60030b9250505092915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b856040516024016127b6919061454e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161282091906137d7565b6000604051808303816000865af19150503d806000811461285d576040519150601f19603f3d011682016040523d82523d6000602084013e612862565b606091505b509150915081612873576015612888565b808060200190518101906128879190613827565b5b60030b92505050919050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637336aaf060e01b8787876040516024016128cf939291906142bc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161293991906137d7565b6000604051808303816000865af19150503d8060008114612976576040519150601f19603f3d011682016040523d82523d6000602084013e61297b565b606091505b50915091508161298c5760156129a1565b808060200190518101906129a09190613827565b5b60030b925050509392505050565b6129b761300f565b60405180604001604052806129cb86612fba565b81526020016129da8585612de5565b81525090509392505050565b6000808460008161010001516000015160070b148015612a12575060008161010001516040015160070b145b15612a35576276a70060030b8161010001516040019060070b908160070b815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634630fb65bf360e01b8a8a8a604051602401612a6f93929190614578565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612ad991906137d7565b60006040518083038185875af1925050503d8060008114612b16576040519150601f19603f3d011682016040523d82523d6000602084013e612b1b565b606091505b509150915081612b2e5760156000612b43565b80806020019051810190612b4291906140de565b5b8160030b91508095508196505050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b85604051602401612b93919061454e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612bfd91906137d7565b6000604051808303816000865af19150503d8060008114612c3a576040519150601f19603f3d011682016040523d82523d6000602084013e612c3f565b606091505b509150915081612c50576015612c65565b80806020019051810190612c649190613827565b5b60030b92505050919050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663eca3691760e01b88888888604051602401612cae949392919061411e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612d1891906137d7565b6000604051808303816000865af19150503d8060008114612d55576040519150601f19603f3d011682016040523d82523d6000602084013e612d5a565b606091505b509150915081612d6b576015612d80565b80806020019051810190612d7f9190613827565b5b60030b92505050949350505050565b6000612db6836006811115612da757612da66145b6565b5b82612ffb90919063ffffffff16565b9050612ddd826006811115612dce57612dcd6145b6565b5b82612ffb90919063ffffffff16565b905092915050565b612ded61313b565b60006004811115612e0157612e006145b6565b5b836004811115612e1457612e136145b6565b5b03612e2f576001816000019015159081151581525050612fb4565b60016004811115612e4357612e426145b6565b5b836004811115612e5657612e556145b6565b5b03612eb85760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fb3565b60026004811115612ecc57612ecb6145b6565b5b836004811115612edf57612ede6145b6565b5b03612ef257818160400181905250612fb2565b60036004811115612f0657612f056145b6565b5b836004811115612f1957612f186145b6565b5b03612f2c57818160600181905250612fb1565b600480811115612f3f57612f3e6145b6565b5b836004811115612f5257612f516145b6565b5b03612fb05760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b5b5b5b92915050565b600060016000836006811115612fd357612fd26145b6565b5b6006811115612fe557612fe46145b6565b5b8152602001908152602001600020549050919050565b60008160ff166001901b8317905092915050565b60405180604001604052806000815260200161302961313b565b81525090565b6040518060a00160405280600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060c00160405280600060070b8152602001600060070b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060600160405280600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b81525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131d7826131ac565b9050919050565b6131e7816131cc565b81146131f257600080fd5b50565b600081359050613204816131de565b92915050565b6000819050919050565b61321d8161320a565b811461322857600080fd5b50565b60008135905061323a81613214565b92915050565b6000806000806080858703121561325a576132596131a2565b5b6000613268878288016131f5565b9450506020613279878288016131f5565b935050604061328a878288016131f5565b925050606061329b8782880161322b565b91505092959194509250565b60008160070b9050919050565b6132bd816132a7565b82525050565b60006020820190506132d860008301846132b4565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613331826132e8565b810181811067ffffffffffffffff821117156133505761334f6132f9565b5b80604052505050565b6000613363613198565b905061336f8282613328565b919050565b600067ffffffffffffffff82111561338f5761338e6132f9565b5b613398826132e8565b9050602081019050919050565b82818337600083830152505050565b60006133c76133c284613374565b613359565b9050828152602081018484840111156133e3576133e26132e3565b5b6133ee8482856133a5565b509392505050565b600082601f83011261340b5761340a6132de565b5b813561341b8482602086016133b4565b91505092915050565b60006020828403121561343a576134396131a2565b5b600082013567ffffffffffffffff811115613458576134576131a7565b5b613464848285016133f6565b91505092915050565b6000819050919050565b6134808161346d565b82525050565b61348f816131cc565b82525050565b60006040820190506134aa6000830185613477565b6134b76020830184613486565b9392505050565b60006020820190506134d36000830184613477565b92915050565b6000819050919050565b6134ec816134d9565b82525050565b600060208201905061350760008301846134e3565b92915050565b60008060408385031215613524576135236131a2565b5b6000613532858286016131f5565b925050602083013567ffffffffffffffff811115613553576135526131a7565b5b61355f858286016133f6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135a3578082015181840152602081019050613588565b60008484015250505050565b60006135ba82613569565b6135c48185613574565b93506135d4818560208601613585565b6135dd816132e8565b840191505092915050565b60006040820190506135fd6000830185613477565b818103602083015261360f81846135af565b90509392505050565b600067ffffffffffffffff821115613633576136326132f9565b5b602082029050602081019050919050565b600080fd5b600061365c61365784613618565b613359565b9050808382526020820190506020840283018581111561367f5761367e613644565b5b835b818110156136c657803567ffffffffffffffff8111156136a4576136a36132de565b5b8086016136b189826133f6565b85526020850194505050602081019050613681565b5050509392505050565b600082601f8301126136e5576136e46132de565b5b81356136f5848260208601613649565b91505092915050565b600060208284031215613714576137136131a2565b5b600082013567ffffffffffffffff811115613732576137316131a7565b5b61373e848285016136d0565b91505092915050565b6137508161320a565b82525050565b600060808201905061376b6000830187613486565b6137786020830186613486565b6137856040830185613486565b6137926060830184613747565b95945050505050565b600081905092915050565b60006137b182613569565b6137bb818561379b565b93506137cb818560208601613585565b80840191505092915050565b60006137e382846137a6565b915081905092915050565b60008160030b9050919050565b613804816137ee565b811461380f57600080fd5b50565b600081519050613821816137fb565b92915050565b60006020828403121561383d5761383c6131a2565b5b600061384b84828501613812565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61388c816134d9565b811461389757600080fd5b50565b6000815190506138a981613883565b92915050565b6000602082840312156138c5576138c46131a2565b5b60006138d38482850161389a565b91505092915050565b60006040820190506138f16000830185613486565b818103602083015261390381846135af565b90509392505050565b60008115159050919050565b6139218161390c565b82525050565b600060408201905061393c6000830185613918565b818103602083015261394e81846135af565b90509392505050565b600061396a61396584613374565b613359565b905082815260208101848484011115613986576139856132e3565b5b613991848285613585565b509392505050565b600082601f8301126139ae576139ad6132de565b5b81516139be848260208601613957565b91505092915050565b600080604083850312156139de576139dd6131a2565b5b60006139ec85828601613812565b925050602083015167ffffffffffffffff811115613a0d57613a0c6131a7565b5b613a1985828601613999565b9150509250929050565b600082825260208201905092915050565b7f50524e472073797374656d2063616c6c206661696c6564000000000000000000600082015250565b6000613a6a601783613a23565b9150613a7582613a34565b602082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613ac782613aa0565b613ad18185613aab565b9350613ae1818560208601613585565b613aea816132e8565b840191505092915050565b613afe816131cc565b82525050565b613b0d8161390c565b82525050565b613b1c816132a7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b578161320a565b82525050565b600082825260208201905092915050565b6000613b7982613569565b613b838185613b5d565b9350613b93818560208601613585565b613b9c816132e8565b840191505092915050565b600060a083016000830151613bbf6000860182613b04565b506020830151613bd26020860182613af5565b5060408301518482036040860152613bea8282613b6e565b91505060608301518482036060860152613c048282613b6e565b9150506080830151613c196080860182613af5565b508091505092915050565b6000604083016000830151613c3c6000860182613b4e565b5060208301518482036020860152613c548282613ba7565b9150508091505092915050565b6000613c6d8383613c24565b905092915050565b6000602082019050919050565b6000613c8d82613b22565b613c978185613b2d565b935083602082028501613ca985613b3e565b8060005b85811015613ce55784840389528151613cc68582613c61565b9450613cd183613c75565b925060208a01995050600181019050613cad565b50829750879550505050505092915050565b606082016000820151613d0d6000850182613b13565b506020820151613d206020850182613af5565b506040820151613d336040850182613b13565b50505050565b6000610160830160008301518482036000860152613d578282613abc565b91505060208301518482036020860152613d718282613abc565b9150506040830151613d866040860182613af5565b5060608301518482036060860152613d9e8282613abc565b9150506080830151613db36080860182613b04565b5060a0830151613dc660a0860182613b13565b5060c0830151613dd960c0860182613b04565b5060e083015184820360e0860152613df18282613c82565b915050610100830151613e08610100860182613cf7565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60a082016000820151613e556000850182613b13565b506020820151613e686020850182613af5565b506040820151613e7b6040850182613b04565b506060820151613e8e6060850182613b04565b506080820151613ea16080850182613af5565b50505050565b6000613eb38383613e3f565b60a08301905092915050565b6000602082019050919050565b6000613ed782613e13565b613ee18185613e1e565b9350613eec83613e2f565b8060005b83811015613f1d578151613f048882613ea7565b9750613f0f83613ebf565b925050600181019050613ef0565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60c082016000820151613f6c6000850182613b13565b506020820151613f7f6020850182613b13565b506040820151613f926040850182613b13565b506060820151613fa56060850182613af5565b506080820151613fb86080850182613b04565b5060a0820151613fcb60a0850182613af5565b50505050565b6000613fdd8383613f56565b60c08301905092915050565b6000602082019050919050565b600061400182613f2a565b61400b8185613f35565b935061401683613f46565b8060005b8381101561404757815161402e8882613fd1565b975061403983613fe9565b92505060018101905061401a565b5085935050505092915050565b6000606082019050818103600083015261406e8186613d39565b905081810360208301526140828185613ecc565b905081810360408301526140968184613ff6565b9050949350505050565b60006140ab826131ac565b9050919050565b6140bb816140a0565b81146140c657600080fd5b50565b6000815190506140d8816140b2565b92915050565b600080604083850312156140f5576140f46131a2565b5b600061410385828601613812565b9250506020614114858286016140c9565b9150509250929050565b60006080820190506141336000830187613486565b6141406020830186613486565b61414d6040830185613486565b61415a60608301846132b4565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061419b8383613b13565b60208301905092915050565b6000602082019050919050565b60006141bf82614163565b6141c9818561416e565b93506141d48361417f565b8060005b838110156142055781516141ec888261418f565b97506141f7836141a7565b9250506001810190506141d8565b5085935050505092915050565b60006060820190506142276000830186613486565b61423460208301856132b4565b818103604083015261424681846141b4565b9050949350505050565b614259816132a7565b811461426457600080fd5b50565b60008151905061427681614250565b92915050565b60008060408385031215614293576142926131a2565b5b60006142a185828601613812565b92505060206142b285828601614267565b9150509250929050565b60006060820190506142d16000830186613486565b6142de6020830185613486565b6142eb6040830184613747565b949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061432b8383613b6e565b905092915050565b6000602082019050919050565b600061434b826142f3565b61435581856142fe565b9350836020820285016143678561430f565b8060005b858110156143a35784840389528151614384858261431f565b945061438f83614333565b925060208a0199505060018101905061436b565b50829750879550505050505092915050565b60006060820190506143ca6000830186613486565b6143d760208301856132b4565b81810360408301526143e98184614340565b9050949350505050565b600067ffffffffffffffff82111561440e5761440d6132f9565b5b602082029050602081019050919050565b600061443261442d846143f3565b613359565b9050808382526020820190506020840283018581111561445557614454613644565b5b835b8181101561447e578061446a8882614267565b845260208401935050602081019050614457565b5050509392505050565b600082601f83011261449d5761449c6132de565b5b81516144ad84826020860161441f565b91505092915050565b6000806000606084860312156144cf576144ce6131a2565b5b60006144dd86828701613812565b93505060206144ee86828701614267565b925050604084015167ffffffffffffffff81111561450f5761450e6131a7565b5b61451b86828701614488565b9150509250925092565b600060408201905061453a6000830185613486565b6145476020830184613486565b9392505050565b60006020820190506145636000830184613486565b92915050565b614572816137ee565b82525050565b600060608201905081810360008301526145928186613d39565b90506145a160208301856132b4565b6145ae6040830184614569565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220f9b7a70107280779fe1d24ca3491ff2674f160d598ac86c1f0374413bf96fdf364736f6c63430008120033"
   388  }