@shipload/sdk 0.7.1 → 2.0.0-rc10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/shipload.d.ts +2203 -288
  2. package/lib/shipload.js +8441 -2210
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +8160 -2167
  5. package/lib/shipload.m.js.map +1 -1
  6. package/package.json +7 -6
  7. package/src/capabilities/crafting.ts +26 -0
  8. package/src/capabilities/extraction.ts +36 -0
  9. package/src/capabilities/guards.ts +38 -0
  10. package/src/capabilities/hauling.ts +22 -0
  11. package/src/capabilities/index.ts +8 -0
  12. package/src/capabilities/loading.ts +8 -0
  13. package/src/capabilities/modules.ts +57 -0
  14. package/src/capabilities/movement.ts +29 -0
  15. package/src/capabilities/storage.ts +72 -0
  16. package/src/contracts/server.ts +1217 -254
  17. package/src/data/capabilities.ts +408 -0
  18. package/src/data/categories.ts +58 -0
  19. package/src/data/colors.ts +52 -0
  20. package/src/data/items.json +17 -0
  21. package/src/data/locations.ts +53 -0
  22. package/src/data/nebula-adjectives.json +211 -0
  23. package/src/data/nebula-nouns.json +151 -0
  24. package/src/data/recipes.ts +571 -0
  25. package/src/data/syllables.json +1790 -0
  26. package/src/data/tiers.ts +45 -0
  27. package/src/derivation/crafting.ts +197 -0
  28. package/src/derivation/index.ts +28 -0
  29. package/src/derivation/location-size.ts +15 -0
  30. package/src/derivation/resources.ts +142 -0
  31. package/src/derivation/stats.ts +146 -0
  32. package/src/derivation/stratum.ts +118 -0
  33. package/src/entities/cargo-utils.ts +84 -0
  34. package/src/entities/container.ts +106 -0
  35. package/src/entities/entity-inventory.ts +39 -0
  36. package/src/entities/gamestate.ts +152 -0
  37. package/src/entities/inventory-accessor.ts +42 -0
  38. package/src/entities/location.ts +60 -0
  39. package/src/entities/makers.ts +72 -0
  40. package/src/entities/player.ts +15 -0
  41. package/src/entities/ship-deploy.ts +263 -0
  42. package/src/entities/ship.ts +199 -0
  43. package/src/entities/warehouse.ts +91 -0
  44. package/src/errors.ts +46 -9
  45. package/src/index-module.ts +302 -7
  46. package/src/managers/actions.ts +197 -0
  47. package/src/managers/base.ts +25 -0
  48. package/src/managers/context.ts +95 -0
  49. package/src/managers/entities.ts +103 -0
  50. package/src/managers/epochs.ts +47 -0
  51. package/src/managers/index.ts +8 -0
  52. package/src/managers/locations.ts +39 -0
  53. package/src/managers/players.ts +13 -0
  54. package/src/market/items.ts +30 -0
  55. package/src/nft/description.ts +175 -0
  56. package/src/nft/deserializers.ts +81 -0
  57. package/src/nft/index.ts +2 -0
  58. package/src/resolution/resolve-item.ts +313 -0
  59. package/src/scheduling/accessor.ts +82 -0
  60. package/src/{epoch.ts → scheduling/epoch.ts} +1 -1
  61. package/src/scheduling/projection.ts +322 -0
  62. package/src/scheduling/schedule.ts +179 -0
  63. package/src/shipload.ts +36 -159
  64. package/src/travel/travel.ts +499 -0
  65. package/src/types/capabilities.ts +71 -0
  66. package/src/types/entity-traits.ts +69 -0
  67. package/src/types/entity.ts +39 -0
  68. package/src/types/index.ts +3 -0
  69. package/src/types.ts +113 -35
  70. package/src/{hash.ts → utils/hash.ts} +1 -1
  71. package/src/utils/system.ts +155 -0
  72. package/src/goods.ts +0 -124
  73. package/src/market.ts +0 -214
  74. package/src/rolls.ts +0 -8
  75. package/src/ship.ts +0 -36
  76. package/src/state.ts +0 -0
  77. package/src/syllables.ts +0 -1184
  78. package/src/system.ts +0 -37
  79. package/src/travel.ts +0 -259
@@ -1,17 +1,22 @@
1
1
  import type {
2
2
  Action,
3
3
  Checksum256Type,
4
+ Int32Type,
4
5
  Int64Type,
5
6
  NameType,
7
+ TimePointType,
6
8
  UInt16Type,
9
+ UInt32Type,
7
10
  UInt64Type,
11
+ UInt8Type,
8
12
  } from '@wharfkit/antelope'
