@ham2k/lib-operation-data 1.1.2 → 1.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/bands.ts","../src/data/bandPlans.json","../src/lib/modes.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const EXTENDED_BANDS = [ // Includes 11m\n '2190m',\n '630m',\n '560m',\n '160m',\n '80m',\n '60m',\n '40m',\n '30m',\n '20m',\n '17m',\n '15m',\n '12m',\n '11m',\n '10m',\n '6m',\n '5m',\n '4m',\n '2m',\n '1.25m',\n '70cm',\n '33cm',\n '23cm',\n '13cm',\n '9cm',\n '6cm',\n '3cm',\n '1.25cm',\n '6mm',\n '4mm',\n '2.5mm',\n '2mm',\n '1mm',\n 'submm',\n 'other'\n] as const\n\nexport const BANDS = [\n '2190m',\n '630m',\n '560m',\n '160m',\n '80m',\n '60m',\n '40m',\n '30m',\n '20m',\n '17m',\n '15m',\n '12m',\n '10m',\n '6m',\n '5m',\n '4m',\n '2m',\n '1.25m',\n '70cm',\n '33cm',\n '23cm',\n '13cm',\n '9cm',\n '6cm',\n '3cm',\n '1.25cm',\n '6mm',\n '4mm',\n '2.5mm',\n '2mm',\n '1mm',\n 'submm',\n 'other'\n] as const\n\nexport type Band = typeof EXTENDED_BANDS[number]\n\nexport const HF_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m'] as const\nexport const VHF_BANDS = ['6m', '5m', '4m', '2m', '1.25m'] as const\nexport const UHF_BANDS = ['70cm', '33cm', '23cm', '13cm'] as const\nexport const SHF_BANDS = ['9cm', '6cm', '3cm', '1.25cm'] as const\nexport const EHF_BANDS = ['6mm', '4mm', '2mm', '2.5mm', '1mm', 'submm'] as const\n\nexport const POPULAR_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m', '6m', '2m', '70cm'] as const\nexport const CONTEST_BANDS = ['160m', '80m', '40m', '20m', '15m', '10m'] as const\n\nexport function bandForFrequency(freq: number): Band {\n return bandForExactFrequencyInMHz(freq) ?? bandForExactFrequencyInMHz(freq * 1000) ?? 'other'\n}\n\nexport function bandForExactFrequencyInMHz(freq: number): Band | undefined {\n if (freq >= 130 && freq <= 140) return '2190m'\n else if (freq >= 450 && freq <= 499) return '630m'\n else if (freq >= 500 && freq <= 505) return '560m'\n else if (freq >= 1700 && freq <= 2100) return '160m'\n else if (freq >= 3400 && freq <= 4100) return '80m'\n else if (freq >= 5300 && freq <= 5500) return '60m'\n else if (freq >= 6900 && freq <= 7400) return '40m'\n else if (freq >= 10000 && freq <= 10200) return '30m'\n else if (freq >= 13900 && freq <= 14400) return '20m'\n else if (freq >= 18000 && freq <= 18200) return '17m'\n else if (freq >= 20900 && freq <= 21600) return '15m'\n else if (freq >= 24500 && freq <= 25200) return '12m'\n else if (freq >= 26000 && freq <= 27500) return '11m'\n else if (freq >= 27900 && freq <= 30000) return '10m'\n else if (freq >= 50000 && freq <= 54000) return '6m'\n else if (freq >= 54001 && freq <= 69999) return '5m'\n else if (freq >= 70000 && freq <= 71000) return '4m'\n else if (freq >= 140000 && freq <= 150000) return '2m'\n else if (freq >= 219000 && freq <= 230000) return '1.25m'\n else if (freq >= 400000 && freq <= 460000) return '70cm'\n else if (freq >= 900000 && freq <= 930000) return '33cm'\n else if (freq >= 1180000 && freq <= 1420000) return '23cm'\n else if (freq >= 2300000 && freq <= 2450000) return '13cm'\n else if (freq >= 3290000 && freq <= 3510000) return '9cm'\n else if (freq >= 5640000 && freq <= 5926000) return '6cm'\n else if (freq >= 10000000 && freq <= 10500000) return '3cm'\n else if (freq >= 24000000 && freq <= 24250000) return '1.25cm'\n else if (freq >= 47000000 && freq <= 47200000) return '6mm'\n else if (freq >= 75000000 && freq <= 81000000) return '4mm'\n else if (freq >= 122250000 && freq <= 123000000) return '2.5mm'\n else if (freq >= 134000000 && freq <= 141000000) return '2mm'\n else if (freq >= 241000000 && freq <= 250000000) return '1mm'\n else if (freq >= 300000000 && freq <= 7500000000) return 'submm'\n else return undefined\n}\n\nexport function frequencyForBand(band: Band, mode?: string): number | undefined {\n if (band === '2190m') return 135.7\n else if (band === '630m') return 472\n else if (band === '560m') return 501\n else if (band === '160m') {\n if (mode === 'FT8' || mode === 'FT4') return 1840\n else return 1800\n }\n else if (band === '80m') {\n if (mode === 'SSB' || mode === 'LSB') return 3800\n else if (mode === 'FT8') return 3573\n else if (mode === 'FT4') return 3575\n else return 3000\n }\n else if (band === '60m') {\n if (mode === 'FT8') return 5357\n else return 5330\n }\n else if (band === '40m') {\n if (mode === 'SSB' || mode === 'LSB') return 7175\n else if (mode === 'FT8') return 7074\n else if (mode === 'FT4') return 7047.5\n else return 7000\n }\n else if (band === '30m') {\n if (mode === 'FT8') return 10136\n else if (mode === 'FT4') return 10140\n else return 10100\n }\n else if (band === '20m') {\n if (mode === 'SSB' || mode === 'USB') return 14225\n else if (mode === 'FT8') return 14074\n else if (mode === 'FT4') return 14080\n else return 14000\n }\n else if (band === '17m') {\n if (mode === 'SSB' || mode === 'USB') return 18110\n else if (mode === 'FT8') return 18100\n else if (mode === 'FT4') return 18104\n else return 18068\n }\n else if (band === '15m') {\n if (mode === 'SSB' || mode === 'USB') return 21275\n else if (mode === 'FT8') return 21074\n else if (mode === 'FT4') return 21140\n else return 21000\n }\n else if (band === '12m') {\n if (mode === 'SSB' || mode === 'USB') return 24930\n else if (mode === 'FT8') return 24915\n else if (mode === 'FT4') return 24919\n else return 24890\n }\n else if (band === '11m') {\n return 26965\n }\n else if (band === '10m') {\n if (mode === 'SSB' || mode === 'USB') return 28300\n else if (mode === 'FM' || mode === 'AM') return 28500\n else if (mode === 'FT8') return 28074\n else if (mode === 'FT4') return 28180\n else return 28000\n }\n else if (band === '6m') {\n if (mode === 'SSB' || mode === 'USB') return 50125\n else if (mode === 'FT8') return 50313\n else if (mode === 'FT4') return 50318\n else return 50000\n }\n else if (band === '5m') return 55000\n else if (band === '4m') return 70090\n else if (band === '2m') return 145400\n else if (band === '1.25m') return 222000\n else if (band === '70cm') return 420000\n else if (band === '33cm') return 902000\n else if (band === '23cm') return 1240000\n else if (band === '13cm') return 2300000\n else if (band === '9cm') return 3300000\n else if (band === '6cm') return 5650000\n else if (band === '3cm') return 10000000\n else if (band === '1.25cm') return 24000000\n else if (band === '6mm') return 47000000\n else if (band === '4mm') return 75500000\n else if (band === '2.5mm') return 122500000\n else if (band === '2mm') return 134000000\n else if (band === '1mm') return 241000000\n else if (band === 'submm') return 300000000\n else return undefined\n}\n\n","{\n \"sources\": [\n { \"url\": \"https://www.iaru-r1.org/on-the-air/band-plans/\"},\n { \"url\": \"https://www.iaru-r1.org/about-us/committees-and-working-groups/vhf-uhf-shf-committee-c5/vhf-up-bandplanning/\"},\n { \"url\": \"https://www.iaru-r2.org/en/reference/band-plans/\" },\n { \"url\": \"https://rsgb.org/main/operating/band-plans/vhf-uhf/70mhz-band/\"},\n { \"url\": \"https://www.arrl.org/band-plan\" },\n { \"url\": \"https://www.arrl.org/news/view/updated-arrl-us-amateur-radio-bands-charts-now-available\" }\n ],\n \"bands\": {\n \"160m\": {\n \"mhz\": [1800, 2000],\n \"segments\": [\n { \"name\": \"Out of band Reg1\", \"mhz\": [1800, 2000], \"mode\": false, \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [1810, 1838], \"mode\": \"CW\", \"regions\": [ 1 ] }, { \"name\": \"Data\", \"mhz\": [1800, 1810], \"mode\": \"RTTY\" },\n { \"name\": \"CW\", \"mhz\": [1800, 1843], \"mode\": \"CW\" },\n { \"name\": \"FT8\", \"mhz\": [1840, 1843], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [1843, 2000], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"Australia\", \"mhz\": [1800, 1875], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"80m\": {\n \"mhz\": [3500, 3800],\n \"segments\": [\n { \"name\": \"CW Reg1\", \"mhz\": [3500, 3570], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW\", \"mhz\": [3500, 3600], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [3535, 3800], \"mode\": \"SSB\", \"submode\": \"LSB\", \"regions\": [ 3 ] },\n { \"name\": \"FT8\", \"mhz\": [3568, 3571], \"mode\": \"FT8\", \"regions\": [ 3 ], \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [3570, 3600], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [3573, 3576], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [3600, 4000], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"Australia\", \"mhz\": [3500, 3800], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"60m\": {\n \"mhz\": [5330.5, 3406.5],\n \"segments\": [\n { \"name\": \"60m Channel 1\", \"mhz\": [5330.5, 5333.5] },\n { \"name\": \"60m Channel 2\", \"mhz\": [5346.5, 5349.5] },\n { \"name\": \"60m Channel 3\", \"mhz\": [5357, 5360], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"60m Channel 4\", \"mhz\": [5371.5, 5373.5] },\n { \"name\": \"60m Channel 5\", \"mhz\": [5403.5, 5406.5] }\n ]\n },\n \"40m\": {\n \"mhz\": [7000, 7300],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [7000, 7060], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [7000, 7040], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW US\", \"mhz\": [7000, 7125], \"mode\": \"CW\", \"countries\": [ \"us\" ] },\n { \"name\": \"FT4\", \"mhz\": [7047.5, 7050.5], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [7060, 7300], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"FT8\", \"mhz\": [7074, 7077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [7080, 7125], \"mode\": \"RTTY\", \"countries\": [ \"us\" ] },\n { \"name\": \"Phone\", \"mhz\": [7125, 7300], \"mode\": \"SSB\", \"submode\": \"LSB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [7000, 7300], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [7200, 7300], \"mode\": false, \"regions\": [ 1 ] }\n ]\n },\n \"30m\": {\n \"mhz\": [10100, 10150],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [10100, 10150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [10100, 10130], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [10130, 10140], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [10136, 10139], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [10140, 10143], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Australia & New Zealand\", \"mhz\": [10100, 10150], \"mode\": null, \"countries\": [\"au\", \"nz\"] },\n { \"name\": \"Africa south of the Equator\", \"mhz\": [10100, 10150], \"mode\": null, \"countries\": [\"ao\",\"bi\",\"bw\",\"cd\",\"cg\",\"ga\",\"ke\",\"km\",\"ls\",\"mg\",\"mu\",\"mw\",\"mz\",\"na\",\"rw\",\"sc\",\"so\",\"st\",\"sz\",\"tz\",\"ug\",\"za\",\"zm\",\"zw\"] }\n ]\n },\n \"20m\": {\n \"mhz\": [14000, 14350],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [14000, 14150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [14000, 14070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW Reg2\", \"mhz\": [14000, 14101], \"mode\": \"CW\", \"regions\": [ 2 ] },\n { \"name\": \"Data\", \"mhz\": [14070, 14095], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [14074, 14077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [14080, 14083], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [14112, 14350], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1, 2 ] },\n { \"name\": \"Phone\", \"mhz\": [14150, 14350], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [14000, 14350], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"17m\": {\n \"mhz\": [18068, 18168],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [18068, 18110], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [18068, 18095], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [18100, 18105], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [18100, 18103], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [18104, 18107], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [18109, 18111], \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [18111, 18168], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone US\", \"mhz\": [18110, 18168], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [18068, 18168], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"15m\": {\n \"mhz\": [21000, 21450],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [21000, 21150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [21000, 21070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [21070, 21095], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [21074, 21077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [21140, 21143], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [21149, 21151], \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [21151, 21450], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone US\", \"mhz\": [21150, 21450], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [21000, 21450], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"12m\": {\n \"mhz\": [24890, 24990],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [24890, 24930], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [24890, 24915], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [24915, 24918], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [24919, 23922], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [24920, 24925], \"mode\": \"RTTY\" },\n { \"name\": \"Phone\", \"mhz\": [24930, 24990], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Beacons only\", \"mhz\": [24929, 24931], \"priority\": 100 },\n { \"name\": \"Phone US\", \"mhz\": [24930, 24990], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [24890, 24990], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"10m\": {\n \"mhz\": [28000, 29700],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [28000, 28190], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [28000, 28070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [28070, 28150], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [28074, 28077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [28180, 28183], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [28190, 28300], \"priority\": 100 },\n { \"name\": \"Phone SSB\", \"mhz\": [28300, 29000], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"AM\", \"mhz\": [29000, 29200], \"mode\": \"AM\" },\n { \"name\": \"Satellite\", \"mhz\": [29300, 29520] },\n { \"name\": \"Guard Channel\", \"mhz\": [29510, 29520], \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"Repeater Uplinks\", \"mhz\": [29520, 29590] },\n { \"name\": \"FM\", \"mhz\": [29520, 29700], \"mode\": \"FM\" },\n { \"name\": \"Repeater Downlinks\", \"mhz\": [29620, 29700] },\n { \"name\": \"Australia\", \"mhz\": [28000, 29700], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"6m\": {\n \"mhz\": [50000, 54000],\n \"segments\": [\n { \"name\": \"Beacon project Reg1\", \"mhz\": [50000, 50010], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"Beacon project Reg2\", \"mhz\": [50010, 50020], \"mode\": null, \"regions\": [ 2 ] },\n { \"name\": \"Beacon project Reg 3\", \"mhz\": [50020, 50030], \"mode\": null, \"regions\": [ 3 ] },\n { \"name\": \"CW\", \"mhz\": [50000, 50100], \"mode\": \"CW\" },\n { \"name\": \"Phone Reg1\", \"mhz\": [50100, 50300], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ]},\n { \"name\": \"FM Reg1\", \"mhz\": [51400, 54000], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Phone\", \"mhz\": [50150, 50400], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [51000, 51110], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"FM\", \"mhz\": [51110, 52100], \"mode\": \"FM\" },\n { \"name\": \"FM\", \"mhz\": [51110, 52100], \"mode\": \"FM\" },\n { \"name\": \"FM Simplex Reg1\", \"mhz\": [51410, 51590], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [50313, 50316], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [50318, 50321], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"FT8\", \"mhz\": [50323, 50326], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Australia\", \"mhz\": [50000, 54000], \"mode\": null, \"countries\": [\"au\"] }\n ]\n },\n \"4m\": {\n \"mhz\": [70000, 70500],\n \"segments\": [\n { \"name\": \"Beacons only Reg1\", \"mhz\": [70090, 70100], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [70000, 70090], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Phone\", \"mhz\": [70100, 70294], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [70294, 70500], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"AM\", \"mhz\": [70257, 70263], \"mode\": \"AM\", \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [70100, 70103], \"mode\": \"FT8\", \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [70154, 70157], \"mode\": \"FT8\", \"priority\": 100, \"regions\": [ 1 ] }\n ]\n },\n \"2m\": {\n \"mhz\": [144000, 148000],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [144000, 144100], \"mode\": \"CW\" },\n { \"name\": \"Satellite downlink Reg1\", \"mhz\": [144000, 144025], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [144025, 144150], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [144100, 144200], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [144174, 144177], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [144170, 144173], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [144200, 144275], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone Reg1\", \"mhz\": [144150, 144400], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"Beacons only Reg1\", \"mhz\": [144400, 144490], \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [144300, 148000], \"mode\": \"FM\" },\n { \"name\": \"Reg1\", \"mhz\": [144500, 144794], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"FM Satellite Reg1\", \"mhz\": [145194, 145206], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"FM Reg1\", \"mhz\": [145206, 145563], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [146000, 148000], \"mode\": false, \"regions\": [ 1 ] }\n ]\n },\n \"1.25m\": {\n \"mhz\": [222000, 225000],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [222000, 222070], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [222070, 222150], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"FM\", \"mhz\": [222200, 225000], \"mode\": \"FM\" }\n ]\n },\n \"70cm\": {\n \"mhz\": [420000, 450000],\n \"segments\": [\n { \"name\": \"Out of band Reg1\", \"mhz\": [420000, 430000], \"mode\": false, \"regions\": [ 1 ]},\n { \"name\": \"CW\", \"mhz\": [432000, 432100], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [432100, 432300], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [432420, 433000], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [432100, 432400], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [420000, 450000], \"mode\": \"FM\" },\n { \"name\": \"FM Reg1\", \"mhz\": [433400, 433575], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [440000, 450000], \"mode\": false, \"regions\": [ 1 ]}\n ]\n },\n \"33cm\": {\n \"mhz\": [902000, 928000],\n \"segments\": [\n { \"name\": \"FM\", \"mhz\": [927000, 928000], \"mode\": \"FM\" }\n ]\n }\n }\n}\n","import BandPlans from '../data/bandPlans.json'\nimport type { BandPlansData, SegmentWithMetadata, ModeForFrequencyOptions } from '../types'\n\nexport const SUPER_MODES: readonly string[] = [\n 'CW',\n 'PHONE',\n 'DATA'\n] as const\n\nexport type SuperMode = 'CW' | 'PHONE' | 'DATA'\n\nexport const MAIN_MODES: readonly string[] = [\n 'CW',\n 'SSB',\n 'AM',\n 'FM',\n 'FT8',\n 'FT4',\n 'RTTY'\n] as const\n\nexport const POPULAR_MODES: readonly string[] = [\n 'CW',\n 'SSB',\n 'USB',\n 'LSB',\n 'FM',\n 'AM',\n 'FT8',\n 'FT4',\n 'FT2',\n 'RTTY',\n 'DIGITALVOICE',\n 'C4FM',\n 'DMR',\n 'DSTAR',\n 'FREEDV',\n 'M17',\n 'DYNAMIC',\n 'HELL',\n 'JT9',\n 'MFSK',\n 'MSK144',\n 'OLIVIA',\n 'PKT',\n 'PSK',\n 'SSTV',\n 'WSPR',\n] as const\n\nexport const ADIF_MODES: readonly string[] = [\n 'AM',\n 'ARDOP',\n 'ATV',\n 'CHIP',\n 'CLO',\n 'CONTESTI',\n 'CW',\n 'DIGITALVOICE',\n 'DOMINO',\n 'DYNAMIC',\n 'FAX',\n 'FM',\n 'FSK',\n 'FSK441',\n 'FT8',\n 'HELL',\n 'ISCAT',\n 'JT4',\n 'JT6M',\n 'JT9',\n 'JT44',\n 'JT65',\n 'MFSK',\n 'MSK144',\n 'MT63',\n 'MTONE',\n 'ODFM',\n 'OLIVIA',\n 'OPERA',\n 'PAC',\n 'PAX',\n 'PKT',\n 'PSK',\n 'PSK2K',\n 'Q15',\n 'QRA64',\n 'ROS',\n 'RTTY',\n 'RTTYM',\n 'SSB',\n 'SSTV',\n 'T10',\n 'THOR',\n 'THRB',\n 'TOR',\n 'V4',\n 'VOI',\n 'WINMOR',\n 'WSPR'\n] as const\n\nexport const ADIF_SUBMODES: Record<string, readonly string[]> = {\n 'CW': ['PCW'],\n 'CHIP': ['CHIP64', 'CHIP128'],\n 'DIGITALVOICE': ['C4FM', 'DMR', 'DSTAR', 'FREEDV', 'M17'],\n 'DOMINO': ['DOM-M', 'DOM4', 'DOM5', 'DOM8', 'DOM11', 'DOM16', 'DOM22', 'DOM44', 'DOM88', 'DOMINOEX', 'DOMINOF'],\n 'DYNAMIC': ['FREEDATA', 'VARA HF', 'VARA SATELLITE', 'VARA FM 1200', 'VARA FM 9600'],\n 'FSK': ['SCAMP_FAST', 'SCAMP_SLOW', 'SCAMP_VSLOW'],\n 'HELL': ['FMHELL', 'FSKH105', 'FSKH245', 'FSKHELL', 'HELL80', 'HELLX5', 'HELLX9', 'HFSK', 'PSKHELL', 'SLOWHELL'],\n 'ISCAT': ['ISCAT-A', 'ISCAT-B'],\n 'JT4': ['JT4A', 'JT4B', 'JT4C', 'JT4D', 'JT4E', 'JT4F', 'JT4G'],\n 'JT9': ['JT9-1', 'JT9-2', 'JT9-5', 'JT9-10', 'JT9-30', 'JT9A', 'JT9B', 'JT9C', 'JT9D', 'JT9E', 'JT9E FAST', 'JT9F', 'JT9F FAST', 'JT9G', 'JT9G FAST', 'JT9H', 'JT9H FAST'],\n 'JT65': ['JT65A', 'JT65B', 'JT65B2', 'JT65C', 'JT65C2'],\n 'MFSK': ['FSQCALL', 'FST4', 'FST4W', 'FT4', 'FT2', 'JS8', 'JTMS', 'MFSK4', 'MFSK8', 'MFSK11', 'MFSK16', 'MFSK22', 'MFSK31', 'MFSK32', 'MFSK64', 'MFSK64L', 'MFSK128 MFSK128L', 'Q65'],\n 'MTONE': ['SCAMP_OO', 'SCAMP_OO_SLW'],\n 'ODFM': ['RIBBIT_PIX', 'RIBBIT_SMS'],\n 'OLIVIA': ['OLIVIA 4/125', 'OLIVIA 4/250', 'OLIVIA 8/250', 'OLIVIA 8/500', 'OLIVIA 16/500', 'OLIVIA 16/1000', 'OLIVIA 32/1000'],\n 'OPERA': ['OPERA-BEACON', 'OPERA-QSO'],\n 'PAC': ['PAC2', 'PAC3', 'PAC4'],\n 'PAX': ['PAX2'],\n 'PSK': ['8PSK125', '8PSK125F', '8PSK125FL', '8PSK250', '8PSK250F', '8PSK250FL', '8PSK500', '8PSK500F', '8PSK1000', '8PSK1000F', '8PSK1200F', 'FSK31', 'PSK10', 'PSK31', 'PSK63', 'PSK63F', 'PSK63RC4', 'PSK63RC5', 'PSK63RC10', 'PSK63RC20', 'PSK63RC32', 'PSK125', 'PSK125C12', 'PSK125R', 'PSK125RC10', 'PSK125RC12', 'PSK125RC16', 'PSK125RC4', 'PSK125RC5', 'PSK250', 'PSK250C6', 'PSK250R', 'PSK250RC2', 'PSK250RC3', 'PSK250RC5', 'PSK250RC6', 'PSK250RC7', 'PSK500', 'PSK500C2', 'PSK500C4', 'PSK500R', 'PSK500RC2', 'PSK500RC3', 'PSK500RC4', 'PSK800C2', 'PSK800RC2', 'PSK1000', 'PSK1000C2', 'PSK1000R', 'PSK1000RC2', 'PSKAM10', 'PSKAM31', 'PSKAM50', 'PSKFEC31', 'QPSK31', 'QPSK63', 'QPSK125', 'QPSK250', 'QPSK500', 'SIM31'],\n 'QRA64': ['QRA64A', 'QRA64B', 'QRA64C', 'QRA64D', 'QRA64E'],\n 'ROS': ['ROS-EME', 'ROS-HF', 'ROS-MF'],\n 'RTTY': ['ASCI'],\n 'SSB': ['LSB', 'USB'],\n 'THOR': ['THOR-M', 'THOR4', 'THOR5', 'THOR8', 'THOR11', 'THOR16', 'THOR22', 'THOR25X4', 'THOR50X1', 'THOR50X2', 'THOR100'],\n 'THRB': ['THRBX', 'THRBX1', 'THRBX2', 'THRBX4', 'THROB1', 'THROB2', 'THROB4'],\n 'TOR': ['AMTORFEC', 'GTOR', 'NAVTEX', 'SITORB']\n} as const\n\nexport const ALL_MODES: readonly string[] = [\n ...new Set([\n ...ADIF_MODES,\n ...Object.values(ADIF_SUBMODES).flat()\n ])\n].sort()\n\nexport const PHONE_MODES: readonly string[] = [\n 'SSB',\n 'USB',\n 'LSB',\n 'FM',\n 'AM',\n 'DIGITALVOICE',\n ...ADIF_SUBMODES.DIGITALVOICE,\n] as const\n\nexport const ADIF_MODE_FOR_SUBMODE: Record<string, string> = {}\nObject.keys(ADIF_SUBMODES).forEach(mode => {\n ADIF_SUBMODES[mode].forEach(submode => {\n ADIF_MODE_FOR_SUBMODE[submode] = mode\n })\n})\n\nexport const ADIF_MODES_AND_SUBMODES: readonly string[] = [...new Set([...ADIF_MODES, ...Object.values(ADIF_SUBMODES).flat()])].sort()\n\nexport function adifModeAndSubmodeForMode(mode: string): string[] {\n if (ADIF_MODE_FOR_SUBMODE[mode]) {\n return [ADIF_MODE_FOR_SUBMODE[mode], mode]\n } else {\n return [mode]\n }\n}\n\nexport function superModeForMode(mode: string): SuperMode {\n if (ADIF_MODE_FOR_SUBMODE[mode]) mode = ADIF_MODE_FOR_SUBMODE[mode]\n\n if (mode === 'CW') {\n return 'CW'\n } else if (PHONE_MODES.includes(mode)) {\n return 'PHONE'\n } else {\n return 'DATA'\n }\n}\n\nconst bandPlansData = BandPlans as unknown as BandPlansData\n\nconst AllSegments: SegmentWithMetadata[] = Object.keys(bandPlansData.bands).reduce((segments, band) => {\n return segments.concat(\n bandPlansData.bands[band].segments.map(segment => {\n const mhz = Array.isArray(segment.mhz) && segment.mhz.length >= 2\n ? [segment.mhz[0], segment.mhz[1]] as [number, number]\n : [0, 0] as [number, number]\n return {\n name: segment.name,\n mode: segment.mode,\n submode: segment.submode,\n priority: segment.priority,\n mhz,\n band,\n width: mhz[1] - mhz[0],\n regions: (segment.regions || []).reduce((regions: Record<string, boolean>, region) => { regions[region.toString()] = true; return regions }, {}),\n entities: (segment.entities || []).reduce((entities: Record<string, boolean>, entity) => { entities[entity] = true; return entities }, {}),\n countries: (segment.countries || []).reduce((countries: Record<string, boolean>, country) => { countries[country] = true; return countries }, {}),\n } as SegmentWithMetadata\n })\n )\n}, [] as SegmentWithMetadata[])\n\nexport function modeForFrequency(frequency: number, options: ModeForFrequencyOptions = {}): string | null | undefined | false{\n const { ituRegion, countryCode, entityPrefix } = options\n\n const segments = AllSegments.filter(segment => (\n (segment.mhz[0] <= frequency && segment.mhz[1] >= frequency) &&\n (!entityPrefix || Object.keys(segment.entities).length === 0 || segment.entities[entityPrefix]) &&\n (!countryCode || Object.keys(segment.countries).length === 0 || segment.countries[countryCode]) &&\n (!ituRegion || Object.keys(segment.regions).length === 0 || segment.regions[ituRegion.toString()])\n ))\n\n const sortedSegments = segments.sort((a, b) => {\n if ((a.priority ?? 0) < (b.priority ?? 0)) return 1\n if ((a.priority ?? 0) > (b.priority ?? 0)) return -1\n\n if (entityPrefix && !a.entities[entityPrefix] && b.entities[entityPrefix]) return 1\n if (entityPrefix && a.entities[entityPrefix] && !b.entities[entityPrefix]) return -1\n\n if (countryCode && !a.countries[countryCode] && b.countries[countryCode]) return 1\n if (countryCode && a.countries[countryCode] && !b.countries[countryCode]) return -1\n\n if (ituRegion && !a.regions[ituRegion.toString()] && b.regions[ituRegion.toString()]) return 1\n if (ituRegion && a.regions[ituRegion.toString()] && !b.regions[ituRegion.toString()]) return -1\n\n return a.width - b.width\n })\n\n return sortedSegments[0]?.mode\n}\n\n"]}
1
+ {"version":3,"sources":["../src/lib/bands.ts","../src/data/bandPlans.json","../src/lib/modes.ts","../src/data/licenseLevels.json","../src/lib/licenseLevels.ts"],"names":["bandPlansData"],"mappings":"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","file":"index.cjs","sourcesContent":["export const EXTENDED_BANDS = [ // Includes 11m\n '2190m',\n '630m',\n '560m',\n '160m',\n '80m',\n '60m',\n '40m',\n '30m',\n '20m',\n '17m',\n '15m',\n '12m',\n '11m',\n '10m',\n '6m',\n '5m',\n '4m',\n '2m',\n '1.25m',\n '70cm',\n '33cm',\n '23cm',\n '13cm',\n '9cm',\n '6cm',\n '3cm',\n '1.25cm',\n '6mm',\n '4mm',\n '2.5mm',\n '2mm',\n '1mm',\n 'submm',\n 'other'\n] as const\n\nexport const BANDS = [\n '2190m',\n '630m',\n '560m',\n '160m',\n '80m',\n '60m',\n '40m',\n '30m',\n '20m',\n '17m',\n '15m',\n '12m',\n '10m',\n '6m',\n '5m',\n '4m',\n '2m',\n '1.25m',\n '70cm',\n '33cm',\n '23cm',\n '13cm',\n '9cm',\n '6cm',\n '3cm',\n '1.25cm',\n '6mm',\n '4mm',\n '2.5mm',\n '2mm',\n '1mm',\n 'submm',\n 'other'\n] as const\n\nexport type Band = typeof EXTENDED_BANDS[number]\n\nexport const HF_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m'] as const\nexport const VHF_BANDS = ['6m', '5m', '4m', '2m', '1.25m'] as const\nexport const UHF_BANDS = ['70cm', '33cm', '23cm', '13cm'] as const\nexport const SHF_BANDS = ['9cm', '6cm', '3cm', '1.25cm'] as const\nexport const EHF_BANDS = ['6mm', '4mm', '2mm', '2.5mm', '1mm', 'submm'] as const\n\nexport const POPULAR_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m', '6m', '2m', '70cm'] as const\nexport const CONTEST_BANDS = ['160m', '80m', '40m', '20m', '15m', '10m'] as const\n\nexport function bandForFrequency(freq: number): Band {\n return bandForExactFrequencyInMHz(freq) ?? bandForExactFrequencyInMHz(freq * 1000) ?? 'other'\n}\n\nexport function bandForExactFrequencyInMHz(freq: number): Band | undefined {\n if (freq >= 130 && freq <= 140) return '2190m'\n else if (freq >= 450 && freq <= 499) return '630m'\n else if (freq >= 500 && freq <= 505) return '560m'\n else if (freq >= 1700 && freq <= 2100) return '160m'\n else if (freq >= 3400 && freq <= 4100) return '80m'\n else if (freq >= 5300 && freq <= 5500) return '60m'\n else if (freq >= 6900 && freq <= 7400) return '40m'\n else if (freq >= 10000 && freq <= 10200) return '30m'\n else if (freq >= 13900 && freq <= 14400) return '20m'\n else if (freq >= 18000 && freq <= 18200) return '17m'\n else if (freq >= 20900 && freq <= 21600) return '15m'\n else if (freq >= 24500 && freq <= 25200) return '12m'\n else if (freq >= 26000 && freq <= 27500) return '11m'\n else if (freq >= 27900 && freq <= 30000) return '10m'\n else if (freq >= 50000 && freq <= 54000) return '6m'\n else if (freq >= 54001 && freq <= 69999) return '5m'\n else if (freq >= 70000 && freq <= 71000) return '4m'\n else if (freq >= 140000 && freq <= 150000) return '2m'\n else if (freq >= 219000 && freq <= 230000) return '1.25m'\n else if (freq >= 400000 && freq <= 460000) return '70cm'\n else if (freq >= 900000 && freq <= 930000) return '33cm'\n else if (freq >= 1180000 && freq <= 1420000) return '23cm'\n else if (freq >= 2300000 && freq <= 2450000) return '13cm'\n else if (freq >= 3290000 && freq <= 3510000) return '9cm'\n else if (freq >= 5640000 && freq <= 5926000) return '6cm'\n else if (freq >= 10000000 && freq <= 10500000) return '3cm'\n else if (freq >= 24000000 && freq <= 24250000) return '1.25cm'\n else if (freq >= 47000000 && freq <= 47200000) return '6mm'\n else if (freq >= 75000000 && freq <= 81000000) return '4mm'\n else if (freq >= 122250000 && freq <= 123000000) return '2.5mm'\n else if (freq >= 134000000 && freq <= 141000000) return '2mm'\n else if (freq >= 241000000 && freq <= 250000000) return '1mm'\n else if (freq >= 300000000 && freq <= 7500000000) return 'submm'\n else return undefined\n}\n\nexport function frequencyForBand(band: Band, mode?: string): number | undefined {\n if (band === '2190m') return 135.7\n else if (band === '630m') return 472\n else if (band === '560m') return 501\n else if (band === '160m') {\n if (mode === 'FT8' || mode === 'FT4') return 1840\n else return 1800\n }\n else if (band === '80m') {\n if (mode === 'SSB' || mode === 'LSB') return 3800\n else if (mode === 'FT8') return 3573\n else if (mode === 'FT4') return 3575\n else return 3000\n }\n else if (band === '60m') {\n if (mode === 'FT8') return 5357\n else return 5330\n }\n else if (band === '40m') {\n if (mode === 'SSB' || mode === 'LSB') return 7175\n else if (mode === 'FT8') return 7074\n else if (mode === 'FT4') return 7047.5\n else return 7000\n }\n else if (band === '30m') {\n if (mode === 'FT8') return 10136\n else if (mode === 'FT4') return 10140\n else return 10100\n }\n else if (band === '20m') {\n if (mode === 'SSB' || mode === 'USB') return 14225\n else if (mode === 'FT8') return 14074\n else if (mode === 'FT4') return 14080\n else return 14000\n }\n else if (band === '17m') {\n if (mode === 'SSB' || mode === 'USB') return 18110\n else if (mode === 'FT8') return 18100\n else if (mode === 'FT4') return 18104\n else return 18068\n }\n else if (band === '15m') {\n if (mode === 'SSB' || mode === 'USB') return 21275\n else if (mode === 'FT8') return 21074\n else if (mode === 'FT4') return 21140\n else return 21000\n }\n else if (band === '12m') {\n if (mode === 'SSB' || mode === 'USB') return 24930\n else if (mode === 'FT8') return 24915\n else if (mode === 'FT4') return 24919\n else return 24890\n }\n else if (band === '11m') {\n return 26965\n }\n else if (band === '10m') {\n if (mode === 'SSB' || mode === 'USB') return 28300\n else if (mode === 'FM' || mode === 'AM') return 28500\n else if (mode === 'FT8') return 28074\n else if (mode === 'FT4') return 28180\n else return 28000\n }\n else if (band === '6m') {\n if (mode === 'SSB' || mode === 'USB') return 50125\n else if (mode === 'FT8') return 50313\n else if (mode === 'FT4') return 50318\n else return 50000\n }\n else if (band === '5m') return 55000\n else if (band === '4m') return 70090\n else if (band === '2m') return 145400\n else if (band === '1.25m') return 222000\n else if (band === '70cm') return 420000\n else if (band === '33cm') return 902000\n else if (band === '23cm') return 1240000\n else if (band === '13cm') return 2300000\n else if (band === '9cm') return 3300000\n else if (band === '6cm') return 5650000\n else if (band === '3cm') return 10000000\n else if (band === '1.25cm') return 24000000\n else if (band === '6mm') return 47000000\n else if (band === '4mm') return 75500000\n else if (band === '2.5mm') return 122500000\n else if (band === '2mm') return 134000000\n else if (band === '1mm') return 241000000\n else if (band === 'submm') return 300000000\n else return undefined\n}\n\n","{\n \"sources\": [\n { \"url\": \"https://www.iaru-r1.org/on-the-air/band-plans/\"},\n { \"url\": \"https://www.iaru-r1.org/about-us/committees-and-working-groups/vhf-uhf-shf-committee-c5/vhf-up-bandplanning/\"},\n { \"url\": \"https://www.iaru-r2.org/en/reference/band-plans/\" },\n { \"url\": \"https://rsgb.org/main/operating/band-plans/vhf-uhf/70mhz-band/\"},\n { \"url\": \"https://www.arrl.org/band-plan\" },\n { \"url\": \"https://www.arrl.org/news/view/updated-arrl-us-amateur-radio-bands-charts-now-available\" }\n ],\n \"bands\": {\n \"2190m\": {\n \"mhz\": [135.7, 137.8],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"bg:2\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"ru:4\", \"se:insteg\", \"si:N\", \"ua:C\", \"ua:B\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"JP 4th Class: DATA only\", \"mhz\": [135.7, 137.8], \"levels\": [\"jp:4\"], \"superModes\": [\"DATA\"] }\n ]\n },\n \"630m\": {\n \"mhz\": [472, 479],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"bg:2\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"de:N\", \"de:E\", \"dk:D\", \"gb:F\", \"gb:I\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"JP 4th Class: DATA only\", \"mhz\": [472, 479], \"levels\": [\"jp:4\"], \"superModes\": [\"DATA\"] }\n ]\n },\n \"560m\": {\n \"mhz\": [501, 504],\n \"exceptLevels\": [\"be:C\", \"be:B\"],\n \"segments\": []\n },\n \"160m\": {\n \"mhz\": [1800, 2000],\n \"exceptLevels\": [\"at:3\", \"au:F\", \"au:S\", \"be:C\", \"bg:2\", \"ca:B\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"dk:D\", \"hr:P\", \"hu:KEZDO\", \"id:SIAGA\", \"kr:4\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"ru:4\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"Out of band Reg1\", \"mhz\": [1800, 1810], \"mode\": false, \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [1810, 1838], \"mode\": \"CW\", \"regions\": [ 1 ] }, { \"name\": \"Data\", \"mhz\": [1800, 1810], \"mode\": \"RTTY\" },\n { \"name\": \"CW\", \"mhz\": [1800, 1843], \"mode\": \"CW\" },\n { \"name\": \"FT8\", \"mhz\": [1840, 1843], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [1843, 2000], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"Australia\", \"mhz\": [1800, 1875], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"BR: Class A only\", \"mhz\": [1850, 2000], \"exceptLevels\": [\"br:C\", \"br:B\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [1810, 1830], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [1850, 2000], \"exceptLevels\": [\"hu:NOVICE\"] },\n { \"name\": \"JP 4th Class: DATA only\", \"mhz\": [1907.5, 1912.5], \"levels\": [\"jp:4\"], \"superModes\": [\"DATA\"] },\n { \"name\": \"UA Entry level (student): DATA only\", \"mhz\": [1840, 1842], \"levels\": [\"ua:C\"], \"superModes\": [\"DATA\"] },\n { \"name\": \"UA: Novice, Higher qualification (HAREC) only\", \"mhz\": [1842, 1850], \"exceptLevels\": [\"ua:C\"] }\n ]\n },\n \"80m\": {\n \"mhz\": [3500, 4000],\n \"exceptLevels\": [\"at:3\", \"bg:2\", \"ca:B\", \"cn:A\", \"de:N\", \"dk:D\", \"kr:4\", \"my:C\", \"nl:N\", \"ru:4\", \"se:insteg\"],\n \"segments\": [\n { \"name\": \"CW Reg1\", \"mhz\": [3500, 3570], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW\", \"mhz\": [3500, 3600], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [3535, 3800], \"mode\": \"SSB\", \"submode\": \"LSB\", \"regions\": [ 3 ] },\n { \"name\": \"FT8\", \"mhz\": [3568, 3571], \"mode\": \"FT8\", \"regions\": [ 3 ], \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [3570, 3600], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [3573, 3576], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [3600, 4000], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"Australia\", \"mhz\": [3500, 3800], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"AU: Advanced only\", \"mhz\": [3776, 3800], \"exceptLevels\": [\"au:F\", \"au:S\"] },\n { \"name\": \"BR: Class A only\", \"mhz\": [3800, 4000], \"exceptLevels\": [\"br:C\", \"br:B\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [3500, 3550], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [3700, 3800], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"UA: Novice, Higher qualification (HAREC) only\", \"mhz\": [3650, 3700], \"exceptLevels\": [\"ua:C\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [3700, 3730], \"exceptLevels\": [\"ua:C\", \"ua:B\"] },\n { \"name\": \"UA: Novice, Higher qualification (HAREC) only\", \"mhz\": [3730, 3740], \"exceptLevels\": [\"ua:C\"] },\n { \"name\": \"UA Novice: DATA only\", \"mhz\": [3730, 3740], \"levels\": [\"ua:B\"], \"superModes\": [\"DATA\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [3740, 3800], \"exceptLevels\": [\"ua:C\", \"ua:B\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [3500, 3525], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\", \"us:A\"] },\n { \"name\": \"US Novice, Technician: CW only\", \"mhz\": [3525, 3600], \"levels\": [\"us:N\", \"us:T\"], \"superModes\": [\"CW\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [3600, 3700], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\", \"us:A\"] },\n { \"name\": \"US: Advanced, Amateur Extra only\", \"mhz\": [3700, 3800], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [3800, 3900], \"exceptLevels\": [\"us:N\", \"us:T\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [3900, 4000], \"regions\": [2], \"exceptLevels\": [\"us:N\", \"us:T\"] }\n ]\n },\n \"60m\": {\n \"mhz\": [5250, 5450],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"be:C\", \"be:B\", \"bg:2\", \"br:C\", \"br:B\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"de:E\", \"dk:D\", \"gb:F\", \"gb:I\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"id:PENGGALANG\", \"my:C\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"60m Channel 1\", \"mhz\": [5330.5, 5333.5] },\n { \"name\": \"60m Channel 2\", \"mhz\": [5346.5, 5349.5] },\n { \"name\": \"60m Channel 3\", \"mhz\": [5357, 5360], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"60m Channel 4\", \"mhz\": [5371.5, 5373.5] },\n { \"name\": \"60m Channel 5\", \"mhz\": [5403.5, 5406.5] }\n ]\n },\n \"40m\": {\n \"mhz\": [7000, 7300],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"bg:2\", \"ca:B\", \"ch:HB3\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"kr:4\", \"my:C\", \"ru:4\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [7000, 7060], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [7000, 7040], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW US\", \"mhz\": [7000, 7125], \"mode\": \"CW\", \"countries\": [ \"us\" ] },\n { \"name\": \"FT4\", \"mhz\": [7047.5, 7050.5], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [7060, 7300], \"mode\": \"SSB\", \"submode\": \"LSB\" },\n { \"name\": \"FT8\", \"mhz\": [7074, 7077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [7080, 7125], \"mode\": \"RTTY\", \"countries\": [ \"us\" ] },\n { \"name\": \"Phone\", \"mhz\": [7125, 7300], \"mode\": \"SSB\", \"submode\": \"LSB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [7000, 7300], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [7200, 7300], \"mode\": false, \"regions\": [ 1 ] },\n { \"name\": \"BR: Class B, Class A only\", \"mhz\": [7047, 7300], \"exceptLevels\": [\"br:C\"] },\n { \"name\": \"HU: CEPT Novice, CEPT (full) only\", \"mhz\": [7100, 7175], \"exceptLevels\": [\"hu:KEZDO\"] },\n { \"name\": \"UA Entry level (student): CW only\", \"mhz\": [7040, 7050], \"levels\": [\"ua:C\"], \"superModes\": [\"CW\"] },\n { \"name\": \"UA Entry level (student): CW/PHONE only\", \"mhz\": [7050, 7080], \"levels\": [\"ua:C\"], \"superModes\": [\"CW\", \"PHONE\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [7100, 7200], \"exceptLevels\": [\"ua:C\", \"ua:B\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [7000, 7025], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\", \"us:A\"] },\n { \"name\": \"US Novice, Technician: CW only\", \"mhz\": [7025, 7125], \"levels\": [\"us:N\", \"us:T\"], \"superModes\": [\"CW\"] },\n { \"name\": \"US: Advanced, Amateur Extra only\", \"mhz\": [7125, 7175], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [7175, 7200], \"exceptLevels\": [\"us:N\", \"us:T\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [7200, 7300], \"regions\": [2], \"exceptLevels\": [\"us:N\", \"us:T\"] }\n ]\n },\n \"30m\": {\n \"mhz\": [10100, 10150],\n \"exceptLevels\": [\"ar:N\", \"ar:G\", \"at:3\", \"at:4\", \"au:F\", \"au:S\", \"bg:2\", \"br:C\", \"br:B\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"id:PENGGALANG\", \"jp:4\", \"jp:3\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"ru:4\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [10100, 10150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [10100, 10130], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [10130, 10140], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [10136, 10139], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [10140, 10143], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Australia & New Zealand\", \"mhz\": [10100, 10150], \"mode\": null, \"countries\": [\"au\", \"nz\"] },\n { \"name\": \"Africa south of the Equator\", \"mhz\": [10100, 10150], \"mode\": null, \"countries\": [\"ao\",\"bi\",\"bw\",\"cd\",\"cg\",\"ga\",\"ke\",\"km\",\"ls\",\"mg\",\"mu\",\"mw\",\"mz\",\"na\",\"rw\",\"sc\",\"so\",\"st\",\"sz\",\"tz\",\"ug\",\"za\",\"zm\",\"zw\"] },\n { \"name\": \"UA Entry level (student): CW only\", \"mhz\": [10136, 10150], \"levels\": [\"ua:C\"], \"superModes\": [\"CW\"] }\n ]\n },\n \"20m\": {\n \"mhz\": [14000, 14350],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"bg:2\", \"br:C\", \"br:B\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"id:SIAGA\", \"jp:4\", \"jp:3\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"rs:C\", \"ru:4\", \"si:N\", \"ua:C\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [14000, 14150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [14000, 14070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW Reg2\", \"mhz\": [14000, 14101], \"mode\": \"CW\", \"regions\": [ 2 ] },\n { \"name\": \"Data\", \"mhz\": [14070, 14095], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [14074, 14077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [14080, 14083], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [14112, 14350], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1, 2 ] },\n { \"name\": \"Phone\", \"mhz\": [14150, 14350], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [14000, 14350], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"AR: General, Superior, Special only\", \"mhz\": [14000, 14070], \"exceptLevels\": [\"ar:N\"] },\n { \"name\": \"AR Novice: CW/DATA only\", \"mhz\": [14070, 14099], \"levels\": [\"ar:N\"], \"superModes\": [\"CW\", \"DATA\"] },\n { \"name\": \"AR: General, Superior, Special only\", \"mhz\": [14099, 14350], \"exceptLevels\": [\"ar:N\"] },\n { \"name\": \"HR: Class A only\", \"mhz\": [14000, 14040], \"exceptLevels\": [\"hr:P\"] },\n { \"name\": \"HR: Class A only\", \"mhz\": [14150, 14280], \"exceptLevels\": [\"hr:P\"] },\n { \"name\": \"HU: CEPT Novice, CEPT (full) only\", \"mhz\": [14300, 14350], \"exceptLevels\": [\"hu:KEZDO\"] },\n { \"name\": \"ID Advanced: CW only\", \"mhz\": [14000, 14070], \"levels\": [\"id:PENGGALANG\"], \"superModes\": [\"CW\"] },\n { \"name\": \"ID Advanced: DATA only\", \"mhz\": [14070, 14110], \"levels\": [\"id:PENGGALANG\"], \"superModes\": [\"DATA\"] },\n { \"name\": \"ID: Extra Class only\", \"mhz\": [14150, 14350], \"exceptLevels\": [\"id:PENGGALANG\"] },\n { \"name\": \"UA Novice: CW/DATA only\", \"mhz\": [14100, 14112], \"levels\": [\"ua:B\"], \"superModes\": [\"CW\", \"DATA\"] },\n { \"name\": \"UA Novice: CW only\", \"mhz\": [14112, 14250], \"levels\": [\"ua:B\"], \"superModes\": [\"CW\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [14250, 14350], \"exceptLevels\": [\"ua:B\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [14000, 14025], \"exceptLevels\": [\"us:G\", \"us:A\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [14150, 14175], \"exceptLevels\": [\"us:G\", \"us:A\"] },\n { \"name\": \"US: Advanced, Amateur Extra only\", \"mhz\": [14175, 14225], \"exceptLevels\": [\"us:G\"] }\n ]\n },\n \"17m\": {\n \"mhz\": [18068, 18168],\n \"exceptLevels\": [\"ar:N\", \"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"bg:2\", \"br:C\", \"br:B\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"id:PENGGALANG\", \"jp:4\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"nl:N\", \"rs:C\", \"rs:B\", \"ru:4\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [18068, 18110], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [18068, 18095], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [18100, 18105], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [18100, 18103], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [18104, 18107], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [18109, 18111], \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [18111, 18168], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone US\", \"mhz\": [18110, 18168], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [18068, 18168], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"UA Entry level (student): CW only\", \"mhz\": [18100, 18168], \"levels\": [\"ua:C\"], \"superModes\": [\"CW\"] }\n ]\n },\n \"15m\": {\n \"mhz\": [21000, 21450],\n \"exceptLevels\": [\"at:3\", \"bg:2\", \"ca:B\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"dk:D\", \"kr:4\", \"my:C\", \"nl:N\", \"rs:C\", \"ru:4\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [21000, 21150], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [21000, 21070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [21070, 21095], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [21074, 21077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [21140, 21143], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [21149, 21151], \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [21151, 21450], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone US\", \"mhz\": [21150, 21450], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [21000, 21450], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"AR: General, Superior, Special only\", \"mhz\": [21000, 21070], \"exceptLevels\": [\"ar:N\"] },\n { \"name\": \"AR Novice: CW/DATA only\", \"mhz\": [21070, 21125], \"levels\": [\"ar:N\"], \"superModes\": [\"CW\", \"DATA\"] },\n { \"name\": \"AR Novice: CW only\", \"mhz\": [21125, 21149], \"levels\": [\"ar:N\"], \"superModes\": [\"CW\"] },\n { \"name\": \"AR: General, Superior, Special only\", \"mhz\": [21149, 21200], \"exceptLevels\": [\"ar:N\"] },\n { \"name\": \"AR: Superior, Special only\", \"mhz\": [21310, 21450], \"exceptLevels\": [\"ar:N\", \"ar:G\"] },\n { \"name\": \"BR: Class B, Class A only\", \"mhz\": [21150, 21300], \"exceptLevels\": [\"br:C\"] },\n { \"name\": \"BR: Class A only\", \"mhz\": [21300, 21450], \"exceptLevels\": [\"br:C\", \"br:B\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [21000, 21050], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [21200, 21450], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"ID General: CW only\", \"mhz\": [21000, 21070], \"levels\": [\"id:SIAGA\"], \"superModes\": [\"CW\"] },\n { \"name\": \"ID General: CW/DATA only\", \"mhz\": [21070, 21125], \"levels\": [\"id:SIAGA\"], \"superModes\": [\"CW\", \"DATA\"] },\n { \"name\": \"ID General: CW only\", \"mhz\": [21125, 21200], \"levels\": [\"id:SIAGA\"], \"superModes\": [\"CW\"] },\n { \"name\": \"ID: Advanced, Extra Class only\", \"mhz\": [21200, 21450], \"exceptLevels\": [\"id:SIAGA\"] },\n { \"name\": \"UA Entry level (student), Novice: CW only\", \"mhz\": [21250, 21450], \"levels\": [\"ua:C\", \"ua:B\"], \"superModes\": [\"CW\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [21000, 21025], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\", \"us:A\"] },\n { \"name\": \"US Novice, Technician: CW only\", \"mhz\": [21025, 21200], \"levels\": [\"us:N\", \"us:T\"], \"superModes\": [\"CW\"] },\n { \"name\": \"US: Amateur Extra only\", \"mhz\": [21200, 21225], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\", \"us:A\"] },\n { \"name\": \"US: Advanced, Amateur Extra only\", \"mhz\": [21225, 21275], \"exceptLevels\": [\"us:N\", \"us:T\", \"us:G\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [21275, 21450], \"exceptLevels\": [\"us:N\", \"us:T\"] }\n ]\n },\n \"12m\": {\n \"mhz\": [24740, 24990],\n \"exceptLevels\": [\"ar:N\", \"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"bg:2\", \"ca:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"cz:N\", \"de:N\", \"de:E\", \"dk:D\", \"hr:P\", \"hu:KEZDO\", \"id:SIAGA\", \"id:PENGGALANG\", \"kr:4\", \"my:C\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"ru:4\", \"se:insteg\", \"si:N\", \"us:N\", \"us:T\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [24890, 24930], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [24890, 24915], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [24915, 24918], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [24919, 23922], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Data\", \"mhz\": [24920, 24925], \"mode\": \"RTTY\" },\n { \"name\": \"Phone\", \"mhz\": [24930, 24990], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Beacons only\", \"mhz\": [24929, 24931], \"priority\": 100 },\n { \"name\": \"Phone US\", \"mhz\": [24930, 24990], \"mode\": \"SSB\", \"submode\": \"USB\", \"countries\": [ \"us\" ] },\n { \"name\": \"Australia\", \"mhz\": [24890, 24990], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"UA Entry level (student): CW only\", \"mhz\": [24915, 24990], \"levels\": [\"ua:C\"], \"superModes\": [\"CW\"] }\n ]\n },\n \"10m\": {\n \"mhz\": [28000, 29700],\n \"exceptLevels\": [\"at:3\", \"bg:2\", \"ca:B\", \"cn:A\", \"kr:4\", \"my:C\", \"rs:C\", \"ru:4\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [28000, 28190], \"mode\": \"CW\" },\n { \"name\": \"CW Reg1\", \"mhz\": [28000, 28070], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [28070, 28150], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [28074, 28077], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [28180, 28183], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Beacons only\", \"mhz\": [28190, 28300], \"priority\": 100 },\n { \"name\": \"Phone SSB\", \"mhz\": [28300, 29000], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"AM\", \"mhz\": [29000, 29200], \"mode\": \"AM\" },\n { \"name\": \"Satellite\", \"mhz\": [29300, 29520] },\n { \"name\": \"Guard Channel\", \"mhz\": [29510, 29520], \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"Repeater Uplinks\", \"mhz\": [29520, 29590] },\n { \"name\": \"FM\", \"mhz\": [29520, 29700], \"mode\": \"FM\" },\n { \"name\": \"Repeater Downlinks\", \"mhz\": [29620, 29700] },\n { \"name\": \"Australia\", \"mhz\": [28000, 29700], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [28000, 28050], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"CZ: Class A only\", \"mhz\": [28400, 29700], \"exceptLevels\": [\"cz:N\"] },\n { \"name\": \"UA Entry level (student), Novice: CW/PHONE only\", \"mhz\": [28675, 28685], \"levels\": [\"ua:C\", \"ua:B\"], \"superModes\": [\"CW\", \"PHONE\"] },\n { \"name\": \"UA: Novice, Higher qualification (HAREC) only\", \"mhz\": [29300, 29520], \"exceptLevels\": [\"ua:C\"] },\n { \"name\": \"US Novice, Technician: CW/PHONE only\", \"mhz\": [28300, 28500], \"levels\": [\"us:N\", \"us:T\"], \"superModes\": [\"CW\", \"PHONE\"] },\n { \"name\": \"US: General, Advanced, Amateur Extra only\", \"mhz\": [28500, 29700], \"exceptLevels\": [\"us:N\", \"us:T\"] }\n ]\n },\n \"8m\": {\n \"mhz\": [40660, 40700],\n \"exceptLevels\": [\"be:C\", \"be:B\", \"si:N\"],\n \"segments\": []\n },\n \"6m\": {\n \"mhz\": [50000, 54000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"be:C\", \"bg:2\", \"ch:HB3\", \"cl:ASP\", \"cz:N\", \"de:N\", \"de:E\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"nl:N\", \"rs:C\", \"rs:B\", \"ua:C\", \"ua:B\", \"us:N\"],\n \"segments\": [\n { \"name\": \"Beacon project Reg1\", \"mhz\": [50000, 50010], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"Beacon project Reg2\", \"mhz\": [50010, 50020], \"mode\": null, \"regions\": [ 2 ] },\n { \"name\": \"Beacon project Reg 3\", \"mhz\": [50020, 50030], \"mode\": null, \"regions\": [ 3 ] },\n { \"name\": \"CW\", \"mhz\": [50000, 50100], \"mode\": \"CW\" },\n { \"name\": \"Phone Reg1\", \"mhz\": [50100, 50300], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ]},\n { \"name\": \"FM Reg1\", \"mhz\": [51400, 54000], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Phone\", \"mhz\": [50150, 50400], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [51000, 51110], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"FM\", \"mhz\": [51110, 52100], \"mode\": \"FM\" },\n { \"name\": \"FM\", \"mhz\": [51110, 52100], \"mode\": \"FM\" },\n { \"name\": \"FM Simplex Reg1\", \"mhz\": [51410, 51590], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [50313, 50316], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [50318, 50321], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"FT8\", \"mhz\": [50323, 50326], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"Australia\", \"mhz\": [50000, 54000], \"mode\": null, \"countries\": [\"au\"] },\n { \"name\": \"AR Novice: CW only\", \"mhz\": [51000, 51100], \"levels\": [\"ar:N\"], \"superModes\": [\"CW\"] }\n ]\n },\n \"4m\": {\n \"mhz\": [69887.5, 70512.5],\n \"exceptLevels\": [\"be:C\", \"be:B\", \"bg:2\", \"ch:HB3\", \"hr:P\", \"hu:KEZDO\", \"hu:NOVICE\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\"],\n \"segments\": [\n { \"name\": \"Beacons only Reg1\", \"mhz\": [70090, 70100], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [70000, 70090], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Phone\", \"mhz\": [70100, 70294], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [70294, 70500], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"AM\", \"mhz\": [70257, 70263], \"mode\": \"AM\", \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [70100, 70103], \"mode\": \"FT8\", \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FT8\", \"mhz\": [70154, 70157], \"mode\": \"FT8\", \"priority\": 100, \"regions\": [ 1 ] }\n ]\n },\n \"2m\": {\n \"mhz\": [144000, 148000],\n \"exceptLevels\": [\"us:N\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [144000, 144100], \"mode\": \"CW\" },\n { \"name\": \"Satellite downlink Reg1\", \"mhz\": [144000, 144025], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"CW Reg1\", \"mhz\": [144025, 144150], \"mode\": \"CW\", \"regions\": [ 1 ] },\n { \"name\": \"Data\", \"mhz\": [144100, 144200], \"mode\": \"RTTY\" },\n { \"name\": \"FT8\", \"mhz\": [144174, 144177], \"mode\": \"FT8\", \"priority\": 100 },\n { \"name\": \"FT4\", \"mhz\": [144170, 144173], \"mode\": \"FT4\", \"priority\": 100 },\n { \"name\": \"Phone\", \"mhz\": [144200, 144275], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone Reg1\", \"mhz\": [144150, 144400], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"Beacons only Reg1\", \"mhz\": [144400, 144490], \"priority\": 100, \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [144300, 148000], \"mode\": \"FM\" },\n { \"name\": \"Reg1\", \"mhz\": [144500, 144794], \"mode\": null, \"regions\": [ 1 ] },\n { \"name\": \"FM Satellite Reg1\", \"mhz\": [145194, 145206], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"FM Reg1\", \"mhz\": [145206, 145563], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [146000, 148000], \"mode\": false, \"regions\": [ 1 ] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [144400, 144500], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [145562.5, 145794], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [144000, 144035], \"exceptLevels\": [\"ua:C\", \"ua:B\"] }\n ]\n },\n \"1.25m\": {\n \"mhz\": [219000, 225000],\n \"exceptLevels\": [\"cl:ASP\"],\n \"segments\": [\n { \"name\": \"CW\", \"mhz\": [222000, 222070], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [222070, 222150], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"FM\", \"mhz\": [222200, 225000], \"mode\": \"FM\" },\n { \"name\": \"AR Novice: DATA only\", \"mhz\": [220500, 221000], \"levels\": [\"ar:N\"], \"superModes\": [\"DATA\"] },\n { \"name\": \"US: Technician, General, Advanced, Amateur Extra only\", \"mhz\": [219000, 220000], \"regions\": [2], \"exceptLevels\": [\"us:N\"] }\n ]\n },\n \"70cm\": {\n \"mhz\": [420000, 450000],\n \"exceptLevels\": [\"cl:ASP\", \"se:insteg\", \"us:N\"],\n \"segments\": [\n { \"name\": \"Out of band Reg1\", \"mhz\": [420000, 430000], \"mode\": false, \"regions\": [ 1 ]},\n { \"name\": \"CW\", \"mhz\": [432000, 432100], \"mode\": \"CW\" },\n { \"name\": \"Phone\", \"mhz\": [432100, 432300], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [432420, 433000], \"mode\": \"SSB\", \"submode\": \"USB\" },\n { \"name\": \"Phone\", \"mhz\": [432100, 432400], \"mode\": \"SSB\", \"submode\": \"USB\", \"regions\": [ 1 ] },\n { \"name\": \"FM\", \"mhz\": [420000, 450000], \"mode\": \"FM\" },\n { \"name\": \"FM Reg1\", \"mhz\": [433400, 433575], \"mode\": \"FM\", \"regions\": [ 1 ] },\n { \"name\": \"Out of band Reg1\", \"mhz\": [440000, 450000], \"mode\": false, \"regions\": [ 1 ]},\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [431975, 432000], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [432400, 432500], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [438000, 440000], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [432000, 432025], \"exceptLevels\": [\"ua:C\", \"ua:B\"] }\n ]\n },\n \"33cm\": {\n \"mhz\": [902000, 928000],\n \"segments\": [\n { \"name\": \"FM\", \"mhz\": [927000, 928000], \"mode\": \"FM\" },\n { \"name\": \"US: Technician, General, Advanced, Amateur Extra only\", \"mhz\": [902000, 928000], \"regions\": [2], \"exceptLevels\": [\"us:N\"] }\n ]\n },\n \"23cm\": {\n \"mhz\": [1240000, 1325000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"be:C\", \"be:B\", \"bg:2\", \"ch:HB3\", \"cl:ASP\", \"de:N\", \"gb:F\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"rs:C\", \"rs:B\", \"se:insteg\", \"si:N\"],\n \"segments\": [\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [1240000, 1290994], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"HU Beginner (Kezdő), CEPT Novice: PHONE only\", \"mhz\": [1290994, 1291494], \"levels\": [\"hu:KEZDO\", \"hu:NOVICE\"], \"superModes\": [\"PHONE\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [1291494, 1297494], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"HU Beginner (Kezdő), CEPT Novice: PHONE only\", \"mhz\": [1297494, 1298000], \"levels\": [\"hu:KEZDO\", \"hu:NOVICE\"], \"superModes\": [\"PHONE\"] },\n { \"name\": \"HU: CEPT (full) only\", \"mhz\": [1298000, 1300000], \"exceptLevels\": [\"hu:KEZDO\", \"hu:NOVICE\"] },\n { \"name\": \"US: Technician, General, Advanced, Amateur Extra only\", \"mhz\": [1240000, 1270000], \"exceptLevels\": [\"us:N\"] },\n { \"name\": \"US: Technician, General, Advanced, Amateur Extra only\", \"mhz\": [1295000, 1300000], \"exceptLevels\": [\"us:N\"] }\n ]\n },\n \"13cm\": {\n \"mhz\": [2300000, 2450000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"be:C\", \"be:B\", \"ch:HB3\", \"cl:ASP\", \"de:N\", \"dk:D\", \"hu:KEZDO\", \"hu:NOVICE\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"se:insteg\", \"si:N\", \"us:N\"],\n \"segments\": [\n { \"name\": \"AU: Advanced only\", \"mhz\": [2300000, 2302000], \"exceptLevels\": [\"au:S\"] },\n { \"name\": \"GB: Intermediate, Full only\", \"mhz\": [2310000, 2350000], \"exceptLevels\": [\"gb:F\"] },\n { \"name\": \"GB: Intermediate, Full only\", \"mhz\": [2390000, 2400000], \"exceptLevels\": [\"gb:F\"] }\n ]\n },\n \"9cm\": {\n \"mhz\": [3300000, 3600000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"dk:D\", \"gb:F\", \"hr:P\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"si:N\"],\n \"segments\": []\n },\n \"6cm\": {\n \"mhz\": [5650000, 5925000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"be:C\", \"be:B\", \"ch:HB3\", \"cl:ASP\", \"cn:A\", \"de:N\", \"dk:D\", \"hu:KEZDO\", \"hu:NOVICE\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"se:insteg\", \"si:N\", \"us:N\"],\n \"segments\": [\n { \"name\": \"GB: Intermediate, Full only\", \"mhz\": [5830000, 5850000], \"exceptLevels\": [\"gb:F\"] },\n { \"name\": \"UA: Entry level (student), Higher qualification (HAREC) only\", \"mhz\": [5660000, 5670000], \"exceptLevels\": [\"ua:B\"] },\n { \"name\": \"UA: Higher qualification (HAREC) only\", \"mhz\": [5830000, 5850000], \"exceptLevels\": [\"ua:C\", \"ua:B\"] }\n ]\n },\n \"3cm\": {\n \"mhz\": [10000000, 10500000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"dk:D\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"pl:1\", \"se:insteg\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"1.25cm\": {\n \"mhz\": [24000000, 24250000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cl:ASP\", \"cl:N\", \"cn:A\", \"de:N\", \"dk:D\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"no:begrenset\", \"se:insteg\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"6mm\": {\n \"mhz\": [47000000, 48500000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cn:A\", \"de:N\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"4mm\": {\n \"mhz\": [75500000, 81500000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cn:A\", \"de:N\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"2.5mm\": {\n \"mhz\": [119980000, 123000000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"de:N\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"nl:N\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"2mm\": {\n \"mhz\": [134000000, 149000000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cn:A\", \"de:N\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"id:SIAGA\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"nl:N\", \"si:N\", \"us:N\"],\n \"segments\": []\n },\n \"1mm\": {\n \"mhz\": [241000000, 250000000],\n \"exceptLevels\": [\"at:3\", \"at:4\", \"au:F\", \"au:S\", \"be:C\", \"be:B\", \"ch:HB3\", \"cn:A\", \"de:N\", \"gb:F\", \"hu:KEZDO\", \"hu:NOVICE\", \"kr:4\", \"kr:3P\", \"kr:3T\", \"my:C\", \"my:B\", \"nl:N\", \"si:N\", \"us:N\"],\n \"segments\": []\n }\n }\n}\n","import BandPlans from '../data/bandPlans.json'\nimport type { BandPlanSegment, BandPlansData, SegmentWithMetadata, ModeForFrequencyOptions } from '../types'\n\nexport const SUPER_MODES: readonly string[] = [\n 'CW',\n 'PHONE',\n 'DATA'\n] as const\n\nexport type SuperMode = 'CW' | 'PHONE' | 'DATA'\n\nexport const MAIN_MODES: readonly string[] = [\n 'CW',\n 'SSB',\n 'AM',\n 'FM',\n 'FT8',\n 'FT4',\n 'RTTY'\n] as const\n\nexport const POPULAR_MODES: readonly string[] = [\n 'CW',\n 'SSB',\n 'USB',\n 'LSB',\n 'FM',\n 'AM',\n 'FT8',\n 'FT4',\n 'FT2',\n 'RTTY',\n 'DIGITALVOICE',\n 'C4FM',\n 'DMR',\n 'DSTAR',\n 'FREEDV',\n 'M17',\n 'DYNAMIC',\n 'HELL',\n 'JT9',\n 'MFSK',\n 'MSK144',\n 'OLIVIA',\n 'PKT',\n 'PSK',\n 'SSTV',\n 'WSPR',\n] as const\n\nexport const ADIF_MODES: readonly string[] = [\n 'AM',\n 'ARDOP',\n 'ATV',\n 'CHIP',\n 'CLO',\n 'CONTESTI',\n 'CW',\n 'DIGITALVOICE',\n 'DOMINO',\n 'DYNAMIC',\n 'FAX',\n 'FM',\n 'FSK',\n 'FSK441',\n 'FT8',\n 'HELL',\n 'ISCAT',\n 'JT4',\n 'JT6M',\n 'JT9',\n 'JT44',\n 'JT65',\n 'MFSK',\n 'MSK144',\n 'MT63',\n 'MTONE',\n 'ODFM',\n 'OLIVIA',\n 'OPERA',\n 'PAC',\n 'PAX',\n 'PKT',\n 'PSK',\n 'PSK2K',\n 'Q15',\n 'QRA64',\n 'ROS',\n 'RTTY',\n 'RTTYM',\n 'SSB',\n 'SSTV',\n 'T10',\n 'THOR',\n 'THRB',\n 'TOR',\n 'V4',\n 'VOI',\n 'WINMOR',\n 'WSPR'\n] as const\n\nexport const ADIF_SUBMODES: Record<string, readonly string[]> = {\n 'CW': ['PCW'],\n 'CHIP': ['CHIP64', 'CHIP128'],\n 'DIGITALVOICE': ['C4FM', 'DMR', 'DSTAR', 'FREEDV', 'M17'],\n 'DOMINO': ['DOM-M', 'DOM4', 'DOM5', 'DOM8', 'DOM11', 'DOM16', 'DOM22', 'DOM44', 'DOM88', 'DOMINOEX', 'DOMINOF'],\n 'DYNAMIC': ['FREEDATA', 'VARA HF', 'VARA SATELLITE', 'VARA FM 1200', 'VARA FM 9600'],\n 'FSK': ['SCAMP_FAST', 'SCAMP_SLOW', 'SCAMP_VSLOW'],\n 'HELL': ['FMHELL', 'FSKH105', 'FSKH245', 'FSKHELL', 'HELL80', 'HELLX5', 'HELLX9', 'HFSK', 'PSKHELL', 'SLOWHELL'],\n 'ISCAT': ['ISCAT-A', 'ISCAT-B'],\n 'JT4': ['JT4A', 'JT4B', 'JT4C', 'JT4D', 'JT4E', 'JT4F', 'JT4G'],\n 'JT9': ['JT9-1', 'JT9-2', 'JT9-5', 'JT9-10', 'JT9-30', 'JT9A', 'JT9B', 'JT9C', 'JT9D', 'JT9E', 'JT9E FAST', 'JT9F', 'JT9F FAST', 'JT9G', 'JT9G FAST', 'JT9H', 'JT9H FAST'],\n 'JT65': ['JT65A', 'JT65B', 'JT65B2', 'JT65C', 'JT65C2'],\n 'MFSK': ['FSQCALL', 'FST4', 'FST4W', 'FT4', 'FT2', 'JS8', 'JTMS', 'MFSK4', 'MFSK8', 'MFSK11', 'MFSK16', 'MFSK22', 'MFSK31', 'MFSK32', 'MFSK64', 'MFSK64L', 'MFSK128 MFSK128L', 'Q65'],\n 'MTONE': ['SCAMP_OO', 'SCAMP_OO_SLW'],\n 'ODFM': ['RIBBIT_PIX', 'RIBBIT_SMS'],\n 'OLIVIA': ['OLIVIA 4/125', 'OLIVIA 4/250', 'OLIVIA 8/250', 'OLIVIA 8/500', 'OLIVIA 16/500', 'OLIVIA 16/1000', 'OLIVIA 32/1000'],\n 'OPERA': ['OPERA-BEACON', 'OPERA-QSO'],\n 'PAC': ['PAC2', 'PAC3', 'PAC4'],\n 'PAX': ['PAX2'],\n 'PSK': ['8PSK125', '8PSK125F', '8PSK125FL', '8PSK250', '8PSK250F', '8PSK250FL', '8PSK500', '8PSK500F', '8PSK1000', '8PSK1000F', '8PSK1200F', 'FSK31', 'PSK10', 'PSK31', 'PSK63', 'PSK63F', 'PSK63RC4', 'PSK63RC5', 'PSK63RC10', 'PSK63RC20', 'PSK63RC32', 'PSK125', 'PSK125C12', 'PSK125R', 'PSK125RC10', 'PSK125RC12', 'PSK125RC16', 'PSK125RC4', 'PSK125RC5', 'PSK250', 'PSK250C6', 'PSK250R', 'PSK250RC2', 'PSK250RC3', 'PSK250RC5', 'PSK250RC6', 'PSK250RC7', 'PSK500', 'PSK500C2', 'PSK500C4', 'PSK500R', 'PSK500RC2', 'PSK500RC3', 'PSK500RC4', 'PSK800C2', 'PSK800RC2', 'PSK1000', 'PSK1000C2', 'PSK1000R', 'PSK1000RC2', 'PSKAM10', 'PSKAM31', 'PSKAM50', 'PSKFEC31', 'QPSK31', 'QPSK63', 'QPSK125', 'QPSK250', 'QPSK500', 'SIM31'],\n 'QRA64': ['QRA64A', 'QRA64B', 'QRA64C', 'QRA64D', 'QRA64E'],\n 'ROS': ['ROS-EME', 'ROS-HF', 'ROS-MF'],\n 'RTTY': ['ASCI'],\n 'SSB': ['LSB', 'USB'],\n 'THOR': ['THOR-M', 'THOR4', 'THOR5', 'THOR8', 'THOR11', 'THOR16', 'THOR22', 'THOR25X4', 'THOR50X1', 'THOR50X2', 'THOR100'],\n 'THRB': ['THRBX', 'THRBX1', 'THRBX2', 'THRBX4', 'THROB1', 'THROB2', 'THROB4'],\n 'TOR': ['AMTORFEC', 'GTOR', 'NAVTEX', 'SITORB']\n} as const\n\nexport const ALL_MODES: readonly string[] = [\n ...new Set([\n ...ADIF_MODES,\n ...Object.values(ADIF_SUBMODES).flat()\n ])\n].sort()\n\nexport const PHONE_MODES: readonly string[] = [\n 'SSB',\n 'USB',\n 'LSB',\n 'FM',\n 'AM',\n 'DIGITALVOICE',\n ...ADIF_SUBMODES.DIGITALVOICE,\n] as const\n\nexport const ADIF_MODE_FOR_SUBMODE: Record<string, string> = {}\nObject.keys(ADIF_SUBMODES).forEach(mode => {\n ADIF_SUBMODES[mode].forEach(submode => {\n ADIF_MODE_FOR_SUBMODE[submode] = mode\n })\n})\n\nexport const ADIF_MODES_AND_SUBMODES: readonly string[] = [...new Set([...ADIF_MODES, ...Object.values(ADIF_SUBMODES).flat()])].sort()\n\nexport function adifModeAndSubmodeForMode(mode: string): string[] {\n if (ADIF_MODE_FOR_SUBMODE[mode]) {\n return [ADIF_MODE_FOR_SUBMODE[mode], mode]\n } else {\n return [mode]\n }\n}\n\nexport function superModeForMode(mode: string): SuperMode {\n if (ADIF_MODE_FOR_SUBMODE[mode]) mode = ADIF_MODE_FOR_SUBMODE[mode]\n\n if (mode === 'CW') {\n return 'CW'\n } else if (PHONE_MODES.includes(mode)) {\n return 'PHONE'\n } else {\n return 'DATA'\n }\n}\n\nconst bandPlansData = BandPlans as unknown as BandPlansData\n\n/**\n * A segment that limits license levels says who may transmit, not what mode is used there. It has no\n * `mode`, so letting it into the mode lookup would make it the narrowest match and blank the guess.\n */\nfunction isLicenseSegment(segment: BandPlanSegment): boolean {\n return Boolean(segment.exceptLevels || segment.levels)\n}\n\nconst AllSegments: SegmentWithMetadata[] = Object.keys(bandPlansData.bands).reduce((segments, band) => {\n return segments.concat(\n bandPlansData.bands[band].segments.filter(segment => !isLicenseSegment(segment)).map(segment => {\n const mhz = Array.isArray(segment.mhz) && segment.mhz.length >= 2\n ? [segment.mhz[0], segment.mhz[1]] as [number, number]\n : [0, 0] as [number, number]\n return {\n name: segment.name,\n mode: segment.mode,\n submode: segment.submode,\n priority: segment.priority,\n mhz,\n band,\n width: mhz[1] - mhz[0],\n regions: (segment.regions || []).reduce((regions: Record<string, boolean>, region) => { regions[region.toString()] = true; return regions }, {}),\n entities: (segment.entities || []).reduce((entities: Record<string, boolean>, entity) => { entities[entity] = true; return entities }, {}),\n countries: (segment.countries || []).reduce((countries: Record<string, boolean>, country) => { countries[country] = true; return countries }, {}),\n } as SegmentWithMetadata\n })\n )\n}, [] as SegmentWithMetadata[])\n\nexport function modeForFrequency(frequency: number, options: ModeForFrequencyOptions = {}): string | null | undefined | false{\n const { ituRegion, countryCode, entityPrefix } = options\n\n const segments = AllSegments.filter(segment => (\n (segment.mhz[0] <= frequency && segment.mhz[1] >= frequency) &&\n (!entityPrefix || Object.keys(segment.entities).length === 0 || segment.entities[entityPrefix]) &&\n (!countryCode || Object.keys(segment.countries).length === 0 || segment.countries[countryCode]) &&\n (!ituRegion || Object.keys(segment.regions).length === 0 || segment.regions[ituRegion.toString()])\n ))\n\n const sortedSegments = segments.sort((a, b) => {\n if ((a.priority ?? 0) < (b.priority ?? 0)) return 1\n if ((a.priority ?? 0) > (b.priority ?? 0)) return -1\n\n if (entityPrefix && !a.entities[entityPrefix] && b.entities[entityPrefix]) return 1\n if (entityPrefix && a.entities[entityPrefix] && !b.entities[entityPrefix]) return -1\n\n if (countryCode && !a.countries[countryCode] && b.countries[countryCode]) return 1\n if (countryCode && a.countries[countryCode] && !b.countries[countryCode]) return -1\n\n if (ituRegion && !a.regions[ituRegion.toString()] && b.regions[ituRegion.toString()]) return 1\n if (ituRegion && a.regions[ituRegion.toString()] && !b.regions[ituRegion.toString()]) return -1\n\n return a.width - b.width\n })\n\n return sortedSegments[0]?.mode\n}\n\n","{\n \"jurisdictions\": [\n {\n \"key\": \"ar\",\n \"name\": \"Argentina\",\n \"regulator\": \"ENACOM\",\n \"rules\": \"Resolución ENACOM 3635-E/2017 (Reglamento General de Radioaficionados, Anexo A band plan) as amended by Res. ENACOM 1186/2024\",\n \"term\": \"License Category\",\n \"termLocal\": \"categoría\",\n \"entities\": [\"LU\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Novice\", \"nameLocal\": \"Novicio\", \"tier\": \"intermediate\", \"aliases\": [\"Inicial\"], \"maxPowerW\": 200},\n {\"code\": \"G\", \"name\": \"General\", \"tier\": \"intermediate\", \"aliases\": [\"Intermedia\"], \"maxPowerW\": 1000},\n {\"code\": \"S\", \"name\": \"Superior\", \"tier\": \"full\", \"maxPowerW\": 1500},\n {\"code\": \"E\", \"name\": \"Special\", \"nameLocal\": \"Especial\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ]\n },\n {\n \"key\": \"at\",\n \"name\": \"Austria\",\n \"regulator\": \"Fernmeldebüros (Fernmeldebehörde, Bundesministerium für Finanzen)\",\n \"term\": \"License Class\",\n \"termLocal\": \"Bewilligungsklasse\",\n \"entities\": [\"OE\"],\n \"levels\": [\n {\"code\": \"3\", \"name\": \"Class 3\", \"nameLocal\": \"Bewilligungsklasse 3\", \"tier\": \"basic\", \"maxPowerW\": 100},\n {\"code\": \"4\", \"name\": \"Class 4\", \"nameLocal\": \"Bewilligungsklasse 4\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"1\", \"name\": \"Class 1\", \"nameLocal\": \"Bewilligungsklasse 1\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ]\n },\n {\n \"key\": \"au\",\n \"name\": \"Australia\",\n \"regulator\": \"ACMA\",\n \"term\": \"Licence Level\",\n \"termLocal\": \"qualification\",\n \"entities\": [\"VK\", \"VK9X\", \"VK9C\", \"VK9N\", \"VK9L\", \"VK9W\", \"VK9M\", \"VK0H\", \"VK0M\"],\n \"levels\": [\n {\"code\": \"F\", \"name\": \"Foundation\", \"nameLocal\": \"ACMA recognition certificate (Foundation)\", \"tier\": \"intermediate\", \"maxPowerW\": 10},\n {\"code\": \"S\", \"name\": \"Standard\", \"nameLocal\": \"ACMA recognition certificate (Standard)\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Advanced\", \"nameLocal\": \"ACMA recognition certificate (Advanced)\", \"tier\": \"full\", \"maxPowerW\": 400}\n ],\n \"callsigns\": [\n {\"pattern\": \"^VK[0-9][A-Z]{2}$\", \"level\": \"A\", \"entities\": [\"VK\"]}\n ]\n },\n {\n \"key\": \"be\",\n \"name\": \"Belgium\",\n \"regulator\": \"BIPT/IBPT\",\n \"term\": \"Licence Class\",\n \"termLocal\": \"certificat d'opérateur de classe A/B/C\",\n \"entities\": [\"ON\"],\n \"levels\": [\n {\"code\": \"C\", \"name\": \"Entry (Basic)\", \"nameLocal\": \"Certificat d'opérateur de classe C (ex licence de base)\", \"tier\": \"intermediate\", \"maxPowerW\": 25},\n {\"code\": \"B\", \"name\": \"Novice\", \"nameLocal\": \"Certificat d'opérateur de classe B\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"HAREC\", \"nameLocal\": \"Certificat d'opérateur de classe A (ex certificat HAREC)\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ],\n \"callsigns\": [\n {\"pattern\": \"^ON3[A-Z]{2,3}$\", \"level\": \"C\"},\n {\"pattern\": \"^ON2[A-Z]{2,3}$\", \"level\": \"B\", \"atLeast\": true},\n {\"pattern\": \"^ON[14-9][A-Z]{1,3}$\", \"level\": \"A\"}\n ]\n },\n {\n \"key\": \"bg\",\n \"name\": \"Bulgaria\",\n \"regulator\": \"CRC (Комисия за регулиране на съобщенията)\",\n \"term\": \"License Class\",\n \"termLocal\": \"радиолюбителски клас\",\n \"entities\": [\"LZ\"],\n \"levels\": [\n {\"code\": \"2\", \"name\": \"Class 2\", \"nameLocal\": \"Клас 2\", \"tier\": \"basic\", \"maxPowerW\": 5, \"superModes\": [\"PHONE\", \"DATA\"]},\n {\"code\": \"1\", \"name\": \"Class 1\", \"nameLocal\": \"Клас 1\", \"tier\": \"full\", \"maxPowerW\": 350}\n ],\n \"callsigns\": [\n {\"pattern\": \"^LZ[0-9][A-Z]{2}$\", \"level\": \"1\"}\n ]\n },\n {\n \"key\": \"br\",\n \"name\": \"Brazil\",\n \"regulator\": \"Anatel\",\n \"rules\": \"Res. Anatel 777/2025 (RGST) Art. 277 (classes); Ato SOR 926/2024 (bands/power by class); Ato 3448/2026 (operations, exams, callsigns)\",\n \"term\": \"License Class\",\n \"termLocal\": \"classe\",\n \"entities\": [\"PY\", \"PY0F\", \"PY0S\", \"PY0T\"],\n \"levels\": [\n {\"code\": \"C\", \"name\": \"Class C\", \"nameLocal\": \"Classe C\", \"tier\": \"intermediate\", \"aliases\": [\"Classe D\"], \"maxPowerW\": 100},\n {\"code\": \"B\", \"name\": \"Class B\", \"nameLocal\": \"Classe B\", \"tier\": \"intermediate\", \"maxPowerW\": 1000},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"Classe A\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ],\n \"callsigns\": [\n {\"pattern\": \"^PU[0-9][A-Z]{3}$\", \"level\": \"C\"},\n {\"pattern\": \"^PV2[K-Y][A-Z]{2}$\", \"level\": \"C\"}\n ]\n },\n {\n \"key\": \"ca\",\n \"name\": \"Canada\",\n \"regulator\": \"ISED\",\n \"rules\": \"RBR-4 Issue 3 (July 2022); RIC-3 Issue 5 (March 2022); Radiocommunication Regulations\",\n \"term\": \"Qualification\",\n \"termLocal\": \"qualification\",\n \"entities\": [\"VE\"],\n \"levels\": [\n {\"code\": \"B\", \"name\": \"Basic\", \"nameLocal\": \"Basic Qualification / compétence de base\", \"tier\": \"basic\", \"maxPowerW\": 560},\n {\"code\": \"B/H\", \"name\": \"Basic with Honours\", \"nameLocal\": \"Basic Qualification with Honours / compétence de base reçue avec distinction\", \"tier\": \"full\", \"maxPowerW\": 560},\n {\"code\": \"B+5\", \"name\": \"Basic + Morse (5 wpm)\", \"nameLocal\": \"Morse Code Qualification / compétence en code Morse\", \"tier\": \"full\", \"maxPowerW\": 560},\n {\"code\": \"B+A\", \"name\": \"Basic + Advanced\", \"nameLocal\": \"Advanced Qualification / compétence supérieure\", \"tier\": \"full\", \"maxPowerW\": 2250}\n ]\n },\n {\n \"key\": \"ch\",\n \"name\": \"Switzerland\",\n \"regulator\": \"OFCOM/BAKOM\",\n \"term\": \"Licence Class\",\n \"termLocal\": \"Fähigkeitszeugnis (DE) / certificat de capacité (FR); formerly Konzession\",\n \"entities\": [\"HB\"],\n \"levels\": [\n {\"code\": \"HB3\", \"name\": \"Novice\", \"nameLocal\": \"Einsteigerausweis für Funkamateurinnen und Funkamateure (Fähigkeitszeugnis Novice)\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"HB9\", \"name\": \"Full (CEPT)\", \"nameLocal\": \"Fähigkeitszeugnis für den Amateurfunk (CEPT)\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^HB3[A-Z]{3}$\", \"level\": \"HB3\"},\n {\"pattern\": \"^HB9[A-Z]{3}$\", \"level\": \"HB9\"}\n ]\n },\n {\n \"key\": \"cl\",\n \"name\": \"Chile\",\n \"regulator\": \"SUBTEL\",\n \"rules\": \"DS 523/2006 (Reglamento del Servicio de Aficionados a las Radiocomunicaciones) as amended by DS 213/2012; Res. Exenta 1228/2008 + 175/2014 (callsigns); DS 127/2006 + DS 192/2023 (band plan)\",\n \"term\": \"License Category\",\n \"termLocal\": \"categoría\",\n \"entities\": [\"CE\", \"CE0Y\", \"CE0X\", \"CE0Z\"],\n \"levels\": [\n {\"code\": \"ASP\", \"name\": \"Aspirant\", \"nameLocal\": \"Aspirante\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"N\", \"name\": \"Novice\", \"nameLocal\": \"Novicio\", \"tier\": \"intermediate\", \"maxPowerW\": 200},\n {\"code\": \"G\", \"name\": \"General\", \"tier\": \"full\", \"maxPowerW\": 1200},\n {\"code\": \"S\", \"name\": \"Superior\", \"tier\": \"full\", \"maxPowerW\": 1200}\n ],\n \"callsigns\": [\n {\"pattern\": \"^CD[0-9][A-Z]{3}$\", \"level\": \"ASP\"},\n {\"pattern\": \"^CA[0-9][A-Z]{3}$\", \"level\": \"N\"},\n {\"pattern\": \"^CE[0-9][A-Z]{1,3}$\", \"level\": \"G\", \"entities\": [\"CE\"]},\n {\"pattern\": \"^XQ[0-9][A-Z]{1,3}$\", \"level\": \"S\"}\n ]\n },\n {\n \"key\": \"cn\",\n \"name\": \"China\",\n \"regulator\": \"MIIT (工业和信息化部)\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"业余无线电台操作技术能力类别\",\n \"entities\": [\"BY\"],\n \"levels\": [\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"A类\", \"tier\": \"basic\", \"maxPowerW\": 25},\n {\"code\": \"B\", \"name\": \"Class B\", \"nameLocal\": \"B类\", \"tier\": \"full\", \"maxPowerW\": 15},\n {\"code\": \"B-pre2024\", \"name\": \"Class B (obtained before 2024-03-01)\", \"nameLocal\": \"B类 (2024年3月1日前取得)\", \"tier\": \"full\", \"legacy\": true, \"maxPowerW\": 100},\n {\"code\": \"C\", \"name\": \"Class C\", \"nameLocal\": \"C类\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ]\n },\n {\n \"key\": \"cz\",\n \"name\": \"Czech Republic\",\n \"regulator\": \"ČTÚ (Český telekomunikační úřad)\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"třída operátora\",\n \"entities\": [\"OK\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Class N (Novice)\", \"nameLocal\": \"Operátorská třída N\", \"tier\": \"intermediate\", \"maxPowerW\": 10},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"Operátorská třída A\", \"tier\": \"full\", \"maxPowerW\": 750}\n ],\n \"callsigns\": [\n {\"pattern\": \"^OK9[A-Z]{3}$\", \"level\": \"N\", \"atLeast\": true},\n {\"pattern\": \"^OK[1-7][A-Z]{2,3}$\", \"level\": \"A\"}\n ]\n },\n {\n \"key\": \"de\",\n \"name\": \"Germany\",\n \"regulator\": \"BNetzA (Bundesnetzagentur)\",\n \"term\": \"License Class\",\n \"termLocal\": \"Klasse\",\n \"entities\": [\"DL\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Class N\", \"nameLocal\": \"Klasse N\", \"tier\": \"basic\", \"maxPowerW\": 10},\n {\"code\": \"E\", \"name\": \"Class E\", \"nameLocal\": \"Klasse E\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"Klasse A\", \"tier\": \"full\", \"maxPowerW\": 750}\n ],\n \"callsigns\": [\n {\"pattern\": \"^DN9[A-Z]{2,3}$\", \"level\": \"N\", \"atLeast\": true},\n {\"pattern\": \"^(DO[1-9]|DA6)[A-Z]{2,3}$\", \"level\": \"E\", \"atLeast\": true},\n {\"pattern\": \"^(DA[12]|DB[1-9]|DC[0-9]|DD[0-9]|DF[1-9]|DG[0-9]|DH[0-9]|DJ[0-9]|DK[1-9]|DL[1-9]|DM[1-9])[A-Z]{1,3}$\", \"level\": \"A\"}\n ]\n },\n {\n \"key\": \"dk\",\n \"name\": \"Denmark\",\n \"regulator\": \"Digitaliseringsstyrelsen (formerly SDFI)\",\n \"rules\": \"BEK nr 499 af 29/05/2026 (in force 2026-07-01), Bilag 4\",\n \"term\": \"Certificate category\",\n \"termLocal\": \"certifikat, kategori\",\n \"entities\": [\"OZ\"],\n \"levels\": [\n {\"code\": \"D\", \"name\": \"Category D\", \"nameLocal\": \"Certifikat kategori D\", \"tier\": \"basic\", \"maxPowerW\": 50},\n {\"code\": \"B\", \"name\": \"Category B\", \"nameLocal\": \"Certifikat kategori B\", \"tier\": \"full\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Category A\", \"nameLocal\": \"Certifikat kategori A\", \"tier\": \"full\", \"aliases\": [\"Certifikat kategori C\"], \"maxPowerW\": 1000}\n ]\n },\n {\n \"key\": \"gb\",\n \"name\": \"United Kingdom\",\n \"regulator\": \"Ofcom\",\n \"term\": \"Licence Class\",\n \"termLocal\": \"licence class\",\n \"entities\": [\"G\", \"GM\", \"GW\", \"GI\"],\n \"levels\": [\n {\"code\": \"F\", \"name\": \"Foundation\", \"nameLocal\": \"Foundation Licence\", \"tier\": \"intermediate\", \"maxPowerW\": 25},\n {\"code\": \"I\", \"name\": \"Intermediate\", \"nameLocal\": \"Intermediate Licence\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"FULL\", \"name\": \"Full\", \"nameLocal\": \"Full Licence\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^M[A-Z]?[367][A-Z]{3}$\", \"level\": \"F\"},\n {\"pattern\": \"^M[A-Z]?[89][A-Z]{3}$\", \"level\": \"I\"},\n {\"pattern\": \"^2[A-Z][01][A-Z]{3}$\", \"level\": \"I\"},\n {\"pattern\": \"^G[A-Z]?[0-8][A-Z]{2,3}$\", \"level\": \"FULL\"},\n {\"pattern\": \"^M[A-Z]?[015][A-Z]{2,3}$\", \"level\": \"FULL\"}\n ]\n },\n {\n \"key\": \"hr\",\n \"name\": \"Croatia\",\n \"regulator\": \"HAKOM (Hrvatska regulatorna agencija za mrežne djelatnosti)\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"radioamaterski razred\",\n \"entities\": [\"9A\"],\n \"levels\": [\n {\"code\": \"P\", \"name\": \"Class P (Beginner)\", \"nameLocal\": \"početnički P razred\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"A razred\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ]\n },\n {\n \"key\": \"hu\",\n \"name\": \"Hungary\",\n \"regulator\": \"NMHH (Nemzeti Média- és Hírközlési Hatóság)\",\n \"term\": \"License Grade\",\n \"termLocal\": \"engedély fokozata\",\n \"entities\": [\"HA\"],\n \"levels\": [\n {\"code\": \"KEZDO\", \"name\": \"Beginner (Kezdő)\", \"nameLocal\": \"Kezdő fokozatú engedély\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"NOVICE\", \"name\": \"CEPT Novice\", \"nameLocal\": \"CEPT Novice fokozatú engedély\", \"tier\": \"intermediate\", \"maxPowerW\": 200},\n {\"code\": \"CEPT\", \"name\": \"CEPT (full)\", \"nameLocal\": \"CEPT fokozatú engedély\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ]\n },\n {\n \"key\": \"id\",\n \"name\": \"Indonesia\",\n \"regulator\": \"Komdigi (formerly Kominfo), Ditjen SDPPI\",\n \"term\": \"Licence Level\",\n \"termLocal\": \"Tingkat IAR\",\n \"entities\": [\"YB\"],\n \"levels\": [\n {\"code\": \"SIAGA\", \"name\": \"General\", \"nameLocal\": \"Tingkat Siaga\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"PENGGALANG\", \"name\": \"Advanced\", \"nameLocal\": \"Tingkat Penggalang\", \"tier\": \"intermediate\", \"maxPowerW\": 500},\n {\"code\": \"PENEGAK\", \"name\": \"Extra Class\", \"nameLocal\": \"Tingkat Penegak\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^Y[DG][0-9][A-Z]{1,3}$\", \"level\": \"SIAGA\"},\n {\"pattern\": \"^Y[CF][0-9][A-Z]{1,3}$\", \"level\": \"PENGGALANG\"},\n {\"pattern\": \"^Y[BE][0-9][A-Z]{1,3}$\", \"level\": \"PENEGAK\"}\n ]\n },\n {\n \"key\": \"jp\",\n \"name\": \"Japan\",\n \"regulator\": \"MIC (総務省)\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"資格 / 級\",\n \"entities\": [\"JA\", \"JD/o\", \"JD/m\"],\n \"levels\": [\n {\"code\": \"4\", \"name\": \"4th Class\", \"nameLocal\": \"第四級アマチュア無線技士\", \"tier\": \"intermediate\", \"maxPowerW\": 20, \"superModes\": [\"PHONE\", \"DATA\"]},\n {\"code\": \"3\", \"name\": \"3rd Class\", \"nameLocal\": \"第三級アマチュア無線技士\", \"tier\": \"intermediate\", \"maxPowerW\": 50},\n {\"code\": \"2\", \"name\": \"2nd Class\", \"nameLocal\": \"第二級アマチュア無線技士\", \"tier\": \"full\", \"maxPowerW\": 200},\n {\"code\": \"1\", \"name\": \"1st Class\", \"nameLocal\": \"第一級アマチュア無線技士\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ]\n },\n {\n \"key\": \"kr\",\n \"name\": \"Republic of Korea\",\n \"regulator\": \"MSIT (과학기술정보통신부) / 중앙전파관리소; exams KCA\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"아마추어무선기사 자격 등급\",\n \"entities\": [\"HL\"],\n \"levels\": [\n {\"code\": \"4\", \"name\": \"4th Class\", \"nameLocal\": \"제4급 아마추어무선기사\", \"tier\": \"basic\", \"maxPowerW\": 10, \"superModes\": [\"PHONE\", \"DATA\"]},\n {\"code\": \"3P\", \"name\": \"3rd Class (Telephony)\", \"nameLocal\": \"제3급 아마추어무선기사(전화급)\", \"tier\": \"intermediate\", \"maxPowerW\": 100, \"superModes\": [\"PHONE\", \"DATA\"]},\n {\"code\": \"3T\", \"name\": \"3rd Class (Telegraphy)\", \"nameLocal\": \"제3급 아마추어무선기사(전신급)\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"2\", \"name\": \"2nd Class\", \"nameLocal\": \"제2급 아마추어무선기사\", \"tier\": \"full\", \"maxPowerW\": 200},\n {\"code\": \"1\", \"name\": \"1st Class\", \"nameLocal\": \"제1급 아마추어무선기사\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ]\n },\n {\n \"key\": \"my\",\n \"name\": \"Malaysia\",\n \"regulator\": \"MCMC\",\n \"term\": \"Licence Class\",\n \"termLocal\": \"Kelas\",\n \"entities\": [\"9M2\", \"9M6\"],\n \"levels\": [\n {\"code\": \"C\", \"name\": \"Class C\", \"nameLocal\": \"Kelas C\", \"tier\": \"basic\", \"maxPowerW\": 25, \"superModes\": [\"PHONE\", \"DATA\"]},\n {\"code\": \"B\", \"name\": \"Class B\", \"nameLocal\": \"Kelas B\", \"tier\": \"intermediate\", \"maxPowerW\": 50},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"Kelas A\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^9W3[A-Z]{2,3}$\", \"level\": \"C\"},\n {\"pattern\": \"^9W[268][A-Z]{2,3}$\", \"level\": \"B\"},\n {\"pattern\": \"^9M[268][A-Z]{2,3}$\", \"level\": \"A\"}\n ]\n },\n {\n \"key\": \"nl\",\n \"name\": \"Netherlands\",\n \"regulator\": \"RDI (Rijksinspectie Digitale Infrastructuur)\",\n \"term\": \"Licence Class\",\n \"termLocal\": \"categorie registratie\",\n \"entities\": [\"PA\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Novice\", \"nameLocal\": \"N-registratie (beperkte toegang)\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"F\", \"name\": \"Full\", \"nameLocal\": \"F-registratie (volledige toegang)\", \"tier\": \"full\", \"maxPowerW\": 400}\n ],\n \"callsigns\": [\n {\"pattern\": \"^PD[0-9][A-Z]{2,3}$\", \"level\": \"N\"}\n ]\n },\n {\n \"key\": \"no\",\n \"name\": \"Norway\",\n \"regulator\": \"Nasjonal kommunikasjonsmyndighet (Nkom)\",\n \"rules\": \"Forskrift om radioamatørvirksomhet FOR-2026-03-23-465 (in force 2026-03-23)\",\n \"term\": \"Licence class\",\n \"termLocal\": \"lisensklasse\",\n \"entities\": [\"LA\", \"JW\", \"JX\", \"3Y/b\", \"3Y/p\"],\n \"levels\": [\n {\"code\": \"begrenset\", \"name\": \"Limited licence\", \"nameLocal\": \"Begrenset lisens\", \"tier\": \"intermediate\", \"maxPowerW\": 10},\n {\"code\": \"A\", \"name\": \"Full licence\", \"nameLocal\": \"Full lisens (HAREC klasse A)\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^L[AB][0-9][A-Z]{1,3}$\", \"level\": \"A\", \"entities\": [\"LA\"]}\n ]\n },\n {\n \"key\": \"pl\",\n \"name\": \"Poland\",\n \"regulator\": \"UKE (Urząd Komunikacji Elektronicznej)\",\n \"term\": \"License Category\",\n \"termLocal\": \"kategoria pozwolenia\",\n \"entities\": [\"SP\"],\n \"levels\": [\n {\"code\": \"3\", \"name\": \"Category 3\", \"nameLocal\": \"pozwolenie kategorii 3\", \"tier\": \"full\", \"maxPowerW\": 100},\n {\"code\": \"1\", \"name\": \"Category 1\", \"nameLocal\": \"pozwolenie kategorii 1\", \"tier\": \"full\", \"maxPowerW\": 500}\n ]\n },\n {\n \"key\": \"ro\",\n \"name\": \"Romania\",\n \"regulator\": \"ANCOM\",\n \"term\": \"License Class\",\n \"termLocal\": \"clasa\",\n \"entities\": [\"YO\"],\n \"levels\": [\n {\"code\": \"IV\", \"name\": \"Class IV\", \"nameLocal\": \"Clasa a IV-a\", \"tier\": \"full\", \"maxPowerW\": 50},\n {\"code\": \"III\", \"name\": \"Class III\", \"nameLocal\": \"Clasa a III-a\", \"tier\": \"full\", \"maxPowerW\": 100},\n {\"code\": \"II\", \"name\": \"Class II\", \"nameLocal\": \"Clasa a II-a\", \"tier\": \"full\", \"maxPowerW\": 200},\n {\"code\": \"I\", \"name\": \"Class I\", \"nameLocal\": \"Clasa I\", \"tier\": \"full\", \"maxPowerW\": 400}\n ]\n },\n {\n \"key\": \"rs\",\n \"name\": \"Serbia\",\n \"regulator\": \"RATEL\",\n \"term\": \"License Class\",\n \"termLocal\": \"класа радио-аматера\",\n \"entities\": [\"YU\"],\n \"levels\": [\n {\"code\": \"C\", \"name\": \"Class C (basic)\", \"nameLocal\": \"Класа C\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"B\", \"name\": \"Class B (advanced)\", \"nameLocal\": \"Класа B\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"Класа A\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ]\n },\n {\n \"key\": \"ru\",\n \"name\": \"Russia\",\n \"regulator\": \"ГКРЧ / Минцифры России (allocation), Роскомнадзор + ФГУП ГРЧЦ (registration, callsigns), СРР (qualification exams)\",\n \"rules\": \"Решение ГКРЧ 10-07-01 ред. 18-45-02 (2018-04-16, valid to 2028-04-01); Приказ Минкомсвязи №184 (2012); Приказ №4 (2012) ред. 2019\",\n \"term\": \"Category\",\n \"termLocal\": \"категория\",\n \"entities\": [\"UA\", \"UA2\", \"UA9\"],\n \"levels\": [\n {\"code\": \"4\", \"name\": \"Category 4\", \"nameLocal\": \"4 категория (начальная квалификация)\", \"tier\": \"basic\", \"maxPowerW\": 5},\n {\"code\": \"3\", \"name\": \"Category 3\", \"nameLocal\": \"3 категория (квалификация новичка)\", \"tier\": \"full\", \"maxPowerW\": 10},\n {\"code\": \"2\", \"name\": \"Category 2\", \"nameLocal\": \"2 категория (основная/базовая квалификация)\", \"tier\": \"full\", \"maxPowerW\": 1000},\n {\"code\": \"1\", \"name\": \"Category 1\", \"nameLocal\": \"1 категория (высшая квалификация)\", \"tier\": \"full\", \"maxPowerW\": 1000}\n ],\n \"callsigns\": [\n {\"pattern\": \"^R[0-9][A-Z]{4}$\", \"level\": \"4\"},\n {\"pattern\": \"^U[BCD][0-9][A-Z]{3}$\", \"level\": \"3\", \"atLeast\": true},\n {\"pattern\": \"^(R[A-Z]?|U[A-I])[0-9][A-Z]{1,2}$\", \"level\": \"1\"},\n {\"pattern\": \"^(R[ACDGJ-NOQT-Z]|UA)[0-9][A-Z]{3}$\", \"level\": \"2\", \"atLeast\": true}\n ]\n },\n {\n \"key\": \"se\",\n \"name\": \"Sweden\",\n \"regulator\": \"Post- och telestyrelsen (PTS); certificates/callsigns issued by SSA under delegation\",\n \"rules\": \"PTSFS 2025:1 (licence exemption; in force 2025-03-17)\",\n \"term\": \"Certificate\",\n \"termLocal\": \"certifikat\",\n \"entities\": [\"SM\"],\n \"levels\": [\n {\"code\": \"insteg\", \"name\": \"Entry-level certificate\", \"nameLocal\": \"Instegscertifikat för amatörradio\", \"tier\": \"intermediate\", \"maxPowerW\": 25},\n {\"code\": \"1\", \"name\": \"Amateur radio certificate (HAREC)\", \"nameLocal\": \"Amatörradiocertifikat\", \"tier\": \"full\", \"maxPowerW\": 200}\n ],\n \"callsigns\": [\n {\"pattern\": \"^SH[0-9][A-Z]{3}$\", \"level\": \"insteg\"},\n {\"pattern\": \"^S[AM][0-9][A-Z]{1,3}$\", \"level\": \"1\"}\n ]\n },\n {\n \"key\": \"si\",\n \"name\": \"Slovenia\",\n \"regulator\": \"AKOS (Agencija za komunikacijska omrežja in storitve RS)\",\n \"term\": \"Operator Class\",\n \"termLocal\": \"razred radioamaterja\",\n \"entities\": [\"S5\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Class N (Novice)\", \"nameLocal\": \"razred N\", \"tier\": \"intermediate\", \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Class A\", \"nameLocal\": \"razred A\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ],\n \"callsigns\": [\n {\"pattern\": \"^S52[A-XZ][A-Z]{2}$\", \"level\": \"N\", \"atLeast\": true},\n {\"pattern\": \"^S58[A-X][A-Z]{2}$\", \"level\": \"N\", \"atLeast\": true}\n ]\n },\n {\n \"key\": \"ua\",\n \"name\": \"Ukraine\",\n \"regulator\": \"НКЕК (National Commission for State Regulation of Electronic Communications...), УДЦР (callsigns/permits)\",\n \"rules\": \"Регламент аматорського радіозв'язку України, Постанова НКЕК 10.05.2023 №173 (МЮ 29.06.2023 №1106/40162), Annex 2 Table 12\",\n \"term\": \"Qualification\",\n \"termLocal\": \"кваліфікація радіоаматора\",\n \"entities\": [\"UR\"],\n \"levels\": [\n {\"code\": \"C\", \"name\": \"Entry level (student)\", \"nameLocal\": \"C — радіоаматор-учень\", \"tier\": \"intermediate\", \"maxPowerW\": 40},\n {\"code\": \"B\", \"name\": \"Novice\", \"nameLocal\": \"B — радіоаматор-початківець\", \"tier\": \"intermediate\", \"aliases\": [\"3 категорія\"], \"maxPowerW\": 100},\n {\"code\": \"A\", \"name\": \"Higher qualification (HAREC)\", \"nameLocal\": \"A — вища кваліфікація радіоаматора\", \"tier\": \"full\", \"aliases\": [\"1 категорія\", \"2 категорія\"], \"maxPowerW\": 200}\n ],\n \"callsigns\": [\n {\"pattern\": \"^U[R-Z][0-9][A-Z]{2}$\", \"level\": \"A\"}\n ]\n },\n {\n \"key\": \"us\",\n \"name\": \"United States\",\n \"regulator\": \"FCC\",\n \"rules\": \"47 CFR Part 97 (eCFR, current to 2026-10-09)\",\n \"term\": \"License Class\",\n \"termLocal\": \"operator license class\",\n \"entities\": [\"K\", \"KL\", \"KH6\", \"KP4\", \"KP2\", \"KP1\", \"KP5\", \"KG4\", \"KH0\", \"KH1\", \"KH2\", \"KH3\", \"KH4\", \"KH5\", \"KH7K\", \"KH8\", \"KH8/s\", \"KH9\"],\n \"levels\": [\n {\"code\": \"N\", \"name\": \"Novice\", \"tier\": \"basic\", \"legacy\": true, \"maxPowerW\": 200},\n {\"code\": \"T\", \"name\": \"Technician\", \"tier\": \"basic\", \"maxPowerW\": 1500},\n {\"code\": \"G\", \"name\": \"General\", \"tier\": \"intermediate\", \"maxPowerW\": 1500},\n {\"code\": \"A\", \"name\": \"Advanced\", \"tier\": \"intermediate\", \"legacy\": true, \"maxPowerW\": 1500},\n {\"code\": \"E\", \"name\": \"Amateur Extra\", \"tier\": \"full\", \"maxPowerW\": 1500}\n ],\n \"callsigns\": [\n {\"pattern\": \"^[KNW][0-9][A-Z]{2}$\", \"level\": \"E\", \"entities\": [\"K\"]},\n {\"pattern\": \"^[AKNW][A-Z][0-9][A-Z]$\", \"level\": \"E\", \"entities\": [\"K\"]},\n {\"pattern\": \"^A[A-K][0-9][A-Z]{2}$\", \"level\": \"E\", \"entities\": [\"K\"]},\n {\"pattern\": \"^[KNW][A-Z][0-9][A-Z]{2}$\", \"level\": \"A\", \"atLeast\": true, \"entities\": [\"K\"]},\n {\"pattern\": \"^[KNW][0-9][A-Z]{3}$\", \"level\": \"T\", \"atLeast\": true, \"entities\": [\"K\"]},\n {\"pattern\": \"^[KNW]P[0-9][A-Z]$\", \"level\": \"E\", \"entities\": [\"KP4\", \"KP2\", \"KP1\", \"KP5\"]},\n {\"pattern\": \"^KP[0-9][A-Z]{2}$\", \"level\": \"A\", \"atLeast\": true, \"entities\": [\"KP4\", \"KP2\", \"KP1\", \"KP5\"]},\n {\"pattern\": \"^[NW]P[0-9][A-Z]{2}$\", \"level\": \"T\", \"atLeast\": true, \"entities\": [\"KP4\", \"KP2\", \"KP1\", \"KP5\"]}\n ]\n }\n ]\n}\n","import LicenseLevelsJSON from '../data/licenseLevels.json'\nimport BandPlans from '../data/bandPlans.json'\nimport type { BandPlansData } from '../types'\nimport { SUPER_MODES, superModeForMode } from './modes'\n\n/**\n * Where a level sits among its regulator's, judged by frequencies and modes alone: `full` has\n * everything the regulator's widest level has, `intermediate` has some phone below 28 MHz, `basic` has none.\n */\nexport type LicenseTier = 'basic' | 'intermediate' | 'full'\n\nexport interface LicenseLevel {\n code: string\n name: string\n nameLocal?: string\n tier: LicenseTier\n /** No longer issued, but still held. */\n legacy?: boolean\n /** Names of legacy classes the rules convert into this one. */\n aliases?: string[]\n maxPowerW?: number\n /** The only supermodes this level may use anywhere; absent means all of them. */\n superModes?: string[]\n}\n\n/**\n * A callsign series that gives the level away. `pattern` is matched against the bare callsign\n * (no portable prefix or suffix). With `atLeast`, the series only proves a minimum: the holder\n * kept the call through an upgrade, or the series is shared with higher levels.\n */\nexport interface LicenseCallsignRule {\n pattern: string\n level: string\n atLeast?: boolean\n entities?: string[]\n}\n\nexport interface LicenseJurisdiction {\n key: string\n name: string\n regulator: string\n rules?: string\n /** What the levels are called, in English (\"License Class\", \"Category\", …). */\n term: string\n termLocal?: string\n /** DXCC entity prefixes whose operators this regulator licenses. */\n entities: string[]\n /** Lowest to highest. */\n levels: LicenseLevel[]\n /** First match wins. */\n callsigns?: LicenseCallsignRule[]\n}\n\nexport interface LicenseLevelsData {\n jurisdictions: LicenseJurisdiction[]\n}\n\nexport const LICENSE_LEVELS: LicenseLevelsData = LicenseLevelsJSON as LicenseLevelsData\n\nconst bandPlansData = BandPlans as unknown as BandPlansData\n\n/** The jurisdiction licensing operators in a DXCC entity, or undefined when we have no per-level data for it. */\nexport function licenseJurisdictionForEntity(entityPrefix: string): LicenseJurisdiction | undefined {\n return LICENSE_LEVELS.jurisdictions.find(jurisdiction => jurisdiction.entities.includes(entityPrefix))\n}\n\n/**\n * How a level is named in the band plan and wherever it is stored: the jurisdiction travels with the\n * code (\"us:G\"), because codes repeat across regulators.\n */\nexport function licenseLevelKey(jurisdiction: LicenseJurisdiction, level: LicenseLevel): string {\n return `${jurisdiction.key}:${level.code}`\n}\n\n/** The jurisdiction and level a key (\"us:G\") names, or undefined when it names nothing we know. */\nexport function resolveLicenseLevel(key: string): { jurisdiction: LicenseJurisdiction, level: LicenseLevel } | undefined {\n const colon = key.indexOf(':')\n if (colon <= 0) return undefined\n const jurisdiction = LICENSE_LEVELS.jurisdictions.find(j => j.key === key.slice(0, colon))\n const level = jurisdiction?.levels.find(l => l.code === key.slice(colon + 1))\n return jurisdiction && level ? { jurisdiction, level } : undefined\n}\n\n/**\n * The level a callsign's series gives away under the regulator of `entityPrefix`, or undefined when\n * it gives none away. Portable prefixes and suffixes are ignored: the bare call is the longest\n * slash-separated part.\n */\nexport function licenseLevelForCallsign(call: string, entityPrefix: string): { jurisdiction: LicenseJurisdiction, level: LicenseLevel, atLeast: boolean } | undefined {\n const jurisdiction = licenseJurisdictionForEntity(entityPrefix)\n if (!jurisdiction) return undefined\n const bare = call.toUpperCase().split('/').reduce((best, part) => part.length > best.length ? part : best, '')\n const rule = jurisdiction.callsigns?.find(r => (!r.entities || r.entities.includes(entityPrefix)) && new RegExp(r.pattern).test(bare))\n const level = rule && jurisdiction.levels.find(l => l.code === rule.level)\n return rule && level ? { jurisdiction, level, atLeast: Boolean(rule.atLeast) } : undefined\n}\n\nexport interface LicensePrivilegesOptions {\n /** The level's key, as `licenseLevelKey` makes it (\"us:G\"). */\n level: string\n /** Where the station is. A level only applies under its own regulator. */\n entityPrefix: string\n ituRegion?: number\n /** The mode in use; without it only the frequency is judged. */\n mode?: string\n}\n\n/**\n * Whether transmitting on `khz` is outside a level's privileges: true or false, or undefined when\n * there is nothing to judge by — an unknown level, a station under another regulator, or a frequency\n * on no band.\n *\n * Every level may use a band unless the band or a segment says otherwise. A segment's edges are\n * outside it, so an operator on the line between two privileges is not flagged. Without an\n * `ituRegion`, region-scoped segments are skipped: the permissive answer, so a station whose\n * region is unknown is never flagged by mistake.\n *\n * Mode rules that bind every level of a country alike are left to the band plan's own segments;\n * the `superModes` here only narrow one level against its regulator's others.\n */\nexport function isOutsideLicensePrivileges(khz: number, options: LicensePrivilegesOptions): boolean | undefined {\n const { level: key, entityPrefix, ituRegion, mode } = options\n const resolved = resolveLicenseLevel(key)\n if (!resolved || !resolved.jurisdiction.entities.includes(entityPrefix)) return undefined\n const band = Object.values(bandPlansData.bands).find(b => b.mhz[0] <= khz && khz <= b.mhz[1])\n if (!band) return undefined\n\n if (band.exceptLevels?.includes(key)) return true\n let allowed: readonly string[] = resolved.level.superModes ?? SUPER_MODES\n for (const segment of band.segments) {\n if (!(segment.mhz[0] < khz && khz < segment.mhz[1])) continue\n if (segment.entities && !segment.entities.includes(entityPrefix)) continue\n if (segment.regions && !(ituRegion && segment.regions.includes(ituRegion))) continue\n if (segment.exceptLevels?.includes(key)) return true\n if (segment.levels?.includes(key)) allowed = allowed.filter(m => segment.superModes?.includes(m))\n }\n return mode ? !allowed.includes(superModeForMode(mode)) : false\n}\n"]}