@shipload/sdk 2.0.0-rc2 → 2.0.0-rc4
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.
- package/lib/shipload.d.ts +319 -137
- package/lib/shipload.js +3253 -1812
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2657 -1131
- package/lib/shipload.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/extraction.ts +14 -21
- package/src/capabilities/storage.ts +2 -2
- package/src/contracts/server.ts +311 -120
- package/src/data/items.json +16 -0
- package/src/data/nebula-adjectives.json +211 -0
- package/src/data/nebula-nouns.json +151 -0
- package/src/data/syllables.json +1386 -780
- package/src/derivation/index.ts +25 -0
- package/src/derivation/location-size.ts +15 -0
- package/src/derivation/resources.ts +141 -0
- package/src/derivation/stratum.ts +118 -0
- package/src/entities/cargo-utils.ts +8 -8
- package/src/entities/entity-inventory.ts +13 -9
- package/src/entities/inventory-accessor.ts +2 -2
- package/src/entities/location.ts +10 -10
- package/src/entities/ship.ts +10 -6
- package/src/entities/warehouse.ts +2 -2
- package/src/errors.ts +4 -4
- package/src/index-module.ts +31 -6
- package/src/managers/actions.ts +21 -9
- package/src/managers/locations.ts +7 -7
- package/src/managers/trades.ts +5 -5
- package/src/market/items.ts +31 -0
- package/src/market/market.ts +9 -9
- package/src/scheduling/projection.ts +7 -7
- package/src/trading/collect.ts +25 -25
- package/src/trading/deal.ts +8 -8
- package/src/trading/trade.ts +9 -9
- package/src/travel/travel.ts +6 -6
- package/src/types.ts +17 -7
- package/src/utils/system.ts +51 -52
- package/src/data/goods.json +0 -23
- package/src/market/goods.ts +0 -31
package/lib/shipload.m.js
CHANGED
|
@@ -205,7 +205,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
205
205
|
Contract: Contract$1
|
|
206
206
|
});
|
|
207
207
|
|
|
208
|
-
const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhQB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgxidXljb250YWluZXIAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcIYnV5Z29vZHMABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdnb29kX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIHYnV5c2hpcAACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwxidXl3YXJlaG91c2UAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcGY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdnb29kX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIJdW5pdF9jb3N0BnVpbnQ2NAdtaXh0dXJlDW1peHR1cmVfaW5mbz8JY2FyZ29fcm93AAUCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CXVuaXRfY29zdAZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ng1jb250YWluZXJfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MGdWludDMyCGNhcGFjaXR5BnVpbnQzMgljYXJnb21hc3MGdWludDMyCHNjaGVkdWxlCXNjaGVkdWxlPwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8GZW5hYmxlAAEHZW5hYmxlZARib29sDGVuZXJneV9zdGF0cwACCGNhcGFjaXR5BnVpbnQxNghyZWNoYXJnZQZ1aW50MTYUZW50aXR5X2N1cnJlbnRfc3RhdGUAAgtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kGdWludDE2C2VudGl0eV9pbmZvABUEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/B2lzX2lkbGUEYm9vbAxjdXJyZW50X3Rhc2sFdGFzaz8UY3VycmVudF90YXNrX2VsYXBzZWQGdWludDMyFmN1cnJlbnRfdGFza19yZW1haW5pbmcGdWludDMyDXBlbmRpbmdfdGFza3MGdGFza1tdB2lkbGVfYXQLdGltZV9wb2ludD8Ic2NoZWR1bGUJc2NoZWR1bGU/CmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQdleHRyYWN0AAEHc2hpcF9pZAZ1aW50NjQPZXh0cmFjdG9yX3N0YXRzAAMEcmF0ZQZ1aW50MTYFZHJhaW4GdWludDE2CmVmZmljaWVuY3kGdWludDE2C2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIZ2V0Z29vZHMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCWdldHBsYXllcgABB2FjY291bnQEbmFtZQpnZXRzdGFydGVyAAAMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwRnb29kAAMCaWQGdWludDE2CmJhc2VfcHJpY2UGdWludDMyBG1hc3MGdWludDMyCmdvb2RzX2luZm8AAQVnb29kcwZnb29kW10LZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nBGluaXQAAQRzZWVkC2NoZWNrc3VtMjU2BGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwtlcG9jaF9wcm9wcw5sb2NhdGlvbl9lcG9jaA5sb2NhdGlvbl9lcG9jaAADBmFjdGl2ZQRib29sBXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DWxvY2F0aW9uX2dvb2QABQJpZAZ1aW50MTYFcHJpY2UGdWludDMyBnN1cHBseQZ1aW50MTYRcmFyaXR5X211bHRpcGxpZXIGdWludDMyE2xvY2F0aW9uX211bHRpcGxpZXIGdWludDMyDWxvY2F0aW9uX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wFZ29vZHMPbG9jYXRpb25fZ29vZFtdDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgRbWl4dHVyZV9jb21wb25lbnQAAgdnb29kX2lkBnVpbnQxNgZwdXJpdHkGdWludDE2DG1peHR1cmVfaW5mbwABCmNvbXBvbmVudHMTbWl4dHVyZV9jb21wb25lbnRbXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQHcGF5bG9hbgACB2FjY291bnQEbmFtZQZhbW91bnQGdWludDY0C3BsYXllcl9pbmZvAA0Fb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDMyCG5ldHdvcnRoBWludDY0DmF2YWlsYWJsZV9sb2FuBnVpbnQ2NA9uZXh0X3NoaXBfcHJpY2UGdWludDY0FG5leHRfd2FyZWhvdXNlX3ByaWNlBnVpbnQ2NBRuZXh0X2NvbnRhaW5lcl9wcmljZQZ1aW50NjQKc2hpcF9jb3VudAZ1aW50NjQPd2FyZWhvdXNlX2NvdW50BnVpbnQ2NA9jb250YWluZXJfY291bnQGdWludDY0CnBsYXllcl9yb3cABAVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDMyCG5ldHdvcnRoBWludDY0C3B1cmdlc3VwcGx5AAEIbWF4X3Jvd3MHdWludDY0PwhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3Jlc29sdmUAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAV1aW50OBRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwRzYWx0AAEEc2FsdAZ1aW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdCXNlbGxnb29kcwAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMFdHJhZGUMdHJhZGVfc3RhdHM/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/CHNjaGVkdWxlCXNjaGVkdWxlPwxzdGFydGVyX2luZm8AAwdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NARzaGlwC2VudGl0eV9pbmZvCXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CnN1cHBseV9yb3cABQJpZAZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMFZXBvY2gGdWludDY0B2dvb2RfaWQGdWludDE2BnN1cHBseQZ1aW50MTYIdGFrZWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NAR0YXNrAAkEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/B2NyZWRpdHMGaW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAOCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/D25ld19jb29yZGluYXRlcwxjb29yZGluYXRlcz8PY2FyZ29tYXNzX2RlbHRhBWludDY0C2NhcmdvX2FkZGVkDGNhcmdvX2l0ZW1bXQ1jYXJnb19yZW1vdmVkDGNhcmdvX2l0ZW1bXQdjcmVkaXRzBmludDY0Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10LdHJhZGVfc3RhdHMAAQZtYXJnaW4GdWludDE2CHRyYW5zZmVyAAYLc291cmNlX3R5cGUEbmFtZQlzb3VyY2VfaWQGdWludDY0CWRlc3RfdHlwZQRuYW1lB2Rlc3RfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZ0cmF2ZWwABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cAAwJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRFzdGFydGVyX2luZm9fdHlwZQxzdGFydGVyX2luZm8MdXBkYXRlY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAVpbnQ2NAp1cGRhdGVkZWJ0AAIHYWNjb3VudARuYW1lBmFtb3VudAVpbnQ2NA13YXJlaG91c2Vfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIY2FwYWNpdHkGdWludDMyCWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycwxsb2FkZXJfc3RhdHMIc2NoZWR1bGUJc2NoZWR1bGU/BHdpcGUAAAx3aXBlc2VxdWVuY2UAACYAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4ucNV0Jk+KvD4MYnV5Y29udGFpbmVyygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5Y29udGFpbmVyCnN1bW1hcnk6ICdCdXkgYSBuZXcgY29udGFpbmVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBjb250YWluZXIgYXQgdGhlIGxvY2F0aW9uIG9mIGFuIGlkbGUgc2hpcC4gQ29udGFpbmVycyBwcm92aWRlIGNhcmdvIHN0b3JhZ2UgYnV0IGhhdmUgbm8gbG9hZGVycyBhbmQgY2Fubm90IG1vdmUgaW5kZXBlbmRlbnRseS4AAAA4Ucq8PghidXlnb29kc90BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eWdvb2RzCnN1bW1hcnk6ICdCdXkgZ29vZHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGdvb2RzIGFuZCBhZGQgdGhlbSB0byBhIHNoaXAncyBjYXJnby4AAACguoa9PgdidXlzaGlwxgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5c2hpcApzdW1tYXJ5OiAnQnV5IGEgbmV3IHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IHNoaXCgsKZNXcO9PgxidXl3YXJlaG91c2XMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXl3YXJlaG91c2UKc3VtbWFyeTogJ0J1eSBhIG5ldyB3YXJlaG91c2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IHdhcmVob3VzZSBhdCB0aGUgbG9jYXRpb24gb2YgYW4gaWRsZSBzaGlwLiBXYXJlaG91c2VzIHByb3ZpZGUgY2FyZ28gc3RvcmFnZSB3aXRoIGxvYWRpbmcvdW5sb2FkaW5nIGNhcGFiaWxpdGllcyBidXQgY2Fubm90IG1vdmUuAAAAAESFpkEGY2FuY2VsxwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuCgotLS0AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAICNzc1cHZXh0cmFjdKADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgbWl4dHVyZSBjb21wb3NpdGlvbi4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAAA4UcqyYghnZXRnb29kc6oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGdvb2RzCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRyYWRlYWJsZSBnb29kcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIG5hbWUsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGdvb2Q6IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuAADw5xo1s2IJZ2V0bmVhcmJ53gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgZmxpZ2h0IHRpbWUsIGFuZCBtYXJrZXQgaW5mb3JtYXRpb24uAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AwFX5moyzYgpnZXRzdGFydGVyhQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RhcnRlcgpzdW1tYXJ5OiAnR2V0IHN0YXJ0ZXIgc2hpcCBhbmQgYmFsYW5jZSBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgc3RhcnRlciBzaGlwIHN0YXRzIGFuZCBpbml0aWFsIGJhbGFuY2UgYSBuZXcgcGxheWVyIHdvdWxkIHJlY2VpdmUgdXBvbiBqb2luaW5nLiBVc2VkIGZvciBvbmJvYXJkaW5nIFVJIHRvIGRpc3BsYXkgd2hhdCBwbGF5ZXJzIHdpbGwgZ2V0IGJlZm9yZSB0aGV5IHJlZ2lzdGVyLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo/QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgoKLS0tAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAAAAYBoavakHcGF5bG9hbq8BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBheWxvYW4Kc3VtbWFyeTogJ0xvYW4gUGF5bWVudCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQB8rFVjxa6uC3B1cmdlc3VwcGx56QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcHVyZ2VzdXBwbHkKc3VtbWFyeTogJ1VwZGF0ZSBHYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJnZSBvbGQgc3VwcGx5IHJlY29yZHMgYW5kIGhlbHAgY2xlYW51cCBnYW1lIHN0YXRlLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWzLAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi6QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCwAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAuGo6kydFA2k2NAAADWNvbnRhaW5lcl9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAAACTumwQjQNpNjQAAAxsb2NhdGlvbl9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAA+FirxgNpNjQAAApzdXBwbHlfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAUAAAAOFHKvD4MdGFza19yZXN1bHRzAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm8AAAA4UcqyYgpnb29kc19pbmZvACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAAPDnGjWzYgtuZWFyYnlfaW5mbwAAuMqbWLNiC3BsYXllcl9pbmZvAMBV+ZqMs2IMc3RhcnRlcl9pbmZvgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAAMCJUhajwgx0YXNrX3Jlc3VsdHMAAABXLTzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHM=');
|
|
208
|
+
const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhaB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgxidXljb250YWluZXIAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcIYnV5aXRlbXMABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIHYnV5c2hpcAACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwxidXl3YXJlaG91c2UAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcGY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIJdW5pdF9jb3N0BnVpbnQ2NARzZWVkB3VpbnQ2ND8JY2FyZ29fcm93AAYCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CXVuaXRfY29zdAZ1aW50NjQEc2VlZAZ1aW50NjQJY2xlYW5yc3ZwAAIFZXBvY2gGdWludDY0CG1heF9yb3dzBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZw1jb250YWluZXJfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MGdWludDMyCGNhcGFjaXR5BnVpbnQzMgljYXJnb21hc3MGdWludDMyCHNjaGVkdWxlCXNjaGVkdWxlPwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8GZW5hYmxlAAEHZW5hYmxlZARib29sDGVuZXJneV9zdGF0cwACCGNhcGFjaXR5BnVpbnQxNghyZWNoYXJnZQZ1aW50MTYUZW50aXR5X2N1cnJlbnRfc3RhdGUAAgtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kGdWludDE2D2VudGl0eV9kZWZhdWx0cwAQDXNoaXBfaHVsbG1hc3MGdWludDMyDXNoaXBfY2FwYWNpdHkGdWludDMyC3NoaXBfZW5lcmd5BnVpbnQxNgZzaGlwX3oGdWludDE2DHNoaXBfZW5naW5lcw5tb3ZlbWVudF9zdGF0cw5zaGlwX2dlbmVyYXRvcgxlbmVyZ3lfc3RhdHMMc2hpcF9sb2FkZXJzDGxvYWRlcl9zdGF0cwpzaGlwX3RyYWRlC3RyYWRlX3N0YXRzDnNoaXBfZXh0cmFjdG9yD2V4dHJhY3Rvcl9zdGF0cwlzaGlwX3dhcnAKd2FycF9zdGF0cxJ3YXJlaG91c2VfY2FwYWNpdHkGdWludDMyC3dhcmVob3VzZV96BnVpbnQxNhF3YXJlaG91c2VfbG9hZGVycwxsb2FkZXJfc3RhdHMSY29udGFpbmVyX2h1bGxtYXNzBnVpbnQzMhJjb250YWluZXJfY2FwYWNpdHkGdWludDMyC2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAWBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8IY2FwYWNpdHkHdWludDMyPwlleHRyYWN0b3IQZXh0cmFjdG9yX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2lzX2lkbGUEYm9vbAxjdXJyZW50X3Rhc2sFdGFzaz8UY3VycmVudF90YXNrX2VsYXBzZWQGdWludDMyFmN1cnJlbnRfdGFza19yZW1haW5pbmcGdWludDMyDXBlbmRpbmdfdGFza3MGdGFza1tdB2lkbGVfYXQLdGltZV9wb2ludD8Ic2NoZWR1bGUJc2NoZWR1bGU/CmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQdleHRyYWN0AAQLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyD2V4dHJhY3Rvcl9zdGF0cwAFBHJhdGUGdWludDE2BWRyYWluBnVpbnQxNgplZmZpY2llbmN5BnVpbnQxNgVkZXB0aAZ1aW50MTYFZHJpbGwGdWludDE2C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10JZ2V0Y29uZmlnAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhnZXRpdGVtcwAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQJZ2V0bmVhcmJ5AAMLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wJZ2V0cGxheWVyAAEHYWNjb3VudARuYW1lCmdldHN0YXJ0ZXIAAApnZXRzdHJhdHVtAAMBeAVpbnQ2NAF5BWludDY0B3N0cmF0dW0GdWludDE2DGdldHN1bW1hcmllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8LZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nBGluaXQAAQRzZWVkC2NoZWNrc3VtMjU2CGl0ZW1fZGVmAAMCaWQGdWludDE2CmJhc2VfcHJpY2UGdWludDMyBG1hc3MGdWludDMyCml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAMMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwtlcG9jaF9wcm9wcw5sb2NhdGlvbl9lcG9jaARzaXplBnVpbnQxNg5sb2NhdGlvbl9lcG9jaAADBmFjdGl2ZQRib29sBXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DWxvY2F0aW9uX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wFaXRlbXMPbG9jYXRpb25faXRlbVtdDWxvY2F0aW9uX2l0ZW0ABQJpZAZ1aW50MTYFcHJpY2UGdWludDMyBnN1cHBseQZ1aW50MTYRcmFyaXR5X211bHRpcGxpZXIGdWludDMyE2xvY2F0aW9uX211bHRpcGxpZXIGdWludDMyDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50B3BheWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NAtwbGF5ZXJfaW5mbwANBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQzMghuZXR3b3J0aAVpbnQ2NA5hdmFpbGFibGVfbG9hbgZ1aW50NjQPbmV4dF9zaGlwX3ByaWNlBnVpbnQ2NBRuZXh0X3dhcmVob3VzZV9wcmljZQZ1aW50NjQUbmV4dF9jb250YWluZXJfcHJpY2UGdWludDY0CnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAQFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQzMghuZXR3b3J0aAVpbnQ2NAtwdXJnZXN1cHBseQABCG1heF9yb3dzB3VpbnQ2ND8IcmVjaGFyZ2UAAgtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAtyZXNlcnZlX3JvdwACAmlkBnVpbnQ2NAlyZW1haW5pbmcGdWludDMyB3Jlc29sdmUAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAV1aW50OBRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPw5yZXNvdXJjZV9zdGF0cwAEBnB1cml0eQZ1aW50MTYHZGVuc2l0eQZ1aW50MTYKcmVhY3Rpdml0eQZ1aW50MTYJcmVzb25hbmNlBnVpbnQxNgRzYWx0AAEEc2FsdAZ1aW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdCXNlbGxpdGVtcwAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMFdHJhZGUMdHJhZGVfc3RhdHM/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8Ic2NoZWR1bGUJc2NoZWR1bGU/DHN0YXJ0ZXJfaW5mbwADB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0BHNoaXALZW50aXR5X2luZm8Jc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzYWx0BnVpbnQ2NAVzaGlwcwZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgZjb21taXQLY2hlY2tzdW0yNTYMc3RyYXR1bV9kYXRhAAIHc3RyYXR1bQxzdHJhdHVtX2luZm8Fc3RhdHMOcmVzb3VyY2Vfc3RhdHMMc3RyYXR1bV9pbmZvAAQHaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQIcmljaG5lc3MGdWludDE2B3Jlc2VydmUGdWludDMyCnN1cHBseV9yb3cABQJpZAZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMFZXBvY2gGdWludDY0B2l0ZW1faWQGdWludDE2BnN1cHBseQZ1aW50MTYIdGFrZWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NAR0YXNrAAkEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/B2NyZWRpdHMGaW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAJCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXQt0cmFkZV9zdGF0cwABBm1hcmdpbgZ1aW50MTYIdHJhbnNmZXIABgtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBnRyYXZlbAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAEAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EXN0YXJ0ZXJfaW5mb190eXBlDHN0YXJ0ZXJfaW5mbxBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnDHVwZGF0ZWNyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQKdXBkYXRlZGVidAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQNd2FyZWhvdXNlX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGNhcGFjaXR5BnVpbnQzMgljYXJnb21hc3MGdWludDMyB2xvYWRlcnMMbG9hZGVyX3N0YXRzCHNjaGVkdWxlCXNjaGVkdWxlPwR3YXJwAAQLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADHdpcGVzZXF1ZW5jZQAAKwAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi5w1XQmT4q8PgxidXljb250YWluZXLKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXljb250YWluZXIKc3VtbWFyeTogJ0J1eSBhIG5ldyBjb250YWluZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IGNvbnRhaW5lciBhdCB0aGUgbG9jYXRpb24gb2YgYW4gaWRsZSBzaGlwLiBDb250YWluZXJzIHByb3ZpZGUgY2FyZ28gc3RvcmFnZSBidXQgaGF2ZSBubyBsb2FkZXJzIGFuZCBjYW5ub3QgbW92ZSBpbmRlcGVuZGVudGx5LgAAAFiq7Lw+CGJ1eWl0ZW1z3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5aXRlbXMKc3VtbWFyeTogJ0J1eSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyY2hhc2UgaXRlbXMgYW5kIGFkZCB0aGVtIHRvIGEgc2hpcCdzIGNhcmdvLgAAAKC6hr0+B2J1eXNoaXDGAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlzaGlwCnN1bW1hcnk6ICdCdXkgYSBuZXcgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyY2hhc2UgYSBuZXcgc2hpcKCwpk1dw70+DGJ1eXdhcmVob3VzZcwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eXdhcmVob3VzZQpzdW1tYXJ5OiAnQnV5IGEgbmV3IHdhcmVob3VzZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyY2hhc2UgYSBuZXcgd2FyZWhvdXNlIGF0IHRoZSBsb2NhdGlvbiBvZiBhbiBpZGxlIHNoaXAuIFdhcmVob3VzZXMgcHJvdmlkZSBjYXJnbyBzdG9yYWdlIHdpdGggbG9hZGluZy91bmxvYWRpbmcgY2FwYWJpbGl0aWVzIGJ1dCBjYW5ub3QgbW92ZS4AAAAARIWmQQZjYW5jZWzHAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4KCi0tLQAAqBvfaVRECWNsZWFucnN2cAAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAABgNDK3JkUJY29uZmlnbG9nAAAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAACAjc3NXB2V4dHJhY3ShAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBleHRyYWN0CnN1bW1hcnk6ICdFeHRyYWN0IHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXh0cmFjdCByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGV4dHJhY3RhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYW4gZXh0cmFjdGlvbiB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBleHRyYWN0b3Igc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZwAAsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLgDAVfmajLNiCmdldHN0YXJ0ZXKFAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdGFydGVyCnN1bW1hcnk6ICdHZXQgc3RhcnRlciBzaGlwIGFuZCBiYWxhbmNlIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBzdGFydGVyIHNoaXAgc3RhdHMgYW5kIGluaXRpYWwgYmFsYW5jZSBhIG5ldyBwbGF5ZXIgd291bGQgcmVjZWl2ZSB1cG9uIGpvaW5pbmcuIFVzZWQgZm9yIG9uYm9hcmRpbmcgVUkgdG8gZGlzcGxheSB3aGF0IHBsYXllcnMgd2lsbCBnZXQgYmVmb3JlIHRoZXkgcmVnaXN0ZXIuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAGAaGr2pB3BheWxvYW6vAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwYXlsb2FuCnN1bW1hcnk6ICdMb2FuIFBheW1lbnQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AfKxVY8WurgtwdXJnZXN1cHBseekBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHB1cmdlc3VwcGx5CnN1bW1hcnk6ICdVcGRhdGUgR2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyZ2Ugb2xkIHN1cHBseSByZWNvcmRzIGFuZCBoZWxwIGNsZWFudXAgZ2FtZSBzdGF0ZS4AAACKXdOQughyZWNoYXJnZdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUuCgotLS0AAABA7UixugdyZXNvbHZl1QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgoKLS0tAAAAAACQo8EEc2FsdN0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNhbHQKc3VtbWFyeTogJ0FwcGVuZCBTYWx0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZGQgYWRkaXRpb25hbCBzYWx0IHRvIHRoZSBuZXh0IGVwb2NoIHNlZWQuCgotLS0AAMBSZRejwglzZWxsaXRlbXPVAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZWxsaXRlbXMKc3VtbWFyeTogJ1NlbGwgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNlbGwgaXRlbXMgZnJvbSBhIHNoaXAncyBjYXJnby4KCi0tLQAAANPQqKDJCHRha2Vsb2Fu6gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdGFrZWxvYW4Kc3VtbWFyeTogJ0NyZWRpdCBMb2FuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCb3Jyb3cgY3JlZGl0cyBmcm9tIHRoZSBiYW5rIHRoYXQgd2lsbCBuZWVkIHRvIGJlIHJlcGFpZC4AAABXLTzNzQh0cmFuc2ZlcsgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYW5zZmVyCnN1bW1hcnk6ICdUcmFuc2ZlciBjYXJnbyBiZXR3ZWVuIGVudGl0aWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2ZlciBjYXJnbyBiZXR3ZWVuIHR3byBlbnRpdGllcyBhdCB0aGUgc2FtZSBsb2NhdGlvbi4gQm90aCBlbnRpdGllcyBtdXN0IGJlIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIGF0IGxlYXN0IG9uZSBtdXN0IGhhdmUgbG9hZGVycy4gQ3JlYXRlcyBsb2FkIGFuZCB1bmxvYWQgdGFza3Mgb24gYm90aCBlbnRpdGllcyB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIGNvbWJpbmVkIGxvYWRlciBjYXBhY2l0eSBhbmQgWi1kaXN0YW5jZSBiZXR3ZWVuIHRoZW0uAAAAAES1zc0GdHJhdmVsywItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIGEgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgdHJhdmVsIG9mIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGxvY2F0aW9uIHRvIGEgbmV3IGRlc3RpbmF0aW9uLgoKLS0tCgpUaGlzIGFjdGlvbiBkZXRlcm1pbmVzIHRoZSBtYXJrZXQgcHJpY2Ugb2YgYWxsIGl0ZW1zIGF0IGEgZ2l2ZW4gbG9jYXRpb24ukF1SF6lsUtUMdXBkYXRlY3JlZGl0wgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlY3JlZGl0CnN1bW1hcnk6ICdERUJVRzogdXBkYXRlY3JlZGl0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQBAPiqpbFLVCnVwZGF0ZWRlYnS+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVkZWJ0CnN1bW1hcnk6ICdERUJVRzogdXBkYXRlZGVidCBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFCv4QR3YXJwAAAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tDAAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAuGo6kydFA2k2NAAADWNvbnRhaW5lcl9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAAACTumwQjQNpNjQAAAxsb2NhdGlvbl9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAD4WKvGA2k2NAAACnN1cHBseV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAFBY06au4QNpNjQAAA13YXJlaG91c2Vfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAABcAAABYquy8Pgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAACAjc3NXDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAAAAWKrssmIKaXRlbXNfaW5mbwAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkAADw5xo1s2ILbmVhcmJ5X2luZm8AALjKm1izYgtwbGF5ZXJfaW5mbwDAVfmajLNiDHN0YXJ0ZXJfaW5mbwCA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAADAUmUXo8IMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
209
209
|
const abi = ABI.from(abiBlob);
|
|
210
210
|
var Types;
|
|
211
211
|
(function (Types) {
|
|
@@ -236,24 +236,24 @@ var Types;
|
|
|
236
236
|
Struct.type('buycontainer')
|
|
237
237
|
], buycontainer);
|
|
238
238
|
Types.buycontainer = buycontainer;
|
|
239
|
-
let
|
|
239
|
+
let buyitems = class buyitems extends Struct {
|
|
240
240
|
};
|
|
241
241
|
__decorate([
|
|
242
242
|
Struct.field(Name)
|
|
243
|
-
],
|
|
243
|
+
], buyitems.prototype, "entity_type", void 0);
|
|
244
244
|
__decorate([
|
|
245
245
|
Struct.field(UInt64)
|
|
246
|
-
],
|
|
246
|
+
], buyitems.prototype, "id", void 0);
|
|
247
247
|
__decorate([
|
|
248
248
|
Struct.field(UInt16)
|
|
249
|
-
],
|
|
249
|
+
], buyitems.prototype, "item_id", void 0);
|
|
250
250
|
__decorate([
|
|
251
251
|
Struct.field(UInt32)
|
|
252
|
-
],
|
|
253
|
-
|
|
254
|
-
Struct.type('
|
|
255
|
-
],
|
|
256
|
-
Types.
|
|
252
|
+
], buyitems.prototype, "quantity", void 0);
|
|
253
|
+
buyitems = __decorate([
|
|
254
|
+
Struct.type('buyitems')
|
|
255
|
+
], buyitems);
|
|
256
|
+
Types.buyitems = buyitems;
|
|
257
257
|
let buyship = class buyship extends Struct {
|
|
258
258
|
};
|
|
259
259
|
__decorate([
|
|
@@ -332,32 +332,11 @@ var Types;
|
|
|
332
332
|
Struct.type('cancel_results')
|
|
333
333
|
], cancel_results);
|
|
334
334
|
Types.cancel_results = cancel_results;
|
|
335
|
-
let mixture_component = class mixture_component extends Struct {
|
|
336
|
-
};
|
|
337
|
-
__decorate([
|
|
338
|
-
Struct.field(UInt16)
|
|
339
|
-
], mixture_component.prototype, "good_id", void 0);
|
|
340
|
-
__decorate([
|
|
341
|
-
Struct.field(UInt16)
|
|
342
|
-
], mixture_component.prototype, "purity", void 0);
|
|
343
|
-
mixture_component = __decorate([
|
|
344
|
-
Struct.type('mixture_component')
|
|
345
|
-
], mixture_component);
|
|
346
|
-
Types.mixture_component = mixture_component;
|
|
347
|
-
let mixture_info = class mixture_info extends Struct {
|
|
348
|
-
};
|
|
349
|
-
__decorate([
|
|
350
|
-
Struct.field(mixture_component, { array: true })
|
|
351
|
-
], mixture_info.prototype, "components", void 0);
|
|
352
|
-
mixture_info = __decorate([
|
|
353
|
-
Struct.type('mixture_info')
|
|
354
|
-
], mixture_info);
|
|
355
|
-
Types.mixture_info = mixture_info;
|
|
356
335
|
let cargo_item = class cargo_item extends Struct {
|
|
357
336
|
};
|
|
358
337
|
__decorate([
|
|
359
338
|
Struct.field(UInt16)
|
|
360
|
-
], cargo_item.prototype, "
|
|
339
|
+
], cargo_item.prototype, "item_id", void 0);
|
|
361
340
|
__decorate([
|
|
362
341
|
Struct.field(UInt32)
|
|
363
342
|
], cargo_item.prototype, "quantity", void 0);
|
|
@@ -365,8 +344,8 @@ var Types;
|
|
|
365
344
|
Struct.field(UInt64)
|
|
366
345
|
], cargo_item.prototype, "unit_cost", void 0);
|
|
367
346
|
__decorate([
|
|
368
|
-
Struct.field(
|
|
369
|
-
], cargo_item.prototype, "
|
|
347
|
+
Struct.field(UInt64, { optional: true })
|
|
348
|
+
], cargo_item.prototype, "seed", void 0);
|
|
370
349
|
cargo_item = __decorate([
|
|
371
350
|
Struct.type('cargo_item')
|
|
372
351
|
], cargo_item);
|
|
@@ -381,17 +360,32 @@ var Types;
|
|
|
381
360
|
], cargo_row.prototype, "entity_id", void 0);
|
|
382
361
|
__decorate([
|
|
383
362
|
Struct.field(UInt64)
|
|
384
|
-
], cargo_row.prototype, "
|
|
363
|
+
], cargo_row.prototype, "item_id", void 0);
|
|
385
364
|
__decorate([
|
|
386
365
|
Struct.field(UInt64)
|
|
387
366
|
], cargo_row.prototype, "quantity", void 0);
|
|
388
367
|
__decorate([
|
|
389
368
|
Struct.field(UInt64)
|
|
390
369
|
], cargo_row.prototype, "unit_cost", void 0);
|
|
370
|
+
__decorate([
|
|
371
|
+
Struct.field(UInt64)
|
|
372
|
+
], cargo_row.prototype, "seed", void 0);
|
|
391
373
|
cargo_row = __decorate([
|
|
392
374
|
Struct.type('cargo_row')
|
|
393
375
|
], cargo_row);
|
|
394
376
|
Types.cargo_row = cargo_row;
|
|
377
|
+
let cleanrsvp = class cleanrsvp extends Struct {
|
|
378
|
+
};
|
|
379
|
+
__decorate([
|
|
380
|
+
Struct.field(UInt64)
|
|
381
|
+
], cleanrsvp.prototype, "epoch", void 0);
|
|
382
|
+
__decorate([
|
|
383
|
+
Struct.field(UInt64)
|
|
384
|
+
], cleanrsvp.prototype, "max_rows", void 0);
|
|
385
|
+
cleanrsvp = __decorate([
|
|
386
|
+
Struct.type('cleanrsvp')
|
|
387
|
+
], cleanrsvp);
|
|
388
|
+
Types.cleanrsvp = cleanrsvp;
|
|
395
389
|
let cleartable = class cleartable extends Struct {
|
|
396
390
|
};
|
|
397
391
|
__decorate([
|
|
@@ -416,6 +410,177 @@ var Types;
|
|
|
416
410
|
Struct.type('commit')
|
|
417
411
|
], commit);
|
|
418
412
|
Types.commit = commit;
|
|
413
|
+
let movement_stats = class movement_stats extends Struct {
|
|
414
|
+
};
|
|
415
|
+
__decorate([
|
|
416
|
+
Struct.field(UInt32)
|
|
417
|
+
], movement_stats.prototype, "thrust", void 0);
|
|
418
|
+
__decorate([
|
|
419
|
+
Struct.field(UInt16)
|
|
420
|
+
], movement_stats.prototype, "drain", void 0);
|
|
421
|
+
movement_stats = __decorate([
|
|
422
|
+
Struct.type('movement_stats')
|
|
423
|
+
], movement_stats);
|
|
424
|
+
Types.movement_stats = movement_stats;
|
|
425
|
+
let energy_stats = class energy_stats extends Struct {
|
|
426
|
+
};
|
|
427
|
+
__decorate([
|
|
428
|
+
Struct.field(UInt16)
|
|
429
|
+
], energy_stats.prototype, "capacity", void 0);
|
|
430
|
+
__decorate([
|
|
431
|
+
Struct.field(UInt16)
|
|
432
|
+
], energy_stats.prototype, "recharge", void 0);
|
|
433
|
+
energy_stats = __decorate([
|
|
434
|
+
Struct.type('energy_stats')
|
|
435
|
+
], energy_stats);
|
|
436
|
+
Types.energy_stats = energy_stats;
|
|
437
|
+
let loader_stats = class loader_stats extends Struct {
|
|
438
|
+
};
|
|
439
|
+
__decorate([
|
|
440
|
+
Struct.field(UInt32)
|
|
441
|
+
], loader_stats.prototype, "mass", void 0);
|
|
442
|
+
__decorate([
|
|
443
|
+
Struct.field(UInt16)
|
|
444
|
+
], loader_stats.prototype, "thrust", void 0);
|
|
445
|
+
__decorate([
|
|
446
|
+
Struct.field(UInt8)
|
|
447
|
+
], loader_stats.prototype, "quantity", void 0);
|
|
448
|
+
loader_stats = __decorate([
|
|
449
|
+
Struct.type('loader_stats')
|
|
450
|
+
], loader_stats);
|
|
451
|
+
Types.loader_stats = loader_stats;
|
|
452
|
+
let trade_stats = class trade_stats extends Struct {
|
|
453
|
+
};
|
|
454
|
+
__decorate([
|
|
455
|
+
Struct.field(UInt16)
|
|
456
|
+
], trade_stats.prototype, "margin", void 0);
|
|
457
|
+
trade_stats = __decorate([
|
|
458
|
+
Struct.type('trade_stats')
|
|
459
|
+
], trade_stats);
|
|
460
|
+
Types.trade_stats = trade_stats;
|
|
461
|
+
let extractor_stats = class extractor_stats extends Struct {
|
|
462
|
+
};
|
|
463
|
+
__decorate([
|
|
464
|
+
Struct.field(UInt16)
|
|
465
|
+
], extractor_stats.prototype, "rate", void 0);
|
|
466
|
+
__decorate([
|
|
467
|
+
Struct.field(UInt16)
|
|
468
|
+
], extractor_stats.prototype, "drain", void 0);
|
|
469
|
+
__decorate([
|
|
470
|
+
Struct.field(UInt16)
|
|
471
|
+
], extractor_stats.prototype, "efficiency", void 0);
|
|
472
|
+
__decorate([
|
|
473
|
+
Struct.field(UInt16)
|
|
474
|
+
], extractor_stats.prototype, "depth", void 0);
|
|
475
|
+
__decorate([
|
|
476
|
+
Struct.field(UInt16)
|
|
477
|
+
], extractor_stats.prototype, "drill", void 0);
|
|
478
|
+
extractor_stats = __decorate([
|
|
479
|
+
Struct.type('extractor_stats')
|
|
480
|
+
], extractor_stats);
|
|
481
|
+
Types.extractor_stats = extractor_stats;
|
|
482
|
+
let warp_stats = class warp_stats extends Struct {
|
|
483
|
+
};
|
|
484
|
+
__decorate([
|
|
485
|
+
Struct.field(UInt32)
|
|
486
|
+
], warp_stats.prototype, "range", void 0);
|
|
487
|
+
warp_stats = __decorate([
|
|
488
|
+
Struct.type('warp_stats')
|
|
489
|
+
], warp_stats);
|
|
490
|
+
Types.warp_stats = warp_stats;
|
|
491
|
+
let entity_defaults = class entity_defaults extends Struct {
|
|
492
|
+
};
|
|
493
|
+
__decorate([
|
|
494
|
+
Struct.field(UInt32)
|
|
495
|
+
], entity_defaults.prototype, "ship_hullmass", void 0);
|
|
496
|
+
__decorate([
|
|
497
|
+
Struct.field(UInt32)
|
|
498
|
+
], entity_defaults.prototype, "ship_capacity", void 0);
|
|
499
|
+
__decorate([
|
|
500
|
+
Struct.field(UInt16)
|
|
501
|
+
], entity_defaults.prototype, "ship_energy", void 0);
|
|
502
|
+
__decorate([
|
|
503
|
+
Struct.field(UInt16)
|
|
504
|
+
], entity_defaults.prototype, "ship_z", void 0);
|
|
505
|
+
__decorate([
|
|
506
|
+
Struct.field(movement_stats)
|
|
507
|
+
], entity_defaults.prototype, "ship_engines", void 0);
|
|
508
|
+
__decorate([
|
|
509
|
+
Struct.field(energy_stats)
|
|
510
|
+
], entity_defaults.prototype, "ship_generator", void 0);
|
|
511
|
+
__decorate([
|
|
512
|
+
Struct.field(loader_stats)
|
|
513
|
+
], entity_defaults.prototype, "ship_loaders", void 0);
|
|
514
|
+
__decorate([
|
|
515
|
+
Struct.field(trade_stats)
|
|
516
|
+
], entity_defaults.prototype, "ship_trade", void 0);
|
|
517
|
+
__decorate([
|
|
518
|
+
Struct.field(extractor_stats)
|
|
519
|
+
], entity_defaults.prototype, "ship_extractor", void 0);
|
|
520
|
+
__decorate([
|
|
521
|
+
Struct.field(warp_stats)
|
|
522
|
+
], entity_defaults.prototype, "ship_warp", void 0);
|
|
523
|
+
__decorate([
|
|
524
|
+
Struct.field(UInt32)
|
|
525
|
+
], entity_defaults.prototype, "warehouse_capacity", void 0);
|
|
526
|
+
__decorate([
|
|
527
|
+
Struct.field(UInt16)
|
|
528
|
+
], entity_defaults.prototype, "warehouse_z", void 0);
|
|
529
|
+
__decorate([
|
|
530
|
+
Struct.field(loader_stats)
|
|
531
|
+
], entity_defaults.prototype, "warehouse_loaders", void 0);
|
|
532
|
+
__decorate([
|
|
533
|
+
Struct.field(UInt32)
|
|
534
|
+
], entity_defaults.prototype, "container_hullmass", void 0);
|
|
535
|
+
__decorate([
|
|
536
|
+
Struct.field(UInt32)
|
|
537
|
+
], entity_defaults.prototype, "container_capacity", void 0);
|
|
538
|
+
__decorate([
|
|
539
|
+
Struct.field(UInt16)
|
|
540
|
+
], entity_defaults.prototype, "container_z", void 0);
|
|
541
|
+
entity_defaults = __decorate([
|
|
542
|
+
Struct.type('entity_defaults')
|
|
543
|
+
], entity_defaults);
|
|
544
|
+
Types.entity_defaults = entity_defaults;
|
|
545
|
+
let item_def = class item_def extends Struct {
|
|
546
|
+
};
|
|
547
|
+
__decorate([
|
|
548
|
+
Struct.field(UInt16)
|
|
549
|
+
], item_def.prototype, "id", void 0);
|
|
550
|
+
__decorate([
|
|
551
|
+
Struct.field(UInt32)
|
|
552
|
+
], item_def.prototype, "base_price", void 0);
|
|
553
|
+
__decorate([
|
|
554
|
+
Struct.field(UInt32)
|
|
555
|
+
], item_def.prototype, "mass", void 0);
|
|
556
|
+
item_def = __decorate([
|
|
557
|
+
Struct.type('item_def')
|
|
558
|
+
], item_def);
|
|
559
|
+
Types.item_def = item_def;
|
|
560
|
+
let game_config = class game_config extends Struct {
|
|
561
|
+
};
|
|
562
|
+
__decorate([
|
|
563
|
+
Struct.field(UInt32)
|
|
564
|
+
], game_config.prototype, "version", void 0);
|
|
565
|
+
__decorate([
|
|
566
|
+
Struct.field(entity_defaults)
|
|
567
|
+
], game_config.prototype, "defaults", void 0);
|
|
568
|
+
__decorate([
|
|
569
|
+
Struct.field(item_def, { array: true })
|
|
570
|
+
], game_config.prototype, "items", void 0);
|
|
571
|
+
game_config = __decorate([
|
|
572
|
+
Struct.type('game_config')
|
|
573
|
+
], game_config);
|
|
574
|
+
Types.game_config = game_config;
|
|
575
|
+
let configlog = class configlog extends Struct {
|
|
576
|
+
};
|
|
577
|
+
__decorate([
|
|
578
|
+
Struct.field(game_config)
|
|
579
|
+
], configlog.prototype, "config", void 0);
|
|
580
|
+
configlog = __decorate([
|
|
581
|
+
Struct.type('configlog')
|
|
582
|
+
], configlog);
|
|
583
|
+
Types.configlog = configlog;
|
|
419
584
|
let coordinates = class coordinates extends Struct {
|
|
420
585
|
};
|
|
421
586
|
__decorate([
|
|
@@ -515,18 +680,6 @@ var Types;
|
|
|
515
680
|
Struct.type('enable')
|
|
516
681
|
], enable);
|
|
517
682
|
Types.enable = enable;
|
|
518
|
-
let energy_stats = class energy_stats extends Struct {
|
|
519
|
-
};
|
|
520
|
-
__decorate([
|
|
521
|
-
Struct.field(UInt16)
|
|
522
|
-
], energy_stats.prototype, "capacity", void 0);
|
|
523
|
-
__decorate([
|
|
524
|
-
Struct.field(UInt16)
|
|
525
|
-
], energy_stats.prototype, "recharge", void 0);
|
|
526
|
-
energy_stats = __decorate([
|
|
527
|
-
Struct.type('energy_stats')
|
|
528
|
-
], energy_stats);
|
|
529
|
-
Types.energy_stats = energy_stats;
|
|
530
683
|
let entity_current_state = class entity_current_state extends Struct {
|
|
531
684
|
};
|
|
532
685
|
__decorate([
|
|
@@ -539,48 +692,6 @@ var Types;
|
|
|
539
692
|
Struct.type('entity_current_state')
|
|
540
693
|
], entity_current_state);
|
|
541
694
|
Types.entity_current_state = entity_current_state;
|
|
542
|
-
let loader_stats = class loader_stats extends Struct {
|
|
543
|
-
};
|
|
544
|
-
__decorate([
|
|
545
|
-
Struct.field(UInt32)
|
|
546
|
-
], loader_stats.prototype, "mass", void 0);
|
|
547
|
-
__decorate([
|
|
548
|
-
Struct.field(UInt16)
|
|
549
|
-
], loader_stats.prototype, "thrust", void 0);
|
|
550
|
-
__decorate([
|
|
551
|
-
Struct.field(UInt8)
|
|
552
|
-
], loader_stats.prototype, "quantity", void 0);
|
|
553
|
-
loader_stats = __decorate([
|
|
554
|
-
Struct.type('loader_stats')
|
|
555
|
-
], loader_stats);
|
|
556
|
-
Types.loader_stats = loader_stats;
|
|
557
|
-
let movement_stats = class movement_stats extends Struct {
|
|
558
|
-
};
|
|
559
|
-
__decorate([
|
|
560
|
-
Struct.field(UInt32)
|
|
561
|
-
], movement_stats.prototype, "thrust", void 0);
|
|
562
|
-
__decorate([
|
|
563
|
-
Struct.field(UInt16)
|
|
564
|
-
], movement_stats.prototype, "drain", void 0);
|
|
565
|
-
movement_stats = __decorate([
|
|
566
|
-
Struct.type('movement_stats')
|
|
567
|
-
], movement_stats);
|
|
568
|
-
Types.movement_stats = movement_stats;
|
|
569
|
-
let extractor_stats = class extractor_stats extends Struct {
|
|
570
|
-
};
|
|
571
|
-
__decorate([
|
|
572
|
-
Struct.field(UInt16)
|
|
573
|
-
], extractor_stats.prototype, "rate", void 0);
|
|
574
|
-
__decorate([
|
|
575
|
-
Struct.field(UInt16)
|
|
576
|
-
], extractor_stats.prototype, "drain", void 0);
|
|
577
|
-
__decorate([
|
|
578
|
-
Struct.field(UInt16)
|
|
579
|
-
], extractor_stats.prototype, "efficiency", void 0);
|
|
580
|
-
extractor_stats = __decorate([
|
|
581
|
-
Struct.type('extractor_stats')
|
|
582
|
-
], extractor_stats);
|
|
583
|
-
Types.extractor_stats = extractor_stats;
|
|
584
695
|
let entity_info = class entity_info extends Struct {
|
|
585
696
|
};
|
|
586
697
|
__decorate([
|
|
@@ -625,6 +736,9 @@ var Types;
|
|
|
625
736
|
__decorate([
|
|
626
737
|
Struct.field(extractor_stats, { optional: true })
|
|
627
738
|
], entity_info.prototype, "extractor", void 0);
|
|
739
|
+
__decorate([
|
|
740
|
+
Struct.field(warp_stats, { optional: true })
|
|
741
|
+
], entity_info.prototype, "warp", void 0);
|
|
628
742
|
__decorate([
|
|
629
743
|
Struct.field('bool')
|
|
630
744
|
], entity_info.prototype, "is_idle", void 0);
|
|
@@ -712,13 +826,28 @@ var Types;
|
|
|
712
826
|
Types.entitygroup_row = entitygroup_row;
|
|
713
827
|
let extract = class extract extends Struct {
|
|
714
828
|
};
|
|
829
|
+
__decorate([
|
|
830
|
+
Struct.field(Name)
|
|
831
|
+
], extract.prototype, "entity_type", void 0);
|
|
715
832
|
__decorate([
|
|
716
833
|
Struct.field(UInt64)
|
|
717
|
-
], extract.prototype, "
|
|
834
|
+
], extract.prototype, "id", void 0);
|
|
835
|
+
__decorate([
|
|
836
|
+
Struct.field(UInt16)
|
|
837
|
+
], extract.prototype, "stratum", void 0);
|
|
838
|
+
__decorate([
|
|
839
|
+
Struct.field(UInt32)
|
|
840
|
+
], extract.prototype, "quantity", void 0);
|
|
718
841
|
extract = __decorate([
|
|
719
842
|
Struct.type('extract')
|
|
720
843
|
], extract);
|
|
721
844
|
Types.extract = extract;
|
|
845
|
+
let getconfig = class getconfig extends Struct {
|
|
846
|
+
};
|
|
847
|
+
getconfig = __decorate([
|
|
848
|
+
Struct.type('getconfig')
|
|
849
|
+
], getconfig);
|
|
850
|
+
Types.getconfig = getconfig;
|
|
722
851
|
let getentities = class getentities extends Struct {
|
|
723
852
|
};
|
|
724
853
|
__decorate([
|
|
@@ -743,12 +872,12 @@ var Types;
|
|
|
743
872
|
Struct.type('getentity')
|
|
744
873
|
], getentity);
|
|
745
874
|
Types.getentity = getentity;
|
|
746
|
-
let
|
|
875
|
+
let getitems = class getitems extends Struct {
|
|
747
876
|
};
|
|
748
|
-
|
|
749
|
-
Struct.type('
|
|
750
|
-
],
|
|
751
|
-
Types.
|
|
877
|
+
getitems = __decorate([
|
|
878
|
+
Struct.type('getitems')
|
|
879
|
+
], getitems);
|
|
880
|
+
Types.getitems = getitems;
|
|
752
881
|
let getlocation = class getlocation extends Struct {
|
|
753
882
|
};
|
|
754
883
|
__decorate([
|
|
@@ -803,6 +932,21 @@ var Types;
|
|
|
803
932
|
Struct.type('getstarter')
|
|
804
933
|
], getstarter);
|
|
805
934
|
Types.getstarter = getstarter;
|
|
935
|
+
let getstratum = class getstratum extends Struct {
|
|
936
|
+
};
|
|
937
|
+
__decorate([
|
|
938
|
+
Struct.field(Int64)
|
|
939
|
+
], getstratum.prototype, "x", void 0);
|
|
940
|
+
__decorate([
|
|
941
|
+
Struct.field(Int64)
|
|
942
|
+
], getstratum.prototype, "y", void 0);
|
|
943
|
+
__decorate([
|
|
944
|
+
Struct.field(UInt16)
|
|
945
|
+
], getstratum.prototype, "stratum", void 0);
|
|
946
|
+
getstratum = __decorate([
|
|
947
|
+
Struct.type('getstratum')
|
|
948
|
+
], getstratum);
|
|
949
|
+
Types.getstratum = getstratum;
|
|
806
950
|
let getsummaries = class getsummaries extends Struct {
|
|
807
951
|
};
|
|
808
952
|
__decorate([
|
|
@@ -815,30 +959,6 @@ var Types;
|
|
|
815
959
|
Struct.type('getsummaries')
|
|
816
960
|
], getsummaries);
|
|
817
961
|
Types.getsummaries = getsummaries;
|
|
818
|
-
let good = class good extends Struct {
|
|
819
|
-
};
|
|
820
|
-
__decorate([
|
|
821
|
-
Struct.field(UInt16)
|
|
822
|
-
], good.prototype, "id", void 0);
|
|
823
|
-
__decorate([
|
|
824
|
-
Struct.field(UInt32)
|
|
825
|
-
], good.prototype, "base_price", void 0);
|
|
826
|
-
__decorate([
|
|
827
|
-
Struct.field(UInt32)
|
|
828
|
-
], good.prototype, "mass", void 0);
|
|
829
|
-
good = __decorate([
|
|
830
|
-
Struct.type('good')
|
|
831
|
-
], good);
|
|
832
|
-
Types.good = good;
|
|
833
|
-
let goods_info = class goods_info extends Struct {
|
|
834
|
-
};
|
|
835
|
-
__decorate([
|
|
836
|
-
Struct.field(good, { array: true })
|
|
837
|
-
], goods_info.prototype, "goods", void 0);
|
|
838
|
-
goods_info = __decorate([
|
|
839
|
-
Struct.type('goods_info')
|
|
840
|
-
], goods_info);
|
|
841
|
-
Types.goods_info = goods_info;
|
|
842
962
|
let grouptravel = class grouptravel extends Struct {
|
|
843
963
|
};
|
|
844
964
|
__decorate([
|
|
@@ -884,6 +1004,15 @@ var Types;
|
|
|
884
1004
|
Struct.type('init')
|
|
885
1005
|
], init);
|
|
886
1006
|
Types.init = init;
|
|
1007
|
+
let items_info = class items_info extends Struct {
|
|
1008
|
+
};
|
|
1009
|
+
__decorate([
|
|
1010
|
+
Struct.field(item_def, { array: true })
|
|
1011
|
+
], items_info.prototype, "items", void 0);
|
|
1012
|
+
items_info = __decorate([
|
|
1013
|
+
Struct.type('items_info')
|
|
1014
|
+
], items_info);
|
|
1015
|
+
Types.items_info = items_info;
|
|
887
1016
|
let join = class join extends Struct {
|
|
888
1017
|
};
|
|
889
1018
|
__decorate([
|
|
@@ -937,31 +1066,34 @@ var Types;
|
|
|
937
1066
|
__decorate([
|
|
938
1067
|
Struct.field(location_epoch)
|
|
939
1068
|
], location_derived.prototype, "epoch_props", void 0);
|
|
1069
|
+
__decorate([
|
|
1070
|
+
Struct.field(UInt16)
|
|
1071
|
+
], location_derived.prototype, "size", void 0);
|
|
940
1072
|
location_derived = __decorate([
|
|
941
1073
|
Struct.type('location_derived')
|
|
942
1074
|
], location_derived);
|
|
943
1075
|
Types.location_derived = location_derived;
|
|
944
|
-
let
|
|
1076
|
+
let location_item = class location_item extends Struct {
|
|
945
1077
|
};
|
|
946
1078
|
__decorate([
|
|
947
1079
|
Struct.field(UInt16)
|
|
948
|
-
],
|
|
1080
|
+
], location_item.prototype, "id", void 0);
|
|
949
1081
|
__decorate([
|
|
950
1082
|
Struct.field(UInt32)
|
|
951
|
-
],
|
|
1083
|
+
], location_item.prototype, "price", void 0);
|
|
952
1084
|
__decorate([
|
|
953
1085
|
Struct.field(UInt16)
|
|
954
|
-
],
|
|
1086
|
+
], location_item.prototype, "supply", void 0);
|
|
955
1087
|
__decorate([
|
|
956
1088
|
Struct.field(UInt32)
|
|
957
|
-
],
|
|
1089
|
+
], location_item.prototype, "rarity_multiplier", void 0);
|
|
958
1090
|
__decorate([
|
|
959
1091
|
Struct.field(UInt32)
|
|
960
|
-
],
|
|
961
|
-
|
|
962
|
-
Struct.type('
|
|
963
|
-
],
|
|
964
|
-
Types.
|
|
1092
|
+
], location_item.prototype, "location_multiplier", void 0);
|
|
1093
|
+
location_item = __decorate([
|
|
1094
|
+
Struct.type('location_item')
|
|
1095
|
+
], location_item);
|
|
1096
|
+
Types.location_item = location_item;
|
|
965
1097
|
let location_info = class location_info extends Struct {
|
|
966
1098
|
};
|
|
967
1099
|
__decorate([
|
|
@@ -971,8 +1103,8 @@ var Types;
|
|
|
971
1103
|
Struct.field('bool')
|
|
972
1104
|
], location_info.prototype, "is_system", void 0);
|
|
973
1105
|
__decorate([
|
|
974
|
-
Struct.field(
|
|
975
|
-
], location_info.prototype, "
|
|
1106
|
+
Struct.field(location_item, { array: true })
|
|
1107
|
+
], location_info.prototype, "items", void 0);
|
|
976
1108
|
location_info = __decorate([
|
|
977
1109
|
Struct.type('location_info')
|
|
978
1110
|
], location_info);
|
|
@@ -1069,21 +1201,6 @@ var Types;
|
|
|
1069
1201
|
__decorate([
|
|
1070
1202
|
Struct.field(UInt16, { optional: true })
|
|
1071
1203
|
], task_event.prototype, "new_energy", void 0);
|
|
1072
|
-
__decorate([
|
|
1073
|
-
Struct.field(coordinates, { optional: true })
|
|
1074
|
-
], task_event.prototype, "new_coordinates", void 0);
|
|
1075
|
-
__decorate([
|
|
1076
|
-
Struct.field(Int64)
|
|
1077
|
-
], task_event.prototype, "cargomass_delta", void 0);
|
|
1078
|
-
__decorate([
|
|
1079
|
-
Struct.field(cargo_item, { array: true })
|
|
1080
|
-
], task_event.prototype, "cargo_added", void 0);
|
|
1081
|
-
__decorate([
|
|
1082
|
-
Struct.field(cargo_item, { array: true })
|
|
1083
|
-
], task_event.prototype, "cargo_removed", void 0);
|
|
1084
|
-
__decorate([
|
|
1085
|
-
Struct.field(Int64, { optional: true })
|
|
1086
|
-
], task_event.prototype, "credits", void 0);
|
|
1087
1204
|
task_event = __decorate([
|
|
1088
1205
|
Struct.type('task_event')
|
|
1089
1206
|
], task_event);
|
|
@@ -1193,6 +1310,18 @@ var Types;
|
|
|
1193
1310
|
Struct.type('recharge')
|
|
1194
1311
|
], recharge);
|
|
1195
1312
|
Types.recharge = recharge;
|
|
1313
|
+
let reserve_row = class reserve_row extends Struct {
|
|
1314
|
+
};
|
|
1315
|
+
__decorate([
|
|
1316
|
+
Struct.field(UInt64)
|
|
1317
|
+
], reserve_row.prototype, "id", void 0);
|
|
1318
|
+
__decorate([
|
|
1319
|
+
Struct.field(UInt32)
|
|
1320
|
+
], reserve_row.prototype, "remaining", void 0);
|
|
1321
|
+
reserve_row = __decorate([
|
|
1322
|
+
Struct.type('reserve_row')
|
|
1323
|
+
], reserve_row);
|
|
1324
|
+
Types.reserve_row = reserve_row;
|
|
1196
1325
|
let resolve = class resolve extends Struct {
|
|
1197
1326
|
};
|
|
1198
1327
|
__decorate([
|
|
@@ -1232,6 +1361,24 @@ var Types;
|
|
|
1232
1361
|
Struct.type('resolve_results')
|
|
1233
1362
|
], resolve_results);
|
|
1234
1363
|
Types.resolve_results = resolve_results;
|
|
1364
|
+
let resource_stats = class resource_stats extends Struct {
|
|
1365
|
+
};
|
|
1366
|
+
__decorate([
|
|
1367
|
+
Struct.field(UInt16)
|
|
1368
|
+
], resource_stats.prototype, "purity", void 0);
|
|
1369
|
+
__decorate([
|
|
1370
|
+
Struct.field(UInt16)
|
|
1371
|
+
], resource_stats.prototype, "density", void 0);
|
|
1372
|
+
__decorate([
|
|
1373
|
+
Struct.field(UInt16)
|
|
1374
|
+
], resource_stats.prototype, "reactivity", void 0);
|
|
1375
|
+
__decorate([
|
|
1376
|
+
Struct.field(UInt16)
|
|
1377
|
+
], resource_stats.prototype, "resonance", void 0);
|
|
1378
|
+
resource_stats = __decorate([
|
|
1379
|
+
Struct.type('resource_stats')
|
|
1380
|
+
], resource_stats);
|
|
1381
|
+
Types.resource_stats = resource_stats;
|
|
1235
1382
|
let salt = class salt extends Struct {
|
|
1236
1383
|
};
|
|
1237
1384
|
__decorate([
|
|
@@ -1241,24 +1388,24 @@ var Types;
|
|
|
1241
1388
|
Struct.type('salt')
|
|
1242
1389
|
], salt);
|
|
1243
1390
|
Types.salt = salt;
|
|
1244
|
-
let
|
|
1391
|
+
let sellitems = class sellitems extends Struct {
|
|
1245
1392
|
};
|
|
1246
1393
|
__decorate([
|
|
1247
1394
|
Struct.field(Name)
|
|
1248
|
-
],
|
|
1395
|
+
], sellitems.prototype, "entity_type", void 0);
|
|
1249
1396
|
__decorate([
|
|
1250
1397
|
Struct.field(UInt64)
|
|
1251
|
-
],
|
|
1398
|
+
], sellitems.prototype, "id", void 0);
|
|
1252
1399
|
__decorate([
|
|
1253
1400
|
Struct.field(UInt16)
|
|
1254
|
-
],
|
|
1401
|
+
], sellitems.prototype, "item_id", void 0);
|
|
1255
1402
|
__decorate([
|
|
1256
1403
|
Struct.field(UInt32)
|
|
1257
|
-
],
|
|
1258
|
-
|
|
1259
|
-
Struct.type('
|
|
1260
|
-
],
|
|
1261
|
-
Types.
|
|
1404
|
+
], sellitems.prototype, "quantity", void 0);
|
|
1405
|
+
sellitems = __decorate([
|
|
1406
|
+
Struct.type('sellitems')
|
|
1407
|
+
], sellitems);
|
|
1408
|
+
Types.sellitems = sellitems;
|
|
1262
1409
|
let sequence_row = class sequence_row extends Struct {
|
|
1263
1410
|
};
|
|
1264
1411
|
__decorate([
|
|
@@ -1271,15 +1418,6 @@ var Types;
|
|
|
1271
1418
|
Struct.type('sequence_row')
|
|
1272
1419
|
], sequence_row);
|
|
1273
1420
|
Types.sequence_row = sequence_row;
|
|
1274
|
-
let trade_stats = class trade_stats extends Struct {
|
|
1275
|
-
};
|
|
1276
|
-
__decorate([
|
|
1277
|
-
Struct.field(UInt16)
|
|
1278
|
-
], trade_stats.prototype, "margin", void 0);
|
|
1279
|
-
trade_stats = __decorate([
|
|
1280
|
-
Struct.type('trade_stats')
|
|
1281
|
-
], trade_stats);
|
|
1282
|
-
Types.trade_stats = trade_stats;
|
|
1283
1421
|
let ship_row = class ship_row extends Struct {
|
|
1284
1422
|
};
|
|
1285
1423
|
__decorate([
|
|
@@ -1321,6 +1459,9 @@ var Types;
|
|
|
1321
1459
|
__decorate([
|
|
1322
1460
|
Struct.field(extractor_stats, { optional: true })
|
|
1323
1461
|
], ship_row.prototype, "extractor", void 0);
|
|
1462
|
+
__decorate([
|
|
1463
|
+
Struct.field(warp_stats, { optional: true })
|
|
1464
|
+
], ship_row.prototype, "warp", void 0);
|
|
1324
1465
|
__decorate([
|
|
1325
1466
|
Struct.field(schedule, { optional: true })
|
|
1326
1467
|
], ship_row.prototype, "schedule", void 0);
|
|
@@ -1367,6 +1508,36 @@ var Types;
|
|
|
1367
1508
|
Struct.type('state_row')
|
|
1368
1509
|
], state_row);
|
|
1369
1510
|
Types.state_row = state_row;
|
|
1511
|
+
let stratum_info = class stratum_info extends Struct {
|
|
1512
|
+
};
|
|
1513
|
+
__decorate([
|
|
1514
|
+
Struct.field(UInt16)
|
|
1515
|
+
], stratum_info.prototype, "item_id", void 0);
|
|
1516
|
+
__decorate([
|
|
1517
|
+
Struct.field(UInt64)
|
|
1518
|
+
], stratum_info.prototype, "seed", void 0);
|
|
1519
|
+
__decorate([
|
|
1520
|
+
Struct.field(UInt16)
|
|
1521
|
+
], stratum_info.prototype, "richness", void 0);
|
|
1522
|
+
__decorate([
|
|
1523
|
+
Struct.field(UInt32)
|
|
1524
|
+
], stratum_info.prototype, "reserve", void 0);
|
|
1525
|
+
stratum_info = __decorate([
|
|
1526
|
+
Struct.type('stratum_info')
|
|
1527
|
+
], stratum_info);
|
|
1528
|
+
Types.stratum_info = stratum_info;
|
|
1529
|
+
let stratum_data = class stratum_data extends Struct {
|
|
1530
|
+
};
|
|
1531
|
+
__decorate([
|
|
1532
|
+
Struct.field(stratum_info)
|
|
1533
|
+
], stratum_data.prototype, "stratum", void 0);
|
|
1534
|
+
__decorate([
|
|
1535
|
+
Struct.field(resource_stats)
|
|
1536
|
+
], stratum_data.prototype, "stats", void 0);
|
|
1537
|
+
stratum_data = __decorate([
|
|
1538
|
+
Struct.type('stratum_data')
|
|
1539
|
+
], stratum_data);
|
|
1540
|
+
Types.stratum_data = stratum_data;
|
|
1370
1541
|
let supply_row = class supply_row extends Struct {
|
|
1371
1542
|
};
|
|
1372
1543
|
__decorate([
|
|
@@ -1380,7 +1551,7 @@ var Types;
|
|
|
1380
1551
|
], supply_row.prototype, "epoch", void 0);
|
|
1381
1552
|
__decorate([
|
|
1382
1553
|
Struct.field(UInt16)
|
|
1383
|
-
], supply_row.prototype, "
|
|
1554
|
+
], supply_row.prototype, "item_id", void 0);
|
|
1384
1555
|
__decorate([
|
|
1385
1556
|
Struct.field(UInt16)
|
|
1386
1557
|
], supply_row.prototype, "supply", void 0);
|
|
@@ -1425,7 +1596,7 @@ var Types;
|
|
|
1425
1596
|
], transfer.prototype, "dest_id", void 0);
|
|
1426
1597
|
__decorate([
|
|
1427
1598
|
Struct.field(UInt16)
|
|
1428
|
-
], transfer.prototype, "
|
|
1599
|
+
], transfer.prototype, "item_id", void 0);
|
|
1429
1600
|
__decorate([
|
|
1430
1601
|
Struct.field(UInt32)
|
|
1431
1602
|
], transfer.prototype, "quantity", void 0);
|
|
@@ -1465,6 +1636,9 @@ var Types;
|
|
|
1465
1636
|
__decorate([
|
|
1466
1637
|
Struct.field(starter_info)
|
|
1467
1638
|
], types_row.prototype, "starter_info_type", void 0);
|
|
1639
|
+
__decorate([
|
|
1640
|
+
Struct.field(game_config)
|
|
1641
|
+
], types_row.prototype, "game_config_type", void 0);
|
|
1468
1642
|
types_row = __decorate([
|
|
1469
1643
|
Struct.type('types_row')
|
|
1470
1644
|
], types_row);
|
|
@@ -1523,6 +1697,24 @@ var Types;
|
|
|
1523
1697
|
Struct.type('warehouse_row')
|
|
1524
1698
|
], warehouse_row);
|
|
1525
1699
|
Types.warehouse_row = warehouse_row;
|
|
1700
|
+
let warp = class warp extends Struct {
|
|
1701
|
+
};
|
|
1702
|
+
__decorate([
|
|
1703
|
+
Struct.field(Name)
|
|
1704
|
+
], warp.prototype, "entity_type", void 0);
|
|
1705
|
+
__decorate([
|
|
1706
|
+
Struct.field(UInt64)
|
|
1707
|
+
], warp.prototype, "id", void 0);
|
|
1708
|
+
__decorate([
|
|
1709
|
+
Struct.field(Int64)
|
|
1710
|
+
], warp.prototype, "x", void 0);
|
|
1711
|
+
__decorate([
|
|
1712
|
+
Struct.field(Int64)
|
|
1713
|
+
], warp.prototype, "y", void 0);
|
|
1714
|
+
warp = __decorate([
|
|
1715
|
+
Struct.type('warp')
|
|
1716
|
+
], warp);
|
|
1717
|
+
Types.warp = warp;
|
|
1526
1718
|
let wipe = class wipe extends Struct {
|
|
1527
1719
|
};
|
|
1528
1720
|
wipe = __decorate([
|
|
@@ -1542,6 +1734,7 @@ const TableMap = {
|
|
|
1542
1734
|
entitygroup: Types.entitygroup_row,
|
|
1543
1735
|
location: Types.location_row,
|
|
1544
1736
|
player: Types.player_row,
|
|
1737
|
+
reserve: Types.reserve_row,
|
|
1545
1738
|
sequence: Types.sequence_row,
|
|
1546
1739
|
ship: Types.ship_row,
|
|
1547
1740
|
state: Types.state_row,
|
|
@@ -1588,11 +1781,11 @@ const ERROR_SYSTEM_DISABLED = 'This game is currently disabled.';
|
|
|
1588
1781
|
const ERROR_SYSTEM_NOT_INITIALIZED = 'This game has not been initialized.';
|
|
1589
1782
|
const GAME_NOT_FOUND = 'Cannot find game for given account name.';
|
|
1590
1783
|
const GAME_SEED_NOT_SET = 'This game has not initialized an epoch seed value.';
|
|
1591
|
-
const
|
|
1592
|
-
const
|
|
1784
|
+
const ITEM_DOES_NOT_EXIST = 'Item does not exist.';
|
|
1785
|
+
const ITEM_NOT_AVAILABLE_AT_LOCATION = 'Item is not tradeable at ship location.';
|
|
1593
1786
|
const INSUFFICIENT_BALANCE = 'Insufficient balance.';
|
|
1594
|
-
const
|
|
1595
|
-
const
|
|
1787
|
+
const INSUFFICIENT_ITEM_QUANTITY = 'Insufficient quantity in cargo.';
|
|
1788
|
+
const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
1596
1789
|
const INVALID_AMOUNT = 'Invalid amount.';
|
|
1597
1790
|
const REQUIRES_MORE_THAN_ONE = 'A value greater than one is required.';
|
|
1598
1791
|
const REQUIRES_POSITIVE_VALUE = 'Value must be greater than zero.';
|
|
@@ -1653,6 +1846,7 @@ var TaskType;
|
|
|
1653
1846
|
TaskType[TaskType["LOAD"] = 3] = "LOAD";
|
|
1654
1847
|
TaskType[TaskType["UNLOAD"] = 4] = "UNLOAD";
|
|
1655
1848
|
TaskType[TaskType["EXTRACT"] = 5] = "EXTRACT";
|
|
1849
|
+
TaskType[TaskType["WARP"] = 6] = "WARP";
|
|
1656
1850
|
})(TaskType || (TaskType = {}));
|
|
1657
1851
|
var LocationType;
|
|
1658
1852
|
(function (LocationType) {
|
|
@@ -1692,43 +1886,52 @@ function coordsToLocationId(coords) {
|
|
|
1692
1886
|
const id = (x << BigInt(32)) | y;
|
|
1693
1887
|
return UInt64.from(id);
|
|
1694
1888
|
}
|
|
1695
|
-
let
|
|
1889
|
+
let Item = class Item extends Struct {
|
|
1696
1890
|
};
|
|
1697
1891
|
__decorate([
|
|
1698
1892
|
Struct.field(UInt16)
|
|
1699
|
-
],
|
|
1893
|
+
], Item.prototype, "id", void 0);
|
|
1700
1894
|
__decorate([
|
|
1701
1895
|
Struct.field('string')
|
|
1702
|
-
],
|
|
1896
|
+
], Item.prototype, "name", void 0);
|
|
1703
1897
|
__decorate([
|
|
1704
1898
|
Struct.field('string')
|
|
1705
|
-
],
|
|
1899
|
+
], Item.prototype, "description", void 0);
|
|
1706
1900
|
__decorate([
|
|
1707
1901
|
Struct.field(UInt32)
|
|
1708
|
-
],
|
|
1902
|
+
], Item.prototype, "base_price", void 0);
|
|
1709
1903
|
__decorate([
|
|
1710
1904
|
Struct.field(UInt32)
|
|
1711
|
-
],
|
|
1712
|
-
|
|
1713
|
-
Struct.
|
|
1714
|
-
],
|
|
1715
|
-
|
|
1905
|
+
], Item.prototype, "mass", void 0);
|
|
1906
|
+
__decorate([
|
|
1907
|
+
Struct.field('string')
|
|
1908
|
+
], Item.prototype, "category", void 0);
|
|
1909
|
+
__decorate([
|
|
1910
|
+
Struct.field('string')
|
|
1911
|
+
], Item.prototype, "rarity", void 0);
|
|
1912
|
+
__decorate([
|
|
1913
|
+
Struct.field('string')
|
|
1914
|
+
], Item.prototype, "color", void 0);
|
|
1915
|
+
Item = __decorate([
|
|
1916
|
+
Struct.type('item')
|
|
1917
|
+
], Item);
|
|
1918
|
+
let ItemPrice = class ItemPrice extends Struct {
|
|
1716
1919
|
};
|
|
1717
1920
|
__decorate([
|
|
1718
1921
|
Struct.field(UInt16)
|
|
1719
|
-
],
|
|
1922
|
+
], ItemPrice.prototype, "id", void 0);
|
|
1720
1923
|
__decorate([
|
|
1721
|
-
Struct.field(
|
|
1722
|
-
],
|
|
1924
|
+
Struct.field(Item)
|
|
1925
|
+
], ItemPrice.prototype, "item", void 0);
|
|
1723
1926
|
__decorate([
|
|
1724
1927
|
Struct.field(UInt32)
|
|
1725
|
-
],
|
|
1928
|
+
], ItemPrice.prototype, "price", void 0);
|
|
1726
1929
|
__decorate([
|
|
1727
1930
|
Struct.field(UInt16)
|
|
1728
|
-
],
|
|
1729
|
-
|
|
1730
|
-
Struct.type('
|
|
1731
|
-
],
|
|
1931
|
+
], ItemPrice.prototype, "supply", void 0);
|
|
1932
|
+
ItemPrice = __decorate([
|
|
1933
|
+
Struct.type('ItemPrice')
|
|
1934
|
+
], ItemPrice);
|
|
1732
1935
|
|
|
1733
1936
|
function getCurrentEpoch(game) {
|
|
1734
1937
|
const current = new Date().getTime();
|
|
@@ -1758,1188 +1961,2158 @@ function hash512(seed, string) {
|
|
|
1758
1961
|
}
|
|
1759
1962
|
|
|
1760
1963
|
var syllables = [
|
|
1964
|
+
"A",
|
|
1965
|
+
"Ab",
|
|
1966
|
+
"Abl",
|
|
1967
|
+
"Abr",
|
|
1968
|
+
"Ach",
|
|
1969
|
+
"Acr",
|
|
1970
|
+
"Ad",
|
|
1971
|
+
"Ae",
|
|
1972
|
+
"Aed",
|
|
1761
1973
|
"Aeg",
|
|
1974
|
+
"Aek",
|
|
1762
1975
|
"Ael",
|
|
1976
|
+
"Aem",
|
|
1977
|
+
"Aen",
|
|
1978
|
+
"Aeon",
|
|
1979
|
+
"Aep",
|
|
1980
|
+
"Aer",
|
|
1981
|
+
"Aes",
|
|
1982
|
+
"Aesk",
|
|
1763
1983
|
"Aet",
|
|
1984
|
+
"Aev",
|
|
1985
|
+
"Ag",
|
|
1986
|
+
"Agr",
|
|
1987
|
+
"Ahl",
|
|
1988
|
+
"Ai",
|
|
1764
1989
|
"Ail",
|
|
1990
|
+
"Ain",
|
|
1765
1991
|
"Ais",
|
|
1992
|
+
"Ak",
|
|
1766
1993
|
"Aka",
|
|
1767
1994
|
"Al",
|
|
1995
|
+
"Alb",
|
|
1996
|
+
"Ald",
|
|
1997
|
+
"Alg",
|
|
1998
|
+
"Alk",
|
|
1999
|
+
"Alm",
|
|
2000
|
+
"Alt",
|
|
2001
|
+
"Alv",
|
|
2002
|
+
"Am",
|
|
2003
|
+
"Amb",
|
|
1768
2004
|
"Ami",
|
|
1769
|
-
"
|
|
2005
|
+
"Amp",
|
|
2006
|
+
"An",
|
|
2007
|
+
"Anc",
|
|
2008
|
+
"Ang",
|
|
1770
2009
|
"Ank",
|
|
2010
|
+
"Ann",
|
|
2011
|
+
"Ant",
|
|
2012
|
+
"Ap",
|
|
2013
|
+
"Aph",
|
|
2014
|
+
"Aqu",
|
|
2015
|
+
"Ar",
|
|
1771
2016
|
"Ara",
|
|
2017
|
+
"Arb",
|
|
2018
|
+
"Arc",
|
|
1772
2019
|
"Ard",
|
|
2020
|
+
"Arg",
|
|
1773
2021
|
"Ari",
|
|
1774
2022
|
"Arl",
|
|
2023
|
+
"Arm",
|
|
2024
|
+
"Arn",
|
|
1775
2025
|
"Arr",
|
|
2026
|
+
"Ars",
|
|
2027
|
+
"Art",
|
|
2028
|
+
"As",
|
|
1776
2029
|
"Asa",
|
|
2030
|
+
"Ash",
|
|
2031
|
+
"Asp",
|
|
2032
|
+
"Ast",
|
|
2033
|
+
"Astr",
|
|
2034
|
+
"At",
|
|
1777
2035
|
"Ath",
|
|
2036
|
+
"Atr",
|
|
2037
|
+
"Aud",
|
|
2038
|
+
"Aug",
|
|
2039
|
+
"Aul",
|
|
2040
|
+
"Aum",
|
|
2041
|
+
"Aun",
|
|
2042
|
+
"Aur",
|
|
2043
|
+
"Aus",
|
|
2044
|
+
"Av",
|
|
2045
|
+
"Avn",
|
|
2046
|
+
"Ax",
|
|
1778
2047
|
"Ayn",
|
|
2048
|
+
"Az",
|
|
1779
2049
|
"Aza",
|
|
2050
|
+
"Ba",
|
|
2051
|
+
"Bad",
|
|
2052
|
+
"Bae",
|
|
2053
|
+
"Bael",
|
|
2054
|
+
"Bal",
|
|
2055
|
+
"Bale",
|
|
2056
|
+
"Balm",
|
|
2057
|
+
"Balv",
|
|
2058
|
+
"Ban",
|
|
2059
|
+
"Bane",
|
|
2060
|
+
"Bar",
|
|
2061
|
+
"Bark",
|
|
1780
2062
|
"Bas",
|
|
2063
|
+
"Bask",
|
|
2064
|
+
"Bast",
|
|
1781
2065
|
"Bay",
|
|
2066
|
+
"Be",
|
|
1782
2067
|
"Bel",
|
|
2068
|
+
"Beld",
|
|
2069
|
+
"Belk",
|
|
2070
|
+
"Belm",
|
|
2071
|
+
"Belv",
|
|
1783
2072
|
"Ben",
|
|
1784
|
-
"
|
|
2073
|
+
"Ber",
|
|
2074
|
+
"Berm",
|
|
2075
|
+
"Bern",
|
|
2076
|
+
"Bet",
|
|
2077
|
+
"Bex",
|
|
2078
|
+
"Bi",
|
|
2079
|
+
"Bin",
|
|
2080
|
+
"Bir",
|
|
2081
|
+
"Birk",
|
|
1785
2082
|
"Bla",
|
|
2083
|
+
"Blak",
|
|
2084
|
+
"Blas",
|
|
2085
|
+
"Blaz",
|
|
2086
|
+
"Ble",
|
|
2087
|
+
"Bli",
|
|
2088
|
+
"Blin",
|
|
2089
|
+
"Blo",
|
|
2090
|
+
"Blor",
|
|
2091
|
+
"Blu",
|
|
1786
2092
|
"Bly",
|
|
2093
|
+
"Bo",
|
|
1787
2094
|
"Bod",
|
|
1788
2095
|
"Boe",
|
|
2096
|
+
"Bol",
|
|
2097
|
+
"Bolk",
|
|
2098
|
+
"Bolm",
|
|
2099
|
+
"Bolt",
|
|
1789
2100
|
"Bon",
|
|
1790
2101
|
"Bor",
|
|
1791
2102
|
"Bra",
|
|
1792
|
-
"
|
|
1793
|
-
"
|
|
2103
|
+
"Bral",
|
|
2104
|
+
"Bram",
|
|
2105
|
+
"Bran",
|
|
2106
|
+
"Bre",
|
|
2107
|
+
"Brel",
|
|
2108
|
+
"Bren",
|
|
1794
2109
|
"Bri",
|
|
2110
|
+
"Brim",
|
|
2111
|
+
"Brin",
|
|
1795
2112
|
"Bro",
|
|
2113
|
+
"Bron",
|
|
2114
|
+
"Bru",
|
|
2115
|
+
"Brul",
|
|
2116
|
+
"Bry",
|
|
1796
2117
|
"Bryn",
|
|
1797
|
-
"
|
|
2118
|
+
"Bul",
|
|
2119
|
+
"Bun",
|
|
2120
|
+
"Bur",
|
|
2121
|
+
"Busk",
|
|
2122
|
+
"Byr",
|
|
2123
|
+
"Byx",
|
|
2124
|
+
"Ca",
|
|
1798
2125
|
"Cael",
|
|
2126
|
+
"Caer",
|
|
1799
2127
|
"Cal",
|
|
2128
|
+
"Cald",
|
|
2129
|
+
"Calv",
|
|
1800
2130
|
"Cam",
|
|
2131
|
+
"Cand",
|
|
1801
2132
|
"Car",
|
|
2133
|
+
"Carn",
|
|
2134
|
+
"Cas",
|
|
2135
|
+
"Ce",
|
|
2136
|
+
"Cel",
|
|
2137
|
+
"Celd",
|
|
2138
|
+
"Celm",
|
|
1802
2139
|
"Cen",
|
|
2140
|
+
"Ceph",
|
|
1803
2141
|
"Cer",
|
|
1804
|
-
"
|
|
1805
|
-
"
|
|
2142
|
+
"Cern",
|
|
2143
|
+
"Cex",
|
|
2144
|
+
"Cha",
|
|
2145
|
+
"Chal",
|
|
2146
|
+
"Char",
|
|
2147
|
+
"Che",
|
|
2148
|
+
"Cher",
|
|
2149
|
+
"Chi",
|
|
2150
|
+
"Chir",
|
|
2151
|
+
"Cho",
|
|
2152
|
+
"Chol",
|
|
2153
|
+
"Chor",
|
|
2154
|
+
"Chr",
|
|
2155
|
+
"Chra",
|
|
2156
|
+
"Chre",
|
|
2157
|
+
"Chri",
|
|
2158
|
+
"Chro",
|
|
2159
|
+
"Chru",
|
|
2160
|
+
"Chyl",
|
|
2161
|
+
"Ci",
|
|
1806
2162
|
"Cil",
|
|
2163
|
+
"Cilk",
|
|
1807
2164
|
"Cin",
|
|
2165
|
+
"Cind",
|
|
2166
|
+
"Cir",
|
|
2167
|
+
"Cla",
|
|
2168
|
+
"Clan",
|
|
2169
|
+
"Clar",
|
|
2170
|
+
"Cle",
|
|
1808
2171
|
"Cli",
|
|
1809
2172
|
"Clo",
|
|
2173
|
+
"Cly",
|
|
2174
|
+
"Clyn",
|
|
2175
|
+
"Co",
|
|
2176
|
+
"Col",
|
|
2177
|
+
"Colk",
|
|
2178
|
+
"Coln",
|
|
2179
|
+
"Con",
|
|
2180
|
+
"Cond",
|
|
2181
|
+
"Cor",
|
|
2182
|
+
"Cord",
|
|
2183
|
+
"Cos",
|
|
2184
|
+
"Cra",
|
|
2185
|
+
"Cral",
|
|
2186
|
+
"Cran",
|
|
1810
2187
|
"Cre",
|
|
2188
|
+
"Crel",
|
|
2189
|
+
"Cres",
|
|
2190
|
+
"Cri",
|
|
2191
|
+
"Crin",
|
|
1811
2192
|
"Cro",
|
|
1812
|
-
"
|
|
2193
|
+
"Cron",
|
|
2194
|
+
"Cru",
|
|
2195
|
+
"Crul",
|
|
2196
|
+
"Cry",
|
|
2197
|
+
"Cryp",
|
|
2198
|
+
"Cu",
|
|
2199
|
+
"Cul",
|
|
2200
|
+
"Culs",
|
|
2201
|
+
"Cur",
|
|
2202
|
+
"Curn",
|
|
1813
2203
|
"Cyn",
|
|
1814
|
-
"
|
|
1815
|
-
"
|
|
2204
|
+
"Cyr",
|
|
2205
|
+
"Cyx",
|
|
2206
|
+
"Da",
|
|
2207
|
+
"Dael",
|
|
1816
2208
|
"Dal",
|
|
1817
|
-
"
|
|
2209
|
+
"Dalk",
|
|
2210
|
+
"Dalv",
|
|
2211
|
+
"Dam",
|
|
2212
|
+
"Dan",
|
|
2213
|
+
"Dand",
|
|
2214
|
+
"Dar",
|
|
2215
|
+
"Darm",
|
|
2216
|
+
"Das",
|
|
2217
|
+
"Dask",
|
|
2218
|
+
"Dast",
|
|
2219
|
+
"Dav",
|
|
2220
|
+
"Dawn",
|
|
2221
|
+
"De",
|
|
1818
2222
|
"Del",
|
|
1819
|
-
"
|
|
1820
|
-
"
|
|
1821
|
-
"
|
|
2223
|
+
"Delm",
|
|
2224
|
+
"Deln",
|
|
2225
|
+
"Delv",
|
|
2226
|
+
"Dem",
|
|
2227
|
+
"Den",
|
|
2228
|
+
"Dend",
|
|
2229
|
+
"Der",
|
|
2230
|
+
"Derm",
|
|
2231
|
+
"Dern",
|
|
2232
|
+
"Des",
|
|
2233
|
+
"Dest",
|
|
2234
|
+
"Dev",
|
|
2235
|
+
"Dex",
|
|
2236
|
+
"Dha",
|
|
2237
|
+
"Dhal",
|
|
2238
|
+
"Dho",
|
|
2239
|
+
"Dhor",
|
|
2240
|
+
"Dhra",
|
|
2241
|
+
"Dhre",
|
|
2242
|
+
"Dhri",
|
|
2243
|
+
"Dhro",
|
|
2244
|
+
"Dhru",
|
|
2245
|
+
"Di",
|
|
2246
|
+
"Dilk",
|
|
2247
|
+
"Dim",
|
|
2248
|
+
"Din",
|
|
2249
|
+
"Dind",
|
|
2250
|
+
"Dir",
|
|
2251
|
+
"Dirl",
|
|
2252
|
+
"Dis",
|
|
2253
|
+
"Div",
|
|
2254
|
+
"Do",
|
|
2255
|
+
"Dol",
|
|
2256
|
+
"Dolk",
|
|
2257
|
+
"Dom",
|
|
1822
2258
|
"Don",
|
|
1823
2259
|
"Dor",
|
|
2260
|
+
"Dorn",
|
|
2261
|
+
"Dos",
|
|
2262
|
+
"Dra",
|
|
2263
|
+
"Dral",
|
|
2264
|
+
"Dran",
|
|
2265
|
+
"Dre",
|
|
2266
|
+
"Dren",
|
|
2267
|
+
"Dri",
|
|
2268
|
+
"Drin",
|
|
2269
|
+
"Dro",
|
|
2270
|
+
"Dron",
|
|
2271
|
+
"Dru",
|
|
2272
|
+
"Drul",
|
|
1824
2273
|
"Dry",
|
|
1825
|
-
"
|
|
2274
|
+
"Dryn",
|
|
2275
|
+
"Du",
|
|
2276
|
+
"Duel",
|
|
2277
|
+
"Dul",
|
|
2278
|
+
"Dulk",
|
|
2279
|
+
"Dulm",
|
|
2280
|
+
"Dun",
|
|
2281
|
+
"Dur",
|
|
2282
|
+
"Durn",
|
|
2283
|
+
"Dusk",
|
|
1826
2284
|
"Dyn",
|
|
2285
|
+
"Dyr",
|
|
2286
|
+
"Dyst",
|
|
2287
|
+
"Dyx",
|
|
2288
|
+
"E",
|
|
1827
2289
|
"Ean",
|
|
1828
|
-
"
|
|
2290
|
+
"Earl",
|
|
2291
|
+
"Eb",
|
|
2292
|
+
"Ebon",
|
|
2293
|
+
"Ech",
|
|
2294
|
+
"Ecl",
|
|
2295
|
+
"Ed",
|
|
2296
|
+
"Edr",
|
|
2297
|
+
"Ef",
|
|
2298
|
+
"Eg",
|
|
1829
2299
|
"Eil",
|
|
2300
|
+
"Eild",
|
|
2301
|
+
"Ein",
|
|
1830
2302
|
"Eir",
|
|
2303
|
+
"Eis",
|
|
2304
|
+
"Ek",
|
|
1831
2305
|
"El",
|
|
1832
|
-
"
|
|
2306
|
+
"Elb",
|
|
1833
2307
|
"Eld",
|
|
1834
|
-
"
|
|
1835
|
-
"
|
|
1836
|
-
"
|
|
2308
|
+
"Elk",
|
|
2309
|
+
"Elm",
|
|
2310
|
+
"Elt",
|
|
2311
|
+
"Elv",
|
|
2312
|
+
"Em",
|
|
2313
|
+
"Emb",
|
|
2314
|
+
"Emp",
|
|
2315
|
+
"En",
|
|
2316
|
+
"Enc",
|
|
1837
2317
|
"End",
|
|
2318
|
+
"Eng",
|
|
2319
|
+
"Enk",
|
|
1838
2320
|
"Enn",
|
|
2321
|
+
"Ent",
|
|
2322
|
+
"Enth",
|
|
2323
|
+
"Ep",
|
|
2324
|
+
"Eph",
|
|
2325
|
+
"Er",
|
|
2326
|
+
"Erd",
|
|
2327
|
+
"Erg",
|
|
1839
2328
|
"Eri",
|
|
2329
|
+
"Erk",
|
|
2330
|
+
"Erl",
|
|
1840
2331
|
"Ern",
|
|
1841
|
-
"
|
|
1842
|
-
"
|
|
1843
|
-
"
|
|
2332
|
+
"Erv",
|
|
2333
|
+
"Es",
|
|
2334
|
+
"Esh",
|
|
2335
|
+
"Esk",
|
|
2336
|
+
"Esr",
|
|
2337
|
+
"Est",
|
|
2338
|
+
"Estr",
|
|
2339
|
+
"Et",
|
|
2340
|
+
"Eth",
|
|
2341
|
+
"Eu",
|
|
2342
|
+
"Eul",
|
|
2343
|
+
"Eur",
|
|
2344
|
+
"Ev",
|
|
2345
|
+
"Evi",
|
|
2346
|
+
"Evr",
|
|
2347
|
+
"Ex",
|
|
2348
|
+
"Exl",
|
|
2349
|
+
"Exr",
|
|
2350
|
+
"Eyn",
|
|
2351
|
+
"Ez",
|
|
2352
|
+
"Fa",
|
|
1844
2353
|
"Fae",
|
|
1845
2354
|
"Fael",
|
|
1846
2355
|
"Fal",
|
|
1847
|
-
"
|
|
2356
|
+
"Falk",
|
|
2357
|
+
"Falm",
|
|
2358
|
+
"Falv",
|
|
2359
|
+
"Fan",
|
|
2360
|
+
"Fand",
|
|
2361
|
+
"Farn",
|
|
2362
|
+
"Fas",
|
|
2363
|
+
"Fe",
|
|
2364
|
+
"Felm",
|
|
2365
|
+
"Feln",
|
|
2366
|
+
"Felv",
|
|
1848
2367
|
"Fen",
|
|
1849
|
-
"
|
|
1850
|
-
"
|
|
2368
|
+
"Fend",
|
|
2369
|
+
"Fer",
|
|
2370
|
+
"Fern",
|
|
2371
|
+
"Fest",
|
|
2372
|
+
"Fex",
|
|
2373
|
+
"Fi",
|
|
2374
|
+
"Fil",
|
|
2375
|
+
"Fild",
|
|
2376
|
+
"Filk",
|
|
2377
|
+
"Fin",
|
|
2378
|
+
"Fir",
|
|
2379
|
+
"Firn",
|
|
2380
|
+
"Fla",
|
|
2381
|
+
"Flar",
|
|
2382
|
+
"Fle",
|
|
2383
|
+
"Flen",
|
|
2384
|
+
"Fli",
|
|
2385
|
+
"Flin",
|
|
2386
|
+
"Flo",
|
|
2387
|
+
"Flor",
|
|
1851
2388
|
"Flu",
|
|
1852
|
-
"
|
|
1853
|
-
"
|
|
2389
|
+
"Fly",
|
|
2390
|
+
"Flyn",
|
|
2391
|
+
"Fo",
|
|
2392
|
+
"Fol",
|
|
2393
|
+
"Fon",
|
|
2394
|
+
"Forn",
|
|
2395
|
+
"Fra",
|
|
2396
|
+
"Fral",
|
|
2397
|
+
"Fran",
|
|
1854
2398
|
"Fre",
|
|
2399
|
+
"Fren",
|
|
2400
|
+
"Fri",
|
|
2401
|
+
"Frin",
|
|
1855
2402
|
"Fro",
|
|
2403
|
+
"Fron",
|
|
2404
|
+
"Frul",
|
|
2405
|
+
"Fry",
|
|
2406
|
+
"Fryn",
|
|
2407
|
+
"Fu",
|
|
2408
|
+
"Ful",
|
|
2409
|
+
"Fulk",
|
|
2410
|
+
"Fulm",
|
|
2411
|
+
"Fur",
|
|
2412
|
+
"Furn",
|
|
1856
2413
|
"Fyn",
|
|
1857
|
-
"
|
|
2414
|
+
"Fyr",
|
|
2415
|
+
"Fyx",
|
|
2416
|
+
"Ga",
|
|
1858
2417
|
"Gael",
|
|
1859
2418
|
"Gal",
|
|
2419
|
+
"Gald",
|
|
2420
|
+
"Galk",
|
|
2421
|
+
"Galm",
|
|
2422
|
+
"Galv",
|
|
1860
2423
|
"Gan",
|
|
2424
|
+
"Gand",
|
|
1861
2425
|
"Gar",
|
|
1862
|
-
"
|
|
1863
|
-
"
|
|
2426
|
+
"Garn",
|
|
2427
|
+
"Gas",
|
|
2428
|
+
"Gast",
|
|
2429
|
+
"Ge",
|
|
2430
|
+
"Gel",
|
|
2431
|
+
"Geld",
|
|
2432
|
+
"Gelm",
|
|
2433
|
+
"Geln",
|
|
2434
|
+
"Gelv",
|
|
2435
|
+
"Gen",
|
|
2436
|
+
"Gend",
|
|
2437
|
+
"Ger",
|
|
2438
|
+
"Germ",
|
|
2439
|
+
"Gest",
|
|
2440
|
+
"Gex",
|
|
2441
|
+
"Gha",
|
|
2442
|
+
"Ghal",
|
|
2443
|
+
"Ghar",
|
|
2444
|
+
"Ghe",
|
|
2445
|
+
"Ghen",
|
|
2446
|
+
"Ghi",
|
|
2447
|
+
"Gho",
|
|
2448
|
+
"Ghor",
|
|
2449
|
+
"Gi",
|
|
1864
2450
|
"Gil",
|
|
2451
|
+
"Gild",
|
|
2452
|
+
"Gilk",
|
|
1865
2453
|
"Gin",
|
|
2454
|
+
"Gind",
|
|
2455
|
+
"Gir",
|
|
1866
2456
|
"Gla",
|
|
2457
|
+
"Glan",
|
|
2458
|
+
"Gle",
|
|
2459
|
+
"Glen",
|
|
2460
|
+
"Gli",
|
|
2461
|
+
"Glin",
|
|
2462
|
+
"Glo",
|
|
2463
|
+
"Glon",
|
|
2464
|
+
"Gly",
|
|
2465
|
+
"Glyn",
|
|
2466
|
+
"Gna",
|
|
2467
|
+
"Gnar",
|
|
2468
|
+
"Gne",
|
|
2469
|
+
"Gnel",
|
|
2470
|
+
"Gni",
|
|
2471
|
+
"Gno",
|
|
2472
|
+
"Go",
|
|
2473
|
+
"Gol",
|
|
2474
|
+
"Golk",
|
|
2475
|
+
"Goln",
|
|
2476
|
+
"Gon",
|
|
2477
|
+
"Gond",
|
|
1867
2478
|
"Gor",
|
|
2479
|
+
"Gorm",
|
|
2480
|
+
"Gorn",
|
|
2481
|
+
"Gra",
|
|
2482
|
+
"Gral",
|
|
2483
|
+
"Gran",
|
|
1868
2484
|
"Gre",
|
|
2485
|
+
"Gren",
|
|
2486
|
+
"Gri",
|
|
2487
|
+
"Gril",
|
|
2488
|
+
"Grin",
|
|
1869
2489
|
"Gro",
|
|
2490
|
+
"Gron",
|
|
1870
2491
|
"Gru",
|
|
2492
|
+
"Grul",
|
|
2493
|
+
"Gul",
|
|
2494
|
+
"Gulk",
|
|
2495
|
+
"Gun",
|
|
2496
|
+
"Gur",
|
|
2497
|
+
"Gurn",
|
|
2498
|
+
"Gyn",
|
|
2499
|
+
"Gyr",
|
|
2500
|
+
"Gyx",
|
|
2501
|
+
"Ha",
|
|
2502
|
+
"Hael",
|
|
1871
2503
|
"Hal",
|
|
2504
|
+
"Halk",
|
|
2505
|
+
"Halm",
|
|
2506
|
+
"Halv",
|
|
2507
|
+
"Han",
|
|
1872
2508
|
"Har",
|
|
1873
|
-
"
|
|
2509
|
+
"Harn",
|
|
2510
|
+
"Hask",
|
|
2511
|
+
"Hast",
|
|
1874
2512
|
"Hav",
|
|
1875
|
-
"
|
|
2513
|
+
"He",
|
|
2514
|
+
"Hel",
|
|
2515
|
+
"Helk",
|
|
2516
|
+
"Heln",
|
|
2517
|
+
"Helv",
|
|
2518
|
+
"Hen",
|
|
2519
|
+
"Hend",
|
|
2520
|
+
"Herm",
|
|
2521
|
+
"Hex",
|
|
2522
|
+
"Hi",
|
|
1876
2523
|
"Hil",
|
|
2524
|
+
"Hild",
|
|
2525
|
+
"Hilk",
|
|
2526
|
+
"Hilm",
|
|
1877
2527
|
"Hin",
|
|
1878
2528
|
"Hir",
|
|
2529
|
+
"Hirn",
|
|
2530
|
+
"Ho",
|
|
1879
2531
|
"Hol",
|
|
2532
|
+
"Holk",
|
|
2533
|
+
"Holm",
|
|
2534
|
+
"Hon",
|
|
2535
|
+
"Hond",
|
|
1880
2536
|
"Hor",
|
|
1881
|
-
"
|
|
1882
|
-
"
|
|
1883
|
-
"
|
|
1884
|
-
"
|
|
1885
|
-
"
|
|
1886
|
-
"
|
|
2537
|
+
"Hu",
|
|
2538
|
+
"Hul",
|
|
2539
|
+
"Hulm",
|
|
2540
|
+
"Hun",
|
|
2541
|
+
"Hur",
|
|
2542
|
+
"Hurn",
|
|
2543
|
+
"Hyn",
|
|
2544
|
+
"Hyr",
|
|
2545
|
+
"Hyx",
|
|
2546
|
+
"I",
|
|
2547
|
+
"Ib",
|
|
2548
|
+
"Ich",
|
|
2549
|
+
"Id",
|
|
2550
|
+
"If",
|
|
2551
|
+
"Ig",
|
|
2552
|
+
"Ik",
|
|
2553
|
+
"Il",
|
|
2554
|
+
"Ild",
|
|
2555
|
+
"Ilk",
|
|
1887
2556
|
"Ilm",
|
|
1888
|
-
"
|
|
2557
|
+
"Iln",
|
|
2558
|
+
"Ilt",
|
|
2559
|
+
"Im",
|
|
2560
|
+
"Imb",
|
|
2561
|
+
"Imp",
|
|
2562
|
+
"In",
|
|
2563
|
+
"Incl",
|
|
1889
2564
|
"Ind",
|
|
1890
|
-
"
|
|
1891
|
-
"
|
|
1892
|
-
"
|
|
2565
|
+
"Ings",
|
|
2566
|
+
"Ink",
|
|
2567
|
+
"Inl",
|
|
2568
|
+
"Inn",
|
|
2569
|
+
"Int",
|
|
2570
|
+
"Inv",
|
|
2571
|
+
"Io",
|
|
2572
|
+
"Ir",
|
|
2573
|
+
"Ird",
|
|
2574
|
+
"Irk",
|
|
2575
|
+
"Irl",
|
|
2576
|
+
"Irm",
|
|
2577
|
+
"Irn",
|
|
2578
|
+
"Is",
|
|
2579
|
+
"Ish",
|
|
2580
|
+
"Isk",
|
|
1893
2581
|
"Isl",
|
|
2582
|
+
"Ism",
|
|
1894
2583
|
"Ist",
|
|
2584
|
+
"It",
|
|
1895
2585
|
"Ith",
|
|
2586
|
+
"Iv",
|
|
2587
|
+
"Ivr",
|
|
2588
|
+
"Ix",
|
|
2589
|
+
"Iz",
|
|
2590
|
+
"Ja",
|
|
2591
|
+
"Jael",
|
|
2592
|
+
"Jal",
|
|
2593
|
+
"Jalk",
|
|
2594
|
+
"Jalm",
|
|
2595
|
+
"Jalv",
|
|
2596
|
+
"Jan",
|
|
2597
|
+
"Jand",
|
|
1896
2598
|
"Jar",
|
|
2599
|
+
"Jarn",
|
|
1897
2600
|
"Jas",
|
|
1898
|
-
"
|
|
2601
|
+
"Je",
|
|
2602
|
+
"Jelk",
|
|
2603
|
+
"Jeln",
|
|
1899
2604
|
"Jen",
|
|
1900
|
-
"
|
|
2605
|
+
"Jer",
|
|
2606
|
+
"Jern",
|
|
2607
|
+
"Jex",
|
|
2608
|
+
"Ji",
|
|
2609
|
+
"Jild",
|
|
2610
|
+
"Jilk",
|
|
2611
|
+
"Jin",
|
|
2612
|
+
"Jir",
|
|
2613
|
+
"Jirn",
|
|
2614
|
+
"Jo",
|
|
1901
2615
|
"Jol",
|
|
2616
|
+
"Jolk",
|
|
2617
|
+
"Joln",
|
|
1902
2618
|
"Jon",
|
|
1903
2619
|
"Jor",
|
|
1904
|
-
"
|
|
2620
|
+
"Jorn",
|
|
2621
|
+
"Ju",
|
|
2622
|
+
"Jul",
|
|
2623
|
+
"Julk",
|
|
2624
|
+
"Julm",
|
|
1905
2625
|
"Jun",
|
|
2626
|
+
"Jur",
|
|
2627
|
+
"Jurn",
|
|
1906
2628
|
"Jyn",
|
|
1907
|
-
"
|
|
1908
|
-
"
|
|
2629
|
+
"Jyr",
|
|
2630
|
+
"Jyx",
|
|
2631
|
+
"Ka",
|
|
2632
|
+
"Kael",
|
|
1909
2633
|
"Kal",
|
|
2634
|
+
"Kald",
|
|
2635
|
+
"Kalm",
|
|
2636
|
+
"Kalv",
|
|
2637
|
+
"Kam",
|
|
2638
|
+
"Kan",
|
|
2639
|
+
"Kand",
|
|
2640
|
+
"Kar",
|
|
2641
|
+
"Karn",
|
|
1910
2642
|
"Kas",
|
|
1911
|
-
"
|
|
2643
|
+
"Kask",
|
|
2644
|
+
"Kast",
|
|
2645
|
+
"Ke",
|
|
1912
2646
|
"Kel",
|
|
2647
|
+
"Keld",
|
|
2648
|
+
"Kelm",
|
|
2649
|
+
"Keln",
|
|
2650
|
+
"Kelv",
|
|
1913
2651
|
"Ken",
|
|
2652
|
+
"Kend",
|
|
1914
2653
|
"Ker",
|
|
1915
|
-
"
|
|
2654
|
+
"Kern",
|
|
2655
|
+
"Kes",
|
|
2656
|
+
"Kest",
|
|
2657
|
+
"Kex",
|
|
1916
2658
|
"Kha",
|
|
2659
|
+
"Khal",
|
|
2660
|
+
"Khan",
|
|
2661
|
+
"Khar",
|
|
2662
|
+
"Khe",
|
|
2663
|
+
"Khen",
|
|
2664
|
+
"Khi",
|
|
2665
|
+
"Kho",
|
|
2666
|
+
"Khor",
|
|
2667
|
+
"Khul",
|
|
2668
|
+
"Ki",
|
|
2669
|
+
"Kil",
|
|
2670
|
+
"Kild",
|
|
2671
|
+
"Kilk",
|
|
2672
|
+
"Kilm",
|
|
2673
|
+
"Kin",
|
|
2674
|
+
"Kir",
|
|
2675
|
+
"Kirn",
|
|
2676
|
+
"Kis",
|
|
2677
|
+
"Kla",
|
|
2678
|
+
"Klan",
|
|
2679
|
+
"Kle",
|
|
2680
|
+
"Klen",
|
|
2681
|
+
"Kli",
|
|
2682
|
+
"Klin",
|
|
2683
|
+
"Klo",
|
|
2684
|
+
"Klon",
|
|
2685
|
+
"Kly",
|
|
2686
|
+
"Kna",
|
|
2687
|
+
"Knar",
|
|
2688
|
+
"Kne",
|
|
2689
|
+
"Knel",
|
|
2690
|
+
"Kni",
|
|
2691
|
+
"Knir",
|
|
2692
|
+
"Ko",
|
|
1917
2693
|
"Kol",
|
|
2694
|
+
"Kolk",
|
|
2695
|
+
"Koln",
|
|
2696
|
+
"Kon",
|
|
2697
|
+
"Kond",
|
|
1918
2698
|
"Kor",
|
|
2699
|
+
"Kord",
|
|
2700
|
+
"Korn",
|
|
2701
|
+
"Kos",
|
|
2702
|
+
"Kra",
|
|
2703
|
+
"Kral",
|
|
2704
|
+
"Kran",
|
|
2705
|
+
"Kre",
|
|
2706
|
+
"Kren",
|
|
1919
2707
|
"Kri",
|
|
2708
|
+
"Kril",
|
|
2709
|
+
"Krin",
|
|
2710
|
+
"Kro",
|
|
2711
|
+
"Kron",
|
|
2712
|
+
"Kru",
|
|
2713
|
+
"Krul",
|
|
2714
|
+
"Kry",
|
|
2715
|
+
"Kryn",
|
|
2716
|
+
"Ku",
|
|
2717
|
+
"Kul",
|
|
2718
|
+
"Kulk",
|
|
2719
|
+
"Kulm",
|
|
2720
|
+
"Kun",
|
|
2721
|
+
"Kur",
|
|
2722
|
+
"Kurn",
|
|
1920
2723
|
"Kyn",
|
|
1921
|
-
"
|
|
2724
|
+
"Kyr",
|
|
2725
|
+
"Kyx",
|
|
2726
|
+
"La",
|
|
2727
|
+
"Lae",
|
|
2728
|
+
"Lael",
|
|
2729
|
+
"Lal",
|
|
2730
|
+
"Lald",
|
|
2731
|
+
"Lalm",
|
|
1922
2732
|
"Lam",
|
|
1923
2733
|
"Lan",
|
|
2734
|
+
"Lar",
|
|
2735
|
+
"Larn",
|
|
1924
2736
|
"Las",
|
|
2737
|
+
"Lask",
|
|
2738
|
+
"Lav",
|
|
2739
|
+
"Le",
|
|
2740
|
+
"Lel",
|
|
2741
|
+
"Leld",
|
|
2742
|
+
"Lelm",
|
|
2743
|
+
"Leln",
|
|
1925
2744
|
"Lem",
|
|
1926
2745
|
"Len",
|
|
1927
|
-
"Leo",
|
|
1928
2746
|
"Ler",
|
|
2747
|
+
"Lerm",
|
|
2748
|
+
"Lern",
|
|
1929
2749
|
"Les",
|
|
2750
|
+
"Lev",
|
|
1930
2751
|
"Lex",
|
|
1931
|
-
"
|
|
1932
|
-
"
|
|
2752
|
+
"Li",
|
|
2753
|
+
"Lild",
|
|
2754
|
+
"Lilk",
|
|
2755
|
+
"Lilm",
|
|
1933
2756
|
"Lim",
|
|
2757
|
+
"Lin",
|
|
2758
|
+
"Lind",
|
|
2759
|
+
"Lir",
|
|
2760
|
+
"Lirn",
|
|
1934
2761
|
"Lis",
|
|
1935
|
-
"
|
|
1936
|
-
"
|
|
2762
|
+
"Lo",
|
|
2763
|
+
"Lol",
|
|
2764
|
+
"Lolk",
|
|
2765
|
+
"Loln",
|
|
2766
|
+
"Lon",
|
|
2767
|
+
"Lond",
|
|
1937
2768
|
"Lor",
|
|
1938
|
-
"
|
|
1939
|
-
"
|
|
2769
|
+
"Lorn",
|
|
2770
|
+
"Los",
|
|
2771
|
+
"Lu",
|
|
2772
|
+
"Lul",
|
|
2773
|
+
"Lulk",
|
|
2774
|
+
"Lulm",
|
|
1940
2775
|
"Lum",
|
|
2776
|
+
"Lun",
|
|
2777
|
+
"Lur",
|
|
2778
|
+
"Lurn",
|
|
2779
|
+
"Lux",
|
|
1941
2780
|
"Lyn",
|
|
2781
|
+
"Lyr",
|
|
1942
2782
|
"Lys",
|
|
1943
|
-
"
|
|
2783
|
+
"Lyx",
|
|
2784
|
+
"Ma",
|
|
2785
|
+
"Mab",
|
|
2786
|
+
"Mael",
|
|
1944
2787
|
"Mal",
|
|
1945
|
-
"
|
|
2788
|
+
"Mald",
|
|
2789
|
+
"Malm",
|
|
2790
|
+
"Malv",
|
|
2791
|
+
"Mand",
|
|
1946
2792
|
"Mar",
|
|
2793
|
+
"Marn",
|
|
1947
2794
|
"Mas",
|
|
1948
|
-
"
|
|
1949
|
-
"
|
|
2795
|
+
"Mask",
|
|
2796
|
+
"Mav",
|
|
2797
|
+
"Me",
|
|
1950
2798
|
"Mel",
|
|
1951
|
-
"
|
|
2799
|
+
"Meld",
|
|
2800
|
+
"Melm",
|
|
2801
|
+
"Meln",
|
|
2802
|
+
"Melv",
|
|
1952
2803
|
"Mer",
|
|
2804
|
+
"Merm",
|
|
2805
|
+
"Mern",
|
|
2806
|
+
"Mes",
|
|
2807
|
+
"Mest",
|
|
2808
|
+
"Met",
|
|
2809
|
+
"Mex",
|
|
2810
|
+
"Mi",
|
|
2811
|
+
"Mil",
|
|
2812
|
+
"Mild",
|
|
2813
|
+
"Milm",
|
|
2814
|
+
"Min",
|
|
1953
2815
|
"Mir",
|
|
1954
|
-
"
|
|
2816
|
+
"Mirn",
|
|
2817
|
+
"Mis",
|
|
2818
|
+
"Mna",
|
|
2819
|
+
"Mne",
|
|
2820
|
+
"Mni",
|
|
2821
|
+
"Mno",
|
|
2822
|
+
"Mo",
|
|
2823
|
+
"Mol",
|
|
2824
|
+
"Molk",
|
|
2825
|
+
"Moln",
|
|
1955
2826
|
"Mon",
|
|
2827
|
+
"Mond",
|
|
1956
2828
|
"Mor",
|
|
1957
|
-
"
|
|
2829
|
+
"Mord",
|
|
2830
|
+
"Morn",
|
|
2831
|
+
"Mos",
|
|
2832
|
+
"Mu",
|
|
2833
|
+
"Mul",
|
|
2834
|
+
"Mulk",
|
|
2835
|
+
"Mulm",
|
|
2836
|
+
"Mun",
|
|
2837
|
+
"Mur",
|
|
2838
|
+
"Murn",
|
|
1958
2839
|
"Myn",
|
|
1959
2840
|
"Myr",
|
|
1960
|
-
"
|
|
2841
|
+
"Myx",
|
|
2842
|
+
"Na",
|
|
1961
2843
|
"Nae",
|
|
1962
|
-
"
|
|
2844
|
+
"Nael",
|
|
1963
2845
|
"Nal",
|
|
2846
|
+
"Nald",
|
|
2847
|
+
"Nalm",
|
|
2848
|
+
"Nalv",
|
|
1964
2849
|
"Nam",
|
|
1965
2850
|
"Nan",
|
|
2851
|
+
"Nand",
|
|
1966
2852
|
"Nar",
|
|
1967
|
-
"
|
|
1968
|
-
"
|
|
2853
|
+
"Narn",
|
|
2854
|
+
"Nas",
|
|
2855
|
+
"Nask",
|
|
2856
|
+
"Nast",
|
|
2857
|
+
"Nav",
|
|
2858
|
+
"Ne",
|
|
1969
2859
|
"Nel",
|
|
2860
|
+
"Neld",
|
|
2861
|
+
"Nelm",
|
|
2862
|
+
"Neln",
|
|
2863
|
+
"Nelv",
|
|
2864
|
+
"Nem",
|
|
1970
2865
|
"Nen",
|
|
2866
|
+
"Nend",
|
|
1971
2867
|
"Ner",
|
|
2868
|
+
"Nerm",
|
|
2869
|
+
"Nern",
|
|
1972
2870
|
"Nes",
|
|
1973
|
-
"
|
|
2871
|
+
"Nev",
|
|
1974
2872
|
"Nex",
|
|
1975
|
-
"
|
|
1976
|
-
"Nic",
|
|
2873
|
+
"Ni",
|
|
1977
2874
|
"Nil",
|
|
2875
|
+
"Nild",
|
|
2876
|
+
"Nilk",
|
|
2877
|
+
"Nilm",
|
|
2878
|
+
"Nim",
|
|
1978
2879
|
"Nin",
|
|
2880
|
+
"Nind",
|
|
1979
2881
|
"Nir",
|
|
1980
|
-
"
|
|
2882
|
+
"Nirn",
|
|
2883
|
+
"Nis",
|
|
2884
|
+
"Niv",
|
|
2885
|
+
"No",
|
|
1981
2886
|
"Nol",
|
|
2887
|
+
"Nolk",
|
|
2888
|
+
"Noln",
|
|
2889
|
+
"Nom",
|
|
2890
|
+
"Non",
|
|
2891
|
+
"Nond",
|
|
1982
2892
|
"Nor",
|
|
2893
|
+
"Nord",
|
|
2894
|
+
"Norn",
|
|
2895
|
+
"Nos",
|
|
1983
2896
|
"Nov",
|
|
2897
|
+
"Nu",
|
|
1984
2898
|
"Nul",
|
|
1985
|
-
"
|
|
1986
|
-
"
|
|
1987
|
-
"
|
|
1988
|
-
"
|
|
2899
|
+
"Nulk",
|
|
2900
|
+
"Nulm",
|
|
2901
|
+
"Num",
|
|
2902
|
+
"Nun",
|
|
2903
|
+
"Nur",
|
|
2904
|
+
"Nurn",
|
|
2905
|
+
"Nyx",
|
|
2906
|
+
"O",
|
|
2907
|
+
"Ob",
|
|
2908
|
+
"Obl",
|
|
2909
|
+
"Obr",
|
|
2910
|
+
"Och",
|
|
2911
|
+
"Ocr",
|
|
2912
|
+
"Od",
|
|
2913
|
+
"Odr",
|
|
1989
2914
|
"Oel",
|
|
1990
|
-
"
|
|
2915
|
+
"Oeln",
|
|
2916
|
+
"Oem",
|
|
2917
|
+
"Oer",
|
|
2918
|
+
"Oev",
|
|
2919
|
+
"Og",
|
|
2920
|
+
"Ogr",
|
|
2921
|
+
"Oi",
|
|
2922
|
+
"Oim",
|
|
2923
|
+
"Oin",
|
|
2924
|
+
"Oir",
|
|
1991
2925
|
"Ois",
|
|
1992
|
-
"
|
|
1993
|
-
"
|
|
1994
|
-
"
|
|
1995
|
-
"
|
|
1996
|
-
"
|
|
1997
|
-
"
|
|
1998
|
-
"
|
|
1999
|
-
"
|
|
2000
|
-
"
|
|
2001
|
-
"
|
|
2002
|
-
"
|
|
2003
|
-
"
|
|
2926
|
+
"Ok",
|
|
2927
|
+
"Ol",
|
|
2928
|
+
"Olb",
|
|
2929
|
+
"Olk",
|
|
2930
|
+
"Olm",
|
|
2931
|
+
"Olt",
|
|
2932
|
+
"Olv",
|
|
2933
|
+
"Om",
|
|
2934
|
+
"Omb",
|
|
2935
|
+
"Omp",
|
|
2936
|
+
"On",
|
|
2937
|
+
"Onc",
|
|
2938
|
+
"Ond",
|
|
2939
|
+
"Ong",
|
|
2940
|
+
"Onk",
|
|
2941
|
+
"Onl",
|
|
2942
|
+
"Op",
|
|
2943
|
+
"Opl",
|
|
2944
|
+
"Opr",
|
|
2945
|
+
"Or",
|
|
2946
|
+
"Orb",
|
|
2947
|
+
"Orc",
|
|
2948
|
+
"Ord",
|
|
2949
|
+
"Org",
|
|
2950
|
+
"Ork",
|
|
2951
|
+
"Orl",
|
|
2952
|
+
"Orm",
|
|
2004
2953
|
"Orn",
|
|
2005
|
-
"
|
|
2006
|
-
"
|
|
2954
|
+
"Ors",
|
|
2955
|
+
"Orv",
|
|
2956
|
+
"Os",
|
|
2957
|
+
"Osh",
|
|
2958
|
+
"Osk",
|
|
2959
|
+
"Ost",
|
|
2960
|
+
"Ostr",
|
|
2961
|
+
"Ot",
|
|
2007
2962
|
"Oth",
|
|
2008
|
-
"
|
|
2009
|
-
"
|
|
2010
|
-
"
|
|
2011
|
-
"
|
|
2012
|
-
"
|
|
2013
|
-
"
|
|
2014
|
-
"
|
|
2963
|
+
"Othr",
|
|
2964
|
+
"Ou",
|
|
2965
|
+
"Oul",
|
|
2966
|
+
"Oun",
|
|
2967
|
+
"Ous",
|
|
2968
|
+
"Ov",
|
|
2969
|
+
"Ox",
|
|
2970
|
+
"Oyn",
|
|
2971
|
+
"Oz",
|
|
2972
|
+
"Pa",
|
|
2973
|
+
"Pael",
|
|
2015
2974
|
"Pal",
|
|
2975
|
+
"Pald",
|
|
2976
|
+
"Palm",
|
|
2977
|
+
"Palv",
|
|
2016
2978
|
"Pan",
|
|
2979
|
+
"Pand",
|
|
2017
2980
|
"Par",
|
|
2981
|
+
"Parn",
|
|
2018
2982
|
"Pas",
|
|
2019
|
-
"
|
|
2020
|
-
"
|
|
2021
|
-
"
|
|
2022
|
-
"Ped",
|
|
2023
|
-
"Peg",
|
|
2983
|
+
"Pask",
|
|
2984
|
+
"Pav",
|
|
2985
|
+
"Pe",
|
|
2024
2986
|
"Pel",
|
|
2987
|
+
"Peld",
|
|
2988
|
+
"Pelm",
|
|
2989
|
+
"Peln",
|
|
2990
|
+
"Pelv",
|
|
2025
2991
|
"Pen",
|
|
2992
|
+
"Pend",
|
|
2026
2993
|
"Per",
|
|
2027
|
-
"
|
|
2028
|
-
"
|
|
2994
|
+
"Perm",
|
|
2995
|
+
"Pern",
|
|
2996
|
+
"Pex",
|
|
2029
2997
|
"Pha",
|
|
2030
2998
|
"Phal",
|
|
2031
2999
|
"Phan",
|
|
2032
3000
|
"Phar",
|
|
3001
|
+
"Phe",
|
|
3002
|
+
"Phen",
|
|
2033
3003
|
"Phi",
|
|
3004
|
+
"Phir",
|
|
2034
3005
|
"Pho",
|
|
2035
|
-
"
|
|
2036
|
-
"
|
|
2037
|
-
"
|
|
2038
|
-
"
|
|
2039
|
-
"
|
|
3006
|
+
"Phol",
|
|
3007
|
+
"Phor",
|
|
3008
|
+
"Phr",
|
|
3009
|
+
"Phra",
|
|
3010
|
+
"Phre",
|
|
3011
|
+
"Phri",
|
|
3012
|
+
"Phro",
|
|
3013
|
+
"Phru",
|
|
3014
|
+
"Phul",
|
|
3015
|
+
"Phyn",
|
|
3016
|
+
"Pi",
|
|
3017
|
+
"Pil",
|
|
3018
|
+
"Pild",
|
|
3019
|
+
"Pilk",
|
|
3020
|
+
"Pilm",
|
|
2040
3021
|
"Pin",
|
|
2041
|
-
"
|
|
2042
|
-
"Pip",
|
|
3022
|
+
"Pind",
|
|
2043
3023
|
"Pir",
|
|
2044
|
-
"
|
|
2045
|
-
"Pit",
|
|
2046
|
-
"Pix",
|
|
2047
|
-
"Piz",
|
|
3024
|
+
"Pirn",
|
|
2048
3025
|
"Pla",
|
|
3026
|
+
"Plan",
|
|
2049
3027
|
"Ple",
|
|
3028
|
+
"Plen",
|
|
2050
3029
|
"Pli",
|
|
3030
|
+
"Plin",
|
|
2051
3031
|
"Plo",
|
|
3032
|
+
"Plon",
|
|
3033
|
+
"Plu",
|
|
2052
3034
|
"Ply",
|
|
2053
|
-
"
|
|
3035
|
+
"Po",
|
|
2054
3036
|
"Pol",
|
|
3037
|
+
"Polk",
|
|
3038
|
+
"Poln",
|
|
2055
3039
|
"Pon",
|
|
2056
|
-
"Pop",
|
|
2057
3040
|
"Por",
|
|
3041
|
+
"Pord",
|
|
3042
|
+
"Porn",
|
|
2058
3043
|
"Pos",
|
|
2059
|
-
"Pot",
|
|
2060
|
-
"Pow",
|
|
2061
3044
|
"Pra",
|
|
3045
|
+
"Pral",
|
|
3046
|
+
"Pran",
|
|
2062
3047
|
"Pre",
|
|
3048
|
+
"Pren",
|
|
2063
3049
|
"Pri",
|
|
3050
|
+
"Pril",
|
|
3051
|
+
"Prin",
|
|
2064
3052
|
"Pro",
|
|
3053
|
+
"Pron",
|
|
3054
|
+
"Pru",
|
|
3055
|
+
"Prul",
|
|
2065
3056
|
"Pry",
|
|
2066
|
-
"
|
|
2067
|
-
"
|
|
2068
|
-
"
|
|
2069
|
-
"
|
|
3057
|
+
"Pryn",
|
|
3058
|
+
"Pu",
|
|
3059
|
+
"Pul",
|
|
3060
|
+
"Pulk",
|
|
3061
|
+
"Pulm",
|
|
2070
3062
|
"Pun",
|
|
2071
|
-
"Pup",
|
|
2072
3063
|
"Pur",
|
|
2073
|
-
"
|
|
2074
|
-
"
|
|
2075
|
-
"
|
|
3064
|
+
"Purn",
|
|
3065
|
+
"Pyn",
|
|
3066
|
+
"Pyr",
|
|
3067
|
+
"Pyx",
|
|
3068
|
+
"Qa",
|
|
3069
|
+
"Qael",
|
|
2076
3070
|
"Qal",
|
|
3071
|
+
"Qald",
|
|
3072
|
+
"Qalm",
|
|
3073
|
+
"Qan",
|
|
3074
|
+
"Qar",
|
|
3075
|
+
"Qarn",
|
|
3076
|
+
"Qe",
|
|
3077
|
+
"Qeld",
|
|
3078
|
+
"Qelm",
|
|
3079
|
+
"Qeln",
|
|
3080
|
+
"Qern",
|
|
3081
|
+
"Qha",
|
|
3082
|
+
"Qhe",
|
|
3083
|
+
"Qhi",
|
|
3084
|
+
"Qho",
|
|
3085
|
+
"Qhu",
|
|
3086
|
+
"Qi",
|
|
3087
|
+
"Qil",
|
|
3088
|
+
"Qild",
|
|
3089
|
+
"Qilk",
|
|
3090
|
+
"Qin",
|
|
2077
3091
|
"Qir",
|
|
3092
|
+
"Qirn",
|
|
3093
|
+
"Qo",
|
|
3094
|
+
"Qolk",
|
|
3095
|
+
"Qoln",
|
|
2078
3096
|
"Qor",
|
|
2079
|
-
"
|
|
2080
|
-
"
|
|
2081
|
-
"
|
|
2082
|
-
"
|
|
2083
|
-
"
|
|
2084
|
-
"
|
|
2085
|
-
"
|
|
2086
|
-
"
|
|
2087
|
-
"
|
|
3097
|
+
"Qorn",
|
|
3098
|
+
"Qu",
|
|
3099
|
+
"Qul",
|
|
3100
|
+
"Qulk",
|
|
3101
|
+
"Qulm",
|
|
3102
|
+
"Qun",
|
|
3103
|
+
"Qur",
|
|
3104
|
+
"Qurn",
|
|
3105
|
+
"Ra",
|
|
3106
|
+
"Rael",
|
|
2088
3107
|
"Ral",
|
|
3108
|
+
"Rald",
|
|
3109
|
+
"Ralm",
|
|
3110
|
+
"Ralv",
|
|
2089
3111
|
"Ram",
|
|
2090
|
-
"
|
|
2091
|
-
"
|
|
2092
|
-
"
|
|
2093
|
-
"
|
|
3112
|
+
"Rand",
|
|
3113
|
+
"Rar",
|
|
3114
|
+
"Rarn",
|
|
3115
|
+
"Ras",
|
|
3116
|
+
"Rask",
|
|
3117
|
+
"Rast",
|
|
2094
3118
|
"Rav",
|
|
2095
|
-
"
|
|
2096
|
-
"Ray",
|
|
2097
|
-
"Raz",
|
|
2098
|
-
"Rea",
|
|
2099
|
-
"Reb",
|
|
2100
|
-
"Rec",
|
|
2101
|
-
"Red",
|
|
2102
|
-
"Ref",
|
|
2103
|
-
"Reg",
|
|
2104
|
-
"Rei",
|
|
3119
|
+
"Re",
|
|
2105
3120
|
"Rel",
|
|
3121
|
+
"Reld",
|
|
3122
|
+
"Relm",
|
|
3123
|
+
"Reln",
|
|
3124
|
+
"Relv",
|
|
2106
3125
|
"Rem",
|
|
2107
3126
|
"Ren",
|
|
2108
|
-
"
|
|
3127
|
+
"Rer",
|
|
3128
|
+
"Rerm",
|
|
3129
|
+
"Rern",
|
|
2109
3130
|
"Res",
|
|
2110
|
-
"Ret",
|
|
2111
3131
|
"Rev",
|
|
2112
3132
|
"Rex",
|
|
3133
|
+
"Rha",
|
|
3134
|
+
"Rhal",
|
|
3135
|
+
"Rhan",
|
|
3136
|
+
"Rhar",
|
|
3137
|
+
"Rhe",
|
|
3138
|
+
"Rhen",
|
|
3139
|
+
"Rhi",
|
|
3140
|
+
"Rhir",
|
|
2113
3141
|
"Rho",
|
|
2114
|
-
"
|
|
2115
|
-
"
|
|
2116
|
-
"
|
|
2117
|
-
"
|
|
2118
|
-
"
|
|
3142
|
+
"Rhol",
|
|
3143
|
+
"Rhor",
|
|
3144
|
+
"Rhul",
|
|
3145
|
+
"Rhyn",
|
|
3146
|
+
"Ri",
|
|
3147
|
+
"Ril",
|
|
3148
|
+
"Rild",
|
|
3149
|
+
"Rilk",
|
|
3150
|
+
"Rilm",
|
|
2119
3151
|
"Rim",
|
|
2120
3152
|
"Rin",
|
|
2121
|
-
"
|
|
3153
|
+
"Rir",
|
|
3154
|
+
"Rirn",
|
|
2122
3155
|
"Ris",
|
|
2123
|
-
"Rit",
|
|
2124
3156
|
"Riv",
|
|
2125
|
-
"
|
|
2126
|
-
"Roa",
|
|
2127
|
-
"Rob",
|
|
2128
|
-
"Roc",
|
|
2129
|
-
"Rod",
|
|
2130
|
-
"Rog",
|
|
2131
|
-
"Roi",
|
|
3157
|
+
"Ro",
|
|
2132
3158
|
"Rol",
|
|
3159
|
+
"Rolk",
|
|
3160
|
+
"Roln",
|
|
2133
3161
|
"Rom",
|
|
2134
3162
|
"Ron",
|
|
2135
|
-
"
|
|
3163
|
+
"Rond",
|
|
2136
3164
|
"Ror",
|
|
3165
|
+
"Rord",
|
|
3166
|
+
"Rorn",
|
|
2137
3167
|
"Ros",
|
|
2138
|
-
"Rot",
|
|
2139
3168
|
"Rov",
|
|
2140
|
-
"
|
|
2141
|
-
"Roy",
|
|
2142
|
-
"Rub",
|
|
2143
|
-
"Rud",
|
|
2144
|
-
"Rue",
|
|
2145
|
-
"Ruf",
|
|
2146
|
-
"Rug",
|
|
3169
|
+
"Ru",
|
|
2147
3170
|
"Rul",
|
|
3171
|
+
"Rulk",
|
|
3172
|
+
"Rulm",
|
|
2148
3173
|
"Rum",
|
|
2149
|
-
"
|
|
3174
|
+
"Rur",
|
|
3175
|
+
"Rurn",
|
|
2150
3176
|
"Rus",
|
|
2151
|
-
"Rut",
|
|
2152
|
-
"Rux",
|
|
2153
|
-
"Ruz",
|
|
2154
3177
|
"Ryn",
|
|
2155
|
-
"
|
|
2156
|
-
"
|
|
2157
|
-
"
|
|
2158
|
-
"
|
|
2159
|
-
"
|
|
2160
|
-
"Sak",
|
|
3178
|
+
"Rys",
|
|
3179
|
+
"Ryx",
|
|
3180
|
+
"Sa",
|
|
3181
|
+
"Sae",
|
|
3182
|
+
"Sael",
|
|
2161
3183
|
"Sal",
|
|
3184
|
+
"Sald",
|
|
3185
|
+
"Salm",
|
|
3186
|
+
"Salv",
|
|
2162
3187
|
"Sam",
|
|
2163
3188
|
"San",
|
|
2164
|
-
"Sap",
|
|
2165
3189
|
"Sar",
|
|
3190
|
+
"Sarn",
|
|
2166
3191
|
"Sas",
|
|
2167
|
-
"
|
|
2168
|
-
"Sau",
|
|
3192
|
+
"Sask",
|
|
2169
3193
|
"Sav",
|
|
2170
|
-
"
|
|
2171
|
-
"
|
|
2172
|
-
"
|
|
2173
|
-
"
|
|
2174
|
-
"
|
|
2175
|
-
"Sec",
|
|
2176
|
-
"Sed",
|
|
2177
|
-
"See",
|
|
2178
|
-
"Seg",
|
|
2179
|
-
"Sei",
|
|
3194
|
+
"Scra",
|
|
3195
|
+
"Scre",
|
|
3196
|
+
"Scri",
|
|
3197
|
+
"Scro",
|
|
3198
|
+
"Se",
|
|
2180
3199
|
"Sel",
|
|
2181
|
-
"
|
|
3200
|
+
"Seld",
|
|
3201
|
+
"Selm",
|
|
3202
|
+
"Seln",
|
|
3203
|
+
"Selv",
|
|
2182
3204
|
"Sen",
|
|
2183
|
-
"Sep",
|
|
2184
3205
|
"Ser",
|
|
3206
|
+
"Serm",
|
|
3207
|
+
"Sern",
|
|
2185
3208
|
"Ses",
|
|
2186
|
-
"Set",
|
|
2187
3209
|
"Sev",
|
|
2188
|
-
"Sew",
|
|
2189
3210
|
"Sha",
|
|
2190
|
-
"
|
|
3211
|
+
"Shal",
|
|
3212
|
+
"Shan",
|
|
3213
|
+
"Shar",
|
|
3214
|
+
"Shen",
|
|
2191
3215
|
"Shi",
|
|
3216
|
+
"Shir",
|
|
2192
3217
|
"Sho",
|
|
3218
|
+
"Shol",
|
|
3219
|
+
"Shor",
|
|
3220
|
+
"Shr",
|
|
3221
|
+
"Shra",
|
|
3222
|
+
"Shre",
|
|
3223
|
+
"Shri",
|
|
3224
|
+
"Shro",
|
|
3225
|
+
"Shru",
|
|
2193
3226
|
"Shu",
|
|
2194
|
-
"
|
|
2195
|
-
"
|
|
2196
|
-
"
|
|
2197
|
-
"Sid",
|
|
2198
|
-
"Sif",
|
|
2199
|
-
"Sig",
|
|
3227
|
+
"Shul",
|
|
3228
|
+
"Shyn",
|
|
3229
|
+
"Si",
|
|
2200
3230
|
"Sil",
|
|
2201
|
-
"
|
|
3231
|
+
"Sild",
|
|
3232
|
+
"Silm",
|
|
2202
3233
|
"Sin",
|
|
2203
|
-
"
|
|
2204
|
-
"
|
|
3234
|
+
"Sind",
|
|
3235
|
+
"Sirn",
|
|
2205
3236
|
"Sis",
|
|
2206
|
-
"Sit",
|
|
2207
|
-
"Siv",
|
|
2208
|
-
"Six",
|
|
2209
3237
|
"Ska",
|
|
3238
|
+
"Skal",
|
|
3239
|
+
"Skan",
|
|
3240
|
+
"Skar",
|
|
2210
3241
|
"Ske",
|
|
3242
|
+
"Skel",
|
|
3243
|
+
"Sken",
|
|
3244
|
+
"Sker",
|
|
2211
3245
|
"Ski",
|
|
2212
3246
|
"Sko",
|
|
2213
|
-
"
|
|
2214
|
-
"
|
|
3247
|
+
"Skol",
|
|
3248
|
+
"Skon",
|
|
3249
|
+
"Skor",
|
|
3250
|
+
"Skul",
|
|
2215
3251
|
"Sla",
|
|
3252
|
+
"Slak",
|
|
3253
|
+
"Slan",
|
|
3254
|
+
"Slar",
|
|
2216
3255
|
"Sle",
|
|
3256
|
+
"Slen",
|
|
2217
3257
|
"Sli",
|
|
3258
|
+
"Slin",
|
|
2218
3259
|
"Slo",
|
|
2219
|
-
"
|
|
3260
|
+
"Slor",
|
|
2220
3261
|
"Sly",
|
|
3262
|
+
"Slyn",
|
|
2221
3263
|
"Sma",
|
|
2222
|
-
"Sme",
|
|
2223
|
-
"Smi",
|
|
2224
3264
|
"Smo",
|
|
2225
|
-
"
|
|
3265
|
+
"Smol",
|
|
2226
3266
|
"Sna",
|
|
2227
3267
|
"Sne",
|
|
2228
3268
|
"Sni",
|
|
3269
|
+
"Snir",
|
|
2229
3270
|
"Sno",
|
|
2230
|
-
"
|
|
2231
|
-
"Sny",
|
|
2232
|
-
"Soa",
|
|
2233
|
-
"Sob",
|
|
2234
|
-
"Soc",
|
|
2235
|
-
"Sod",
|
|
2236
|
-
"Soe",
|
|
2237
|
-
"Sof",
|
|
2238
|
-
"Sog",
|
|
2239
|
-
"Soi",
|
|
3271
|
+
"So",
|
|
2240
3272
|
"Sol",
|
|
2241
|
-
"
|
|
2242
|
-
"
|
|
2243
|
-
"Sop",
|
|
3273
|
+
"Solk",
|
|
3274
|
+
"Soln",
|
|
2244
3275
|
"Sor",
|
|
3276
|
+
"Sord",
|
|
3277
|
+
"Sorn",
|
|
2245
3278
|
"Sos",
|
|
2246
|
-
"
|
|
2247
|
-
"Sou",
|
|
2248
|
-
"Sow",
|
|
2249
|
-
"Soy",
|
|
2250
|
-
"Soz",
|
|
3279
|
+
"Sov",
|
|
2251
3280
|
"Spa",
|
|
3281
|
+
"Span",
|
|
3282
|
+
"Spar",
|
|
2252
3283
|
"Spe",
|
|
3284
|
+
"Spen",
|
|
3285
|
+
"Sper",
|
|
2253
3286
|
"Spi",
|
|
3287
|
+
"Spil",
|
|
3288
|
+
"Spin",
|
|
2254
3289
|
"Spo",
|
|
3290
|
+
"Spor",
|
|
2255
3291
|
"Spr",
|
|
2256
|
-
"
|
|
2257
|
-
"Spy",
|
|
2258
|
-
"Squ",
|
|
3292
|
+
"Spri",
|
|
2259
3293
|
"Sta",
|
|
3294
|
+
"Stal",
|
|
3295
|
+
"Stan",
|
|
3296
|
+
"Star",
|
|
2260
3297
|
"Ste",
|
|
3298
|
+
"Stel",
|
|
3299
|
+
"Sten",
|
|
3300
|
+
"Ster",
|
|
2261
3301
|
"Sti",
|
|
3302
|
+
"Stil",
|
|
3303
|
+
"Stin",
|
|
2262
3304
|
"Sto",
|
|
3305
|
+
"Stol",
|
|
3306
|
+
"Ston",
|
|
3307
|
+
"Stor",
|
|
3308
|
+
"Str",
|
|
3309
|
+
"Stri",
|
|
3310
|
+
"Stro",
|
|
3311
|
+
"Stru",
|
|
2263
3312
|
"Stu",
|
|
2264
3313
|
"Sty",
|
|
3314
|
+
"Styl",
|
|
2265
3315
|
"Su",
|
|
2266
|
-
"Sub",
|
|
2267
|
-
"Suc",
|
|
2268
|
-
"Sud",
|
|
2269
|
-
"Sue",
|
|
2270
|
-
"Suf",
|
|
2271
|
-
"Sug",
|
|
2272
|
-
"Sui",
|
|
2273
3316
|
"Sul",
|
|
3317
|
+
"Sulm",
|
|
2274
3318
|
"Sum",
|
|
2275
|
-
"Sun",
|
|
2276
|
-
"Sup",
|
|
2277
3319
|
"Sur",
|
|
2278
|
-
"
|
|
2279
|
-
"Sut",
|
|
2280
|
-
"Swa",
|
|
2281
|
-
"Swe",
|
|
2282
|
-
"Swi",
|
|
2283
|
-
"Swo",
|
|
2284
|
-
"Swy",
|
|
3320
|
+
"Surn",
|
|
2285
3321
|
"Syl",
|
|
2286
3322
|
"Syn",
|
|
2287
|
-
"Syp",
|
|
2288
3323
|
"Syr",
|
|
2289
|
-
"
|
|
2290
|
-
"
|
|
2291
|
-
"
|
|
2292
|
-
"
|
|
2293
|
-
"
|
|
2294
|
-
"Tai",
|
|
2295
|
-
"Tak",
|
|
3324
|
+
"Sys",
|
|
3325
|
+
"Syx",
|
|
3326
|
+
"Ta",
|
|
3327
|
+
"Tae",
|
|
3328
|
+
"Tael",
|
|
2296
3329
|
"Tal",
|
|
3330
|
+
"Tald",
|
|
3331
|
+
"Talm",
|
|
3332
|
+
"Talv",
|
|
2297
3333
|
"Tam",
|
|
2298
|
-
"
|
|
2299
|
-
"Tap",
|
|
3334
|
+
"Tand",
|
|
2300
3335
|
"Tar",
|
|
3336
|
+
"Tarn",
|
|
2301
3337
|
"Tas",
|
|
2302
|
-
"
|
|
2303
|
-
"
|
|
3338
|
+
"Task",
|
|
3339
|
+
"Tast",
|
|
2304
3340
|
"Tav",
|
|
2305
|
-
"Taw",
|
|
2306
|
-
"Tay",
|
|
2307
|
-
"Taz",
|
|
2308
3341
|
"Te",
|
|
2309
|
-
"Teb",
|
|
2310
|
-
"Tec",
|
|
2311
|
-
"Ted",
|
|
2312
|
-
"Tef",
|
|
2313
|
-
"Teg",
|
|
2314
|
-
"Tei",
|
|
2315
3342
|
"Tel",
|
|
3343
|
+
"Teld",
|
|
3344
|
+
"Telm",
|
|
3345
|
+
"Teln",
|
|
3346
|
+
"Telv",
|
|
2316
3347
|
"Tem",
|
|
2317
|
-
"Ten",
|
|
2318
3348
|
"Ter",
|
|
3349
|
+
"Term",
|
|
3350
|
+
"Tern",
|
|
2319
3351
|
"Tes",
|
|
2320
|
-
"Tet",
|
|
2321
3352
|
"Tev",
|
|
2322
|
-
"Tew",
|
|
2323
3353
|
"Tex",
|
|
2324
3354
|
"Tha",
|
|
2325
3355
|
"Thal",
|
|
2326
|
-
"
|
|
3356
|
+
"Than",
|
|
3357
|
+
"Thar",
|
|
3358
|
+
"Then",
|
|
3359
|
+
"Ther",
|
|
2327
3360
|
"Thi",
|
|
3361
|
+
"Thir",
|
|
2328
3362
|
"Tho",
|
|
3363
|
+
"Thol",
|
|
3364
|
+
"Thor",
|
|
3365
|
+
"Thr",
|
|
3366
|
+
"Thra",
|
|
3367
|
+
"Thre",
|
|
3368
|
+
"Thri",
|
|
3369
|
+
"Thro",
|
|
3370
|
+
"Thru",
|
|
2329
3371
|
"Thu",
|
|
3372
|
+
"Thul",
|
|
2330
3373
|
"Thy",
|
|
2331
|
-
"
|
|
2332
|
-
"
|
|
2333
|
-
"Tic",
|
|
2334
|
-
"Tid",
|
|
2335
|
-
"Tig",
|
|
3374
|
+
"Thyn",
|
|
3375
|
+
"Ti",
|
|
2336
3376
|
"Til",
|
|
2337
|
-
"
|
|
2338
|
-
"
|
|
2339
|
-
"
|
|
3377
|
+
"Tild",
|
|
3378
|
+
"Tilk",
|
|
3379
|
+
"Tilm",
|
|
3380
|
+
"Tind",
|
|
2340
3381
|
"Tir",
|
|
3382
|
+
"Tirn",
|
|
2341
3383
|
"Tis",
|
|
2342
|
-
"
|
|
2343
|
-
"Tiv",
|
|
2344
|
-
"Tix",
|
|
2345
|
-
"Tiz",
|
|
2346
|
-
"Toa",
|
|
2347
|
-
"Tob",
|
|
2348
|
-
"Tod",
|
|
2349
|
-
"Tof",
|
|
2350
|
-
"Tog",
|
|
2351
|
-
"Toi",
|
|
3384
|
+
"To",
|
|
2352
3385
|
"Tol",
|
|
2353
|
-
"
|
|
3386
|
+
"Tolk",
|
|
3387
|
+
"Toln",
|
|
2354
3388
|
"Ton",
|
|
2355
|
-
"
|
|
2356
|
-
"Top",
|
|
3389
|
+
"Tond",
|
|
2357
3390
|
"Tor",
|
|
2358
|
-
"
|
|
2359
|
-
"
|
|
2360
|
-
"
|
|
2361
|
-
"Toy",
|
|
2362
|
-
"Toz",
|
|
3391
|
+
"Tord",
|
|
3392
|
+
"Tos",
|
|
3393
|
+
"Tov",
|
|
2363
3394
|
"Tra",
|
|
3395
|
+
"Tral",
|
|
3396
|
+
"Tran",
|
|
2364
3397
|
"Tre",
|
|
3398
|
+
"Tren",
|
|
2365
3399
|
"Tri",
|
|
3400
|
+
"Tril",
|
|
3401
|
+
"Trin",
|
|
2366
3402
|
"Tro",
|
|
3403
|
+
"Tron",
|
|
2367
3404
|
"Tru",
|
|
2368
|
-
"
|
|
2369
|
-
"
|
|
2370
|
-
"
|
|
2371
|
-
"Tub",
|
|
2372
|
-
"Tuc",
|
|
2373
|
-
"Tue",
|
|
2374
|
-
"Tuf",
|
|
2375
|
-
"Tug",
|
|
2376
|
-
"Tui",
|
|
3405
|
+
"Trul",
|
|
3406
|
+
"Tryn",
|
|
3407
|
+
"Tu",
|
|
2377
3408
|
"Tul",
|
|
2378
|
-
"
|
|
3409
|
+
"Tulk",
|
|
3410
|
+
"Tulm",
|
|
2379
3411
|
"Tun",
|
|
2380
|
-
"Tup",
|
|
2381
3412
|
"Tur",
|
|
2382
|
-
"
|
|
2383
|
-
"Tut",
|
|
2384
|
-
"Tw",
|
|
2385
|
-
"Twa",
|
|
2386
|
-
"Twe",
|
|
2387
|
-
"Twi",
|
|
2388
|
-
"Two",
|
|
2389
|
-
"Tya",
|
|
2390
|
-
"Tyb",
|
|
2391
|
-
"Tyc",
|
|
2392
|
-
"Tyd",
|
|
2393
|
-
"Tyf",
|
|
2394
|
-
"Tyg",
|
|
2395
|
-
"Tyl",
|
|
2396
|
-
"Tym",
|
|
3413
|
+
"Turn",
|
|
2397
3414
|
"Tyn",
|
|
2398
|
-
"Typ",
|
|
2399
3415
|
"Tyr",
|
|
2400
|
-
"
|
|
2401
|
-
"Tyt",
|
|
2402
|
-
"Tyv",
|
|
2403
|
-
"Tyz",
|
|
3416
|
+
"Tyx",
|
|
2404
3417
|
"U",
|
|
2405
|
-
"
|
|
2406
|
-
"
|
|
2407
|
-
"
|
|
2408
|
-
"
|
|
2409
|
-
"
|
|
2410
|
-
"
|
|
2411
|
-
"
|
|
2412
|
-
"Uci",
|
|
2413
|
-
"Uco",
|
|
2414
|
-
"Ucu",
|
|
2415
|
-
"Uda",
|
|
2416
|
-
"Ude",
|
|
2417
|
-
"Udi",
|
|
2418
|
-
"Udo",
|
|
2419
|
-
"Udu",
|
|
2420
|
-
"Uea",
|
|
2421
|
-
"Ueb",
|
|
2422
|
-
"Uec",
|
|
2423
|
-
"Ued",
|
|
2424
|
-
"Uef",
|
|
2425
|
-
"Ueg",
|
|
2426
|
-
"Uei",
|
|
3418
|
+
"Ub",
|
|
3419
|
+
"Ubl",
|
|
3420
|
+
"Ubr",
|
|
3421
|
+
"Uch",
|
|
3422
|
+
"Ucr",
|
|
3423
|
+
"Ud",
|
|
3424
|
+
"Udr",
|
|
2427
3425
|
"Uel",
|
|
2428
|
-
"Uem",
|
|
2429
3426
|
"Uen",
|
|
2430
|
-
"Uep",
|
|
2431
3427
|
"Uer",
|
|
2432
|
-
"
|
|
2433
|
-
"
|
|
2434
|
-
"
|
|
2435
|
-
"
|
|
2436
|
-
"Uex",
|
|
2437
|
-
"Ufa",
|
|
2438
|
-
"Ufe",
|
|
2439
|
-
"Ufi",
|
|
2440
|
-
"Ufo",
|
|
2441
|
-
"Ufu",
|
|
2442
|
-
"Uga",
|
|
2443
|
-
"Uge",
|
|
2444
|
-
"Ugi",
|
|
2445
|
-
"Ugo",
|
|
2446
|
-
"Ugu",
|
|
2447
|
-
"Uha",
|
|
2448
|
-
"Uhe",
|
|
2449
|
-
"Uhi",
|
|
2450
|
-
"Uho",
|
|
2451
|
-
"Uhu",
|
|
2452
|
-
"Uia",
|
|
2453
|
-
"Uib",
|
|
2454
|
-
"Uic",
|
|
2455
|
-
"Uid",
|
|
2456
|
-
"Uif",
|
|
2457
|
-
"Uig",
|
|
2458
|
-
"Uil",
|
|
2459
|
-
"Uim",
|
|
2460
|
-
"Uin",
|
|
2461
|
-
"Uip",
|
|
2462
|
-
"Uir",
|
|
2463
|
-
"Uis",
|
|
2464
|
-
"Uit",
|
|
2465
|
-
"Uiv",
|
|
2466
|
-
"Uiw",
|
|
2467
|
-
"Uix",
|
|
2468
|
-
"Uka",
|
|
2469
|
-
"Uke",
|
|
2470
|
-
"Uki",
|
|
2471
|
-
"Uko",
|
|
2472
|
-
"Uku",
|
|
3428
|
+
"Uf",
|
|
3429
|
+
"Ug",
|
|
3430
|
+
"Ugr",
|
|
3431
|
+
"Uk",
|
|
2473
3432
|
"Ul",
|
|
2474
|
-
"
|
|
2475
|
-
"
|
|
2476
|
-
"
|
|
2477
|
-
"
|
|
2478
|
-
"
|
|
2479
|
-
"
|
|
2480
|
-
"
|
|
2481
|
-
"
|
|
2482
|
-
"
|
|
2483
|
-
"
|
|
2484
|
-
"
|
|
2485
|
-
"
|
|
2486
|
-
"
|
|
2487
|
-
"
|
|
2488
|
-
"
|
|
2489
|
-
"
|
|
2490
|
-
"
|
|
2491
|
-
"
|
|
2492
|
-
"
|
|
2493
|
-
"
|
|
2494
|
-
"
|
|
2495
|
-
"
|
|
2496
|
-
"
|
|
2497
|
-
"
|
|
2498
|
-
"
|
|
2499
|
-
"
|
|
2500
|
-
"
|
|
2501
|
-
"
|
|
2502
|
-
"Uos",
|
|
2503
|
-
"Uot",
|
|
2504
|
-
"Uov",
|
|
2505
|
-
"Uow",
|
|
2506
|
-
"Uoz",
|
|
2507
|
-
"Upa",
|
|
2508
|
-
"Upe",
|
|
2509
|
-
"Upi",
|
|
2510
|
-
"Upo",
|
|
2511
|
-
"Upu",
|
|
2512
|
-
"Ura",
|
|
2513
|
-
"Ure",
|
|
2514
|
-
"Uri",
|
|
2515
|
-
"Uro",
|
|
2516
|
-
"Uru",
|
|
2517
|
-
"Usa",
|
|
2518
|
-
"Use",
|
|
3433
|
+
"Ulb",
|
|
3434
|
+
"Uld",
|
|
3435
|
+
"Ulk",
|
|
3436
|
+
"Ulm",
|
|
3437
|
+
"Ult",
|
|
3438
|
+
"Ulv",
|
|
3439
|
+
"Um",
|
|
3440
|
+
"Umb",
|
|
3441
|
+
"Ump",
|
|
3442
|
+
"Un",
|
|
3443
|
+
"Unc",
|
|
3444
|
+
"Und",
|
|
3445
|
+
"Ung",
|
|
3446
|
+
"Unk",
|
|
3447
|
+
"Unl",
|
|
3448
|
+
"Upl",
|
|
3449
|
+
"Upr",
|
|
3450
|
+
"Ur",
|
|
3451
|
+
"Urb",
|
|
3452
|
+
"Urd",
|
|
3453
|
+
"Urg",
|
|
3454
|
+
"Urk",
|
|
3455
|
+
"Url",
|
|
3456
|
+
"Urm",
|
|
3457
|
+
"Urn",
|
|
3458
|
+
"Urs",
|
|
3459
|
+
"Urv",
|
|
3460
|
+
"Us",
|
|
2519
3461
|
"Ush",
|
|
2520
|
-
"
|
|
2521
|
-
"
|
|
2522
|
-
"
|
|
2523
|
-
"
|
|
2524
|
-
"Ute",
|
|
3462
|
+
"Usk",
|
|
3463
|
+
"Ust",
|
|
3464
|
+
"Ustr",
|
|
3465
|
+
"Ut",
|
|
2525
3466
|
"Uth",
|
|
2526
|
-
"
|
|
2527
|
-
"
|
|
2528
|
-
"
|
|
2529
|
-
"Uva",
|
|
2530
|
-
"Uve",
|
|
2531
|
-
"Uvi",
|
|
2532
|
-
"Uvo",
|
|
2533
|
-
"Uvu",
|
|
2534
|
-
"Uwa",
|
|
2535
|
-
"Uwe",
|
|
2536
|
-
"Uwi",
|
|
2537
|
-
"Uwo",
|
|
2538
|
-
"Uwu",
|
|
2539
|
-
"Uxa",
|
|
2540
|
-
"Uxe",
|
|
2541
|
-
"Uxi",
|
|
2542
|
-
"Uxo",
|
|
2543
|
-
"Uxu",
|
|
2544
|
-
"Uya",
|
|
2545
|
-
"Uye",
|
|
2546
|
-
"Uyi",
|
|
2547
|
-
"Uyo",
|
|
2548
|
-
"Uyu",
|
|
2549
|
-
"Uza",
|
|
2550
|
-
"Uze",
|
|
2551
|
-
"Uzi",
|
|
2552
|
-
"Uzo",
|
|
2553
|
-
"Uzu",
|
|
3467
|
+
"Uv",
|
|
3468
|
+
"Ux",
|
|
3469
|
+
"Uz",
|
|
2554
3470
|
"Va",
|
|
2555
|
-
"
|
|
2556
|
-
"Vac",
|
|
2557
|
-
"Vad",
|
|
2558
|
-
"Vaf",
|
|
2559
|
-
"Vag",
|
|
2560
|
-
"Vah",
|
|
2561
|
-
"Vai",
|
|
2562
|
-
"Vak",
|
|
3471
|
+
"Vael",
|
|
2563
3472
|
"Val",
|
|
3473
|
+
"Vald",
|
|
3474
|
+
"Valm",
|
|
3475
|
+
"Valv",
|
|
2564
3476
|
"Van",
|
|
2565
|
-
"
|
|
3477
|
+
"Vand",
|
|
2566
3478
|
"Var",
|
|
3479
|
+
"Varn",
|
|
2567
3480
|
"Vas",
|
|
2568
|
-
"
|
|
2569
|
-
"Vau",
|
|
2570
|
-
"Vav",
|
|
2571
|
-
"Vaw",
|
|
3481
|
+
"Vask",
|
|
2572
3482
|
"Vay",
|
|
2573
|
-
"Vaz",
|
|
2574
3483
|
"Ve",
|
|
2575
|
-
"Veb",
|
|
2576
|
-
"Vec",
|
|
2577
|
-
"Ved",
|
|
2578
|
-
"Vef",
|
|
2579
|
-
"Veg",
|
|
2580
|
-
"Vei",
|
|
2581
3484
|
"Vel",
|
|
3485
|
+
"Veld",
|
|
3486
|
+
"Velm",
|
|
3487
|
+
"Veln",
|
|
3488
|
+
"Velv",
|
|
2582
3489
|
"Ven",
|
|
2583
3490
|
"Ver",
|
|
3491
|
+
"Verm",
|
|
3492
|
+
"Vern",
|
|
2584
3493
|
"Ves",
|
|
2585
|
-
"Vet",
|
|
2586
|
-
"Vev",
|
|
2587
3494
|
"Vex",
|
|
2588
3495
|
"Vi",
|
|
2589
|
-
"Via",
|
|
2590
|
-
"Vic",
|
|
2591
|
-
"Vid",
|
|
2592
|
-
"Vig",
|
|
2593
3496
|
"Vil",
|
|
3497
|
+
"Vild",
|
|
3498
|
+
"Vilk",
|
|
3499
|
+
"Vilm",
|
|
2594
3500
|
"Vin",
|
|
2595
|
-
"
|
|
3501
|
+
"Vind",
|
|
2596
3502
|
"Vir",
|
|
3503
|
+
"Virn",
|
|
2597
3504
|
"Vis",
|
|
2598
|
-
"Vit",
|
|
2599
3505
|
"Vix",
|
|
2600
3506
|
"Vo",
|
|
2601
|
-
"Vob",
|
|
2602
|
-
"Voc",
|
|
2603
|
-
"Vod",
|
|
2604
|
-
"Vof",
|
|
2605
|
-
"Vog",
|
|
2606
3507
|
"Vol",
|
|
3508
|
+
"Volk",
|
|
3509
|
+
"Voln",
|
|
2607
3510
|
"Von",
|
|
2608
|
-
"
|
|
3511
|
+
"Vond",
|
|
2609
3512
|
"Vor",
|
|
2610
|
-
"
|
|
2611
|
-
"
|
|
3513
|
+
"Vord",
|
|
3514
|
+
"Vorn",
|
|
3515
|
+
"Vos",
|
|
3516
|
+
"Vra",
|
|
3517
|
+
"Vral",
|
|
3518
|
+
"Vran",
|
|
3519
|
+
"Vre",
|
|
3520
|
+
"Vren",
|
|
3521
|
+
"Vri",
|
|
3522
|
+
"Vril",
|
|
3523
|
+
"Vrin",
|
|
3524
|
+
"Vro",
|
|
3525
|
+
"Vron",
|
|
3526
|
+
"Vrul",
|
|
3527
|
+
"Vryn",
|
|
2612
3528
|
"Vu",
|
|
2613
|
-
"Vub",
|
|
2614
|
-
"Vud",
|
|
2615
|
-
"Vuf",
|
|
2616
|
-
"Vug",
|
|
2617
3529
|
"Vul",
|
|
3530
|
+
"Vulk",
|
|
3531
|
+
"Vulm",
|
|
2618
3532
|
"Vun",
|
|
2619
|
-
"Vup",
|
|
2620
3533
|
"Vur",
|
|
2621
|
-
"
|
|
2622
|
-
"
|
|
3534
|
+
"Vurn",
|
|
3535
|
+
"Vyn",
|
|
3536
|
+
"Vyx",
|
|
2623
3537
|
"Wa",
|
|
2624
|
-
"
|
|
2625
|
-
"Wac",
|
|
2626
|
-
"Wad",
|
|
2627
|
-
"Waf",
|
|
2628
|
-
"Wag",
|
|
2629
|
-
"Wah",
|
|
2630
|
-
"Wai",
|
|
2631
|
-
"Wak",
|
|
3538
|
+
"Wael",
|
|
2632
3539
|
"Wal",
|
|
3540
|
+
"Wald",
|
|
3541
|
+
"Walm",
|
|
3542
|
+
"Walv",
|
|
2633
3543
|
"Wan",
|
|
2634
|
-
"Wap",
|
|
2635
3544
|
"War",
|
|
2636
|
-
"
|
|
2637
|
-
"
|
|
2638
|
-
"Wau",
|
|
2639
|
-
"Wav",
|
|
2640
|
-
"Waw",
|
|
2641
|
-
"Way",
|
|
2642
|
-
"Waz",
|
|
3545
|
+
"Wask",
|
|
3546
|
+
"Wast",
|
|
2643
3547
|
"We",
|
|
2644
|
-
"Web",
|
|
2645
|
-
"Wec",
|
|
2646
|
-
"Wed",
|
|
2647
|
-
"Wef",
|
|
2648
|
-
"Weg",
|
|
2649
|
-
"Wei",
|
|
2650
3548
|
"Wel",
|
|
3549
|
+
"Welm",
|
|
3550
|
+
"Weln",
|
|
3551
|
+
"Welv",
|
|
2651
3552
|
"Wen",
|
|
2652
3553
|
"Wer",
|
|
3554
|
+
"Werm",
|
|
3555
|
+
"Wern",
|
|
2653
3556
|
"Wes",
|
|
2654
|
-
"Wet",
|
|
2655
3557
|
"Wex",
|
|
3558
|
+
"Whi",
|
|
3559
|
+
"Whra",
|
|
3560
|
+
"Whre",
|
|
3561
|
+
"Whro",
|
|
2656
3562
|
"Wi",
|
|
2657
|
-
"Wib",
|
|
2658
|
-
"Wic",
|
|
2659
|
-
"Wid",
|
|
2660
|
-
"Wig",
|
|
2661
3563
|
"Wil",
|
|
2662
|
-
"
|
|
2663
|
-
"
|
|
3564
|
+
"Wild",
|
|
3565
|
+
"Wilk",
|
|
3566
|
+
"Wilm",
|
|
2664
3567
|
"Wir",
|
|
3568
|
+
"Wirn",
|
|
2665
3569
|
"Wis",
|
|
2666
|
-
"Wit",
|
|
2667
|
-
"Wiv",
|
|
2668
|
-
"Wix",
|
|
2669
3570
|
"Wo",
|
|
2670
|
-
"Wob",
|
|
2671
|
-
"Woc",
|
|
2672
|
-
"Wod",
|
|
2673
|
-
"Wof",
|
|
2674
|
-
"Wog",
|
|
2675
3571
|
"Wol",
|
|
2676
|
-
"
|
|
2677
|
-
"
|
|
3572
|
+
"Wolk",
|
|
3573
|
+
"Woln",
|
|
3574
|
+
"Wond",
|
|
2678
3575
|
"Wor",
|
|
2679
|
-
"
|
|
2680
|
-
"
|
|
3576
|
+
"Wra",
|
|
3577
|
+
"Wral",
|
|
3578
|
+
"Wran",
|
|
3579
|
+
"Wre",
|
|
3580
|
+
"Wren",
|
|
3581
|
+
"Wri",
|
|
3582
|
+
"Wrin",
|
|
2681
3583
|
"Wu",
|
|
2682
|
-
"Wub",
|
|
2683
|
-
"Wuc",
|
|
2684
|
-
"Wud",
|
|
2685
|
-
"Wuf",
|
|
2686
|
-
"Wug",
|
|
2687
3584
|
"Wul",
|
|
3585
|
+
"Wulk",
|
|
3586
|
+
"Wulm",
|
|
2688
3587
|
"Wun",
|
|
2689
|
-
"Wup",
|
|
2690
3588
|
"Wur",
|
|
2691
|
-
"
|
|
2692
|
-
"Wux",
|
|
3589
|
+
"Wurn",
|
|
2693
3590
|
"Wyn",
|
|
3591
|
+
"Wyx",
|
|
3592
|
+
"Xa",
|
|
3593
|
+
"Xael",
|
|
3594
|
+
"Xal",
|
|
3595
|
+
"Xald",
|
|
3596
|
+
"Xalm",
|
|
2694
3597
|
"Xan",
|
|
3598
|
+
"Xar",
|
|
3599
|
+
"Xarn",
|
|
3600
|
+
"Xe",
|
|
3601
|
+
"Xel",
|
|
3602
|
+
"Xeld",
|
|
3603
|
+
"Xelm",
|
|
3604
|
+
"Xeln",
|
|
3605
|
+
"Xen",
|
|
2695
3606
|
"Xer",
|
|
2696
|
-
"
|
|
3607
|
+
"Xerm",
|
|
3608
|
+
"Xern",
|
|
3609
|
+
"Xes",
|
|
3610
|
+
"Xex",
|
|
3611
|
+
"Xha",
|
|
3612
|
+
"Xhe",
|
|
3613
|
+
"Xhi",
|
|
3614
|
+
"Xho",
|
|
3615
|
+
"Xhu",
|
|
3616
|
+
"Xi",
|
|
3617
|
+
"Xil",
|
|
3618
|
+
"Xild",
|
|
3619
|
+
"Xilk",
|
|
3620
|
+
"Xilm",
|
|
3621
|
+
"Xin",
|
|
3622
|
+
"Xir",
|
|
3623
|
+
"Xirn",
|
|
3624
|
+
"Xis",
|
|
2697
3625
|
"Xo",
|
|
2698
|
-
"Xoa",
|
|
2699
|
-
"Xob",
|
|
2700
|
-
"Xoc",
|
|
2701
|
-
"Xod",
|
|
2702
|
-
"Xoe",
|
|
2703
|
-
"Xof",
|
|
2704
|
-
"Xog",
|
|
2705
|
-
"Xoi",
|
|
2706
3626
|
"Xol",
|
|
2707
|
-
"
|
|
3627
|
+
"Xolk",
|
|
3628
|
+
"Xoln",
|
|
2708
3629
|
"Xon",
|
|
2709
|
-
"Xop",
|
|
2710
3630
|
"Xor",
|
|
2711
|
-
"
|
|
2712
|
-
"
|
|
2713
|
-
"
|
|
2714
|
-
"
|
|
2715
|
-
"
|
|
2716
|
-
"
|
|
3631
|
+
"Xord",
|
|
3632
|
+
"Xorn",
|
|
3633
|
+
"Xu",
|
|
3634
|
+
"Xul",
|
|
3635
|
+
"Xulk",
|
|
3636
|
+
"Xulm",
|
|
3637
|
+
"Xun",
|
|
3638
|
+
"Xur",
|
|
3639
|
+
"Xurn",
|
|
2717
3640
|
"Xyl",
|
|
2718
|
-
"
|
|
2719
|
-
"
|
|
2720
|
-
"
|
|
2721
|
-
"
|
|
2722
|
-
"
|
|
2723
|
-
"
|
|
2724
|
-
"
|
|
2725
|
-
"
|
|
2726
|
-
"
|
|
2727
|
-
"
|
|
2728
|
-
"
|
|
2729
|
-
"Yea",
|
|
2730
|
-
"Yeb",
|
|
2731
|
-
"Yec",
|
|
2732
|
-
"Yed",
|
|
2733
|
-
"Yef",
|
|
2734
|
-
"Yeg",
|
|
2735
|
-
"Yei",
|
|
3641
|
+
"Xyn",
|
|
3642
|
+
"Ya",
|
|
3643
|
+
"Yael",
|
|
3644
|
+
"Yal",
|
|
3645
|
+
"Yald",
|
|
3646
|
+
"Yalm",
|
|
3647
|
+
"Yan",
|
|
3648
|
+
"Yar",
|
|
3649
|
+
"Yarn",
|
|
3650
|
+
"Yas",
|
|
3651
|
+
"Ye",
|
|
2736
3652
|
"Yel",
|
|
2737
|
-
"
|
|
3653
|
+
"Yeld",
|
|
3654
|
+
"Yelm",
|
|
3655
|
+
"Yeln",
|
|
2738
3656
|
"Yen",
|
|
2739
|
-
"Yep",
|
|
2740
3657
|
"Yer",
|
|
2741
|
-
"
|
|
2742
|
-
"
|
|
2743
|
-
"Yev",
|
|
2744
|
-
"Yew",
|
|
3658
|
+
"Yerm",
|
|
3659
|
+
"Yern",
|
|
2745
3660
|
"Yex",
|
|
2746
|
-
"
|
|
2747
|
-
"
|
|
2748
|
-
"
|
|
2749
|
-
"
|
|
2750
|
-
"Yfu",
|
|
2751
|
-
"Yga",
|
|
2752
|
-
"Yge",
|
|
2753
|
-
"Ygi",
|
|
2754
|
-
"Ygo",
|
|
2755
|
-
"Ygu",
|
|
2756
|
-
"Yha",
|
|
2757
|
-
"Yhe",
|
|
2758
|
-
"Yhi",
|
|
2759
|
-
"Yho",
|
|
2760
|
-
"Yhu",
|
|
2761
|
-
"Yia",
|
|
2762
|
-
"Yib",
|
|
2763
|
-
"Yic",
|
|
2764
|
-
"Yid",
|
|
2765
|
-
"Yif",
|
|
2766
|
-
"Yig",
|
|
2767
|
-
"Yil",
|
|
2768
|
-
"Yim",
|
|
3661
|
+
"Yi",
|
|
3662
|
+
"Yild",
|
|
3663
|
+
"Yilk",
|
|
3664
|
+
"Yilm",
|
|
2769
3665
|
"Yin",
|
|
2770
|
-
"Yip",
|
|
2771
3666
|
"Yir",
|
|
2772
|
-
"
|
|
2773
|
-
"
|
|
2774
|
-
"Yiv",
|
|
2775
|
-
"Yiw",
|
|
2776
|
-
"Yix",
|
|
2777
|
-
"Yka",
|
|
2778
|
-
"Yke",
|
|
2779
|
-
"Yki",
|
|
2780
|
-
"Yko",
|
|
2781
|
-
"Yku",
|
|
2782
|
-
"Yla",
|
|
2783
|
-
"Yle",
|
|
2784
|
-
"Yli",
|
|
2785
|
-
"Ylo",
|
|
2786
|
-
"Ylu",
|
|
2787
|
-
"Yma",
|
|
2788
|
-
"Yme",
|
|
2789
|
-
"Ymi",
|
|
2790
|
-
"Ymo",
|
|
2791
|
-
"Ymu",
|
|
2792
|
-
"Yna",
|
|
2793
|
-
"Yne",
|
|
2794
|
-
"Yni",
|
|
2795
|
-
"Yno",
|
|
2796
|
-
"Ynu",
|
|
2797
|
-
"Yoa",
|
|
2798
|
-
"Yob",
|
|
2799
|
-
"Yoc",
|
|
2800
|
-
"Yod",
|
|
2801
|
-
"Yof",
|
|
2802
|
-
"Yog",
|
|
2803
|
-
"Yoi",
|
|
3667
|
+
"Yirn",
|
|
3668
|
+
"Yo",
|
|
2804
3669
|
"Yol",
|
|
2805
|
-
"
|
|
3670
|
+
"Yoln",
|
|
2806
3671
|
"Yon",
|
|
2807
|
-
"Yop",
|
|
2808
3672
|
"Yor",
|
|
3673
|
+
"York",
|
|
3674
|
+
"Yorn",
|
|
2809
3675
|
"Yos",
|
|
2810
|
-
"
|
|
2811
|
-
"
|
|
2812
|
-
"
|
|
2813
|
-
"
|
|
2814
|
-
"
|
|
2815
|
-
"Ypa",
|
|
2816
|
-
"Ype",
|
|
2817
|
-
"Ypi",
|
|
2818
|
-
"Ypo",
|
|
2819
|
-
"Ypu",
|
|
2820
|
-
"Yra",
|
|
2821
|
-
"Yre",
|
|
2822
|
-
"Yri",
|
|
2823
|
-
"Yro",
|
|
2824
|
-
"Yru",
|
|
2825
|
-
"Ysa",
|
|
2826
|
-
"Yse",
|
|
2827
|
-
"Ysi",
|
|
2828
|
-
"Yso",
|
|
2829
|
-
"Ysu",
|
|
2830
|
-
"Yta",
|
|
2831
|
-
"Yte",
|
|
2832
|
-
"Yth",
|
|
2833
|
-
"Yti",
|
|
2834
|
-
"Yto",
|
|
2835
|
-
"Ytu",
|
|
3676
|
+
"Yu",
|
|
3677
|
+
"Yul",
|
|
3678
|
+
"Yulk",
|
|
3679
|
+
"Yulm",
|
|
3680
|
+
"Yun",
|
|
2836
3681
|
"Yur",
|
|
2837
|
-
"
|
|
3682
|
+
"Yurn",
|
|
2838
3683
|
"Yve",
|
|
2839
|
-
"Yvi",
|
|
2840
|
-
"Yvo",
|
|
2841
|
-
"Yvu",
|
|
2842
|
-
"Ywa",
|
|
2843
|
-
"Ywe",
|
|
2844
|
-
"Ywi",
|
|
2845
|
-
"Ywo",
|
|
2846
|
-
"Ywu",
|
|
2847
|
-
"Yxa",
|
|
2848
|
-
"Yxe",
|
|
2849
|
-
"Yxi",
|
|
2850
|
-
"Yxo",
|
|
2851
|
-
"Yxu",
|
|
2852
|
-
"Yya",
|
|
2853
|
-
"Yye",
|
|
2854
|
-
"Yyi",
|
|
2855
|
-
"Yyo",
|
|
2856
|
-
"Yyu",
|
|
2857
3684
|
"Za",
|
|
2858
|
-
"Zab",
|
|
2859
|
-
"Zac",
|
|
2860
|
-
"Zad",
|
|
2861
3685
|
"Zae",
|
|
2862
|
-
"
|
|
2863
|
-
"Zag",
|
|
2864
|
-
"Zah",
|
|
2865
|
-
"Zai",
|
|
2866
|
-
"Zak",
|
|
3686
|
+
"Zael",
|
|
2867
3687
|
"Zal",
|
|
2868
|
-
"
|
|
3688
|
+
"Zald",
|
|
3689
|
+
"Zalm",
|
|
2869
3690
|
"Zan",
|
|
2870
|
-
"Zap",
|
|
2871
3691
|
"Zar",
|
|
3692
|
+
"Zarn",
|
|
2872
3693
|
"Zas",
|
|
2873
|
-
"
|
|
2874
|
-
"Zau",
|
|
2875
|
-
"Zav",
|
|
2876
|
-
"Zaw",
|
|
2877
|
-
"Zay",
|
|
2878
|
-
"Zaz",
|
|
3694
|
+
"Zask",
|
|
2879
3695
|
"Ze",
|
|
2880
|
-
"Zeb",
|
|
2881
|
-
"Zec",
|
|
2882
|
-
"Zed",
|
|
2883
|
-
"Zef",
|
|
2884
|
-
"Zeg",
|
|
2885
|
-
"Zei",
|
|
2886
3696
|
"Zel",
|
|
3697
|
+
"Zeld",
|
|
3698
|
+
"Zelm",
|
|
3699
|
+
"Zeln",
|
|
2887
3700
|
"Zen",
|
|
3701
|
+
"Zend",
|
|
2888
3702
|
"Zer",
|
|
3703
|
+
"Zerm",
|
|
3704
|
+
"Zern",
|
|
2889
3705
|
"Zes",
|
|
2890
|
-
"Zet",
|
|
2891
|
-
"Zev",
|
|
2892
|
-
"Zew",
|
|
2893
3706
|
"Zex",
|
|
3707
|
+
"Zha",
|
|
3708
|
+
"Zhal",
|
|
3709
|
+
"Zhan",
|
|
3710
|
+
"Zhar",
|
|
3711
|
+
"Zhe",
|
|
3712
|
+
"Zhen",
|
|
3713
|
+
"Zhi",
|
|
3714
|
+
"Zhir",
|
|
3715
|
+
"Zho",
|
|
3716
|
+
"Zhol",
|
|
3717
|
+
"Zhor",
|
|
3718
|
+
"Zhu",
|
|
3719
|
+
"Zhul",
|
|
3720
|
+
"Zhyn",
|
|
2894
3721
|
"Zi",
|
|
2895
|
-
"Zia",
|
|
2896
|
-
"Zic",
|
|
2897
|
-
"Zid",
|
|
2898
|
-
"Zig",
|
|
2899
3722
|
"Zil",
|
|
2900
|
-
"
|
|
3723
|
+
"Zild",
|
|
3724
|
+
"Zilk",
|
|
3725
|
+
"Zilm",
|
|
2901
3726
|
"Zin",
|
|
2902
|
-
"
|
|
3727
|
+
"Zind",
|
|
2903
3728
|
"Zir",
|
|
3729
|
+
"Zirn",
|
|
2904
3730
|
"Zis",
|
|
2905
|
-
"Zit",
|
|
2906
|
-
"Ziv",
|
|
2907
|
-
"Zix",
|
|
2908
3731
|
"Zo",
|
|
2909
|
-
"Zob",
|
|
2910
|
-
"Zoc",
|
|
2911
|
-
"Zod",
|
|
2912
|
-
"Zof",
|
|
2913
|
-
"Zog",
|
|
2914
3732
|
"Zol",
|
|
2915
|
-
"
|
|
3733
|
+
"Zolk",
|
|
3734
|
+
"Zoln",
|
|
2916
3735
|
"Zon",
|
|
2917
|
-
"
|
|
3736
|
+
"Zond",
|
|
2918
3737
|
"Zor",
|
|
3738
|
+
"Zord",
|
|
3739
|
+
"Zorn",
|
|
2919
3740
|
"Zos",
|
|
2920
|
-
"Zot",
|
|
2921
|
-
"Zov",
|
|
2922
|
-
"Zow",
|
|
2923
|
-
"Zox",
|
|
2924
3741
|
"Zu",
|
|
2925
|
-
"Zub",
|
|
2926
|
-
"Zuc",
|
|
2927
|
-
"Zud",
|
|
2928
|
-
"Zuf",
|
|
2929
|
-
"Zug",
|
|
2930
3742
|
"Zul",
|
|
2931
|
-
"
|
|
3743
|
+
"Zulk",
|
|
3744
|
+
"Zulm",
|
|
2932
3745
|
"Zun",
|
|
2933
|
-
"Zup",
|
|
2934
3746
|
"Zur",
|
|
2935
|
-
"
|
|
2936
|
-
"Zut",
|
|
2937
|
-
"Zuv",
|
|
2938
|
-
"Zuw",
|
|
2939
|
-
"Zux",
|
|
2940
|
-
"Zuz",
|
|
3747
|
+
"Zurn",
|
|
2941
3748
|
"Zyl",
|
|
2942
|
-
"Zyn"
|
|
3749
|
+
"Zyn",
|
|
3750
|
+
"Zyr",
|
|
3751
|
+
"Zyx"
|
|
3752
|
+
];
|
|
3753
|
+
|
|
3754
|
+
var nebulaAdjectives = [
|
|
3755
|
+
"Abyssal",
|
|
3756
|
+
"Alabaster",
|
|
3757
|
+
"Amber",
|
|
3758
|
+
"Ancient",
|
|
3759
|
+
"Argent",
|
|
3760
|
+
"Ashen",
|
|
3761
|
+
"Astral",
|
|
3762
|
+
"Aurora",
|
|
3763
|
+
"Azure",
|
|
3764
|
+
"Barren",
|
|
3765
|
+
"Blazing",
|
|
3766
|
+
"Bleak",
|
|
3767
|
+
"Boreal",
|
|
3768
|
+
"Brazen",
|
|
3769
|
+
"Bright",
|
|
3770
|
+
"Brilliant",
|
|
3771
|
+
"Bronze",
|
|
3772
|
+
"Burning",
|
|
3773
|
+
"Cadmium",
|
|
3774
|
+
"Calcified",
|
|
3775
|
+
"Cardinal",
|
|
3776
|
+
"Celestial",
|
|
3777
|
+
"Cerulean",
|
|
3778
|
+
"Chartreuse",
|
|
3779
|
+
"Chromatic",
|
|
3780
|
+
"Cindered",
|
|
3781
|
+
"Cobalt",
|
|
3782
|
+
"Coiled",
|
|
3783
|
+
"Copper",
|
|
3784
|
+
"Corroded",
|
|
3785
|
+
"Crimson",
|
|
3786
|
+
"Crumbling",
|
|
3787
|
+
"Crystal",
|
|
3788
|
+
"Crystalline",
|
|
3789
|
+
"Cursed",
|
|
3790
|
+
"Cyan",
|
|
3791
|
+
"Dark",
|
|
3792
|
+
"Dawn",
|
|
3793
|
+
"Deep",
|
|
3794
|
+
"Desolate",
|
|
3795
|
+
"Dim",
|
|
3796
|
+
"Distant",
|
|
3797
|
+
"Drifting",
|
|
3798
|
+
"Dulled",
|
|
3799
|
+
"Dusk",
|
|
3800
|
+
"Dusted",
|
|
3801
|
+
"Ebony",
|
|
3802
|
+
"Elder",
|
|
3803
|
+
"Ember",
|
|
3804
|
+
"Emerald",
|
|
3805
|
+
"Ephemeral",
|
|
3806
|
+
"Eroded",
|
|
3807
|
+
"Eternal",
|
|
3808
|
+
"Ethereal",
|
|
3809
|
+
"Fading",
|
|
3810
|
+
"Ferrous",
|
|
3811
|
+
"Fibrous",
|
|
3812
|
+
"Flickering",
|
|
3813
|
+
"Floating",
|
|
3814
|
+
"Forlorn",
|
|
3815
|
+
"Forgotten",
|
|
3816
|
+
"Forsaken",
|
|
3817
|
+
"Fossil",
|
|
3818
|
+
"Fractal",
|
|
3819
|
+
"Fractured",
|
|
3820
|
+
"Frigid",
|
|
3821
|
+
"Frozen",
|
|
3822
|
+
"Fulgurite",
|
|
3823
|
+
"Fused",
|
|
3824
|
+
"Garnet",
|
|
3825
|
+
"Ghostly",
|
|
3826
|
+
"Glacial",
|
|
3827
|
+
"Gleaming",
|
|
3828
|
+
"Glinting",
|
|
3829
|
+
"Glowing",
|
|
3830
|
+
"Golden",
|
|
3831
|
+
"Granite",
|
|
3832
|
+
"Grazing",
|
|
3833
|
+
"Grim",
|
|
3834
|
+
"Hallowed",
|
|
3835
|
+
"Haze",
|
|
3836
|
+
"Hidden",
|
|
3837
|
+
"Hollow",
|
|
3838
|
+
"Hushed",
|
|
3839
|
+
"Igneous",
|
|
3840
|
+
"Incandescent",
|
|
3841
|
+
"Indigo",
|
|
3842
|
+
"Infinite",
|
|
3843
|
+
"Iridescent",
|
|
3844
|
+
"Iron",
|
|
3845
|
+
"Ivory",
|
|
3846
|
+
"Jade",
|
|
3847
|
+
"Kindled",
|
|
3848
|
+
"Lapis",
|
|
3849
|
+
"Latticed",
|
|
3850
|
+
"Leaden",
|
|
3851
|
+
"Lingering",
|
|
3852
|
+
"Lost",
|
|
3853
|
+
"Luminous",
|
|
3854
|
+
"Lunar",
|
|
3855
|
+
"Lustrous",
|
|
3856
|
+
"Magenta",
|
|
3857
|
+
"Malachite",
|
|
3858
|
+
"Marbled",
|
|
3859
|
+
"Mercurial",
|
|
3860
|
+
"Midnight",
|
|
3861
|
+
"Mineral",
|
|
3862
|
+
"Mirrored",
|
|
3863
|
+
"Molten",
|
|
3864
|
+
"Monolithic",
|
|
3865
|
+
"Muted",
|
|
3866
|
+
"Nebular",
|
|
3867
|
+
"Nocturnal",
|
|
3868
|
+
"Obsidian",
|
|
3869
|
+
"Ochre",
|
|
3870
|
+
"Onyx",
|
|
3871
|
+
"Opal",
|
|
3872
|
+
"Orbiting",
|
|
3873
|
+
"Oxidized",
|
|
3874
|
+
"Pale",
|
|
3875
|
+
"Pallid",
|
|
3876
|
+
"Pearlescent",
|
|
3877
|
+
"Petrified",
|
|
3878
|
+
"Phantom",
|
|
3879
|
+
"Phosphor",
|
|
3880
|
+
"Pitted",
|
|
3881
|
+
"Polar",
|
|
3882
|
+
"Primeval",
|
|
3883
|
+
"Primordial",
|
|
3884
|
+
"Prismatic",
|
|
3885
|
+
"Pulsing",
|
|
3886
|
+
"Quartz",
|
|
3887
|
+
"Quiet",
|
|
3888
|
+
"Radiant",
|
|
3889
|
+
"Refracting",
|
|
3890
|
+
"Remnant",
|
|
3891
|
+
"Riven",
|
|
3892
|
+
"Roaming",
|
|
3893
|
+
"Roiling",
|
|
3894
|
+
"Ruby",
|
|
3895
|
+
"Ruined",
|
|
3896
|
+
"Rust",
|
|
3897
|
+
"Sapphire",
|
|
3898
|
+
"Scarlet",
|
|
3899
|
+
"Scattered",
|
|
3900
|
+
"Scorched",
|
|
3901
|
+
"Seething",
|
|
3902
|
+
"Shadowed",
|
|
3903
|
+
"Shattered",
|
|
3904
|
+
"Shimmering",
|
|
3905
|
+
"Silent",
|
|
3906
|
+
"Silver",
|
|
3907
|
+
"Sintered",
|
|
3908
|
+
"Slate",
|
|
3909
|
+
"Smoldering",
|
|
3910
|
+
"Solar",
|
|
3911
|
+
"Solemn",
|
|
3912
|
+
"Somber",
|
|
3913
|
+
"Sorrow",
|
|
3914
|
+
"Spectral",
|
|
3915
|
+
"Spired",
|
|
3916
|
+
"Spiraling",
|
|
3917
|
+
"Stark",
|
|
3918
|
+
"Steel",
|
|
3919
|
+
"Stellar",
|
|
3920
|
+
"Stilled",
|
|
3921
|
+
"Storm",
|
|
3922
|
+
"Stranded",
|
|
3923
|
+
"Striated",
|
|
3924
|
+
"Stygian",
|
|
3925
|
+
"Sullen",
|
|
3926
|
+
"Sunken",
|
|
3927
|
+
"Sunlit",
|
|
3928
|
+
"Swirling",
|
|
3929
|
+
"Tarnished",
|
|
3930
|
+
"Tempest",
|
|
3931
|
+
"Thorned",
|
|
3932
|
+
"Tidal",
|
|
3933
|
+
"Timeless",
|
|
3934
|
+
"Titanium",
|
|
3935
|
+
"Topaz",
|
|
3936
|
+
"Torrential",
|
|
3937
|
+
"Turquoise",
|
|
3938
|
+
"Twilight",
|
|
3939
|
+
"Umbral",
|
|
3940
|
+
"Unbound",
|
|
3941
|
+
"Unfathomed",
|
|
3942
|
+
"Vagrant",
|
|
3943
|
+
"Vanishing",
|
|
3944
|
+
"Vaulted",
|
|
3945
|
+
"Veiled",
|
|
3946
|
+
"Verdant",
|
|
3947
|
+
"Vermillion",
|
|
3948
|
+
"Violet",
|
|
3949
|
+
"Viridian",
|
|
3950
|
+
"Void",
|
|
3951
|
+
"Volatile",
|
|
3952
|
+
"Wandering",
|
|
3953
|
+
"Waning",
|
|
3954
|
+
"Wasted",
|
|
3955
|
+
"Weathered",
|
|
3956
|
+
"Whispered",
|
|
3957
|
+
"Woven",
|
|
3958
|
+
"Wraith",
|
|
3959
|
+
"Wretched",
|
|
3960
|
+
"Yawning",
|
|
3961
|
+
"Yielding",
|
|
3962
|
+
"Zenith",
|
|
3963
|
+
"Zinc"
|
|
3964
|
+
];
|
|
3965
|
+
|
|
3966
|
+
var nebulaNouns = [
|
|
3967
|
+
"Abyss",
|
|
3968
|
+
"Anchor",
|
|
3969
|
+
"Anvil",
|
|
3970
|
+
"Apex",
|
|
3971
|
+
"Arch",
|
|
3972
|
+
"Aurora",
|
|
3973
|
+
"Basin",
|
|
3974
|
+
"Beacon",
|
|
3975
|
+
"Bloom",
|
|
3976
|
+
"Bough",
|
|
3977
|
+
"Briar",
|
|
3978
|
+
"Brine",
|
|
3979
|
+
"Bulwark",
|
|
3980
|
+
"Cairn",
|
|
3981
|
+
"Caldera",
|
|
3982
|
+
"Canopy",
|
|
3983
|
+
"Cascade",
|
|
3984
|
+
"Chalice",
|
|
3985
|
+
"Chasm",
|
|
3986
|
+
"Chorus",
|
|
3987
|
+
"Cistern",
|
|
3988
|
+
"Citadel",
|
|
3989
|
+
"Cloak",
|
|
3990
|
+
"Cloud",
|
|
3991
|
+
"Coil",
|
|
3992
|
+
"Column",
|
|
3993
|
+
"Core",
|
|
3994
|
+
"Corona",
|
|
3995
|
+
"Cradle",
|
|
3996
|
+
"Crest",
|
|
3997
|
+
"Crown",
|
|
3998
|
+
"Crucible",
|
|
3999
|
+
"Current",
|
|
4000
|
+
"Curtain",
|
|
4001
|
+
"Drift",
|
|
4002
|
+
"Dusk",
|
|
4003
|
+
"Echo",
|
|
4004
|
+
"Eddy",
|
|
4005
|
+
"Ember",
|
|
4006
|
+
"Expanse",
|
|
4007
|
+
"Eye",
|
|
4008
|
+
"Fathom",
|
|
4009
|
+
"Fissure",
|
|
4010
|
+
"Fjord",
|
|
4011
|
+
"Flare",
|
|
4012
|
+
"Fold",
|
|
4013
|
+
"Forge",
|
|
4014
|
+
"Frontier",
|
|
4015
|
+
"Furrow",
|
|
4016
|
+
"Gate",
|
|
4017
|
+
"Glade",
|
|
4018
|
+
"Gorge",
|
|
4019
|
+
"Grip",
|
|
4020
|
+
"Grotto",
|
|
4021
|
+
"Gulf",
|
|
4022
|
+
"Gyre",
|
|
4023
|
+
"Halo",
|
|
4024
|
+
"Haven",
|
|
4025
|
+
"Heart",
|
|
4026
|
+
"Hearth",
|
|
4027
|
+
"Helix",
|
|
4028
|
+
"Hollow",
|
|
4029
|
+
"Horn",
|
|
4030
|
+
"Husk",
|
|
4031
|
+
"Inlet",
|
|
4032
|
+
"Iris",
|
|
4033
|
+
"Jaw",
|
|
4034
|
+
"Keel",
|
|
4035
|
+
"Knot",
|
|
4036
|
+
"Lantern",
|
|
4037
|
+
"Lattice",
|
|
4038
|
+
"Loom",
|
|
4039
|
+
"Mantle",
|
|
4040
|
+
"Marrow",
|
|
4041
|
+
"Maw",
|
|
4042
|
+
"Meridian",
|
|
4043
|
+
"Mirage",
|
|
4044
|
+
"Monolith",
|
|
4045
|
+
"Mote",
|
|
4046
|
+
"Nave",
|
|
4047
|
+
"Nebula",
|
|
4048
|
+
"Nexus",
|
|
4049
|
+
"Obelisk",
|
|
4050
|
+
"Orbit",
|
|
4051
|
+
"Pall",
|
|
4052
|
+
"Passage",
|
|
4053
|
+
"Petal",
|
|
4054
|
+
"Pillar",
|
|
4055
|
+
"Pinnacle",
|
|
4056
|
+
"Plume",
|
|
4057
|
+
"Prism",
|
|
4058
|
+
"Prow",
|
|
4059
|
+
"Pulse",
|
|
4060
|
+
"Pyre",
|
|
4061
|
+
"Reach",
|
|
4062
|
+
"Remnant",
|
|
4063
|
+
"Rib",
|
|
4064
|
+
"Ridge",
|
|
4065
|
+
"Rift",
|
|
4066
|
+
"Root",
|
|
4067
|
+
"Sanctum",
|
|
4068
|
+
"Seal",
|
|
4069
|
+
"Seam",
|
|
4070
|
+
"Shard",
|
|
4071
|
+
"Shoal",
|
|
4072
|
+
"Shroud",
|
|
4073
|
+
"Sigil",
|
|
4074
|
+
"Sink",
|
|
4075
|
+
"Skull",
|
|
4076
|
+
"Span",
|
|
4077
|
+
"Spar",
|
|
4078
|
+
"Spine",
|
|
4079
|
+
"Spire",
|
|
4080
|
+
"Spoke",
|
|
4081
|
+
"Spur",
|
|
4082
|
+
"Steeple",
|
|
4083
|
+
"Storm",
|
|
4084
|
+
"Strand",
|
|
4085
|
+
"Surge",
|
|
4086
|
+
"Talon",
|
|
4087
|
+
"Tendril",
|
|
4088
|
+
"Thicket",
|
|
4089
|
+
"Thorn",
|
|
4090
|
+
"Thread",
|
|
4091
|
+
"Threshold",
|
|
4092
|
+
"Throat",
|
|
4093
|
+
"Tide",
|
|
4094
|
+
"Tomb",
|
|
4095
|
+
"Torrent",
|
|
4096
|
+
"Trench",
|
|
4097
|
+
"Trough",
|
|
4098
|
+
"Vault",
|
|
4099
|
+
"Veil",
|
|
4100
|
+
"Vestige",
|
|
4101
|
+
"Vigil",
|
|
4102
|
+
"Void",
|
|
4103
|
+
"Vortex",
|
|
4104
|
+
"Wake",
|
|
4105
|
+
"Ward",
|
|
4106
|
+
"Warden",
|
|
4107
|
+
"Weave",
|
|
4108
|
+
"Web",
|
|
4109
|
+
"Well",
|
|
4110
|
+
"Wellspring",
|
|
4111
|
+
"Whisper",
|
|
4112
|
+
"Wisp",
|
|
4113
|
+
"Wraith",
|
|
4114
|
+
"Wreath",
|
|
4115
|
+
"Zenith"
|
|
2943
4116
|
];
|
|
2944
4117
|
|
|
2945
4118
|
const LOCATION_EXISTS_THRESHOLD = 0x10;
|
|
@@ -2960,24 +4133,52 @@ function getLocationType(gameSeed, coordinates) {
|
|
|
2960
4133
|
return LocationType.NEBULA;
|
|
2961
4134
|
}
|
|
2962
4135
|
function isExtractableLocation(locationType) {
|
|
2963
|
-
return locationType
|
|
4136
|
+
return locationType !== LocationType.EMPTY;
|
|
2964
4137
|
}
|
|
2965
|
-
function
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
const seedStr = `${location.x}${location.y}systemName`;
|
|
2971
|
-
const hashResult = hash512(seed, seedStr);
|
|
2972
|
-
const syllableCount = 1 + (hashResult.array[0] % 3);
|
|
4138
|
+
function uint16(hash, offset) {
|
|
4139
|
+
return (hash.array[offset] << 8) | hash.array[offset + 1];
|
|
4140
|
+
}
|
|
4141
|
+
function generatePlanetName(hashResult) {
|
|
4142
|
+
const syllableCount = 2 + (hashResult.array[0] % 2);
|
|
2973
4143
|
const name = [];
|
|
2974
4144
|
for (let i = 0; i < syllableCount; i++) {
|
|
2975
|
-
const index = hashResult
|
|
4145
|
+
const index = uint16(hashResult, 1 + i * 2) % syllables.length;
|
|
2976
4146
|
const syllable = syllables[index];
|
|
2977
4147
|
name.push(i > 0 ? syllable.toLowerCase() : syllable);
|
|
2978
4148
|
}
|
|
2979
4149
|
return name.join('');
|
|
2980
4150
|
}
|
|
4151
|
+
function generateAsteroidName(hashResult) {
|
|
4152
|
+
const A = 65;
|
|
4153
|
+
const letter1 = String.fromCharCode(A + (hashResult.array[0] % 26));
|
|
4154
|
+
const letter2 = String.fromCharCode(A + (hashResult.array[1] % 26));
|
|
4155
|
+
const num = (uint16(hashResult, 2) % 9000) + 1000;
|
|
4156
|
+
return `${letter1}${letter2}-${num}`;
|
|
4157
|
+
}
|
|
4158
|
+
function generateNebulaName(hashResult) {
|
|
4159
|
+
const adjIdx = uint16(hashResult, 0) % nebulaAdjectives.length;
|
|
4160
|
+
const nounIdx = uint16(hashResult, 2) % nebulaNouns.length;
|
|
4161
|
+
return `${nebulaAdjectives[adjIdx]} ${nebulaNouns[nounIdx]}`;
|
|
4162
|
+
}
|
|
4163
|
+
function getSystemName(gameSeed, location) {
|
|
4164
|
+
const seed = Checksum256.from(gameSeed);
|
|
4165
|
+
const locationType = getLocationType(seed, location);
|
|
4166
|
+
if (locationType === LocationType.EMPTY) {
|
|
4167
|
+
throw new Error("System doesn't exist at location");
|
|
4168
|
+
}
|
|
4169
|
+
const seedStr = `${location.x}-${location.y}-${locationType}-name`;
|
|
4170
|
+
const hashResult = hash512(seed, seedStr);
|
|
4171
|
+
switch (locationType) {
|
|
4172
|
+
case LocationType.PLANET:
|
|
4173
|
+
return generatePlanetName(hashResult);
|
|
4174
|
+
case LocationType.ASTEROID:
|
|
4175
|
+
return generateAsteroidName(hashResult);
|
|
4176
|
+
case LocationType.NEBULA:
|
|
4177
|
+
return generateNebulaName(hashResult);
|
|
4178
|
+
default:
|
|
4179
|
+
return generatePlanetName(hashResult);
|
|
4180
|
+
}
|
|
4181
|
+
}
|
|
2981
4182
|
function hasSystem(gameSeed, coordinates) {
|
|
2982
4183
|
return getLocationType(gameSeed, coordinates) !== LocationType.EMPTY;
|
|
2983
4184
|
}
|
|
@@ -3005,7 +4206,9 @@ function deriveLocationStatic(gameSeed, coordinates) {
|
|
|
3005
4206
|
else {
|
|
3006
4207
|
loc.type = UInt8.from(LocationType.NEBULA);
|
|
3007
4208
|
}
|
|
3008
|
-
loc.subtype = UInt8.from(
|
|
4209
|
+
loc.subtype = UInt8.from(Number(loc.type) === LocationType.PLANET
|
|
4210
|
+
? hashResult.array[2] % 6
|
|
4211
|
+
: hashResult.array[2]);
|
|
3009
4212
|
loc.seed0 = UInt8.from(hashResult.array[3]);
|
|
3010
4213
|
loc.seed1 = UInt8.from(hashResult.array[4]);
|
|
3011
4214
|
return loc;
|
|
@@ -3027,35 +4230,6 @@ function deriveLocation(gameSeed, epochSeed, coordinates) {
|
|
|
3027
4230
|
epoch_props: deriveLocationEpoch(epochSeed, coordinates),
|
|
3028
4231
|
});
|
|
3029
4232
|
}
|
|
3030
|
-
function deriveLocationMixture(location, epochSeed) {
|
|
3031
|
-
const locationType = location.static_props.type.toNumber();
|
|
3032
|
-
if (locationType === LocationType.NEBULA) {
|
|
3033
|
-
return Types.mixture_info.from({
|
|
3034
|
-
components: [{ good_id: 1, purity: PRECISION }],
|
|
3035
|
-
});
|
|
3036
|
-
}
|
|
3037
|
-
if (locationType === LocationType.ASTEROID) {
|
|
3038
|
-
const seed = Checksum256.from(epochSeed);
|
|
3039
|
-
const coords = location.static_props.coords;
|
|
3040
|
-
const str = `mixture-${coords.x}-${coords.y}`;
|
|
3041
|
-
const hashResult = hash512(seed, str);
|
|
3042
|
-
const ironPrimary = location.static_props.subtype.toNumber() % 2 === 0;
|
|
3043
|
-
const purityRange = 0.3;
|
|
3044
|
-
const purityRoll = hashResult.array[0] / 255;
|
|
3045
|
-
const primaryPurity = 0.5 + purityRoll * purityRange;
|
|
3046
|
-
const primaryId = ironPrimary ? 26 : 29;
|
|
3047
|
-
const secondaryId = ironPrimary ? 29 : 26;
|
|
3048
|
-
const primaryAmt = Math.floor(primaryPurity * PRECISION);
|
|
3049
|
-
const secondaryAmt = PRECISION - primaryAmt;
|
|
3050
|
-
return Types.mixture_info.from({
|
|
3051
|
-
components: [
|
|
3052
|
-
{ good_id: primaryId, purity: primaryAmt },
|
|
3053
|
-
{ good_id: secondaryId, purity: secondaryAmt },
|
|
3054
|
-
],
|
|
3055
|
-
});
|
|
3056
|
-
}
|
|
3057
|
-
return Types.mixture_info.from({ components: [] });
|
|
3058
|
-
}
|
|
3059
4233
|
|
|
3060
4234
|
class GameState extends Types.state_row {
|
|
3061
4235
|
static from(state, game) {
|
|
@@ -3150,47 +4324,170 @@ class BaseManager {
|
|
|
3150
4324
|
}
|
|
3151
4325
|
}
|
|
3152
4326
|
|
|
3153
|
-
var
|
|
4327
|
+
var itemsData = [
|
|
3154
4328
|
{
|
|
3155
4329
|
id: 1,
|
|
3156
4330
|
name: "Hydrogen",
|
|
3157
|
-
description: "A lightweight
|
|
4331
|
+
description: "A lightweight gas used for fuel cells and propulsion.",
|
|
3158
4332
|
base_price: 50,
|
|
3159
|
-
mass: 15000
|
|
4333
|
+
mass: 15000,
|
|
4334
|
+
category: "gas",
|
|
4335
|
+
rarity: "common",
|
|
4336
|
+
color: "#7EC8E3"
|
|
4337
|
+
},
|
|
4338
|
+
{
|
|
4339
|
+
id: 2,
|
|
4340
|
+
name: "Helium",
|
|
4341
|
+
description: "An inert noble gas used in energy systems.",
|
|
4342
|
+
base_price: 75,
|
|
4343
|
+
mass: 2000,
|
|
4344
|
+
category: "gas",
|
|
4345
|
+
rarity: "uncommon",
|
|
4346
|
+
color: "#F5E6CC"
|
|
4347
|
+
},
|
|
4348
|
+
{
|
|
4349
|
+
id: 6,
|
|
4350
|
+
name: "Carbon",
|
|
4351
|
+
description: "A versatile element for life support and coatings.",
|
|
4352
|
+
base_price: 100,
|
|
4353
|
+
mass: 12000,
|
|
4354
|
+
category: "organic",
|
|
4355
|
+
rarity: "common",
|
|
4356
|
+
color: "#4A4A4A"
|
|
4357
|
+
},
|
|
4358
|
+
{
|
|
4359
|
+
id: 14,
|
|
4360
|
+
name: "Silicon",
|
|
4361
|
+
description: "A semiconductor used in sensors and computing.",
|
|
4362
|
+
base_price: 150,
|
|
4363
|
+
mass: 28000,
|
|
4364
|
+
category: "mineral",
|
|
4365
|
+
rarity: "common",
|
|
4366
|
+
color: "#B8A9C9"
|
|
4367
|
+
},
|
|
4368
|
+
{
|
|
4369
|
+
id: 18,
|
|
4370
|
+
name: "Argon",
|
|
4371
|
+
description: "A noble gas used in industrial and energy applications.",
|
|
4372
|
+
base_price: 60,
|
|
4373
|
+
mass: 8000,
|
|
4374
|
+
category: "gas",
|
|
4375
|
+
rarity: "rare",
|
|
4376
|
+
color: "#9B59B6"
|
|
4377
|
+
},
|
|
4378
|
+
{
|
|
4379
|
+
id: 22,
|
|
4380
|
+
name: "Titanium",
|
|
4381
|
+
description: "A strong, lightweight metal for ship construction.",
|
|
4382
|
+
base_price: 300,
|
|
4383
|
+
mass: 48000,
|
|
4384
|
+
category: "metal",
|
|
4385
|
+
rarity: "rare",
|
|
4386
|
+
color: "#C0C0C0"
|
|
3160
4387
|
},
|
|
3161
4388
|
{
|
|
3162
4389
|
id: 26,
|
|
3163
4390
|
name: "Iron",
|
|
3164
|
-
description: "A versatile metal used in
|
|
4391
|
+
description: "A versatile metal used in hulls and structures.",
|
|
3165
4392
|
base_price: 125,
|
|
3166
|
-
mass: 40000
|
|
4393
|
+
mass: 40000,
|
|
4394
|
+
category: "metal",
|
|
4395
|
+
rarity: "common",
|
|
4396
|
+
color: "#B7410E"
|
|
3167
4397
|
},
|
|
3168
4398
|
{
|
|
3169
4399
|
id: 29,
|
|
3170
4400
|
name: "Copper",
|
|
3171
|
-
description: "A conductive metal
|
|
4401
|
+
description: "A conductive metal for electronics and wiring.",
|
|
3172
4402
|
base_price: 200,
|
|
3173
|
-
mass: 60000
|
|
4403
|
+
mass: 60000,
|
|
4404
|
+
category: "metal",
|
|
4405
|
+
rarity: "uncommon",
|
|
4406
|
+
color: "#B87333"
|
|
4407
|
+
},
|
|
4408
|
+
{
|
|
4409
|
+
id: 54,
|
|
4410
|
+
name: "Xenon",
|
|
4411
|
+
description: "A rare noble gas for advanced propulsion systems.",
|
|
4412
|
+
base_price: 175,
|
|
4413
|
+
mass: 20000,
|
|
4414
|
+
category: "gas",
|
|
4415
|
+
rarity: "epic",
|
|
4416
|
+
color: "#5B2C6F"
|
|
4417
|
+
},
|
|
4418
|
+
{
|
|
4419
|
+
id: 74,
|
|
4420
|
+
name: "Tungsten",
|
|
4421
|
+
description: "An extremely dense metal for heavy-duty applications.",
|
|
4422
|
+
base_price: 500,
|
|
4423
|
+
mass: 80000,
|
|
4424
|
+
category: "metal",
|
|
4425
|
+
rarity: "epic",
|
|
4426
|
+
color: "#708090"
|
|
4427
|
+
},
|
|
4428
|
+
{
|
|
4429
|
+
id: 1000,
|
|
4430
|
+
name: "Quartz",
|
|
4431
|
+
description: "A crystalline mineral for sensors and optics.",
|
|
4432
|
+
base_price: 200,
|
|
4433
|
+
mass: 35000,
|
|
4434
|
+
category: "mineral",
|
|
4435
|
+
rarity: "uncommon",
|
|
4436
|
+
color: "#E8D5B7"
|
|
4437
|
+
},
|
|
4438
|
+
{
|
|
4439
|
+
id: 1001,
|
|
4440
|
+
name: "Sapphire",
|
|
4441
|
+
description: "A precious crystal for precision instruments.",
|
|
4442
|
+
base_price: 400,
|
|
4443
|
+
mass: 45000,
|
|
4444
|
+
category: "mineral",
|
|
4445
|
+
rarity: "rare",
|
|
4446
|
+
color: "#0F52BA"
|
|
4447
|
+
},
|
|
4448
|
+
{
|
|
4449
|
+
id: 1002,
|
|
4450
|
+
name: "Polymers",
|
|
4451
|
+
description: "Synthetic materials for coatings and consumables.",
|
|
4452
|
+
base_price: 150,
|
|
4453
|
+
mass: 25000,
|
|
4454
|
+
category: "organic",
|
|
4455
|
+
rarity: "rare",
|
|
4456
|
+
color: "#2ECC71"
|
|
4457
|
+
},
|
|
4458
|
+
{
|
|
4459
|
+
id: 1003,
|
|
4460
|
+
name: "Biomass",
|
|
4461
|
+
description: "Organic matter for life support systems.",
|
|
4462
|
+
base_price: 100,
|
|
4463
|
+
mass: 30000,
|
|
4464
|
+
category: "organic",
|
|
4465
|
+
rarity: "uncommon",
|
|
4466
|
+
color: "#8B4513"
|
|
3174
4467
|
}
|
|
3175
4468
|
];
|
|
3176
4469
|
|
|
3177
|
-
const
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
4470
|
+
const items = itemsData.map((g) => Item.from({
|
|
4471
|
+
id: g.id,
|
|
4472
|
+
name: g.name,
|
|
4473
|
+
description: g.description,
|
|
4474
|
+
base_price: g.base_price,
|
|
4475
|
+
mass: g.mass,
|
|
4476
|
+
category: g.category,
|
|
4477
|
+
rarity: g.rarity,
|
|
4478
|
+
color: g.color,
|
|
4479
|
+
}));
|
|
4480
|
+
const itemIds = items.map((i) => i.id);
|
|
4481
|
+
function getItem(itemId) {
|
|
4482
|
+
const id = UInt16.from(itemId);
|
|
4483
|
+
const item = items.find((i) => i.id.equals(id));
|
|
4484
|
+
if (!item) {
|
|
4485
|
+
throw new Error(`Item with id ${id} not found`);
|
|
4486
|
+
}
|
|
4487
|
+
return item;
|
|
4488
|
+
}
|
|
4489
|
+
function getItems() {
|
|
4490
|
+
return items;
|
|
3194
4491
|
}
|
|
3195
4492
|
|
|
3196
4493
|
function calc_orbital_altitude(mass) {
|
|
@@ -3280,7 +4577,7 @@ function calc_ship_mass(ship, cargos) {
|
|
|
3280
4577
|
mass.add(ship.loaders.mass.multiplying(ship.loaders.quantity));
|
|
3281
4578
|
}
|
|
3282
4579
|
for (const cargo of cargos) {
|
|
3283
|
-
mass.add(
|
|
4580
|
+
mass.add(getItem(cargo.item_id).mass.multiplying(cargo.quantity));
|
|
3284
4581
|
}
|
|
3285
4582
|
return mass;
|
|
3286
4583
|
}
|
|
@@ -3290,9 +4587,9 @@ function calc_energyusage(distance, drain) {
|
|
|
3290
4587
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
3291
4588
|
let mass = UInt64.from(0);
|
|
3292
4589
|
for (const cargo of cargos) {
|
|
3293
|
-
const qty = quantities?.get(Number(cargo.
|
|
4590
|
+
const qty = quantities?.get(Number(cargo.item_id)) ?? 0;
|
|
3294
4591
|
if (qty > 0) {
|
|
3295
|
-
const good_mass =
|
|
4592
|
+
const good_mass = getItem(cargo.item_id).mass;
|
|
3296
4593
|
const cargo_mass = good_mass.multiplying(qty);
|
|
3297
4594
|
mass = UInt64.from(mass).adding(cargo_mass);
|
|
3298
4595
|
}
|
|
@@ -3315,11 +4612,11 @@ function calculateLoadTimeBreakdown(ship, cargos, loadQuantities, unloadQuantiti
|
|
|
3315
4612
|
let mass_unload = UInt64.from(0);
|
|
3316
4613
|
let mass_load = UInt64.from(0);
|
|
3317
4614
|
for (const cargo of cargos) {
|
|
3318
|
-
const goodId = Number(cargo.
|
|
4615
|
+
const goodId = Number(cargo.item_id);
|
|
3319
4616
|
const loadQty = loadQuantities?.get(goodId) ?? 0;
|
|
3320
4617
|
const unloadQty = unloadQuantities?.get(goodId) ?? 0;
|
|
3321
4618
|
if (loadQty > 0 || unloadQty > 0) {
|
|
3322
|
-
const good =
|
|
4619
|
+
const good = getItem(cargo.item_id);
|
|
3323
4620
|
if (loadQty > 0) {
|
|
3324
4621
|
const cargo_mass = good.mass.multiplying(loadQty);
|
|
3325
4622
|
mass_load = UInt64.from(mass_load).adding(cargo_mass);
|
|
@@ -3498,7 +4795,7 @@ function capsHasMass(caps) {
|
|
|
3498
4795
|
function calcCargoMass(entity) {
|
|
3499
4796
|
let mass = UInt64.from(0);
|
|
3500
4797
|
for (const item of entity.cargo) {
|
|
3501
|
-
const good =
|
|
4798
|
+
const good = getItem(item.item_id);
|
|
3502
4799
|
mass = mass.adding(good.mass.multiplying(item.quantity));
|
|
3503
4800
|
}
|
|
3504
4801
|
return mass;
|
|
@@ -3797,19 +5094,19 @@ function applyFlightTask(projected, task, options) {
|
|
|
3797
5094
|
: UInt16.from(0);
|
|
3798
5095
|
}
|
|
3799
5096
|
}
|
|
3800
|
-
function
|
|
3801
|
-
const
|
|
3802
|
-
return
|
|
5097
|
+
function getItemMass(item_id) {
|
|
5098
|
+
const item = getItem(item_id);
|
|
5099
|
+
return item.mass;
|
|
3803
5100
|
}
|
|
3804
5101
|
function applyLoadTask(projected, task) {
|
|
3805
5102
|
for (const item of task.cargo) {
|
|
3806
|
-
const good_mass =
|
|
5103
|
+
const good_mass = getItemMass(item.item_id);
|
|
3807
5104
|
projected.cargoMass = projected.cargoMass.adding(good_mass.multiplying(item.quantity));
|
|
3808
5105
|
}
|
|
3809
5106
|
}
|
|
3810
5107
|
function applyUnloadTask(projected, task) {
|
|
3811
5108
|
for (const item of task.cargo) {
|
|
3812
|
-
const good_mass =
|
|
5109
|
+
const good_mass = getItemMass(item.item_id);
|
|
3813
5110
|
const cargoMass = good_mass.multiplying(item.quantity);
|
|
3814
5111
|
projected.cargoMass = projected.cargoMass.gt(cargoMass)
|
|
3815
5112
|
? projected.cargoMass.subtracting(cargoMass)
|
|
@@ -3826,7 +5123,7 @@ function applyExtractTask(projected, task, options) {
|
|
|
3826
5123
|
: UInt16.from(0);
|
|
3827
5124
|
}
|
|
3828
5125
|
for (const item of task.cargo) {
|
|
3829
|
-
const good_mass =
|
|
5126
|
+
const good_mass = getItemMass(item.item_id);
|
|
3830
5127
|
projected.cargoMass = projected.cargoMass.adding(good_mass.multiplying(item.quantity));
|
|
3831
5128
|
}
|
|
3832
5129
|
}
|
|
@@ -3947,7 +5244,7 @@ class Location {
|
|
|
3947
5244
|
getSupply(goodId) {
|
|
3948
5245
|
if (!this._locationRows)
|
|
3949
5246
|
return undefined;
|
|
3950
|
-
const row = this._locationRows.find((r) => r.
|
|
5247
|
+
const row = this._locationRows.find((r) => r.item_id.equals(goodId) && this._epoch && r.epoch.equals(this._epoch));
|
|
3951
5248
|
return row ? row.supply : undefined;
|
|
3952
5249
|
}
|
|
3953
5250
|
get availableGoods() {
|
|
@@ -3985,9 +5282,9 @@ class Location {
|
|
|
3985
5282
|
? currentSupply.subtracting(delta)
|
|
3986
5283
|
: UInt16.from(0)
|
|
3987
5284
|
: currentSupply.adding(quantityDelta);
|
|
3988
|
-
return
|
|
5285
|
+
return ItemPrice.from({
|
|
3989
5286
|
id: price.id,
|
|
3990
|
-
|
|
5287
|
+
item: price.item,
|
|
3991
5288
|
price: price.price,
|
|
3992
5289
|
supply: newSupply,
|
|
3993
5290
|
});
|
|
@@ -3997,7 +5294,7 @@ class Location {
|
|
|
3997
5294
|
}
|
|
3998
5295
|
if (this._locationRows && this._epoch) {
|
|
3999
5296
|
newLocation._locationRows = this._locationRows.map((row) => {
|
|
4000
|
-
if (row.
|
|
5297
|
+
if (row.item_id.equals(goodId) && row.epoch.equals(this._epoch)) {
|
|
4001
5298
|
const currentSupply = UInt16.from(row.supply);
|
|
4002
5299
|
const delta = UInt16.from(Math.abs(quantityDelta));
|
|
4003
5300
|
const newSupply = quantityDelta < 0
|
|
@@ -4009,7 +5306,7 @@ class Location {
|
|
|
4009
5306
|
id: row.id,
|
|
4010
5307
|
coordinates: row.coordinates,
|
|
4011
5308
|
epoch: row.epoch,
|
|
4012
|
-
|
|
5309
|
+
item_id: row.item_id,
|
|
4013
5310
|
supply: newSupply,
|
|
4014
5311
|
});
|
|
4015
5312
|
}
|
|
@@ -4090,17 +5387,20 @@ function createScheduleAccessor(entity) {
|
|
|
4090
5387
|
}
|
|
4091
5388
|
|
|
4092
5389
|
class EntityInventory extends Types.cargo_item {
|
|
4093
|
-
get
|
|
4094
|
-
if (!this.
|
|
4095
|
-
this.
|
|
5390
|
+
get item() {
|
|
5391
|
+
if (!this._item) {
|
|
5392
|
+
this._item = getItem(this.item_id);
|
|
4096
5393
|
}
|
|
4097
|
-
return this.
|
|
5394
|
+
return this._item;
|
|
5395
|
+
}
|
|
5396
|
+
get good() {
|
|
5397
|
+
return this.item;
|
|
4098
5398
|
}
|
|
4099
5399
|
get name() {
|
|
4100
|
-
return this.
|
|
5400
|
+
return this.item.name;
|
|
4101
5401
|
}
|
|
4102
5402
|
get unitMass() {
|
|
4103
|
-
return this.
|
|
5403
|
+
return this.item.mass;
|
|
4104
5404
|
}
|
|
4105
5405
|
get totalMass() {
|
|
4106
5406
|
return UInt64.from(this.unitMass).multiplying(this.quantity);
|
|
@@ -4132,8 +5432,8 @@ class InventoryAccessor {
|
|
|
4132
5432
|
get totalValue() {
|
|
4133
5433
|
return this.items.reduce((sum, c) => sum.adding(c.totalCost), UInt64.from(0));
|
|
4134
5434
|
}
|
|
4135
|
-
|
|
4136
|
-
return this.items.find((c) => c.
|
|
5435
|
+
forItem(goodId) {
|
|
5436
|
+
return this.items.find((c) => c.item_id.equals(goodId));
|
|
4137
5437
|
}
|
|
4138
5438
|
get sellable() {
|
|
4139
5439
|
return this.items.filter((c) => c.hasCargo);
|
|
@@ -4178,8 +5478,8 @@ function cargoValue(cargo) {
|
|
|
4178
5478
|
return sum.adding(c.totalCost);
|
|
4179
5479
|
}, UInt64.from(0));
|
|
4180
5480
|
}
|
|
4181
|
-
function
|
|
4182
|
-
return cargo.find((c) => c.
|
|
5481
|
+
function getCargoForItem(cargo, goodId) {
|
|
5482
|
+
return cargo.find((c) => c.item_id.equals(goodId));
|
|
4183
5483
|
}
|
|
4184
5484
|
function hasSpace(currentMass, maxCapacity, goodMass, quantity) {
|
|
4185
5485
|
const additionalMass = goodMass.multiplying(quantity);
|
|
@@ -4204,7 +5504,7 @@ function calculateSaleValue(cargo, prices) {
|
|
|
4204
5504
|
for (const item of cargo) {
|
|
4205
5505
|
if (UInt32.from(item.quantity).equals(UInt32.from(0)))
|
|
4206
5506
|
continue;
|
|
4207
|
-
const goodId = Number(item.
|
|
5507
|
+
const goodId = Number(item.item_id);
|
|
4208
5508
|
const salePrice = prices.get(goodId);
|
|
4209
5509
|
if (salePrice) {
|
|
4210
5510
|
revenue = revenue.adding(salePrice.multiplying(item.quantity));
|
|
@@ -4225,30 +5525,30 @@ function calculateSaleValueFromArray(cargo, prices) {
|
|
|
4225
5525
|
});
|
|
4226
5526
|
return calculateSaleValue(cargo, priceMap);
|
|
4227
5527
|
}
|
|
4228
|
-
function
|
|
5528
|
+
function afterSellItems(cargo, goodsToSell) {
|
|
4229
5529
|
if (cargo.length === 0) {
|
|
4230
5530
|
return [];
|
|
4231
5531
|
}
|
|
4232
5532
|
return cargo.map((item) => {
|
|
4233
|
-
const saleItem = goodsToSell.find((s) => Number(item.
|
|
5533
|
+
const saleItem = goodsToSell.find((s) => Number(item.item_id) === s.goodId);
|
|
4234
5534
|
if (!saleItem) {
|
|
4235
5535
|
return new EntityInventory(item);
|
|
4236
5536
|
}
|
|
4237
5537
|
const currentQty = Number(item.quantity);
|
|
4238
5538
|
const newQty = Math.max(0, currentQty - saleItem.quantity);
|
|
4239
5539
|
return new EntityInventory(Types.cargo_item.from({
|
|
4240
|
-
|
|
5540
|
+
item_id: item.item_id,
|
|
4241
5541
|
quantity: UInt32.from(newQty),
|
|
4242
5542
|
unit_cost: item.unit_cost,
|
|
4243
5543
|
}));
|
|
4244
5544
|
});
|
|
4245
5545
|
}
|
|
4246
|
-
function
|
|
5546
|
+
function afterSellAllItems(cargo) {
|
|
4247
5547
|
if (cargo.length === 0) {
|
|
4248
5548
|
return [];
|
|
4249
5549
|
}
|
|
4250
5550
|
return cargo.map((item) => new EntityInventory(Types.cargo_item.from({
|
|
4251
|
-
|
|
5551
|
+
item_id: item.item_id,
|
|
4252
5552
|
quantity: UInt32.from(0),
|
|
4253
5553
|
unit_cost: item.unit_cost,
|
|
4254
5554
|
})));
|
|
@@ -4258,14 +5558,14 @@ var cargoUtils = /*#__PURE__*/Object.freeze({
|
|
|
4258
5558
|
__proto__: null,
|
|
4259
5559
|
totalCargoMass: totalCargoMass,
|
|
4260
5560
|
cargoValue: cargoValue,
|
|
4261
|
-
|
|
5561
|
+
getCargoForItem: getCargoForItem,
|
|
4262
5562
|
hasSpace: hasSpace,
|
|
4263
5563
|
availableCapacity: availableCapacity,
|
|
4264
5564
|
isFull: isFull,
|
|
4265
5565
|
calculateSaleValue: calculateSaleValue,
|
|
4266
5566
|
calculateSaleValueFromArray: calculateSaleValueFromArray,
|
|
4267
|
-
|
|
4268
|
-
|
|
5567
|
+
afterSellItems: afterSellItems,
|
|
5568
|
+
afterSellAllItems: afterSellAllItems
|
|
4269
5569
|
});
|
|
4270
5570
|
|
|
4271
5571
|
class Ship extends Types.entity_info {
|
|
@@ -4319,6 +5619,9 @@ class Ship extends Types.entity_info {
|
|
|
4319
5619
|
get hasExtractor() {
|
|
4320
5620
|
return this.extractor !== undefined;
|
|
4321
5621
|
}
|
|
5622
|
+
get hasWarp() {
|
|
5623
|
+
return this.warp !== undefined;
|
|
5624
|
+
}
|
|
4322
5625
|
project() {
|
|
4323
5626
|
return projectEntity(this);
|
|
4324
5627
|
}
|
|
@@ -4352,8 +5655,8 @@ class Ship extends Types.entity_info {
|
|
|
4352
5655
|
? UInt64.from(0)
|
|
4353
5656
|
: this.maxCapacity.subtracting(this.totalMass);
|
|
4354
5657
|
}
|
|
4355
|
-
|
|
4356
|
-
return this.inv.
|
|
5658
|
+
getCargoForItem(goodId) {
|
|
5659
|
+
return this.inv.forItem(goodId);
|
|
4357
5660
|
}
|
|
4358
5661
|
get sellableCargo() {
|
|
4359
5662
|
return this.inv.sellable;
|
|
@@ -4388,11 +5691,11 @@ class Ship extends Types.entity_info {
|
|
|
4388
5691
|
calculateSaleValueFromArray(prices) {
|
|
4389
5692
|
return calculateSaleValueFromArray(this.cargo, prices);
|
|
4390
5693
|
}
|
|
4391
|
-
|
|
4392
|
-
return
|
|
5694
|
+
afterSellItems(goodsToSell) {
|
|
5695
|
+
return afterSellItems(this.cargo, goodsToSell);
|
|
4393
5696
|
}
|
|
4394
|
-
|
|
4395
|
-
return
|
|
5697
|
+
afterSellAllItems() {
|
|
5698
|
+
return afterSellAllItems(this.cargo);
|
|
4396
5699
|
}
|
|
4397
5700
|
}
|
|
4398
5701
|
|
|
@@ -4440,8 +5743,8 @@ class Warehouse extends Types.entity_info {
|
|
|
4440
5743
|
get isFull() {
|
|
4441
5744
|
return this.totalCargoMass.gte(this.maxCapacity);
|
|
4442
5745
|
}
|
|
4443
|
-
|
|
4444
|
-
return this.inv.
|
|
5746
|
+
getCargoForItem(goodId) {
|
|
5747
|
+
return this.inv.forItem(goodId);
|
|
4445
5748
|
}
|
|
4446
5749
|
get orbitalAltitude() {
|
|
4447
5750
|
return this.coordinates.z?.toNumber() || 0;
|
|
@@ -4853,22 +6156,22 @@ function getSupply(gameSeed, state, location, goodId) {
|
|
|
4853
6156
|
return Math.floor(base * percent * ship * epoch);
|
|
4854
6157
|
}
|
|
4855
6158
|
function marketPrice(location, goodId, gameSeed, state) {
|
|
4856
|
-
const
|
|
4857
|
-
let price = Number(
|
|
6159
|
+
const item = getItem(goodId);
|
|
6160
|
+
let price = Number(item.base_price);
|
|
4858
6161
|
const rarityMultiplier = getRarityMultiplier(gameSeed, state.seed, location, goodId);
|
|
4859
6162
|
price *= rarityMultiplier;
|
|
4860
6163
|
const locationMultiplier = getLocationMultiplier(gameSeed, location, goodId);
|
|
4861
6164
|
price *= locationMultiplier;
|
|
4862
6165
|
const supply = getSupply(gameSeed, state, location, goodId);
|
|
4863
|
-
return
|
|
6166
|
+
return ItemPrice.from({
|
|
4864
6167
|
id: goodId,
|
|
4865
|
-
|
|
6168
|
+
item,
|
|
4866
6169
|
price: UInt32.from(price),
|
|
4867
6170
|
supply: UInt16.from(supply),
|
|
4868
6171
|
});
|
|
4869
6172
|
}
|
|
4870
6173
|
function marketPrices(location, gameSeed, state) {
|
|
4871
|
-
return
|
|
6174
|
+
return getItems().map((item) => marketPrice(location, item.id, gameSeed, state));
|
|
4872
6175
|
}
|
|
4873
6176
|
|
|
4874
6177
|
class LocationsManager extends BaseManager {
|
|
@@ -4892,15 +6195,15 @@ class LocationsManager extends BaseManager {
|
|
|
4892
6195
|
const supplyMap = new Map();
|
|
4893
6196
|
for (const row of supplyRows) {
|
|
4894
6197
|
if (UInt64.from(row.epoch).equals(state.epoch)) {
|
|
4895
|
-
supplyMap.set(Number(row.
|
|
6198
|
+
supplyMap.set(Number(row.item_id), Number(row.supply));
|
|
4896
6199
|
}
|
|
4897
6200
|
}
|
|
4898
6201
|
return prices.map((price) => {
|
|
4899
6202
|
const actualSupply = supplyMap.get(Number(price.id));
|
|
4900
6203
|
if (actualSupply !== undefined) {
|
|
4901
|
-
return
|
|
6204
|
+
return ItemPrice.from({
|
|
4902
6205
|
id: price.id,
|
|
4903
|
-
|
|
6206
|
+
item: price.item,
|
|
4904
6207
|
price: price.price,
|
|
4905
6208
|
supply: UInt64.from(actualSupply),
|
|
4906
6209
|
});
|
|
@@ -4970,7 +6273,7 @@ function calculateUpdatedCargoCost(currentPaid, currentOwned, purchaseCost, purc
|
|
|
4970
6273
|
}
|
|
4971
6274
|
function calculateMaxTradeQuantity(ship, player, goodPrice) {
|
|
4972
6275
|
const pricePerUnit = UInt32.from(goodPrice.price);
|
|
4973
|
-
const massPerUnit = UInt32.from(goodPrice.
|
|
6276
|
+
const massPerUnit = UInt32.from(goodPrice.item.mass);
|
|
4974
6277
|
const spaceForQuantity = ship.availableCapacity.dividing(massPerUnit);
|
|
4975
6278
|
const affordableQuantity = player.balance.dividing(pricePerUnit);
|
|
4976
6279
|
const maxQuantity = spaceForQuantity.lt(affordableQuantity)
|
|
@@ -5003,7 +6306,7 @@ function calculateProfitPerSecond(profit, travelTimeSeconds) {
|
|
|
5003
6306
|
const t = UInt32.from(travelTimeSeconds);
|
|
5004
6307
|
return t.gt(UInt32.zero) ? Number(profit) / Number(t) : 0;
|
|
5005
6308
|
}
|
|
5006
|
-
function
|
|
6309
|
+
function findBestItemToTrade(ship, player, originPrices, destPrices, travelTimeSeconds) {
|
|
5007
6310
|
let bestTrade = null;
|
|
5008
6311
|
let bestProfitPerSecond = 0;
|
|
5009
6312
|
for (const originPrice of originPrices) {
|
|
@@ -5020,7 +6323,7 @@ function findBestGoodToTrade(ship, player, originPrices, destPrices, travelTimeS
|
|
|
5020
6323
|
if (profitPerSecond > bestProfitPerSecond) {
|
|
5021
6324
|
bestProfitPerSecond = profitPerSecond;
|
|
5022
6325
|
bestTrade = {
|
|
5023
|
-
|
|
6326
|
+
item: originPrice,
|
|
5024
6327
|
quantity: calc.maxQuantity,
|
|
5025
6328
|
profit: Number(tradeResult.profit),
|
|
5026
6329
|
profitPerSecond,
|
|
@@ -5070,7 +6373,7 @@ async function findDealsForShip(ship, originLocation, getNearbyLocations, getMar
|
|
|
5070
6373
|
const canAfford = balance !== undefined
|
|
5071
6374
|
? balance.dividing(originGood.price)
|
|
5072
6375
|
: UInt64.from(Number.MAX_SAFE_INTEGER);
|
|
5073
|
-
const canHaul = effectiveAvailableMass.dividing(originGood.
|
|
6376
|
+
const canHaul = effectiveAvailableMass.dividing(originGood.item.mass);
|
|
5074
6377
|
const supplyLimit = UInt64.from(originGood.supply);
|
|
5075
6378
|
let maxQuantity = canAfford;
|
|
5076
6379
|
if (canHaul.lt(maxQuantity))
|
|
@@ -5079,7 +6382,7 @@ async function findDealsForShip(ship, originLocation, getNearbyLocations, getMar
|
|
|
5079
6382
|
maxQuantity = supplyLimit;
|
|
5080
6383
|
if (maxQuantity.equals(UInt64.zero))
|
|
5081
6384
|
continue;
|
|
5082
|
-
const cargoMass = originGood.
|
|
6385
|
+
const cargoMass = originGood.item.mass.multiplying(maxQuantity);
|
|
5083
6386
|
const availableSpaceUInt = UInt64.from(availableSpace);
|
|
5084
6387
|
const baseMass = availableSpace !== undefined
|
|
5085
6388
|
? shipCapacity.gte(availableSpaceUInt)
|
|
@@ -5102,7 +6405,7 @@ async function findDealsForShip(ship, originLocation, getNearbyLocations, getMar
|
|
|
5102
6405
|
deals.push({
|
|
5103
6406
|
origin,
|
|
5104
6407
|
destination: destLocation,
|
|
5105
|
-
|
|
6408
|
+
item: originGood,
|
|
5106
6409
|
distance,
|
|
5107
6410
|
supply: originGood.supply,
|
|
5108
6411
|
buyPrice: originGood.price,
|
|
@@ -5132,7 +6435,7 @@ function calculateCargoMass(cargo) {
|
|
|
5132
6435
|
let mass = UInt32.from(0);
|
|
5133
6436
|
for (const c of cargo) {
|
|
5134
6437
|
if (UInt64.from(c.quantity).gt(UInt64.zero)) {
|
|
5135
|
-
const goodMass =
|
|
6438
|
+
const goodMass = getItem(c.item_id).mass;
|
|
5136
6439
|
mass = mass.adding(goodMass.multiplying(c.quantity));
|
|
5137
6440
|
}
|
|
5138
6441
|
}
|
|
@@ -5154,7 +6457,7 @@ function analyzeCargoSale(cargo, prices) {
|
|
|
5154
6457
|
for (const c of cargo) {
|
|
5155
6458
|
if (UInt64.from(c.quantity).equals(UInt64.zero))
|
|
5156
6459
|
continue;
|
|
5157
|
-
const goodId = Number(c.
|
|
6460
|
+
const goodId = Number(c.item_id);
|
|
5158
6461
|
const salePrice = prices.get(goodId);
|
|
5159
6462
|
if (salePrice) {
|
|
5160
6463
|
revenue = revenue.adding(UInt64.from(salePrice).multiplying(c.quantity));
|
|
@@ -5172,15 +6475,15 @@ function buildCargoSaleItems(cargo, prices) {
|
|
|
5172
6475
|
for (const c of cargo) {
|
|
5173
6476
|
if (UInt64.from(c.quantity).equals(UInt64.zero))
|
|
5174
6477
|
continue;
|
|
5175
|
-
const goodId = Number(c.
|
|
6478
|
+
const goodId = Number(c.item_id);
|
|
5176
6479
|
const salePrice = prices.get(goodId);
|
|
5177
6480
|
const pricePerUnit = salePrice ? UInt32.from(salePrice) : UInt32.zero;
|
|
5178
6481
|
const revenue = UInt64.from(pricePerUnit).multiplying(c.quantity);
|
|
5179
6482
|
const cost = c.unit_cost.multiplying(c.quantity);
|
|
5180
6483
|
const profit = Int64.from(revenue).subtracting(cost);
|
|
5181
6484
|
items.push({
|
|
5182
|
-
goodId: c.
|
|
5183
|
-
goodName: c.
|
|
6485
|
+
goodId: c.item_id,
|
|
6486
|
+
goodName: c.item?.name ?? `Item #${goodId}`,
|
|
5184
6487
|
quantity: UInt32.from(c.quantity),
|
|
5185
6488
|
pricePerUnit,
|
|
5186
6489
|
revenue,
|
|
@@ -5210,10 +6513,10 @@ function createSellAndTradeOption(saleRevenue, saleCost, deal, cargoSale, unload
|
|
|
5210
6513
|
}
|
|
5211
6514
|
: undefined;
|
|
5212
6515
|
return {
|
|
5213
|
-
id: `sell-trade-${deal.destination.coordinates.x}-${deal.destination.coordinates.y}-${deal.
|
|
6516
|
+
id: `sell-trade-${deal.destination.coordinates.x}-${deal.destination.coordinates.y}-${deal.item.id}`,
|
|
5214
6517
|
type: 'sell-and-trade',
|
|
5215
|
-
title: `Trade ${deal.
|
|
5216
|
-
description: `Sell cargo, buy ${deal.maxQuantity} ${deal.
|
|
6518
|
+
title: `Trade ${deal.item.item.name}`,
|
|
6519
|
+
description: `Sell cargo, buy ${deal.maxQuantity} ${deal.item.item.name}, deliver to (${deal.destination.coordinates.x}, ${deal.destination.coordinates.y})`,
|
|
5217
6520
|
reason: `${deal.marginPercent.toFixed(0)}% margin, ${deal.profitPerSecond.toFixed(1)}/s profit rate`,
|
|
5218
6521
|
recommended: false,
|
|
5219
6522
|
highestProfit: false,
|
|
@@ -5275,7 +6578,7 @@ function createSellAndRepositionOption(saleRevenue, saleCost, reposition, cargoS
|
|
|
5275
6578
|
id: `sell-reposition-${reposition.location.coordinates.x}-${reposition.location.coordinates.y}`,
|
|
5276
6579
|
type: 'sell-and-reposition',
|
|
5277
6580
|
title: 'Sell & Move',
|
|
5278
|
-
description: `Sell cargo here, travel empty to buy ${deal.
|
|
6581
|
+
description: `Sell cargo here, travel empty to buy ${deal.item.item.name}`,
|
|
5279
6582
|
reason: `No good trades here — ${deal.marginPercent.toFixed(0)}% margin trade available at destination`,
|
|
5280
6583
|
recommended: false,
|
|
5281
6584
|
highestProfit: false,
|
|
@@ -5394,9 +6697,9 @@ async function analyzeCollectOptions(ship, arrivedAt, callbacks, options = {}) {
|
|
|
5394
6697
|
availableSpace: Number(ship.maxCapacity),
|
|
5395
6698
|
});
|
|
5396
6699
|
if (hasCargo && dealsAtOrigin.length > 0) {
|
|
5397
|
-
const cargoGoodIds = new Set(cargo.map((c) => Number(c.
|
|
6700
|
+
const cargoGoodIds = new Set(cargo.map((c) => Number(c.item_id)));
|
|
5398
6701
|
for (const deal of dealsAtOrigin.slice(0, 3)) {
|
|
5399
|
-
const dealGoodId = Number(deal.
|
|
6702
|
+
const dealGoodId = Number(deal.item.id);
|
|
5400
6703
|
if (cargoGoodIds.has(dealGoodId)) {
|
|
5401
6704
|
continue;
|
|
5402
6705
|
}
|
|
@@ -5493,10 +6796,10 @@ async function analyzeCollectOptions(ship, arrivedAt, callbacks, options = {}) {
|
|
|
5493
6796
|
if (!hasCargo && dealsAtOrigin.length > 0) {
|
|
5494
6797
|
for (const deal of dealsAtOrigin.slice(0, 3)) {
|
|
5495
6798
|
const option = {
|
|
5496
|
-
id: `trade-${deal.destination.coordinates.x}-${deal.destination.coordinates.y}-${deal.
|
|
6799
|
+
id: `trade-${deal.destination.coordinates.x}-${deal.destination.coordinates.y}-${deal.item.id}`,
|
|
5497
6800
|
type: 'sell-and-trade',
|
|
5498
|
-
title: `Trade ${deal.
|
|
5499
|
-
description: `Buy ${deal.maxQuantity} ${deal.
|
|
6801
|
+
title: `Trade ${deal.item.item.name}`,
|
|
6802
|
+
description: `Buy ${deal.maxQuantity} ${deal.item.item.name}, deliver to (${deal.destination.coordinates.x}, ${deal.destination.coordinates.y})`,
|
|
5500
6803
|
reason: `${deal.marginPercent.toFixed(0)}% margin, ${deal.profitPerSecond.toFixed(1)}/s profit rate`,
|
|
5501
6804
|
recommended: false,
|
|
5502
6805
|
highestProfit: false,
|
|
@@ -5534,7 +6837,7 @@ async function analyzeCollectOptions(ship, arrivedAt, callbacks, options = {}) {
|
|
|
5534
6837
|
let discountedGood;
|
|
5535
6838
|
let bestDiscount = 0;
|
|
5536
6839
|
if (gameSeed && state) {
|
|
5537
|
-
const allGoods =
|
|
6840
|
+
const allGoods = getItems();
|
|
5538
6841
|
for (const good of allGoods) {
|
|
5539
6842
|
const rarity = getRarity(gameSeed, state.seed, dest.coordinates, good.id);
|
|
5540
6843
|
if (rarity.minMultiplier < 1.0) {
|
|
@@ -5562,8 +6865,8 @@ async function analyzeCollectOptions(ship, arrivedAt, callbacks, options = {}) {
|
|
|
5562
6865
|
}
|
|
5563
6866
|
const destDeals = await findDealsForShip(ship, dest.coordinates, callbacks.getNearbyLocations, callbacks.getMarketPrices, { maxDeals: 2 });
|
|
5564
6867
|
const potentialDeals = destDeals.map((d) => ({
|
|
5565
|
-
goodId: Number(d.
|
|
5566
|
-
goodName: d.
|
|
6868
|
+
goodId: Number(d.item.id),
|
|
6869
|
+
goodName: d.item.item.name,
|
|
5567
6870
|
destinationCoords: d.destination.coordinates,
|
|
5568
6871
|
marginPercent: d.marginPercent,
|
|
5569
6872
|
profitPerSecond: d.profitPerSecond,
|
|
@@ -5649,9 +6952,9 @@ class TradesManager extends BaseManager {
|
|
|
5649
6952
|
const result = prices.map((price) => {
|
|
5650
6953
|
const actualSupply = locationWithSupply.getSupply(price.id);
|
|
5651
6954
|
if (actualSupply !== undefined) {
|
|
5652
|
-
return
|
|
6955
|
+
return ItemPrice.from({
|
|
5653
6956
|
id: price.id,
|
|
5654
|
-
|
|
6957
|
+
item: price.item,
|
|
5655
6958
|
price: price.price,
|
|
5656
6959
|
supply: actualSupply,
|
|
5657
6960
|
});
|
|
@@ -5776,23 +7079,23 @@ class ActionsManager extends BaseManager {
|
|
|
5776
7079
|
source_id: UInt64.from(sourceId),
|
|
5777
7080
|
dest_type: destType,
|
|
5778
7081
|
dest_id: UInt64.from(destId),
|
|
5779
|
-
|
|
7082
|
+
item_id: UInt16.from(goodId),
|
|
5780
7083
|
quantity: UInt32.from(quantity),
|
|
5781
7084
|
});
|
|
5782
7085
|
}
|
|
5783
|
-
|
|
5784
|
-
return this.server.action('
|
|
7086
|
+
buyItems(entityId, goodId, quantity, entityType = EntityType.SHIP) {
|
|
7087
|
+
return this.server.action('buyitems', {
|
|
5785
7088
|
entity_type: entityType,
|
|
5786
7089
|
id: UInt64.from(entityId),
|
|
5787
|
-
|
|
7090
|
+
item_id: UInt16.from(goodId),
|
|
5788
7091
|
quantity: UInt32.from(quantity),
|
|
5789
7092
|
});
|
|
5790
7093
|
}
|
|
5791
|
-
|
|
5792
|
-
return this.server.action('
|
|
7094
|
+
sellItems(entityId, goodId, quantity, entityType = EntityType.SHIP) {
|
|
7095
|
+
return this.server.action('sellitems', {
|
|
5793
7096
|
entity_type: entityType,
|
|
5794
7097
|
id: UInt64.from(entityId),
|
|
5795
|
-
|
|
7098
|
+
item_id: UInt16.from(goodId),
|
|
5796
7099
|
quantity: UInt32.from(quantity),
|
|
5797
7100
|
});
|
|
5798
7101
|
}
|
|
@@ -5844,6 +7147,16 @@ class ActionsManager extends BaseManager {
|
|
|
5844
7147
|
ship_id: UInt64.from(shipId),
|
|
5845
7148
|
});
|
|
5846
7149
|
}
|
|
7150
|
+
warp(shipId, destination) {
|
|
7151
|
+
const x = Int64.from(destination.x);
|
|
7152
|
+
const y = Int64.from(destination.y);
|
|
7153
|
+
return this.server.action('warp', {
|
|
7154
|
+
entity_type: EntityType.SHIP,
|
|
7155
|
+
id: UInt64.from(shipId),
|
|
7156
|
+
x,
|
|
7157
|
+
y,
|
|
7158
|
+
});
|
|
7159
|
+
}
|
|
5847
7160
|
joinGame(account, companyName) {
|
|
5848
7161
|
return [this.foundCompany(account, companyName), this.join(account)];
|
|
5849
7162
|
}
|
|
@@ -5861,7 +7174,7 @@ class ActionsManager extends BaseManager {
|
|
|
5861
7174
|
const shipId = ship instanceof Ship ? ship.id : UInt64.from(ship);
|
|
5862
7175
|
return shipCargo
|
|
5863
7176
|
.filter((c) => c.hasCargo)
|
|
5864
|
-
.map((c) => this.
|
|
7177
|
+
.map((c) => this.sellItems(shipId, c.item_id, c.quantity, EntityType.SHIP));
|
|
5865
7178
|
}
|
|
5866
7179
|
}
|
|
5867
7180
|
|
|
@@ -6070,6 +7383,222 @@ function makeContainer(state) {
|
|
|
6070
7383
|
return new Container(entityInfo);
|
|
6071
7384
|
}
|
|
6072
7385
|
|
|
7386
|
+
const DEPTH_THRESHOLD_COMMON = 0;
|
|
7387
|
+
const DEPTH_THRESHOLD_UNCOMMON = 2000;
|
|
7388
|
+
const DEPTH_THRESHOLD_RARE = 10000;
|
|
7389
|
+
const DEPTH_THRESHOLD_EPIC = 30000;
|
|
7390
|
+
const DEPTH_THRESHOLD_LEGENDARY = 55000;
|
|
7391
|
+
const LOCATION_MIN_DEPTH = 500;
|
|
7392
|
+
const LOCATION_MAX_DEPTH = 65535;
|
|
7393
|
+
const YIELD_THRESHOLD = Math.floor(0.003 * 0xffffffff);
|
|
7394
|
+
const PLANET_SUBTYPE_GAS_GIANT = 0;
|
|
7395
|
+
const PLANET_SUBTYPE_ROCKY = 1;
|
|
7396
|
+
const PLANET_SUBTYPE_TERRESTRIAL = 2;
|
|
7397
|
+
const PLANET_SUBTYPE_ICY = 3;
|
|
7398
|
+
const PLANET_SUBTYPE_OCEAN = 4;
|
|
7399
|
+
const PLANET_SUBTYPE_INDUSTRIAL = 5;
|
|
7400
|
+
const RESOURCE_CATALOG = [
|
|
7401
|
+
{ id: 26, rarity: 'common' },
|
|
7402
|
+
{ id: 1, rarity: 'common' },
|
|
7403
|
+
{ id: 14, rarity: 'common' },
|
|
7404
|
+
{ id: 6, rarity: 'common' },
|
|
7405
|
+
{ id: 29, rarity: 'uncommon' },
|
|
7406
|
+
{ id: 2, rarity: 'uncommon' },
|
|
7407
|
+
{ id: 1000, rarity: 'uncommon' },
|
|
7408
|
+
{ id: 1003, rarity: 'uncommon' },
|
|
7409
|
+
{ id: 22, rarity: 'rare' },
|
|
7410
|
+
{ id: 18, rarity: 'rare' },
|
|
7411
|
+
{ id: 1001, rarity: 'rare' },
|
|
7412
|
+
{ id: 1002, rarity: 'rare' },
|
|
7413
|
+
{ id: 74, rarity: 'epic' },
|
|
7414
|
+
{ id: 54, rarity: 'epic' },
|
|
7415
|
+
];
|
|
7416
|
+
function getDepthThreshold(rarity) {
|
|
7417
|
+
switch (rarity) {
|
|
7418
|
+
case 'common':
|
|
7419
|
+
return DEPTH_THRESHOLD_COMMON;
|
|
7420
|
+
case 'uncommon':
|
|
7421
|
+
return DEPTH_THRESHOLD_UNCOMMON;
|
|
7422
|
+
case 'rare':
|
|
7423
|
+
return DEPTH_THRESHOLD_RARE;
|
|
7424
|
+
case 'epic':
|
|
7425
|
+
return DEPTH_THRESHOLD_EPIC;
|
|
7426
|
+
case 'legendary':
|
|
7427
|
+
return DEPTH_THRESHOLD_LEGENDARY;
|
|
7428
|
+
}
|
|
7429
|
+
}
|
|
7430
|
+
function getResourceRarity(itemId) {
|
|
7431
|
+
const entry = RESOURCE_CATALOG.find((r) => r.id === itemId);
|
|
7432
|
+
return entry ? entry.rarity : 'legendary';
|
|
7433
|
+
}
|
|
7434
|
+
function getResourceWeight(itemId, stratum) {
|
|
7435
|
+
const rarity = getResourceRarity(itemId);
|
|
7436
|
+
const threshold = getDepthThreshold(rarity);
|
|
7437
|
+
if (stratum < threshold)
|
|
7438
|
+
return 0;
|
|
7439
|
+
const depthAbove = stratum - threshold;
|
|
7440
|
+
switch (rarity) {
|
|
7441
|
+
case 'common':
|
|
7442
|
+
if (stratum < 2000)
|
|
7443
|
+
return 100;
|
|
7444
|
+
if (stratum < 10000)
|
|
7445
|
+
return 80;
|
|
7446
|
+
if (stratum < 30000)
|
|
7447
|
+
return 50;
|
|
7448
|
+
return 30;
|
|
7449
|
+
case 'uncommon':
|
|
7450
|
+
if (depthAbove < 3000)
|
|
7451
|
+
return 40;
|
|
7452
|
+
if (depthAbove < 8000)
|
|
7453
|
+
return 60;
|
|
7454
|
+
return 50;
|
|
7455
|
+
case 'rare':
|
|
7456
|
+
if (depthAbove < 5000)
|
|
7457
|
+
return 20;
|
|
7458
|
+
if (depthAbove < 15000)
|
|
7459
|
+
return 35;
|
|
7460
|
+
return 40;
|
|
7461
|
+
case 'epic':
|
|
7462
|
+
if (depthAbove < 10000)
|
|
7463
|
+
return 10;
|
|
7464
|
+
if (depthAbove < 25000)
|
|
7465
|
+
return 20;
|
|
7466
|
+
return 30;
|
|
7467
|
+
case 'legendary':
|
|
7468
|
+
return 10;
|
|
7469
|
+
}
|
|
7470
|
+
}
|
|
7471
|
+
const ASTEROID_RESOURCES = [26, 29, 22, 74, 14, 1000, 1001];
|
|
7472
|
+
const NEBULA_RESOURCES = [1, 2, 18, 54];
|
|
7473
|
+
const GAS_GIANT_RESOURCES = [1, 2, 18, 54];
|
|
7474
|
+
const ROCKY_RESOURCES = [26, 29, 22, 74, 6, 1003, 1002];
|
|
7475
|
+
const TERRESTRIAL_RESOURCES = [6, 1003, 1002, 1001];
|
|
7476
|
+
const ICY_RESOURCES = [6, 14, 1000, 1001, 18];
|
|
7477
|
+
const OCEAN_RESOURCES = [1, 2, 1003, 1002];
|
|
7478
|
+
const INDUSTRIAL_RESOURCES = [26, 29, 22, 74, 14, 1000, 54];
|
|
7479
|
+
function getLocationCandidates(locationType, subtype) {
|
|
7480
|
+
if (locationType === 2)
|
|
7481
|
+
return ASTEROID_RESOURCES;
|
|
7482
|
+
if (locationType === 3)
|
|
7483
|
+
return NEBULA_RESOURCES;
|
|
7484
|
+
if (locationType === 1) {
|
|
7485
|
+
switch (subtype) {
|
|
7486
|
+
case PLANET_SUBTYPE_GAS_GIANT:
|
|
7487
|
+
return GAS_GIANT_RESOURCES;
|
|
7488
|
+
case PLANET_SUBTYPE_ROCKY:
|
|
7489
|
+
return ROCKY_RESOURCES;
|
|
7490
|
+
case PLANET_SUBTYPE_TERRESTRIAL:
|
|
7491
|
+
return TERRESTRIAL_RESOURCES;
|
|
7492
|
+
case PLANET_SUBTYPE_ICY:
|
|
7493
|
+
return ICY_RESOURCES;
|
|
7494
|
+
case PLANET_SUBTYPE_OCEAN:
|
|
7495
|
+
return OCEAN_RESOURCES;
|
|
7496
|
+
case PLANET_SUBTYPE_INDUSTRIAL:
|
|
7497
|
+
return INDUSTRIAL_RESOURCES;
|
|
7498
|
+
}
|
|
7499
|
+
}
|
|
7500
|
+
return [];
|
|
7501
|
+
}
|
|
7502
|
+
function getEligibleResources(locationType, subtype, stratum) {
|
|
7503
|
+
const candidates = getLocationCandidates(locationType, subtype);
|
|
7504
|
+
return candidates.filter((itemId) => {
|
|
7505
|
+
const rarity = getResourceRarity(itemId);
|
|
7506
|
+
const threshold = getDepthThreshold(rarity);
|
|
7507
|
+
return stratum >= threshold;
|
|
7508
|
+
});
|
|
7509
|
+
}
|
|
7510
|
+
function depthScaleFactor(stratum) {
|
|
7511
|
+
if (stratum <= 1)
|
|
7512
|
+
return 1.0;
|
|
7513
|
+
const logScale = Math.log(stratum) / Math.log(65535);
|
|
7514
|
+
return 1.0 + logScale * 2.0;
|
|
7515
|
+
}
|
|
7516
|
+
|
|
7517
|
+
function deriveStratum(epochSeed, coords, stratum, locationType, subtype, _maxDepth) {
|
|
7518
|
+
const seed = Checksum256.from(epochSeed);
|
|
7519
|
+
const c = Coordinates.from(coords);
|
|
7520
|
+
const input = `stratum-${c.x}-${c.y}-${stratum}`;
|
|
7521
|
+
const hashResult = hash512(seed, input);
|
|
7522
|
+
const bytes = hashResult.array;
|
|
7523
|
+
const rawReserve = ((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0;
|
|
7524
|
+
let reserve = 0;
|
|
7525
|
+
if (rawReserve <= YIELD_THRESHOLD) {
|
|
7526
|
+
const baseReserve = (rawReserve % 333) + 1;
|
|
7527
|
+
const scale = depthScaleFactor(stratum);
|
|
7528
|
+
reserve = Math.floor(baseReserve * scale);
|
|
7529
|
+
}
|
|
7530
|
+
if (reserve === 0)
|
|
7531
|
+
return { itemId: 0, seed: 0n, richness: 0, reserve: 0 };
|
|
7532
|
+
const eligible = getEligibleResources(locationType, subtype, stratum);
|
|
7533
|
+
if (eligible.length === 0)
|
|
7534
|
+
return { itemId: 0, seed: 0n, richness: 0, reserve: 0 };
|
|
7535
|
+
const resourceRoll = ((bytes[4] << 24) | (bytes[5] << 16) | (bytes[6] << 8) | bytes[7]) >>> 0;
|
|
7536
|
+
let totalWeight = 0;
|
|
7537
|
+
for (const id of eligible) {
|
|
7538
|
+
totalWeight += getResourceWeight(id, stratum);
|
|
7539
|
+
}
|
|
7540
|
+
let selectedItemId = eligible[0];
|
|
7541
|
+
if (totalWeight > 0) {
|
|
7542
|
+
const roll = resourceRoll % totalWeight;
|
|
7543
|
+
let cumulative = 0;
|
|
7544
|
+
for (const id of eligible) {
|
|
7545
|
+
cumulative += getResourceWeight(id, stratum);
|
|
7546
|
+
if (roll < cumulative) {
|
|
7547
|
+
selectedItemId = id;
|
|
7548
|
+
break;
|
|
7549
|
+
}
|
|
7550
|
+
}
|
|
7551
|
+
}
|
|
7552
|
+
const seedBigInt = (BigInt(bytes[8]) << 56n) |
|
|
7553
|
+
(BigInt(bytes[9]) << 48n) |
|
|
7554
|
+
(BigInt(bytes[10]) << 40n) |
|
|
7555
|
+
(BigInt(bytes[11]) << 32n) |
|
|
7556
|
+
(BigInt(bytes[12]) << 24n) |
|
|
7557
|
+
(BigInt(bytes[13]) << 16n) |
|
|
7558
|
+
(BigInt(bytes[14]) << 8n) |
|
|
7559
|
+
BigInt(bytes[15]);
|
|
7560
|
+
const rawRichness = (bytes[16] << 8) | bytes[17];
|
|
7561
|
+
const normalized = rawRichness / 65535;
|
|
7562
|
+
const baseRichness = Math.floor(normalized * normalized * 999) + 1;
|
|
7563
|
+
let depthBonus = 0;
|
|
7564
|
+
if (stratum > 1) {
|
|
7565
|
+
depthBonus = 50 * Math.log(stratum) / Math.log(65535);
|
|
7566
|
+
}
|
|
7567
|
+
const richness = Math.min(Math.floor(baseRichness + depthBonus), 1000);
|
|
7568
|
+
return { itemId: selectedItemId, seed: seedBigInt, richness, reserve };
|
|
7569
|
+
}
|
|
7570
|
+
function deriveResourceStats(seed) {
|
|
7571
|
+
const seedStr = seed.toString();
|
|
7572
|
+
const encoder = new TextEncoder();
|
|
7573
|
+
const data = encoder.encode(seedStr);
|
|
7574
|
+
const hashResult = Checksum256.hash(Bytes.from(data));
|
|
7575
|
+
const hashBytes = hashResult.array;
|
|
7576
|
+
const extractU16 = (offset) => (hashBytes[offset] << 8) | hashBytes[offset + 1];
|
|
7577
|
+
const weibullStat = (raw) => {
|
|
7578
|
+
const u = raw / 65536;
|
|
7579
|
+
let x = 0.27 * Math.sqrt(-Math.log(1 - u));
|
|
7580
|
+
if (x > 1)
|
|
7581
|
+
x = 1;
|
|
7582
|
+
return Math.floor(x * 999) + 1;
|
|
7583
|
+
};
|
|
7584
|
+
return {
|
|
7585
|
+
purity: weibullStat(extractU16(0)),
|
|
7586
|
+
density: weibullStat(extractU16(2)),
|
|
7587
|
+
reactivity: weibullStat(extractU16(4)),
|
|
7588
|
+
resonance: weibullStat(extractU16(6)),
|
|
7589
|
+
};
|
|
7590
|
+
}
|
|
7591
|
+
|
|
7592
|
+
function deriveLocationSize(loc) {
|
|
7593
|
+
if (loc.type.toNumber() === LocationType.EMPTY)
|
|
7594
|
+
return 0;
|
|
7595
|
+
const raw = (loc.seed0.toNumber() << 8) | loc.seed1.toNumber();
|
|
7596
|
+
const normalized = raw / 65535;
|
|
7597
|
+
const curved = Math.pow(normalized, 3.0);
|
|
7598
|
+
const range = LOCATION_MAX_DEPTH - LOCATION_MIN_DEPTH;
|
|
7599
|
+
return Math.floor(LOCATION_MIN_DEPTH + curved * range);
|
|
7600
|
+
}
|
|
7601
|
+
|
|
6073
7602
|
function canMove(e) {
|
|
6074
7603
|
return 'engines' in e && 'generator' in e && 'energy' in e;
|
|
6075
7604
|
}
|
|
@@ -6102,24 +7631,21 @@ function calcLoadDuration(entity, cargoMass) {
|
|
|
6102
7631
|
return UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
|
|
6103
7632
|
}
|
|
6104
7633
|
|
|
6105
|
-
function
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
const
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6115
|
-
const extractionTime = Math.floor(batchMass / extractor.rate.toNumber());
|
|
6116
|
-
const loadingTime = calc_load_time_internal(loaders, shipZ, batchMass);
|
|
6117
|
-
return UInt32.from(Math.max(extractionTime, loadingTime));
|
|
7634
|
+
function calc_extraction_duration(extractor, cargoMass, stratum, richness) {
|
|
7635
|
+
const rate = extractor.rate.toNumber();
|
|
7636
|
+
const efficiency = extractor.efficiency.toNumber();
|
|
7637
|
+
const drill = extractor.drill.toNumber();
|
|
7638
|
+
const rateProduct = Math.floor((rate * richness * efficiency) / PRECISION);
|
|
7639
|
+
if (rateProduct === 0)
|
|
7640
|
+
return UInt32.from(0);
|
|
7641
|
+
const extractionTime = Math.floor((cargoMass * PRECISION) / rateProduct);
|
|
7642
|
+
const drillTime = Math.floor(stratum / drill);
|
|
7643
|
+
return UInt32.from(extractionTime + drillTime);
|
|
6118
7644
|
}
|
|
6119
7645
|
function calc_extraction_energy(extractor, duration) {
|
|
6120
7646
|
const energy = Math.floor((duration * extractor.drain.toNumber()) / PRECISION);
|
|
6121
7647
|
return UInt16.from(energy);
|
|
6122
7648
|
}
|
|
6123
7649
|
|
|
6124
|
-
export { ActionsManager, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, Container, Coordinates, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET,
|
|
7650
|
+
export { ActionsManager, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, Container, Coordinates, DEPTH_THRESHOLD_COMMON, DEPTH_THRESHOLD_EPIC, DEPTH_THRESHOLD_LEGENDARY, DEPTH_THRESHOLD_RARE, DEPTH_THRESHOLD_UNCOMMON, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GameState, INITIAL_CONTAINER_CAPACITY, INITIAL_CONTAINER_HULLMASS, INITIAL_EXTRACTOR_DRAIN, INITIAL_EXTRACTOR_EFFICIENCY, INITIAL_EXTRACTOR_RATE, INITIAL_LOADER_MASS, INITIAL_LOADER_QUANTITY, INITIAL_LOADER_THRUST, INITIAL_SHIP_CAPACITY, INITIAL_SHIP_DRAIN, INITIAL_SHIP_ENERGY, INITIAL_SHIP_GENERATOR_CAPACITY, INITIAL_SHIP_HULLMASS, INITIAL_SHIP_MASS, INITIAL_SHIP_RECHARGE, INITIAL_SHIP_THRUST, INITIAL_SHIP_Z, INITIAL_WAREHOUSE_CAPACITY, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_DOES_NOT_EXIST, ITEM_NOT_AVAILABLE_AT_LOCATION, InventoryAccessor, Item, ItemPrice, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, NO_SCHEDULE, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PRECISION, platform as PlatformContract, Player, PlayersManager, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, Rarities, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CARGO_NOT_LOADED, SHIP_CARGO_NOT_OWNED, SHIP_INVALID_CARGO, SHIP_INVALID_DESTINATION, SHIP_INVALID_TRAVEL_DURATION, SHIP_NOT_ARRIVED, SHIP_NOT_ENOUGH_ENERGY, SHIP_NOT_ENOUGH_ENERGY_CAPACITY, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, ScheduleAccessor, server as ServerContract, Ship, Shipload, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, TradesManager, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, Warehouse, analyzeCargoSale, analyzeCollectOptions, availableCapacity$1 as availableCapacity, availableCapacityFromMass, calcCargoMass, calcCargoValue, calcEnergyUsage, calcLoadDuration, calc_acceleration, calc_energyusage, calc_extraction_duration, calc_extraction_energy, calc_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateBreakEvenPrice, calculateFlightTime, calculateLoadTimeBreakdown, calculateMaxTradeQuantity, calculateProfitPerMass, calculateProfitPerSecond, calculateROI, calculateRefuelingTime, calculateTradeProfit, calculateTransferTime, calculateUpdatedCargoCost, canMove, capsHasExtractor, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, capsHasTrade, cargoUtils, coordsToLocationId, createExploreOption, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, createSellAndRepositionOption, createSellAndStayOption, createSellAndTradeOption, createTravelToSellOption, Shipload as default, depthScaleFactor, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStratum, distanceBetweenCoordinates, distanceBetweenPoints, energyPercent, estimateDealTravelTime, estimateTravelTime, findBestDeal, findBestItemToTrade, findDealsForShip, findNearbyPlanets, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getPositionAt, getRarity, getResourceRarity, getResourceWeight, getSystemName, hasEnergy, hasEnergyForDistance$1 as hasEnergyForDistance, hasExtractor, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hasTrade, hash, hash512, isExtractableLocation, isFull$1 as isFull, isFullFromMass, isProfitable, itemIds, lerp, makeContainer, makeShip, makeWarehouse, marketPrice, marketPrices, maxTravelDistance, needsRecharge, projectEntity, projectEntityAt, rotation, schedule, toLocation };
|
|
6125
7651
|
//# sourceMappingURL=shipload.m.js.map
|