9
13
  import {
10
14
  ABI,
11
15
  Blob,
16
+ Bytes,
12
17
  Checksum256,
13
18
  Checksum512,
14
- Float64,
19
+ Int32,
15
20
  Int64,
16
21
  Name,
17
22
  Struct,
@@ -24,10 +29,32 @@ import {
24
29
  import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
25
30
  import {Contract as BaseContract} from '@wharfkit/contract'
26
31
  export const abiBlob = Blob.from(
27
- 'DmVvc2lvOjphYmkvMS4yACcHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAdidXlzaGlwAAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NARwYWlkBnVpbnQ2NAVvd25lZAZ1aW50MzIGbG9hZGVkBnVpbnQzMgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAMCaWQGdWludDE2BXByaWNlBnVpbnQ2NAZzdXBwbHkGdWludDY0BGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghqZXR0aXNvbgADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQ2NARqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyCHF1YW50aXR5BnVpbnQxNgZ0aHJ1c3QGdWludDMyDGxvY2F0aW9uX3JvdwAFAmlkBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwVlcG9jaAZ1aW50NjQHZ29vZF9pZAZ1aW50MTYGc3VwcGx5BnVpbnQxNgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB3BheWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NApwbGF5ZXJfcm93AAQFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NAhuZXR3b3J0aAVpbnQ2NARzYWx0AAEEc2FsdAZ1aW50NjQJc2VsbGdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0DHNlcXVlbmNlX3JvdwACA2tleQRuYW1lBXZhbHVlBnVpbnQ2NAhzaGlwX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nCGxvY2F0aW9uC2Nvb3JkaW5hdGVzBHNraW4FdWludDgEdGllcgV1aW50OAVzdGF0ZQpzaGlwX3N0YXRlBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0ZQABBmVuZXJneQZ1aW50MzIKc2hpcF9zdGF0cwAHCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIEbWFzcwZ1aW50NjQHbWF4bWFzcwZ1aW50NjQFb3JiaXQGdWludDE2CHJlY2hhcmdlBnVpbnQzMgZ0aHJ1c3QGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50NjQEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CHRha2Vsb2FuAAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQGdHJhdmVsAAMCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4ACQlkZXBhcnR1cmUKdGltZV9wb2ludAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50MzIIbG9hZHRpbWUGdWludDMyDHJlY2hhcmdldGltZQZ1aW50MzILbWFzc3BlbmFsdHkGdWludDMyBG1hc3MGdWludDY0C2VuZXJneXVzYWdlBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQANBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgdmbG9hdDY0CmZsaWdodHRpbWUGdWludDMyC2VuZXJneXVzYWdlBnVpbnQzMgxyZWNoYXJnZXRpbWUGdWludDMyC21hc3NwZW5hbHR5BnVpbnQzMghsb2FkdGltZQZ1aW50NjQEdGltZQZ1aW50NjQKdHJhdmVscGxhbgAEAmlkBnVpbnQ2NAZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDHVwZGF0ZWNyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQKdXBkYXRlZGVidAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQLdXBncmFkZXNoaXAAAgdhY2NvdW50BG5hbWUCaWQGdWludDY0BHdpcGUAAAx3aXBlc2VxdWVuY2UAABoAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAAAAoLqGvT4HYnV5c2hpcMYBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eXNoaXAKc3VtbWFyeTogJ0J1eSBhIG5ldyBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBzaGlwAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAACTYpezeghqZXR0aXNvbvkBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpldHRpc29uCnN1bW1hcnk6ICdKZXR0aXNvbiBDYXJnbyBmcm9tIFNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpldHRpc29uIGNhcmdvIGZyb20gdGhlIGEgc2hpcCBhbmQgcmVjYWxjdWxhdGUgdHJhdmVsIHRpbWUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAABgGhq9qQdwYXlsb2Fu3gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGF5bG9hbgpzdW1tYXJ5OiAnTG9hbiBQYXltZW50JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpNYWtlIGEgcGF5bWVudCBvbiBhbiBvdXRzdGFuZGluZyBjcmVkaXQgbG9hbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAABEtc3NBnRyYXZlbMgCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgDANLFGtc3NCnRyYXZlbHBsYW6OAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWxwbGFuCnN1bW1hcnk6ICdFc3RpbWF0ZSBhIHRyYXZlbCBwbGFuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGUgd2hhdCB0aGUgdHJhdmVsIHBsYW4gaXMgZm9yIGEgc2hpcCB0cmF2ZWxpbmcgdG8gYSBnaXZlbiBsb2NhdGlvbi4KCi0tLQCAki5Htc3NCnRyYXZlbHRpbWWMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWx0aW1lCnN1bW1hcnk6ICdFc3RpbWF0ZSBUcmF2ZWwgVGltZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXN0aW1hdGUgdGhlIGR1cmF0aW9uIG9mIGEgc2hpcCB0cmF2ZWxpbmcgd2l0aG91dCBjb21taXR0aW5nIHRvIHRoZSBhY3Rpb24uCgotLS2QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCqa1glc1nVC3VwZ3JhZGVzaGlw1wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBncmFkZXNoaXAKc3VtbWFyeTogJ1VwZ3JhZGUgYSBTaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVcGdyYWRlIGEgc2hpcCB0byB0aGUgbmV4dCB0aWVyLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tBgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAGAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAUcrdmBa+RCmdvb2RfcHJpY2WAFXK3ZgWvkQxnb29kX3ByaWNlW10AwDSxRrXNzQt0cmF2ZWxfcGxhbgCAki5Htc3NDnRyYXZlbF9zdW1tYXJ5'
32
+ 'DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhxCWFkZG1vZHVsZQAFC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgPbW9kdWxlX2NhcmdvX2lkBnVpbnQ2NA90YXJnZXRfY2FyZ29faWQGdWludDY0CGFkZG5leHVzAAMKbmV4dXNfbmFtZQZzdHJpbmcBeAVpbnQ2NAF5BWludDY0B2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgVibGVuZAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10GY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIEc2VlZAd1aW50NjQ/B21vZHVsZXMObW9kdWxlX2VudHJ5W10JY2FyZ29fcm93AAYCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10KY2FyZ29fc2VlZAACB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMABRJ3YXJlaG91c2VfY2FwYWNpdHkGdWludDMyC3dhcmVob3VzZV96BnVpbnQxNhJjb250YWluZXJfaHVsbG1hc3MGdWludDMyEmNvbnRhaW5lcl9jYXBhY2l0eQZ1aW50MzILY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABcEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPwplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10HZXh0cmFjdAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg9leHRyYWN0b3Jfc3RhdHMABARyYXRlBnVpbnQxNgVkcmFpbgZ1aW50MTYFZGVwdGgGdWludDE2BWRyaWxsBnVpbnQxNgtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdCWdldGNvbmZpZwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQLZ2V0aXRlbWRhdGEAAAhnZXRpdGVtcwAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQKZ2V0bW9kdWxlcwAACWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUJZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgMZ2V0cmVzb3VyY2VzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OA9pdGVtZGF0YV9yZXN1bHQAAgVpdGVtcwppdGVtX2RlZltdB3JlY2lwZXMOcmVjaXBlc19yZXN1bHQKaXRlbXNfaW5mbwABBWl0ZW1zCml0ZW1fZGVmW10Eam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMgZ0aHJ1c3QGdWludDE2CHF1YW50aXR5BXVpbnQ4EGxvY2F0aW9uX2Rlcml2ZWQAAwxzdGF0aWNfcHJvcHMPbG9jYXRpb25fc3RhdGljC2Vwb2NoX3Byb3BzDmxvY2F0aW9uX2Vwb2NoBHNpemUGdWludDE2DmxvY2F0aW9uX2Vwb2NoAAMGYWN0aXZlBGJvb2wFc2VlZDAFdWludDgFc2VlZDEFdWludDgNbG9jYXRpb25faW5mbwACBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbAxsb2NhdGlvbl9yb3cABgJpZAZ1aW50NjQFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQhzY2hlZHVsZQlzY2hlZHVsZT8PbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkC2NhcmdvX3NlZWQ/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwluZXh1c19yb3cABAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAgdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudAtwbGF5ZXJfaW5mbwAGBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpzaGlwX2NvdW50BnVpbnQ2NA93YXJlaG91c2VfY291bnQGdWludDY0D2NvbnRhaW5lcl9jb3VudAZ1aW50NjQKcGxheWVyX3JvdwABBW93bmVyBG5hbWUIcmVjaGFyZ2UAAgtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAwdpdGVtX2lkBnVpbnQxNghjYXRlZ29yeQV1aW50OAhxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UABw5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdC3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdCHJtbW9kdWxlAAQLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OA90YXJnZXRfY2FyZ29faWQGdWludDY0CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQhzaGlwX3JvdwARAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBHNlZWQGdWludDY0C2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwZlbmVyZ3kHdWludDE2PwljYXJnb21hc3MGdWludDMyB2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/B2xvYWRlcnMNbG9hZGVyX3N0YXRzPwlleHRyYWN0b3IQZXh0cmFjdG9yX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8Kc3Bhd25jYXJnbwADCWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0C3NwYXduc2VlZGVkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQEc2VlZAZ1aW50NjQSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cABgdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNhbHQGdWludDY0BXNoaXBzBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABAdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABgtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBnRyYXZlbAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwADAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcNd2FyZWhvdXNlX3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBHNlZWQGdWludDY0C2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwljYXJnb21hc3MGdWludDMyB2xvYWRlcnMNbG9hZGVyX3N0YXRzPwdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPwR3YXJwAAQLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADHdpcGVzZXF1ZW5jZQAABHdyYXAABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0MgAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1cwAAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAIA0VTwFYmxlbmT9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIGEgbmV3IGJsZW5kZWQgc2VlZC4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgAAAABEhaZBBmNhbmNlbMICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNhbmNlbApzdW1tYXJ5OiAnQ2FuY2VsIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FuY2VsIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRhc2tzIGZyb20gdGhlIGVuZCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZS4gVGFza3MgdGhhdCBhcmUgaW1tdXRhYmxlIGFuZCBpbiBwcm9ncmVzcyBjYW5ub3QgYmUgY2FuY2VsbGVkLgAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLuCzy1OpbNRFDGNyZWF0ZWVudGl0eb8BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyZWF0ZWVudGl0eQpzdW1tYXJ5OiAnREVCVUc6IGNyZWF0ZSBhbiBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQuAAAAICNzc1cHZXh0cmFjdKEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YQAAAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAFZRJyqzYgpnZXRtb2R1bGVzAAAA8OcaNbNiCWdldG5lYXJied4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5lYXJieQpzdW1tYXJ5OiAnR2V0IG5lYXJieSByZWFjaGFibGUgc3lzdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBuZWFyYnkgc3lzdGVtcyByZWFjaGFibGUgYnkgYW4gZW50aXR5IGZyb20gaXRzIHByb2plY3RlZCBsb2NhdGlvbi4gUmV0dXJucyBjdXJyZW50IHN0YXRlICh3aXRoIGNvbXBsZXRlZCB0YXNrcyByZXNvbHZlZCksIHByb2plY3RlZCBzdGF0ZSAoYWZ0ZXIgYWxsIHNjaGVkdWxlZCB0YXNrcyksIGFuZCBhIGxpc3Qgb2YgcmVhY2hhYmxlIHN5c3RlbXMgd2l0aCBkaXN0YW5jZSwgZW5lcmd5IGNvc3QsIGZsaWdodCB0aW1lLCBhbmQgbWFya2V0IGluZm9ybWF0aW9uLgAAXdPlNbNiCmdldG5mdGluZm8AAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAFDVIXWzYglnZXRyZWNpcGUAAABW1SF1s2IKZ2V0cmVjaXBlcwCAFbqaYnWzYgxnZXRyZXNvdXJjZXMAAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaPgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLgAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAAAAKupEpbwIcm1tb2R1bGW8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW1vZHVsZQpzdW1tYXJ5OiAnUmVtb3ZlIGEgbW9kdWxlIGZyb20gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgYW4gaW5zdGFsbGVkIG1vZHVsZSBmcm9tIGEgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgaXMgcmV0dXJuZWQgdG8gY2FyZ28uIEZhaWxzIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FyZ28gY2FwYWNpdHkgdG8gaG9sZCB0aGUgcmV0dXJuZWQgbW9kdWxlLgAAAGyhvKa8CHJtbmZ0Y2ZnAAAAAAAAkKPBBHNhbHTYAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgAAYAvlNbPCCXNldG5mdGNmZwAAAGXXoMlNxQpzcGF3bmNhcmdvxQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25jYXJnbwpzdW1tYXJ5OiAnREVCVUc6IHNwYXduIGNhcmdvIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCSSkrhyU3FC3NwYXduc2VlZGVkzQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25zZWVkZWQKc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBzZWVkZWQgY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFDN5QR3cmFwAA0AAAAAAMquQQNpNjQAAAljYXJnb19yb3cAALhqOpMnRQNpNjQAAA1jb250YWluZXJfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AAAAk7psEI0DaTY0AAAMbG9jYXRpb25fcm93AAAAAACsu5oDaTY0AAAJbmV4dXNfcm93AABgbk2K8poDaTY0AAANbmZ0Y29uZmlnX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAdAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwBMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AAF3T5TWzYg5uZnRpbmZvX3Jlc3VsdAAAuMqbWLNiC3BsYXllcl9pbmZvAABQ1SF1s2IOcmVjaXBlc19yZXN1bHQAAFbVIXWzYg5yZWNpcGVzX3Jlc3VsdIAVuppidbNiEHJlc291cmNlc19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cwAAAAAAUM3lDHRhc2tfcmVzdWx0cw=='
28
33
  )
29
34
  export const abi = ABI.from(abiBlob)
30
35
  export namespace Types {
36
+ @Struct.type('addmodule')
37
+ export class addmodule extends Struct {
38
+ @Struct.field(Name)
39
+ declare entity_type: Name
40
+ @Struct.field(UInt64)
41
+ declare entity_id: UInt64
42
+ @Struct.field(UInt8)
43
+ declare module_index: UInt8
44
+ @Struct.field(UInt64)
45
+ declare module_cargo_id: UInt64
46
+ @Struct.field(UInt64)
47
+ declare target_cargo_id: UInt64
48
+ }
49
+ @Struct.type('addnexus')
50
+ export class addnexus extends Struct {
51
+ @Struct.field('string')
52
+ declare nexus_name: string
53
+ @Struct.field(Int64)
54
+ declare x: Int64
55
+ @Struct.field(Int64)
56
+ declare y: Int64
57
+ }
31
58
  @Struct.type('advance')
32
59
  export class advance extends Struct {
33
60
  @Struct.field('string')
@@ -35,41 +62,92 @@ export namespace Types {
35
62
  @Struct.field(Checksum256)
36
63
  declare commit: Checksum256
37
64
  }
38
- @Struct.type('arrive')
39
- export class arrive extends Struct {
65
+ @Struct.type('cargo_seed')
66
+ export class cargo_seed extends Struct {
67
+ @Struct.field(UInt16)
68
+ declare item_id: UInt16
69
+ @Struct.field(UInt64)
70
+ declare seed: UInt64
71
+ }
72
+ @Struct.type('module_entry')
73
+ export class module_entry extends Struct {
74
+ @Struct.field(UInt8)
75
+ declare type: UInt8
76
+ @Struct.field(cargo_seed, {optional: true})
77
+ declare installed?: cargo_seed
78
+ }
79
+ @Struct.type('cargo_item')
80
+ export class cargo_item extends Struct {
81
+ @Struct.field(UInt16)
82
+ declare item_id: UInt16
83
+ @Struct.field(UInt32)
84
+ declare quantity: UInt32
85
+ @Struct.field(UInt64, {optional: true})
86
+ declare seed?: UInt64
87
+ @Struct.field(module_entry, {array: true})
88
+ declare modules: module_entry[]
89
+ }
90
+ @Struct.type('blend')
91
+ export class blend extends Struct {
92
+ @Struct.field(Name)
93
+ declare entity_type: Name
40
94
  @Struct.field(UInt64)
41
95
  declare id: UInt64
96
+ @Struct.field(cargo_item, {array: true})
97
+ declare inputs: cargo_item[]
42
98
  }
43
- @Struct.type('buygoods')
44
- export class buygoods extends Struct {
99
+ @Struct.type('cancel')
100
+ export class cancel extends Struct {
101
+ @Struct.field(Name)
102
+ declare entity_type: Name
45
103
  @Struct.field(UInt64)
46
- declare ship_id: UInt64
104
+ declare id: UInt64
47
105
  @Struct.field(UInt64)
48
- declare good_id: UInt64
106
+ declare count: UInt64
107
+ }
108
+ @Struct.type('entity_ref')
109
+ export class entity_ref extends Struct {
110
+ @Struct.field(Name)
111
+ declare entity_type: Name
49
112
  @Struct.field(UInt64)
50
- declare quantity: UInt64
113
+ declare entity_id: UInt64
51
114
  }
52
- @Struct.type('buyship')
53
- export class buyship extends Struct {
115
+ @Struct.type('cancel_results')
116
+ export class cancel_results extends Struct {
117
+ @Struct.field(UInt64)
118
+ declare entity_id: UInt64
54
119
  @Struct.field(Name)
55
- declare account: Name
56
- @Struct.field('string')
57
- declare name: string
120
+ declare entity_type: Name
121
+ @Struct.field(UInt8)
122
+ declare cancelled_count: UInt8
123
+ @Struct.field(TimePoint, {optional: true})
124
+ declare schedule_started?: TimePoint
125
+ @Struct.field(UInt64, {optional: true})
126
+ declare entitygroup?: UInt64
127
+ @Struct.field(entity_ref, {array: true, optional: true})
128
+ declare group_members?: entity_ref[]
58
129
  }
59
130
  @Struct.type('cargo_row')
60
131
  export class cargo_row extends Struct {
61
132
  @Struct.field(UInt64)
62
133
  declare id: UInt64
63
134
  @Struct.field(UInt64)
64
- declare ship_id: UInt64
135
+ declare entity_id: UInt64
65
136
  @Struct.field(UInt64)
66
- declare good_id: UInt64
137
+ declare item_id: UInt64
67
138
  @Struct.field(UInt64)
68
- declare paid: UInt64
69
- @Struct.field(UInt32)
70
- declare owned: UInt32
71
- @Struct.field(UInt32)
72
- declare loaded: UInt32
139
+ declare quantity: UInt64
140
+ @Struct.field(UInt64)
141
+ declare seed: UInt64
142
+ @Struct.field(module_entry, {array: true})
143
+ declare modules: module_entry[]
144
+ }
145
+ @Struct.type('cleanrsvp')
146
+ export class cleanrsvp extends Struct {
147
+ @Struct.field(UInt64)
148
+ declare epoch: UInt64
149
+ @Struct.field(UInt64)
150
+ declare max_rows: UInt64
73
151
  }
74
152
  @Struct.type('cleartable')
75
153
  export class cleartable extends Struct {
@@ -85,26 +163,397 @@ export namespace Types {
85
163
  @Struct.field(Checksum256)
86
164
  declare commit: Checksum256
87
165
  }
166
+ @Struct.type('entity_defaults')
167
+ export class entity_defaults extends Struct {
168
+ @Struct.field(UInt32)
169
+ declare warehouse_capacity: UInt32
170
+ @Struct.field(UInt16)
171
+ declare warehouse_z: UInt16
172
+ @Struct.field(UInt32)
173
+ declare container_hullmass: UInt32
174
+ @Struct.field(UInt32)
175
+ declare container_capacity: UInt32
176
+ @Struct.field(UInt16)
177
+ declare container_z: UInt16
178
+ }
179
+ @Struct.type('item_def')
180
+ export class item_def extends Struct {
181
+ @Struct.field(UInt16)
182
+ declare id: UInt16
183
+ @Struct.field(UInt32)
184
+ declare mass: UInt32
185
+ @Struct.field(UInt8)
186
+ declare type: UInt8
187
+ @Struct.field(UInt8)
188
+ declare subtype: UInt8
189
+ @Struct.field(UInt8)
190
+ declare tier: UInt8
191
+ }
192
+ @Struct.type('game_config')
193
+ export class game_config extends Struct {
194
+ @Struct.field(UInt32)
195
+ declare version: UInt32
196
+ @Struct.field(entity_defaults)
197
+ declare defaults: entity_defaults
198
+ @Struct.field(item_def, {array: true})
199
+ declare items: item_def[]
200
+ }
201
+ @Struct.type('configlog')
202
+ export class configlog extends Struct {
203
+ @Struct.field(game_config)
204
+ declare config: game_config
205
+ }
88
206
  @Struct.type('coordinates')
89
207
  export class coordinates extends Struct {
90
208
  @Struct.field(Int64)
91
209
  declare x: Int64
92
210
  @Struct.field(Int64)
93
211
  declare y: Int64
212
+ @Struct.field(UInt16, {optional: true})
213
+ declare z?: UInt16
214
+ }
215
+ @Struct.type('task')
216
+ export class task extends Struct {
217
+ @Struct.field(UInt8)
218
+ declare type: UInt8
219
+ @Struct.field(UInt32)
220
+ declare duration: UInt32
221
+ @Struct.field(UInt8)
222
+ declare cancelable: UInt8
223
+ @Struct.field(coordinates, {optional: true})
224
+ declare coordinates?: coordinates
225
+ @Struct.field(cargo_item, {array: true})
226
+ declare cargo: cargo_item[]
227
+ @Struct.field(entity_ref, {optional: true})
228
+ declare entitytarget?: entity_ref
229
+ @Struct.field(UInt64, {optional: true})
230
+ declare entitygroup?: UInt64
231
+ @Struct.field(UInt16, {optional: true})
232
+ declare energy_cost?: UInt16
233
+ }
234
+ @Struct.type('schedule')
235
+ export class schedule extends Struct {
236
+ @Struct.field(TimePoint)
237
+ declare started: TimePoint
238
+ @Struct.field(task, {array: true})
239
+ declare tasks: task[]
240
+ }
241
+ @Struct.type('container_row')
242
+ export class container_row extends Struct {
243
+ @Struct.field(UInt64)
244
+ declare id: UInt64
245
+ @Struct.field(Name)
246
+ declare owner: Name
247
+ @Struct.field('string')
248
+ declare name: string
249
+ @Struct.field(coordinates)
250
+ declare coordinates: coordinates
251
+ @Struct.field(UInt32)
252
+ declare hullmass: UInt32
253
+ @Struct.field(UInt32)
254
+ declare capacity: UInt32
255
+ @Struct.field(UInt32)
256
+ declare cargomass: UInt32
257
+ @Struct.field(schedule, {optional: true})
258
+ declare schedule?: schedule
259
+ }
260
+ @Struct.type('craft')
261
+ export class craft extends Struct {
262
+ @Struct.field(Name)
263
+ declare entity_type: Name
264
+ @Struct.field(UInt64)
265
+ declare id: UInt64
266
+ @Struct.field(UInt16)
267
+ declare recipe_id: UInt16
268
+ @Struct.field(UInt32)
269
+ declare quantity: UInt32
270
+ @Struct.field(cargo_item, {array: true})
271
+ declare inputs: cargo_item[]
272
+ }
273
+ @Struct.type('crafter_stats')
274
+ export class crafter_stats extends Struct {
275
+ @Struct.field(UInt16)
276
+ declare speed: UInt16
277
+ @Struct.field(UInt16)
278
+ declare drain: UInt16
279
+ }
280
+ @Struct.type('createentity')
281
+ export class createentity extends Struct {
282
+ @Struct.field(Name)
283
+ declare owner: Name
284
+ @Struct.field(Name)
285
+ declare entity_type: Name
286
+ @Struct.field('string')
287
+ declare entity_name: string
288
+ @Struct.field(Int64)
289
+ declare x: Int64
290
+ @Struct.field(Int64)
291
+ declare y: Int64
292
+ }
293
+ @Struct.type('deploy')
294
+ export class deploy extends Struct {
295
+ @Struct.field(Name)
296
+ declare entity_type: Name
297
+ @Struct.field(UInt64)
298
+ declare id: UInt64
299
+ @Struct.field(UInt16)
300
+ declare packed_item_id: UInt16
301
+ @Struct.field(UInt64)
302
+ declare seed: UInt64
303
+ @Struct.field('string')
304
+ declare entity_name: string
94
305
  }
95
306
  @Struct.type('enable')
96
307
  export class enable extends Struct {
97
308
  @Struct.field('bool')
98
309
  declare enabled: boolean
99
310
  }
100
- @Struct.type('good_price')
101
- export class good_price extends Struct {
311
+ @Struct.type('energy_stats')
312
+ export class energy_stats extends Struct {
102
313
  @Struct.field(UInt16)
103
- declare id: UInt16
314
+ declare capacity: UInt16
315
+ @Struct.field(UInt16)
316
+ declare recharge: UInt16
317
+ }
318
+ @Struct.type('entity_current_state')
319
+ export class entity_current_state extends Struct {
320
+ @Struct.field(coordinates)
321
+ declare coordinates: coordinates
322
+ @Struct.field(UInt16)
323
+ declare energy: UInt16
324
+ }
325
+ @Struct.type('loader_stats')
326
+ export class loader_stats extends Struct {
327
+ @Struct.field(UInt32)
328
+ declare mass: UInt32
329
+ @Struct.field(UInt16)
330
+ declare thrust: UInt16
331
+ @Struct.field(UInt8)
332
+ declare quantity: UInt8
333
+ }
334
+ @Struct.type('movement_stats')
335
+ export class movement_stats extends Struct {
336
+ @Struct.field(UInt32)
337
+ declare thrust: UInt32
338
+ @Struct.field(UInt16)
339
+ declare drain: UInt16
340
+ }
341
+ @Struct.type('extractor_stats')
342
+ export class extractor_stats extends Struct {
343
+ @Struct.field(UInt16)
344
+ declare rate: UInt16
345
+ @Struct.field(UInt16)
346
+ declare drain: UInt16
347
+ @Struct.field(UInt16)
348
+ declare depth: UInt16
349
+ @Struct.field(UInt16)
350
+ declare drill: UInt16
351
+ }
352
+ @Struct.type('hauler_stats')
353
+ export class hauler_stats extends Struct {
354
+ @Struct.field(UInt8)
355
+ declare capacity: UInt8
356
+ @Struct.field(UInt16)
357
+ declare efficiency: UInt16
358
+ @Struct.field(UInt16)
359
+ declare drain: UInt16
360
+ }
361
+ @Struct.type('warp_stats')
362
+ export class warp_stats extends Struct {
363
+ @Struct.field(UInt32)
364
+ declare range: UInt32
365
+ }
366
+ @Struct.type('entity_info')
367
+ export class entity_info extends Struct {
368
+ @Struct.field(Name)
369
+ declare type: Name
370
+ @Struct.field(UInt64)
371
+ declare id: UInt64
372
+ @Struct.field(Name)
373
+ declare owner: Name
374
+ @Struct.field('string')
375
+ declare entity_name: string
376
+ @Struct.field(coordinates)
377
+ declare coordinates: coordinates
378
+ @Struct.field(UInt32)
379
+ declare cargomass: UInt32
380
+ @Struct.field(cargo_item, {array: true})
381
+ declare cargo: cargo_item[]
382
+ @Struct.field(loader_stats, {optional: true})
383
+ declare loaders?: loader_stats
384
+ @Struct.field(UInt16, {optional: true})
385
+ declare energy?: UInt16
386
+ @Struct.field(UInt32, {optional: true})
387
+ declare hullmass?: UInt32
388
+ @Struct.field(movement_stats, {optional: true})
389
+ declare engines?: movement_stats
390
+ @Struct.field(energy_stats, {optional: true})
391
+ declare generator?: energy_stats
392
+ @Struct.field(UInt32, {optional: true})
393
+ declare capacity?: UInt32
394
+ @Struct.field(extractor_stats, {optional: true})
395
+ declare extractor?: extractor_stats
396
+ @Struct.field(hauler_stats, {optional: true})
397
+ declare hauler?: hauler_stats
398
+ @Struct.field(warp_stats, {optional: true})
399
+ declare warp?: warp_stats
400
+ @Struct.field(crafter_stats, {optional: true})
401
+ declare crafter?: crafter_stats
402
+ @Struct.field('bool')
403
+ declare is_idle: boolean
404
+ @Struct.field(task, {optional: true})
405
+ declare current_task?: task
406
+ @Struct.field(UInt32)
407
+ declare current_task_elapsed: UInt32
408
+ @Struct.field(UInt32)
409
+ declare current_task_remaining: UInt32
410
+ @Struct.field(task, {array: true})
411
+ declare pending_tasks: task[]
412
+ @Struct.field(TimePoint, {optional: true})
413
+ declare idle_at?: TimePoint
414
+ @Struct.field(schedule, {optional: true})
415
+ declare schedule?: schedule
416
+ }
417
+ @Struct.type('entity_summary')
418
+ export class entity_summary extends Struct {
419
+ @Struct.field(Name)
420
+ declare type: Name
421
+ @Struct.field(UInt64)
422
+ declare id: UInt64
423
+ @Struct.field(Name)
424
+ declare owner: Name
425
+ @Struct.field('string')
426
+ declare entity_name: string
427
+ @Struct.field(coordinates)
428
+ declare coordinates: coordinates
429
+ @Struct.field('bool')
430
+ declare is_idle: boolean
431
+ @Struct.field(UInt32)
432
+ declare resolved_count: UInt32
433
+ @Struct.field(UInt32)
434
+ declare pending_count: UInt32
435
+ }
436
+ @Struct.type('entity_task_info')
437
+ export class entity_task_info extends Struct {
438
+ @Struct.field(UInt64)
439
+ declare entity_id: UInt64
440
+ @Struct.field(Name)
441
+ declare entity_type: Name
442
+ @Struct.field(UInt8)
443
+ declare task_count: UInt8
444
+ @Struct.field(TimePoint)
445
+ declare schedule_started: TimePoint
446
+ }
447
+ @Struct.type('entitygroup_row')
448
+ export class entitygroup_row extends Struct {
449
+ @Struct.field(UInt64)
450
+ declare id: UInt64
451
+ @Struct.field(entity_ref, {array: true})
452
+ declare participants: entity_ref[]
453
+ }
454
+ @Struct.type('extract')
455
+ export class extract extends Struct {
456
+ @Struct.field(Name)
457
+ declare entity_type: Name
104
458
  @Struct.field(UInt64)
105
- declare price: UInt64
459
+ declare id: UInt64
460
+ @Struct.field(UInt16)
461
+ declare stratum: UInt16
462
+ @Struct.field(UInt32)
463
+ declare quantity: UInt32
464
+ }
465
+ @Struct.type('getconfig')
466
+ export class getconfig extends Struct {}
467
+ @Struct.type('getentities')
468
+ export class getentities extends Struct {
469
+ @Struct.field(Name)
470
+ declare owner: Name
471
+ @Struct.field(Name, {optional: true})
472
+ declare entity_type?: Name
473
+ }
474
+ @Struct.type('getentity')
475
+ export class getentity extends Struct {
476
+ @Struct.field(Name)
477
+ declare entity_type: Name
478
+ @Struct.field(UInt64)
479
+ declare entity_id: UInt64
480
+ }
481
+ @Struct.type('getitemdata')
482
+ export class getitemdata extends Struct {}
483
+ @Struct.type('getitems')
484
+ export class getitems extends Struct {}
485
+ @Struct.type('getlocation')
486
+ export class getlocation extends Struct {
487
+ @Struct.field(Int64)
488
+ declare x: Int64
489
+ @Struct.field(Int64)
490
+ declare y: Int64
491
+ }
492
+ @Struct.type('getlocdata')
493
+ export class getlocdata extends Struct {
494
+ @Struct.field(Int64)
495
+ declare x: Int64
496
+ @Struct.field(Int64)
497
+ declare y: Int64
498
+ }
499
+ @Struct.type('getmodules')
500
+ export class getmodules extends Struct {}
501
+ @Struct.type('getnearby')
502
+ export class getnearby extends Struct {
503
+ @Struct.field(Name)
504
+ declare entity_type: Name
106
505
  @Struct.field(UInt64)
107
- declare supply: UInt64
506
+ declare entity_id: UInt64
507
+ @Struct.field('bool')
508
+ declare recharge: boolean
509
+ }
510
+ @Struct.type('getnftinfo')
511
+ export class getnftinfo extends Struct {}
512
+ @Struct.type('getplayer')
513
+ export class getplayer extends Struct {
514
+ @Struct.field(Name)
515
+ declare account: Name
516
+ }
517
+ @Struct.type('getrecipe')
518
+ export class getrecipe extends Struct {
519
+ @Struct.field(UInt16)
520
+ declare output_item_id: UInt16
521
+ }
522
+ @Struct.type('getrecipes')
523
+ export class getrecipes extends Struct {
524
+ @Struct.field(UInt16)
525
+ declare lower_bound: UInt16
526
+ @Struct.field(UInt8)
527
+ declare limit: UInt8
528
+ }
529
+ @Struct.type('getresources')
530
+ export class getresources extends Struct {}
531
+ @Struct.type('getstratum')
532
+ export class getstratum extends Struct {
533
+ @Struct.field(Int64)
534
+ declare x: Int64
535
+ @Struct.field(Int64)
536
+ declare y: Int64
537
+ @Struct.field(UInt16)
538
+ declare stratum: UInt16
539
+ }
540
+ @Struct.type('getsummaries')
541
+ export class getsummaries extends Struct {
542
+ @Struct.field(Name)
543
+ declare owner: Name
544
+ @Struct.field(Name, {optional: true})
545
+ declare entity_type?: Name
546
+ }
547
+ @Struct.type('grouptravel')
548
+ export class grouptravel extends Struct {
549
+ @Struct.field(entity_ref, {array: true})
550
+ declare entities: entity_ref[]
551
+ @Struct.field(Int64)
552
+ declare x: Int64
553
+ @Struct.field(Int64)
554
+ declare y: Int64
555
+ @Struct.field('bool')
556
+ declare recharge: boolean
108
557
  }
109
558
  @Struct.type('hash')
110
559
  export class hash extends Struct {
@@ -121,85 +570,343 @@ export namespace Types {
121
570
  @Struct.field(Checksum256)
122
571
  declare seed: Checksum256
123
572
  }
124
- @Struct.type('jettison')
125
- export class jettison extends Struct {
126
- @Struct.field(UInt64)
127
- declare ship_id: UInt64
573
+ @Struct.type('recipe_input')
574
+ export class recipe_input extends Struct {
128
575
  @Struct.field(UInt16)
129
- declare good_id: UInt16
130
- @Struct.field(UInt64)
131
- declare quantity: UInt64
576
+ declare item_id: UInt16
577
+ @Struct.field(UInt8)
578
+ declare category: UInt8
579
+ @Struct.field(UInt32)
580
+ declare quantity: UInt32
581
+ }
582
+ @Struct.type('stat_source')
583
+ export class stat_source extends Struct {
584
+ @Struct.field(UInt8)
585
+ declare input_index: UInt8
586
+ @Struct.field(UInt8)
587
+ declare input_stat_index: UInt8
588
+ }
589
+ @Struct.type('stat_slot_response')
590
+ export class stat_slot_response extends Struct {
591
+ @Struct.field(stat_source, {array: true})
592
+ declare sources: stat_source[]
593
+ }
594
+ @Struct.type('recipe_item_info')
595
+ export class recipe_item_info extends Struct {
596
+ @Struct.field(UInt16)
597
+ declare id: UInt16
598
+ @Struct.field(UInt32)
599
+ declare mass: UInt32
600
+ }
601
+ @Struct.type('recipe_response')
602
+ export class recipe_response extends Struct {
603
+ @Struct.field(UInt16)
604
+ declare output_item_id: UInt16
605
+ @Struct.field(UInt32)
606
+ declare output_mass: UInt32
607
+ @Struct.field(recipe_input, {array: true})
608
+ declare inputs: recipe_input[]
609
+ @Struct.field(stat_slot_response, {array: true})
610
+ declare stat_slots: stat_slot_response[]
611
+ @Struct.field(Bytes)
612
+ declare blend_weights: Bytes
613
+ @Struct.field(recipe_item_info)
614
+ declare output_item: recipe_item_info
615
+ @Struct.field(recipe_item_info, {array: true})
616
+ declare input_items: recipe_item_info[]
617
+ }
618
+ @Struct.type('recipes_result')
619
+ export class recipes_result extends Struct {
620
+ @Struct.field(recipe_response, {array: true})
621
+ declare recipes: recipe_response[]
622
+ }
623
+ @Struct.type('itemdata_result')
624
+ export class itemdata_result extends Struct {
625
+ @Struct.field(item_def, {array: true})
626
+ declare items: item_def[]
627
+ @Struct.field(recipes_result)
628
+ declare recipes: recipes_result
629
+ }
630
+ @Struct.type('items_info')
631
+ export class items_info extends Struct {
632
+ @Struct.field(item_def, {array: true})
633
+ declare items: item_def[]
132
634
  }
133
635
  @Struct.type('join')
134
636
  export class join extends Struct {
135
637
  @Struct.field(Name)
136
638
  declare account: Name
137
639
  }
138
- @Struct.type('loader_stats')
139
- export class loader_stats extends Struct {
140
- @Struct.field(UInt32)
141
- declare mass: UInt32
640
+ @Struct.type('location_static')
641
+ export class location_static extends Struct {
642
+ @Struct.field(coordinates)
643
+ declare coords: coordinates
644
+ @Struct.field(UInt8)
645
+ declare type: UInt8
646
+ @Struct.field(UInt8)
647
+ declare subtype: UInt8
648
+ @Struct.field(UInt8)
649
+ declare seed0: UInt8
650
+ @Struct.field(UInt8)
651
+ declare seed1: UInt8
652
+ }
653
+ @Struct.type('location_epoch')
654
+ export class location_epoch extends Struct {
655
+ @Struct.field('bool')
656
+ declare active: boolean
657
+ @Struct.field(UInt8)
658
+ declare seed0: UInt8
659
+ @Struct.field(UInt8)
660
+ declare seed1: UInt8
661
+ }
662
+ @Struct.type('location_derived')
663
+ export class location_derived extends Struct {
664
+ @Struct.field(location_static)
665
+ declare static_props: location_static
666
+ @Struct.field(location_epoch)
667
+ declare epoch_props: location_epoch
142
668
  @Struct.field(UInt16)
143
- declare quantity: UInt16
144
- @Struct.field(UInt32)
145
- declare thrust: UInt32
669
+ declare size: UInt16
670
+ }
671
+ @Struct.type('location_info')
672
+ export class location_info extends Struct {
673
+ @Struct.field(coordinates)
674
+ declare coords: coordinates
675
+ @Struct.field('bool')
676
+ declare is_system: boolean
146
677
  }
147
678
  @Struct.type('location_row')
148
679
  export class location_row extends Struct {
149
680
  @Struct.field(UInt64)
150
681
  declare id: UInt64
682
+ @Struct.field(Name)
683
+ declare owner: Name
151
684
  @Struct.field(coordinates)
152
685
  declare coordinates: coordinates
153
- @Struct.field(UInt64)
154
- declare epoch: UInt64
686
+ @Struct.field(UInt32)
687
+ declare cargomass: UInt32
688
+ @Struct.field(cargo_item, {array: true})
689
+ declare cargo: cargo_item[]
690
+ @Struct.field(schedule, {optional: true})
691
+ declare schedule?: schedule
692
+ }
693
+ @Struct.type('module_info')
694
+ export class module_info extends Struct {
155
695
  @Struct.field(UInt16)
156
- declare good_id: UInt16
696
+ declare id: UInt16
697
+ @Struct.field(UInt32)
698
+ declare mass: UInt32
699
+ @Struct.field(UInt8)
700
+ declare module_type: UInt8
701
+ @Struct.field(UInt8)
702
+ declare tier: UInt8
703
+ }
704
+ @Struct.type('modules_result')
705
+ export class modules_result extends Struct {
706
+ @Struct.field(module_info, {array: true})
707
+ declare modules: module_info[]
708
+ }
709
+ @Struct.type('nearby_system')
710
+ export class nearby_system extends Struct {
711
+ @Struct.field(UInt64)
712
+ declare distance: UInt64
713
+ @Struct.field(UInt64)
714
+ declare energy_cost: UInt64
715
+ @Struct.field(UInt32)
716
+ declare flight_time: UInt32
717
+ @Struct.field(location_info)
718
+ declare location: location_info
719
+ }
720
+ @Struct.type('nearby_info')
721
+ export class nearby_info extends Struct {
722
+ @Struct.field('bool')
723
+ declare can_travel: boolean
724
+ @Struct.field(entity_current_state)
725
+ declare current: entity_current_state
726
+ @Struct.field(entity_current_state)
727
+ declare projected: entity_current_state
157
728
  @Struct.field(UInt16)
158
- declare supply: UInt16
729
+ declare max_energy: UInt16
730
+ @Struct.field(nearby_system, {array: true})
731
+ declare systems: nearby_system[]
159
732
  }
160
- @Struct.type('marketprice')
161
- export class marketprice extends Struct {
733
+ @Struct.type('nexus_row')
734
+ export class nexus_row extends Struct {
735
+ @Struct.field(UInt64)
736
+ declare id: UInt64
737
+ @Struct.field(Name)
738
+ declare owner: Name
739
+ @Struct.field('string')
740
+ declare name: string
162
741
  @Struct.field(coordinates)
163
- declare location: coordinates
742
+ declare coordinates: coordinates
743
+ }
744
+ @Struct.type('schema_field')
745
+ export class schema_field extends Struct {
746
+ @Struct.field('string')
747
+ declare name: string
748
+ @Struct.field('string')
749
+ declare field_type: string
750
+ }
751
+ @Struct.type('nft_schema_def')
752
+ export class nft_schema_def extends Struct {
753
+ @Struct.field(Name)
754
+ declare schema_name: Name
755
+ @Struct.field(schema_field, {array: true})
756
+ declare fields: schema_field[]
757
+ }
758
+ @Struct.type('nft_template_def')
759
+ export class nft_template_def extends Struct {
760
+ @Struct.field(UInt16)
761
+ declare item_id: UInt16
762
+ @Struct.field(Name)
763
+ declare schema_name: Name
764
+ }
765
+ @Struct.type('nftconfig_row')
766
+ export class nftconfig_row extends Struct {
164
767
  @Struct.field(UInt16)
165
- declare good_id: UInt16
768
+ declare item_id: UInt16
769
+ @Struct.field(Int32)
770
+ declare template_id: Int32
771
+ @Struct.field(Name)
772
+ declare schema_name: Name
166
773
  }
167
- @Struct.type('marketprices')
168
- export class marketprices extends Struct {
169
- @Struct.field(coordinates)
170
- declare location: coordinates
774
+ @Struct.type('nftinfo_result')
775
+ export class nftinfo_result extends Struct {
776
+ @Struct.field(nft_schema_def, {array: true})
777
+ declare schemas: nft_schema_def[]
778
+ @Struct.field(nft_template_def, {array: true})
779
+ declare templates: nft_template_def[]
171
780
  }
172
- @Struct.type('payloan')
173
- export class payloan extends Struct {
781
+ @Struct.type('task_event')
782
+ export class task_event extends Struct {
783
+ @Struct.field(UInt8)
784
+ declare event_type: UInt8
174
785
  @Struct.field(Name)
175
- declare account: Name
786
+ declare owner: Name
787
+ @Struct.field(Name)
788
+ declare entity_type: Name
176
789
  @Struct.field(UInt64)
177
- declare amount: UInt64
790
+ declare entity_id: UInt64
791
+ @Struct.field(UInt8)
792
+ declare task_index: UInt8
793
+ @Struct.field(task)
794
+ declare task: task
795
+ @Struct.field(TimePoint)
796
+ declare starts_at: TimePoint
797
+ @Struct.field(TimePoint)
798
+ declare completes_at: TimePoint
799
+ @Struct.field(UInt16, {optional: true})
800
+ declare new_energy?: UInt16
801
+ }
802
+ @Struct.type('notify')
803
+ export class notify extends Struct {
804
+ @Struct.field(task_event)
805
+ declare event: task_event
806
+ }
807
+ @Struct.type('player_info')
808
+ export class player_info extends Struct {
809
+ @Struct.field(Name)
810
+ declare owner: Name
811
+ @Struct.field('bool')
812
+ declare is_player: boolean
813
+ @Struct.field('string')
814
+ declare company_name: string
815
+ @Struct.field(UInt64)
816
+ declare ship_count: UInt64
817
+ @Struct.field(UInt64)
818
+ declare warehouse_count: UInt64
819
+ @Struct.field(UInt64)
820
+ declare container_count: UInt64
178
821
  }
179
822
  @Struct.type('player_row')
180
823
  export class player_row extends Struct {
181
824
  @Struct.field(Name)
182
825
  declare owner: Name
826
+ }
827
+ @Struct.type('recharge')
828
+ export class recharge extends Struct {
829
+ @Struct.field(Name)
830
+ declare entity_type: Name
183
831
  @Struct.field(UInt64)
184
- declare balance: UInt64
832
+ declare id: UInt64
833
+ }
834
+ @Struct.type('reserve_row')
835
+ export class reserve_row extends Struct {
185
836
  @Struct.field(UInt64)
186
- declare debt: UInt64
187
- @Struct.field(Int64)
188
- declare networth: Int64
837
+ declare id: UInt64
838
+ @Struct.field(UInt32)
839
+ declare remaining: UInt32
189
840
  }
190
- @Struct.type('salt')
191
- export class salt extends Struct {
841
+ @Struct.type('resolve')
842
+ export class resolve extends Struct {
843
+ @Struct.field(Name)
844
+ declare entity_type: Name
192
845
  @Struct.field(UInt64)
193
- declare salt: UInt64
846
+ declare id: UInt64
847
+ @Struct.field(UInt64, {optional: true})
848
+ declare count?: UInt64
194
849
  }
195
- @Struct.type('sellgoods')
196
- export class sellgoods extends Struct {
850
+ @Struct.type('resolve_results')
851
+ export class resolve_results extends Struct {
197
852
  @Struct.field(UInt64)
198
- declare ship_id: UInt64
853
+ declare entity_id: UInt64
854
+ @Struct.field(Name)
855
+ declare entity_type: Name
856
+ @Struct.field(UInt8)
857
+ declare resolved_count: UInt8
858
+ @Struct.field(TimePoint, {optional: true})
859
+ declare new_schedule_started?: TimePoint
860
+ @Struct.field(UInt64, {optional: true})
861
+ declare entitygroup?: UInt64
862
+ @Struct.field(entity_ref, {array: true, optional: true})
863
+ declare group_members?: entity_ref[]
864
+ }
865
+ @Struct.type('resource_info')
866
+ export class resource_info extends Struct {
867
+ @Struct.field(UInt16)
868
+ declare id: UInt16
869
+ @Struct.field(UInt32)
870
+ declare mass: UInt32
871
+ @Struct.field(UInt8)
872
+ declare category: UInt8
873
+ @Struct.field(UInt8)
874
+ declare tier: UInt8
875
+ }
876
+ @Struct.type('resource_stats')
877
+ export class resource_stats extends Struct {
878
+ @Struct.field(UInt16)
879
+ declare stat1: UInt16
880
+ @Struct.field(UInt16)
881
+ declare stat2: UInt16
882
+ @Struct.field(UInt16)
883
+ declare stat3: UInt16
884
+ }
885
+ @Struct.type('resources_result')
886
+ export class resources_result extends Struct {
887
+ @Struct.field(resource_info, {array: true})
888
+ declare resources: resource_info[]
889
+ }
890
+ @Struct.type('rmmodule')
891
+ export class rmmodule extends Struct {
892
+ @Struct.field(Name)
893
+ declare entity_type: Name
199
894
  @Struct.field(UInt64)
200
- declare good_id: UInt64
895
+ declare entity_id: UInt64
896
+ @Struct.field(UInt8)
897
+ declare module_index: UInt8
201
898
  @Struct.field(UInt64)
202
- declare quantity: UInt64
899
+ declare target_cargo_id: UInt64
900
+ }
901
+ @Struct.type('rmnftcfg')
902
+ export class rmnftcfg extends Struct {
903
+ @Struct.field(UInt16)
904
+ declare item_id: UInt16
905
+ }
906
+ @Struct.type('salt')
907
+ export class salt extends Struct {
908
+ @Struct.field(UInt64)
909
+ declare salt: UInt64
203
910
  }
204
911
  @Struct.type('sequence_row')
205
912
  export class sequence_row extends Struct {
@@ -208,48 +915,14 @@ export namespace Types {
208
915
  @Struct.field(UInt64)
209
916
  declare value: UInt64
210
917
  }
211
- @Struct.type('ship_state')
212
- export class ship_state extends Struct {
213
- @Struct.field(UInt32)
214
- declare energy: UInt32
215
- }
216
- @Struct.type('ship_stats')
217
- export class ship_stats extends Struct {
218
- @Struct.field(UInt32)
219
- declare capacity: UInt32
220
- @Struct.field(UInt32)
221
- declare drain: UInt32
222
- @Struct.field(UInt64)
223
- declare mass: UInt64
224
- @Struct.field(UInt64)
225
- declare maxmass: UInt64
918
+ @Struct.type('setnftcfg')
919
+ export class setnftcfg extends Struct {
226
920
  @Struct.field(UInt16)
227
- declare orbit: UInt16
228
- @Struct.field(UInt32)
229
- declare recharge: UInt32
230
- @Struct.field(UInt64)
231
- declare thrust: UInt64
232
- }
233
- @Struct.type('travel_plan')
234
- export class travel_plan extends Struct {
235
- @Struct.field(TimePoint)
236
- declare departure: TimePoint
237
- @Struct.field(coordinates)
238
- declare destination: coordinates
239
- @Struct.field(UInt64)
240
- declare distance: UInt64
241
- @Struct.field(UInt32)
242
- declare flighttime: UInt32
243
- @Struct.field(UInt32)
244
- declare loadtime: UInt32
245
- @Struct.field(UInt32)
246
- declare rechargetime: UInt32
247
- @Struct.field(UInt32)
248
- declare masspenalty: UInt32
249
- @Struct.field(UInt64)
250
- declare mass: UInt64
251
- @Struct.field(UInt32)
252
- declare energyusage: UInt32
921
+ declare item_id: UInt16
922
+ @Struct.field(Int32)
923
+ declare template_id: Int32
924
+ @Struct.field(Name)
925
+ declare schema_name: Name
253
926
  }
254
927
  @Struct.type('ship_row')
255
928
  export class ship_row extends Struct {
@@ -259,27 +932,63 @@ export namespace Types {
259
932
  declare owner: Name
260
933
  @Struct.field('string')
261
934
  declare name: string
935
+ @Struct.field(UInt64)
936
+ declare seed: UInt64
262
937
  @Struct.field(coordinates)
263
- declare location: coordinates
264
- @Struct.field(UInt8)
265
- declare skin: UInt8
266
- @Struct.field(UInt8)
267
- declare tier: UInt8
268
- @Struct.field(ship_state)
269
- declare state: ship_state
270
- @Struct.field(ship_stats)
271
- declare stats: ship_stats
272
- @Struct.field(loader_stats)
273
- declare loaders: loader_stats
274
- @Struct.field(travel_plan, {optional: true})
275
- declare travelplan?: travel_plan
938
+ declare coordinates: coordinates
939
+ @Struct.field(UInt32, {optional: true})
940
+ declare hullmass?: UInt32
941
+ @Struct.field(UInt32, {optional: true})
942
+ declare capacity?: UInt32
943
+ @Struct.field(UInt16, {optional: true})
944
+ declare energy?: UInt16
945
+ @Struct.field(UInt32)
946
+ declare cargomass: UInt32
947
+ @Struct.field(movement_stats, {optional: true})
948
+ declare engines?: movement_stats
949
+ @Struct.field(energy_stats, {optional: true})
950
+ declare generator?: energy_stats
951
+ @Struct.field(loader_stats, {optional: true})
952
+ declare loaders?: loader_stats
953
+ @Struct.field(extractor_stats, {optional: true})
954
+ declare extractor?: extractor_stats
955
+ @Struct.field(hauler_stats, {optional: true})
956
+ declare hauler?: hauler_stats
957
+ @Struct.field(warp_stats, {optional: true})
958
+ declare warp?: warp_stats
959
+ @Struct.field(crafter_stats, {optional: true})
960
+ declare crafter?: crafter_stats
961
+ @Struct.field(module_entry, {array: true})
962
+ declare modules: module_entry[]
963
+ @Struct.field(schedule, {optional: true})
964
+ declare schedule?: schedule
965
+ }
966
+ @Struct.type('spawncargo')
967
+ export class spawncargo extends Struct {
968
+ @Struct.field(UInt64)
969
+ declare entity_id: UInt64
970
+ @Struct.field(UInt64)
971
+ declare item_id: UInt64
972
+ @Struct.field(UInt64)
973
+ declare quantity: UInt64
974
+ }
975
+ @Struct.type('spawnseeded')
976
+ export class spawnseeded extends Struct {
977
+ @Struct.field(UInt64)
978
+ declare entity_id: UInt64
979
+ @Struct.field(UInt64)
980
+ declare item_id: UInt64
981
+ @Struct.field(UInt64)
982
+ declare quantity: UInt64
983
+ @Struct.field(UInt64)
984
+ declare seed: UInt64
276
985
  }
277
986
  @Struct.type('state_row')
278
987
  export class state_row extends Struct {
279
988
  @Struct.field('bool')
280
989
  declare enabled: boolean
281
- @Struct.field(UInt64)
282
- declare epoch: UInt64
990
+ @Struct.field(UInt32)
991
+ declare epoch: UInt32
283
992
  @Struct.field(UInt64)
284
993
  declare salt: UInt64
285
994
  @Struct.field(UInt32)
@@ -289,135 +998,247 @@ export namespace Types {
289
998
  @Struct.field(Checksum256)
290
999
  declare commit: Checksum256
291
1000
  }
292
- @Struct.type('takeloan')
293
- export class takeloan extends Struct {
1001
+ @Struct.type('stratum_info')
1002
+ export class stratum_info extends Struct {
1003
+ @Struct.field(UInt16)
1004
+ declare item_id: UInt16
1005
+ @Struct.field(UInt64)
1006
+ declare seed: UInt64
1007
+ @Struct.field(UInt16)
1008
+ declare richness: UInt16
1009
+ @Struct.field(UInt32)
1010
+ declare reserve: UInt32
1011
+ }
1012
+ @Struct.type('stratum_data')
1013
+ export class stratum_data extends Struct {
1014
+ @Struct.field(stratum_info)
1015
+ declare stratum: stratum_info
1016
+ @Struct.field(resource_stats)
1017
+ declare stats: resource_stats
1018
+ }
1019
+ @Struct.type('task_results')
1020
+ export class task_results extends Struct {
1021
+ @Struct.field(entity_task_info, {array: true})
1022
+ declare entities: entity_task_info[]
1023
+ }
1024
+ @Struct.type('transfer')
1025
+ export class transfer extends Struct {
294
1026
  @Struct.field(Name)
295
- declare account: Name
1027
+ declare source_type: Name
296
1028
  @Struct.field(UInt64)
297
- declare amount: UInt64
1029
+ declare source_id: UInt64
1030
+ @Struct.field(Name)
1031
+ declare dest_type: Name
1032
+ @Struct.field(UInt64)
1033
+ declare dest_id: UInt64
1034
+ @Struct.field(UInt16)
1035
+ declare item_id: UInt16
1036
+ @Struct.field(UInt32)
1037
+ declare quantity: UInt32
298
1038
  }
299
1039
  @Struct.type('travel')
300
1040
  export class travel extends Struct {
1041
+ @Struct.field(Name)
1042
+ declare entity_type: Name
301
1043
  @Struct.field(UInt64)
302
1044
  declare id: UInt64
303
- @Struct.field(coordinates)
304
- declare destination: coordinates
1045
+ @Struct.field(Int64)
1046
+ declare x: Int64
1047
+ @Struct.field(Int64)
1048
+ declare y: Int64
305
1049
  @Struct.field('bool')
306
1050
  declare recharge: boolean
307
1051
  }
308
- @Struct.type('travel_summary')
309
- export class travel_summary extends Struct {
310
- @Struct.field(ship_stats)
311
- declare stats: ship_stats
312
- @Struct.field(loader_stats)
313
- declare loaders: loader_stats
314
- @Struct.field(coordinates)
315
- declare origin: coordinates
316
- @Struct.field(coordinates)
317
- declare destination: coordinates
318
- @Struct.field(UInt64)
319
- declare distance: UInt64
320
- @Struct.field(UInt64)
321
- declare totalmass: UInt64
322
- @Struct.field(Float64)
323
- declare acceleration: Float64
324
- @Struct.field(UInt32)
325
- declare flighttime: UInt32
326
- @Struct.field(UInt32)
327
- declare energyusage: UInt32
328
- @Struct.field(UInt32)
329
- declare rechargetime: UInt32
330
- @Struct.field(UInt32)
331
- declare masspenalty: UInt32
332
- @Struct.field(UInt64)
333
- declare loadtime: UInt64
334
- @Struct.field(UInt64)
335
- declare time: UInt64
336
- }
337
- @Struct.type('travelplan')
338
- export class travelplan extends Struct {
1052
+ @Struct.type('types_row')
1053
+ export class types_row extends Struct {
339
1054
  @Struct.field(UInt64)
340
1055
  declare id: UInt64
341
- @Struct.field(coordinates)
342
- declare origin: coordinates
343
- @Struct.field(coordinates)
344
- declare destination: coordinates
345
- @Struct.field('bool')
346
- declare recharge: boolean
1056
+ @Struct.field(entity_summary)
1057
+ declare entity_summary_type: entity_summary
1058
+ @Struct.field(game_config)
1059
+ declare game_config_type: game_config
347
1060
  }
348
- @Struct.type('traveltime')
349
- export class traveltime extends Struct {
1061
+ @Struct.type('warehouse_row')
1062
+ export class warehouse_row extends Struct {
350
1063
  @Struct.field(UInt64)
351
1064
  declare id: UInt64
352
- @Struct.field(coordinates)
353
- declare destination: coordinates
354
- }
355
- @Struct.type('updatecredit')
356
- export class updatecredit extends Struct {
357
1065
  @Struct.field(Name)
358
- declare account: Name
359
- @Struct.field(Int64)
360
- declare amount: Int64
361
- }
362
- @Struct.type('updatedebt')
363
- export class updatedebt extends Struct {
364
- @Struct.field(Name)
365
- declare account: Name
366
- @Struct.field(Int64)
367
- declare amount: Int64
368
- }
369
- @Struct.type('upgradeship')
370
- export class upgradeship extends Struct {
1066
+ declare owner: Name
1067
+ @Struct.field('string')
1068
+ declare name: string
1069
+ @Struct.field(UInt64)
1070
+ declare seed: UInt64
1071
+ @Struct.field(coordinates)
1072
+ declare coordinates: coordinates
1073
+ @Struct.field(UInt32, {optional: true})
1074
+ declare hullmass?: UInt32
1075
+ @Struct.field(UInt32, {optional: true})
1076
+ declare capacity?: UInt32
1077
+ @Struct.field(UInt32)
1078
+ declare cargomass: UInt32
1079
+ @Struct.field(loader_stats, {optional: true})
1080
+ declare loaders?: loader_stats
1081
+ @Struct.field(module_entry, {array: true})
1082
+ declare modules: module_entry[]
1083
+ @Struct.field(schedule, {optional: true})
1084
+ declare schedule?: schedule
1085
+ }
1086
+ @Struct.type('warp')
1087
+ export class warp extends Struct {
371
1088
  @Struct.field(Name)
372
- declare account: Name
1089
+ declare entity_type: Name
373
1090
  @Struct.field(UInt64)
374
1091
  declare id: UInt64
1092
+ @Struct.field(Int64)
1093
+ declare x: Int64
1094
+ @Struct.field(Int64)
1095
+ declare y: Int64
375
1096
  }
376
1097
  @Struct.type('wipe')
377
1098
  export class wipe extends Struct {}
378
1099
  @Struct.type('wipesequence')
379
1100
  export class wipesequence extends Struct {}
1101
+ @Struct.type('wrap')
1102
+ export class wrap extends Struct {
1103
+ @Struct.field(Name)
1104
+ declare owner: Name
1105
+ @Struct.field(Name)
1106
+ declare entity_type: Name
1107
+ @Struct.field(UInt64)
1108
+ declare entity_id: UInt64
1109
+ @Struct.field(UInt64)
1110
+ declare cargo_id: UInt64
1111
+ @Struct.field(UInt64)
1112
+ declare quantity: UInt64
1113
+ }
380
1114
  }
381
1115
  export const TableMap = {
382
1116
  cargo: Types.cargo_row,
1117
+ container: Types.container_row,
1118
+ entitygroup: Types.entitygroup_row,
383
1119
  location: Types.location_row,
1120
+ nexus: Types.nexus_row,
1121
+ nftconfig: Types.nftconfig_row,
384
1122
  player: Types.player_row,
1123
+ reserve: Types.reserve_row,
385
1124
  sequence: Types.sequence_row,
386
1125
  ship: Types.ship_row,
387
1126
  state: Types.state_row,
1127
+ types: Types.types_row,
1128
+ warehouse: Types.warehouse_row,
388
1129
  }
389
1130
  export interface TableTypes {
390
1131
  cargo: Types.cargo_row
1132
+ container: Types.container_row
1133
+ entitygroup: Types.entitygroup_row
391
1134
  location: Types.location_row
1135
+ nexus: Types.nexus_row
1136
+ nftconfig: Types.nftconfig_row
392
1137
  player: Types.player_row
1138
+ reserve: Types.reserve_row
393
1139
  sequence: Types.sequence_row
394
1140
  ship: Types.ship_row
395
1141
  state: Types.state_row
1142
+ types: Types.types_row
1143
+ warehouse: Types.warehouse_row
396
1144
  }
397
1145
  export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
398
1146
  export type TableNames = keyof TableTypes
399
1147
  export namespace ActionParams {
400
1148
  export namespace Type {
1149
+ export interface cargo_item {
1150
+ item_id: UInt16Type
1151
+ quantity: UInt32Type
1152
+ seed?: UInt64Type
1153
+ modules: Type.module_entry[]
1154
+ }
1155
+ export interface module_entry {
1156
+ type: UInt8Type
1157
+ installed?: Type.cargo_seed
1158
+ }
1159
+ export interface cargo_seed {
1160
+ item_id: UInt16Type
1161
+ seed: UInt64Type
1162
+ }
1163
+ export interface game_config {
1164
+ version: UInt32Type
1165
+ defaults: Type.entity_defaults
1166
+ items: Type.item_def[]
1167
+ }
1168
+ export interface entity_defaults {
1169
+ warehouse_capacity: UInt32Type
1170
+ warehouse_z: UInt16Type
1171
+ container_hullmass: UInt32Type
1172
+ container_capacity: UInt32Type
1173
+ container_z: UInt16Type
1174
+ }
1175
+ export interface item_def {
1176
+ id: UInt16Type
1177
+ mass: UInt32Type
1178
+ type: UInt8Type
1179
+ subtype: UInt8Type
1180
+ tier: UInt8Type
1181
+ }
1182
+ export interface entity_ref {
1183
+ entity_type: NameType
1184
+ entity_id: UInt64Type
1185
+ }
1186
+ export interface task_event {
1187
+ event_type: UInt8Type
1188
+ owner: NameType
1189
+ entity_type: NameType
1190
+ entity_id: UInt64Type
1191
+ task_index: UInt8Type
1192
+ task: Type.task
1193
+ starts_at: TimePointType
1194
+ completes_at: TimePointType
1195
+ new_energy?: UInt16Type
1196
+ }
1197
+ export interface task {
1198
+ type: UInt8Type
1199
+ duration: UInt32Type
1200
+ cancelable: UInt8Type
1201
+ coordinates?: Type.coordinates
1202
+ cargo: Type.cargo_item[]
1203
+ entitytarget?: Type.entity_ref
1204
+ entitygroup?: UInt64Type
1205
+ energy_cost?: UInt16Type
1206
+ }
401
1207
  export interface coordinates {
402
1208
  x: Int64Type
403
1209
  y: Int64Type
1210
+ z?: UInt16Type
404
1211
  }
405
1212
  }
1213
+ export interface addmodule {
1214
+ entity_type: NameType
1215
+ entity_id: UInt64Type
1216
+ module_index: UInt8Type
1217
+ module_cargo_id: UInt64Type
1218
+ target_cargo_id: UInt64Type
1219
+ }
1220
+ export interface addnexus {
1221
+ nexus_name: string
1222
+ x: Int64Type
1223
+ y: Int64Type
1224
+ }
406
1225
  export interface advance {
407
1226
  reveal: string
408
1227
  commit: Checksum256Type
409
1228
  }
410
- export interface arrive {
1229
+ export interface blend {
1230
+ entity_type: NameType
411
1231
  id: UInt64Type
1232
+ inputs: Type.cargo_item[]
412
1233
  }
413
- export interface buygoods {
414
- ship_id: UInt64Type
415
- good_id: UInt64Type
416
- quantity: UInt64Type
1234
+ export interface cancel {
1235
+ entity_type: NameType
1236
+ id: UInt64Type
1237
+ count: UInt64Type
417
1238
  }
418
- export interface buyship {
419
- account: NameType
420
- name: string
1239
+ export interface cleanrsvp {
1240
+ epoch: UInt64Type
1241
+ max_rows: UInt64Type
421
1242
  }
422
1243
  export interface cleartable {
423
1244
  table_name: NameType
@@ -427,9 +1248,91 @@ export namespace ActionParams {
427
1248
  export interface commit {
428
1249
  commit: Checksum256Type
429
1250
  }
1251
+ export interface configlog {
1252
+ config: Type.game_config
1253
+ }
1254
+ export interface craft {
1255
+ entity_type: NameType
1256
+ id: UInt64Type
1257
+ recipe_id: UInt16Type
1258
+ quantity: UInt32Type
1259
+ inputs: Type.cargo_item[]
1260
+ }
1261
+ export interface createentity {
1262
+ owner: NameType
1263
+ entity_type: NameType
1264
+ entity_name: string
1265
+ x: Int64Type
1266
+ y: Int64Type
1267
+ }
1268
+ export interface deploy {
1269
+ entity_type: NameType
1270
+ id: UInt64Type
1271
+ packed_item_id: UInt16Type
1272
+ seed: UInt64Type
1273
+ entity_name: string
1274
+ }
430
1275
  export interface enable {
431
1276
  enabled: boolean
432
1277
  }
1278
+ export interface extract {
1279
+ entity_type: NameType
1280
+ id: UInt64Type
1281
+ stratum: UInt16Type
1282
+ quantity: UInt32Type
1283
+ }
1284
+ export interface getconfig {}
1285
+ export interface getentities {
1286
+ owner: NameType
1287
+ entity_type?: NameType
1288
+ }
1289
+ export interface getentity {
1290
+ entity_type: NameType
1291
+ entity_id: UInt64Type
1292
+ }
1293
+ export interface getitemdata {}
1294
+ export interface getitems {}
1295
+ export interface getlocation {
1296
+ x: Int64Type
1297
+ y: Int64Type
1298
+ }
1299
+ export interface getlocdata {
1300
+ x: Int64Type
1301
+ y: Int64Type
1302
+ }
1303
+ export interface getmodules {}
1304
+ export interface getnearby {
1305
+ entity_type: NameType
1306
+ entity_id: UInt64Type
1307
+ recharge: boolean
1308
+ }
1309
+ export interface getnftinfo {}
1310
+ export interface getplayer {
1311
+ account: NameType
1312
+ }
1313
+ export interface getrecipe {
1314
+ output_item_id: UInt16Type
1315
+ }
1316
+ export interface getrecipes {
1317
+ lower_bound: UInt16Type
1318
+ limit: UInt8Type
1319
+ }
1320
+ export interface getresources {}
1321
+ export interface getstratum {
1322
+ x: Int64Type
1323
+ y: Int64Type
1324
+ stratum: UInt16Type
1325
+ }
1326
+ export interface getsummaries {
1327
+ owner: NameType
1328
+ entity_type?: NameType
1329
+ }
1330
+ export interface grouptravel {
1331
+ entities: Type.entity_ref[]
1332
+ x: Int64Type
1333
+ y: Int64Type
1334
+ recharge: boolean
1335
+ }
433
1336
  export interface hash {
434
1337
  value: string
435
1338
  }
@@ -439,103 +1342,163 @@ export namespace ActionParams {
439
1342
  export interface init {
440
1343
  seed: Checksum256Type
441
1344
  }
442
- export interface jettison {
443
- ship_id: UInt64Type
444
- good_id: UInt16Type
445
- quantity: UInt64Type
446
- }
447
1345
  export interface join {
448
1346
  account: NameType
449
1347
  }
450
- export interface marketprice {
451
- location: Type.coordinates
452
- good_id: UInt16Type
1348
+ export interface notify {
1349
+ event: Type.task_event
453
1350
  }
454
- export interface marketprices {
455
- location: Type.coordinates
1351
+ export interface recharge {
1352
+ entity_type: NameType
1353
+ id: UInt64Type
456
1354
  }
457
- export interface payloan {
458
- account: NameType
459
- amount: UInt64Type
1355
+ export interface resolve {
1356
+ entity_type: NameType
1357
+ id: UInt64Type
1358
+ count?: UInt64Type
1359
+ }
1360
+ export interface rmmodule {
1361
+ entity_type: NameType
1362
+ entity_id: UInt64Type
1363
+ module_index: UInt8Type
1364
+ target_cargo_id: UInt64Type
1365
+ }
1366
+ export interface rmnftcfg {
1367
+ item_id: UInt16Type
460
1368
  }
461
1369
  export interface salt {
462
1370
  salt: UInt64Type
463
1371
  }
464
- export interface sellgoods {
465
- ship_id: UInt64Type
466
- good_id: UInt64Type
1372
+ export interface setnftcfg {
1373
+ item_id: UInt16Type
1374
+ template_id: Int32Type
1375
+ schema_name: NameType
1376
+ }
1377
+ export interface spawncargo {
1378
+ entity_id: UInt64Type
1379
+ item_id: UInt64Type
467
1380
  quantity: UInt64Type
468
1381
  }
469
- export interface takeloan {
470
- account: NameType
471
- amount: UInt64Type
1382
+ export interface spawnseeded {
1383
+ entity_id: UInt64Type
1384
+ item_id: UInt64Type
1385
+ quantity: UInt64Type
1386
+ seed: UInt64Type
472
1387
  }
473
- export interface travel {
474
- id: UInt64Type
475
- destination: Type.coordinates
476
- recharge: boolean
1388
+ export interface transfer {
1389
+ source_type: NameType
1390
+ source_id: UInt64Type
1391
+ dest_type: NameType
1392
+ dest_id: UInt64Type
1393
+ item_id: UInt16Type
1394
+ quantity: UInt32Type
477
1395
  }
478
- export interface travelplan {
1396
+ export interface travel {
1397
+ entity_type: NameType
479
1398
  id: UInt64Type
480
- origin: Type.coordinates
481
- destination: Type.coordinates
1399
+ x: Int64Type
1400
+ y: Int64Type
482
1401
  recharge: boolean
483
1402
  }
484
- export interface traveltime {
485
- id: UInt64Type
486
- destination: Type.coordinates
487
- }
488
- export interface updatecredit {
489
- account: NameType
490
- amount: Int64Type
491
- }
492
- export interface updatedebt {
493
- account: NameType
494
- amount: Int64Type
495
- }
496
- export interface upgradeship {
497
- account: NameType
1403
+ export interface warp {
1404
+ entity_type: NameType
498
1405
  id: UInt64Type
1406
+ x: Int64Type
1407
+ y: Int64Type
499
1408
  }
500
1409
  export interface wipe {}
501
1410
  export interface wipesequence {}
1411
+ export interface wrap {
1412
+ owner: NameType
1413
+ entity_type: NameType
1414
+ entity_id: UInt64Type
1415
+ cargo_id: UInt64Type
1416
+ quantity: UInt64Type
1417
+ }
502
1418
  }
503
1419
  export interface ActionNameParams {
1420
+ addmodule: ActionParams.addmodule
1421
+ addnexus: ActionParams.addnexus
504
1422
  advance: ActionParams.advance
505
- arrive: ActionParams.arrive
506
- buygoods: ActionParams.buygoods
507
- buyship: ActionParams.buyship
1423
+ blend: ActionParams.blend
1424
+ cancel: ActionParams.cancel
1425
+ cleanrsvp: ActionParams.cleanrsvp
508
1426
  cleartable: ActionParams.cleartable
509
1427
  commit: ActionParams.commit
1428
+ configlog: ActionParams.configlog
1429
+ craft: ActionParams.craft
1430
+ createentity: ActionParams.createentity
1431
+ deploy: ActionParams.deploy
510
1432
  enable: ActionParams.enable
1433
+ extract: ActionParams.extract
1434
+ getconfig: ActionParams.getconfig
1435
+ getentities: ActionParams.getentities
1436
+ getentity: ActionParams.getentity
1437
+ getitemdata: ActionParams.getitemdata
1438
+ getitems: ActionParams.getitems
1439
+ getlocation: ActionParams.getlocation
1440
+ getlocdata: ActionParams.getlocdata
1441
+ getmodules: ActionParams.getmodules
1442
+ getnearby: ActionParams.getnearby
1443
+ getnftinfo: ActionParams.getnftinfo
1444
+ getplayer: ActionParams.getplayer
1445
+ getrecipe: ActionParams.getrecipe
1446
+ getrecipes: ActionParams.getrecipes
1447
+ getresources: ActionParams.getresources
1448
+ getstratum: ActionParams.getstratum
1449
+ getsummaries: ActionParams.getsummaries
1450
+ grouptravel: ActionParams.grouptravel
511
1451
  hash: ActionParams.hash
512
1452
  hash512: ActionParams.hash512
513
1453
  init: ActionParams.init
514
- jettison: ActionParams.jettison
515
1454
  join: ActionParams.join
516
- marketprice: ActionParams.marketprice
517
- marketprices: ActionParams.marketprices
518
- payloan: ActionParams.payloan
1455
+ notify: ActionParams.notify
1456
+ recharge: ActionParams.recharge
1457
+ resolve: ActionParams.resolve
1458
+ rmmodule: ActionParams.rmmodule
1459
+ rmnftcfg: ActionParams.rmnftcfg
519
1460
  salt: ActionParams.salt
520
- sellgoods: ActionParams.sellgoods
521
- takeloan: ActionParams.takeloan
1461
+ setnftcfg: ActionParams.setnftcfg
1462
+ spawncargo: ActionParams.spawncargo
1463
+ spawnseeded: ActionParams.spawnseeded
1464
+ transfer: ActionParams.transfer
522
1465
  travel: ActionParams.travel
523
- travelplan: ActionParams.travelplan
524
- traveltime: ActionParams.traveltime
525
- updatecredit: ActionParams.updatecredit
526
- updatedebt: ActionParams.updatedebt
527
- upgradeship: ActionParams.upgradeship
1466
+ warp: ActionParams.warp
528
1467
  wipe: ActionParams.wipe
529
1468
  wipesequence: ActionParams.wipesequence
1469
+ wrap: ActionParams.wrap
530
1470
  }
531
1471
  export type ActionNames = keyof ActionNameParams
532
1472
  export interface ActionReturnValues {
1473
+ cancel: Types.cancel_results
1474
+ craft: Types.task_results
1475
+ deploy: Types.task_results
1476
+ extract: Types.task_results
1477
+ getconfig: Types.game_config
1478
+ getentities: Types.entity_info[]
1479
+ getentity: Types.entity_info
1480
+ getitemdata: Types.itemdata_result
1481
+ getitems: Types.items_info
1482
+ getlocation: Types.location_info
1483
+ getlocdata: Types.location_derived
1484
+ getmodules: Types.modules_result
1485
+ getnearby: Types.nearby_info
1486
+ getnftinfo: Types.nftinfo_result
1487
+ getplayer: Types.player_info
1488
+ getrecipe: Types.recipes_result
1489
+ getrecipes: Types.recipes_result
1490
+ getresources: Types.resources_result
1491
+ getstratum: Types.stratum_data
1492
+ getsummaries: Types.entity_summary[]
1493
+ grouptravel: Types.task_results
533
1494
  hash: Checksum256
534
1495
  hash512: Checksum512
535
- marketprice: Types.good_price
536
- marketprices: Types.good_price[]
537
- travelplan: Types.travel_plan
538
- traveltime: Types.travel_summary
1496
+ recharge: Types.task_results
1497
+ resolve: Types.resolve_results
1498
+ transfer: Types.task_results
1499
+ travel: Types.task_results
1500
+ warp: Types.task_results
1501
+ wrap: Types.task_results
539
1502
  }
540
1503
  export type ActionReturnNames = keyof ActionReturnValues
541
1504
  export class Contract extends BaseContract {