New Decryptor: Add js decoder for Ximalaya X2M and X3M #23

Merged
um-dev merged 9 commits from Yuki1536/um-web1:master into master 2022-12-22 16:24:43 +00:00
Contributor

Add js(typescript) decoder for Ximalaya X2M and X3M.

Already run code on GitHub Codespace with no problems.

Add js(typescript) decoder for Ximalaya `X2M` and `X3M`. Already run code on GitHub Codespace with no problems.
Yuki1536 added 2 commits 2022-12-11 09:03:50 +00:00
continuous-integration/drone/pr Build is failing Details
1fdab13ff8
Add x2m x3m decryptor
Yuki1536 added 1 commit 2022-12-11 09:23:45 +00:00
continuous-integration/drone/pr Build is passing Details
105023def7
Remove iconv-lite calling
Owner

scramble table 可以优化下。go 实现这么搞是因为把表外置到文件了。实际上是 uint16_t 类型。可以提前写好。

或者你如果想更进一步,抓出这两个参数动态生成这个表也可以 XimalayaScrambleTableGeneration.cpp#L8

scramble table 可以优化下。go 实现这么搞是因为把表外置到文件了。实际上是 `uint16_t` 类型。可以提前写好。 或者你如果想更进一步,抓出这两个参数动态生成这个表也可以 [XimalayaScrambleTableGeneration.cpp#L8] [XimalayaScrambleTableGeneration.cpp#L8]: https://github.com/parakeet-rs/libparakeet/blob/1944f40/src/decryption/ximalaya/XimalayaScrambleTableGeneration.cpp#L8
Author
Contributor

web版本把表整成单独文件然后xhr,我觉得不太好,放在源码里方便各种环境加载都不会受影响。扔到网页上跑了试了试,加载貌似没有慢多少。app.js多了12kb左右。解密也能一下子解开。

scramble table 可以优化下。go 实现这么搞是因为把表外置到文件了。实际上是 uint16_t 类型。可以提前写好。

可以详细一点么,js用Uint16Array装应该没问题了,uint16_t的名字是c系语言定义的吧。

还想问一下有什么好的方法压缩这两个码表么?

动态产生我试了x2m的还没调通,可能需要多一些时间..

web版本把表整成单独文件然后xhr,我觉得不太好,放在源码里方便各种环境加载都不会受影响。扔到网页上跑了试了试,加载貌似没有慢多少。app.js多了12kb左右。解密也能一下子解开。 > scramble table 可以优化下。go 实现这么搞是因为把表外置到文件了。实际上是 `uint16_t` 类型。可以提前写好。 可以详细一点么,js用Uint16Array装应该没问题了,uint16_t的名字是c系语言定义的吧。 还想问一下有什么好的方法压缩这两个码表么? > 动态产生我试了x2m的还没调通,可能需要多一些时间..
um-dev added a new dependency 2022-12-12 08:26:26 +00:00
um-dev requested changes 2022-12-12 08:28:33 +00:00
@ -0,0 +66,4 @@
if (x3mScrambleTableBytes.length != 2 * x3mHeaderSize)
throw "invalid x3m scramble table";
for (let i = 0; i < x3mHeaderSize; i++)
x3mScrambleTable[i] = x3mScrambleTableBytes[i * 2] | (x3mScrambleTableBytes[i * 2 + 1] << 8);
Owner

意思是:这源代码直接存储这里生成好的 x3mScrambleTable,而不需要运行时再生成

意思是:这源代码直接存储这里生成好的 x3mScrambleTable,而不需要运行时再生成
Author
Contributor

明白意思了,感谢。

明白意思了,感谢。
Author
Contributor

已改,直接把数组放进去了。

已改,直接把数组放进去了。
Yuki1536 marked this conversation as resolved
Yuki1536 added 1 commit 2022-12-12 10:27:00 +00:00
continuous-integration/drone/pr Build is passing Details
2ae08c53fd
Store table u16array instead of bytes
Author
Contributor

有个小问题,请问为什么我添加的GPG Key在我fork的repo里面显示签名验证通过,而打开pr之后,以及合并到主项目中后,就变成签名验证失败

PR中的:
image

Fork版本的repo中的:
image

谢谢。

有个小问题,请问为什么我添加的GPG Key在我fork的repo里面显示签名验证通过,而打开pr之后,以及合并到主项目中后,就变成签名验证失败 PR中的: ![image](/attachments/9a568efc-e154-4dfc-b4e5-900bf857ebb1) Fork版本的repo中的: ![image](/attachments/349118f1-7a1c-4f1d-bf5e-666941f35322) 谢谢。
2.6 KiB
5.6 KiB
Yuki1536 requested review from um-dev 2022-12-12 10:31:14 +00:00
Yuki1536 added 1 commit 2022-12-12 10:59:14 +00:00
continuous-integration/drone/pr Build is passing Details
48a497af19
Update README.md / Now it's 2022!
jixunmoe reviewed 2022-12-12 11:10:23 +00:00
README.md Outdated
@ -26,6 +26,7 @@
- [x] 虾米音乐格式 (.xm)
- [x] 酷我音乐格式 (.kwm)
- [x] 酷狗音乐格式 (.kgm/.vpr)
- [x] 喜马拉雅文件格式 (.x2m/.x3m)
Owner

可以标注下是安卓。

PC 版后缀是 xm

可以标注下是安卓。 PC 版后缀是 xm
Author
Contributor

Yuki1536 marked this conversation as resolved
jixunmoe closed this pull request 2022-12-12 11:11:11 +00:00
jixunmoe reopened this pull request 2022-12-12 11:11:24 +00:00
Owner

刚才点错了…


修改建议

  • 用 prettier 格式化一下代码吧,table 现在变成一整行了…
  • 如果可以,还是用十六进制储存数字吧…
const table = [
  0x123, ... // 每一行放一些
  0x223, ...
]
刚才点错了… ----- 修改建议 * 用 prettier 格式化一下代码吧,table 现在变成一整行了… * 如果可以,还是用十六进制储存数字吧… ```js const table = [ 0x123, ... // 每一行放一些 0x223, ... ] ```
Author
Contributor
  • 用 prettier 格式化一下代码吧,table 现在变成一整行了…

VS在写代码时感觉就是自动控制好版式了,甚至缩进或者排版不好看的代码,剪切粘贴一下也都正了。

我把两个table数组适当的换一换行,让它好看一些。

  • 如果可以,还是用十六进制储存数字吧…

build之后的app.js里面也会变成10进制吧,也许16进制看着更好看?

> * 用 prettier 格式化一下代码吧,table 现在变成一整行了… VS在写代码时感觉就是自动控制好版式了,甚至缩进或者排版不好看的代码,剪切粘贴一下也都正了。 我把两个table数组适当的换一换行,让它好看一些。 > * 如果可以,还是用十六进制储存数字吧… build之后的app.js里面也会变成10进制吧,也许16进制看着更好看?
Yuki1536 added 1 commit 2022-12-12 11:35:58 +00:00
continuous-integration/drone/pr Build is passing Details
b632c8fbc9
Update README.md
Owner
  • 如果可以,还是用十六进制储存数字吧…

build之后的app.js里面也会变成10进制吧,也许16进制看着更好看?

主要是为了好看。

因为是 0~1024 的范围,最大是三位的十六进制表示。可以用 0x001 这样对齐。

build 的目标是最小化的文件,源代码的目标是为了更方便阅读理解的。

> > * 如果可以,还是用十六进制储存数字吧… > > build之后的app.js里面也会变成10进制吧,也许16进制看着更好看? 主要是为了好看。 因为是 0~1024 的范围,最大是三位的十六进制表示。可以用 0x001 这样对齐。 build 的目标是最小化的文件,源代码的目标是为了更方便阅读理解的。
jixunmoe requested changes 2022-12-14 18:05:18 +00:00
@ -0,0 +6,4 @@
handler: Function;
}
const HandlerMap: { [key: string]: Handler } = {
Owner

类型可以考虑更改为 Record<string, Handler>

不过看这个 handler 只有一个成员,可以考虑更改一下类型:

const HandlerMap: Record<string, (data: Uint8Array) => void> = { ... };

使用的时候可以直接:

HandlerMap.x2m( ... );

或者使用真正的 Map 类型:

const HandlerMap: Map<string, (data: Uint8Array) => void> = new Map([
  ["x2m", ProcessX2M],
  ["x3m", ProcessX3M],
]);

const handler = HandlerMap.get( key );
if (!handler) throw new Error( ... );
类型可以考虑更改为 `Record<string, Handler>` 不过看这个 handler 只有一个成员,可以考虑更改一下类型: ```ts const HandlerMap: Record<string, (data: Uint8Array) => void> = { ... }; ``` 使用的时候可以直接: ```ts HandlerMap.x2m( ... ); ``` 或者使用真正的 Map 类型: ```ts const HandlerMap: Map<string, (data: Uint8Array) => void> = new Map([ ["x2m", ProcessX2M], ["x3m", ProcessX3M], ]); const handler = HandlerMap.get( key ); if (!handler) throw new Error( ... ); ```
Author
Contributor

感谢。

抱歉,前两天发烧了,今天舒服点了在改了。

感谢。 抱歉,前两天发烧了,今天舒服点了在改了。
Author
Contributor

感谢你们的帮忙

感谢你们的帮忙
Author
Contributor

const HandlerMap: Map<string, (data: Uint8Array) => void>

不太明白这个数据类型的定义后的用法,为啥string后面是(data: Uint8Array),还通过=>指向一个void

目前用Map写的是

const HandlerMap: Map<string, Function> = new Map( ... );

谢谢

> const HandlerMap: Map<string, (data: Uint8Array) => void> 不太明白这个数据类型的定义后的用法,为啥string后面是(data: Uint8Array),还通过=>指向一个void 目前用Map写的是 ```ts const HandlerMap: Map<string, Function> = new Map( ... ); ``` 谢谢
Owner

(data: Uint8Array) => void 是一起的,这是一个函数签名,表示它读入一个 Uint8Array 的参数,并没有返回值(返回值为 undefined)

`(data: Uint8Array) => void` 是一起的,这是一个函数签名,表示它读入一个 Uint8Array 的参数,并没有返回值(返回值为 undefined)
Author
Contributor

感谢,那么我想调用相应key中的value的话,还是用

const handler = HandlerMap.get(raw_ext);

...

let musicDecoded: Uint8Array = handler(buffer);

这种写法么?

感谢,那么我想调用相应key中的value的话,还是用 ```ts const handler = HandlerMap.get(raw_ext); ... let musicDecoded: Uint8Array = handler(buffer); ``` 这种写法么?
Author
Contributor

试着这么写被VS画了红线

试着这么写被VS画了红线
Owner

把 vscode 报告的 TypeScript 错误信息发出来看看

把 vscode 报告的 TypeScript 错误信息发出来看看
Owner

抱歉,仔细看了一下逻辑。
函数是要返回一个新的数据,因此返回类型是错的。

(data: Uint8Array) => void

应该改为

(data: Uint8Array) => Uint8Array

抱歉,仔细看了一下逻辑。 函数是要返回一个新的数据,因此返回类型是错的。 `(data: Uint8Array) => void` 应该改为 `(data: Uint8Array) => Uint8Array`
Author
Contributor

明白了,那么最后是写Function好还是改成(data: Uint8Array) => Uint8Array比较好?

两种写法都能跑起来。

明白了,那么最后是写```Function```好还是改成```(data: Uint8Array) => Uint8Array```比较好? 两种写法都能跑起来。
Owner

我的建议是后者,因为提供了更详细的信息让 type script 来进行类型检查。

如果是前者然后改掉了函数参数类型,是不会报错的。

我的建议是后者,因为提供了更详细的信息让 type script 来进行类型检查。 如果是前者然后改掉了函数参数类型,是不会报错的。
Author
Contributor

OK

OK
Yuki1536 marked this conversation as resolved
um-dev requested changes 2022-12-14 18:13:04 +00:00
@ -0,0 +40,4 @@
function ProcessX2M(data: Uint8Array) {
const x2mHeaderSize = 1024;
const x2mKey = [120, 109, 108, 121];
Owner
const x2mKey = [0x78, 0x6d, 0x6c, 0x79];
```typescript const x2mKey = [0x78, 0x6d, 0x6c, 0x79]; ```
Yuki1536 marked this conversation as resolved
@ -0,0 +51,4 @@
function ProcessX3M(data: Uint8Array) {
const x3mHeaderSize = 1024;
const x3mKey = [51, 57, 56, 57, 100, 49, 49, 49, 97, 97, 100, 53, 54, 49, 51, 57, 52, 48, 102, 52, 102, 99, 52, 52, 98, 54, 51, 57, 98, 50, 57, 50];
Owner
//prettier-ignore: uint8, size 32(8x4)
const x3mKey = [
  0x33, 0x39, 0x38, 0x39, 0x64, 0x31, 0x31, 0x31,
  0x61, 0x61, 0x64, 0x35, 0x36, 0x31, 0x33, 0x39,
  0x34, 0x30, 0x66, 0x34, 0x66, 0x63, 0x34, 0x34,
  0x62, 0x36, 0x33, 0x39, 0x62, 0x32, 0x39, 0x32,
];
```typescript //prettier-ignore: uint8, size 32(8x4) const x3mKey = [ 0x33, 0x39, 0x38, 0x39, 0x64, 0x31, 0x31, 0x31, 0x61, 0x61, 0x64, 0x35, 0x36, 0x31, 0x33, 0x39, 0x34, 0x30, 0x66, 0x34, 0x66, 0x63, 0x34, 0x34, 0x62, 0x36, 0x33, 0x39, 0x62, 0x32, 0x39, 0x32, ]; ```
Yuki1536 marked this conversation as resolved
@ -0,0 +97,4 @@
977, 154, 495, 840, 292, 633, 978, 155, 496, 841, 293, 634, 979, 156, 497, 842, 294, 635, 980, 157, 498, 843, 295, 636, 981, 158, 499, 844,
296, 637, 982, 159, 500, 845, 297, 638, 983, 160, 501, 846, 298, 639, 984, 161, 502, 847, 299, 640, 985, 162, 503, 848, 300, 641, 986, 163,
504, 849, 301, 642, 987, 164, 505, 850, 302, 643, 988, 165, 506, 851, 303, 644, 989, 166, 507, 852, 304, 645, 990, 167, 508, 853, 305, 646,
991, 168, 509, 854, 306
Owner

建议修改为 hex 格式,每行保持相同长度

建议修改为 hex 格式,每行保持相同长度
Owner
//prettier-ignore: uint16, size 1024 (64x16)
const x2mScrambleTable = [
  0x2a9, 0x2ab, 0x154, 0x2aa, 0x2a8, 0x2ac, 0x153, 0x2a7, 0x2ad, 0x152, 0x2a6, 0x3ff, 0x000, 0x155, 0x2ae, 0x151, 
  0x2a5, 0x3fe, 0x001, 0x156, 0x2af, 0x150, 0x2a4, 0x3fd, 0x002, 0x157, 0x2b0, 0x14f, 0x2a3, 0x3fc, 0x003, 0x158, 
  0x2b1, 0x14e, 0x2a2, 0x3fb, 0x004, 0x159, 0x2b2, 0x14d, 0x2a1, 0x3fa, 0x005, 0x15a, 0x2b3, 0x14c, 0x2a0, 0x3f9, 
  0x006, 0x15b, 0x2b4, 0x14b, 0x29f, 0x3f8, 0x007, 0x15c, 0x2b5, 0x14a, 0x29e, 0x3f7, 0x008, 0x15d, 0x2b6, 0x149, 
  0x29d, 0x3f6, 0x009, 0x15e, 0x2b7, 0x148, 0x29c, 0x3f5, 0x00a, 0x15f, 0x2b8, 0x147, 0x29b, 0x3f4, 0x00b, 0x160, 
  0x2b9, 0x146, 0x29a, 0x3f3, 0x00c, 0x161, 0x2ba, 0x145, 0x299, 0x3f2, 0x00d, 0x162, 0x2bb, 0x144, 0x298, 0x3f1, 
  0x00e, 0x163, 0x2bc, 0x143, 0x297, 0x3f0, 0x00f, 0x164, 0x2bd, 0x142, 0x296, 0x3ef, 0x010, 0x165, 0x2be, 0x141, 
  0x295, 0x3ee, 0x011, 0x166, 0x2bf, 0x140, 0x294, 0x3ed, 0x012, 0x167, 0x2c0, 0x13f, 0x293, 0x3ec, 0x013, 0x168, 
  0x2c1, 0x13e, 0x292, 0x3eb, 0x014, 0x169, 0x2c2, 0x13d, 0x291, 0x3ea, 0x015, 0x16a, 0x2c3, 0x13c, 0x290, 0x3e9, 
  0x016, 0x16b, 0x2c4, 0x13b, 0x28f, 0x3e8, 0x017, 0x16c, 0x2c5, 0x13a, 0x28e, 0x3e7, 0x018, 0x16d, 0x2c6, 0x139, 
  0x28d, 0x3e6, 0x019, 0x16e, 0x2c7, 0x138, 0x28c, 0x3e5, 0x01a, 0x16f, 0x2c8, 0x137, 0x28b, 0x3e4, 0x01b, 0x170, 
  0x2c9, 0x136, 0x28a, 0x3e3, 0x01c, 0x171, 0x2ca, 0x135, 0x289, 0x3e2, 0x01d, 0x172, 0x2cb, 0x134, 0x288, 0x3e1, 
  0x01e, 0x173, 0x2cc, 0x133, 0x287, 0x3e0, 0x01f, 0x174, 0x2cd, 0x0a9, 0x1fe, 0x357, 0x020, 0x175, 0x2ce, 0x0aa, 
  0x1ff, 0x358, 0x021, 0x176, 0x2cf, 0x0ab, 0x200, 0x359, 0x022, 0x177, 0x2d0, 0x0ac, 0x201, 0x35a, 0x023, 0x178, 
  0x2d1, 0x0ad, 0x202, 0x35b, 0x024, 0x179, 0x2d2, 0x0ae, 0x203, 0x35c, 0x025, 0x17a, 0x2d3, 0x0af, 0x204, 0x35d, 
  0x026, 0x17b, 0x2d4, 0x0b0, 0x205, 0x35e, 0x027, 0x17c, 0x2d5, 0x0b1, 0x206, 0x35f, 0x028, 0x17d, 0x2d6, 0x0b2, 
  0x207, 0x360, 0x029, 0x17e, 0x2d7, 0x0b3, 0x208, 0x361, 0x02a, 0x17f, 0x2d8, 0x0b4, 0x209, 0x362, 0x02b, 0x180, 
  0x2d9, 0x0b5, 0x20a, 0x363, 0x02c, 0x181, 0x2da, 0x0b6, 0x20b, 0x364, 0x02d, 0x182, 0x2db, 0x0b7, 0x20c, 0x365, 
  0x02e, 0x183, 0x2dc, 0x0b8, 0x20d, 0x366, 0x02f, 0x184, 0x2dd, 0x0b9, 0x20e, 0x367, 0x030, 0x185, 0x2de, 0x0ba, 
  0x20f, 0x368, 0x031, 0x186, 0x2df, 0x0bb, 0x210, 0x369, 0x032, 0x187, 0x2e0, 0x0bc, 0x211, 0x36a, 0x033, 0x188, 
  0x2e1, 0x0bd, 0x212, 0x36b, 0x034, 0x189, 0x2e2, 0x0be, 0x213, 0x36c, 0x035, 0x18a, 0x2e3, 0x0bf, 0x214, 0x36d, 
  0x036, 0x18b, 0x2e4, 0x0c0, 0x215, 0x36e, 0x037, 0x18c, 0x2e5, 0x0c1, 0x216, 0x36f, 0x038, 0x18d, 0x2e6, 0x0c2, 
  0x217, 0x370, 0x039, 0x18e, 0x2e7, 0x0c3, 0x218, 0x371, 0x03a, 0x18f, 0x2e8, 0x0c4, 0x219, 0x372, 0x03b, 0x190, 
  0x2e9, 0x0c5, 0x21a, 0x373, 0x03c, 0x191, 0x2ea, 0x0c6, 0x21b, 0x374, 0x03d, 0x192, 0x2eb, 0x0c7, 0x21c, 0x375, 
  0x03e, 0x193, 0x2ec, 0x0c8, 0x21d, 0x376, 0x03f, 0x194, 0x2ed, 0x0c9, 0x21e, 0x377, 0x040, 0x195, 0x2ee, 0x0ca, 
  0x21f, 0x378, 0x041, 0x196, 0x2ef, 0x0cb, 0x220, 0x379, 0x042, 0x197, 0x2f0, 0x0cc, 0x221, 0x37a, 0x043, 0x198, 
  0x2f1, 0x0cd, 0x222, 0x37b, 0x044, 0x199, 0x2f2, 0x0ce, 0x223, 0x37c, 0x045, 0x19a, 0x2f3, 0x0cf, 0x224, 0x37d, 
  0x046, 0x19b, 0x2f4, 0x0d0, 0x225, 0x37e, 0x047, 0x19c, 0x2f5, 0x0d1, 0x226, 0x37f, 0x048, 0x19d, 0x2f6, 0x0d2, 
  0x227, 0x380, 0x049, 0x19e, 0x2f7, 0x0d3, 0x228, 0x381, 0x04a, 0x19f, 0x2f8, 0x0d4, 0x229, 0x382, 0x04b, 0x1a0, 
  0x2f9, 0x0d5, 0x22a, 0x383, 0x04c, 0x1a1, 0x2fa, 0x0d6, 0x22b, 0x384, 0x04d, 0x1a2, 0x2fb, 0x0d7, 0x22c, 0x385, 
  0x04e, 0x1a3, 0x2fc, 0x0d8, 0x22d, 0x386, 0x04f, 0x1a4, 0x2fd, 0x0d9, 0x22e, 0x387, 0x050, 0x1a5, 0x2fe, 0x0da, 
  0x22f, 0x388, 0x051, 0x1a6, 0x2ff, 0x0db, 0x230, 0x389, 0x052, 0x1a7, 0x300, 0x0dc, 0x231, 0x38a, 0x053, 0x1a8, 
  0x301, 0x0dd, 0x232, 0x38b, 0x054, 0x1a9, 0x302, 0x0de, 0x233, 0x38c, 0x055, 0x1aa, 0x303, 0x0df, 0x234, 0x38d, 
  0x056, 0x1ab, 0x304, 0x0e0, 0x235, 0x38e, 0x057, 0x1ac, 0x305, 0x0e1, 0x236, 0x38f, 0x058, 0x1ad, 0x306, 0x0e2, 
  0x237, 0x390, 0x059, 0x1ae, 0x307, 0x0e3, 0x238, 0x391, 0x05a, 0x1af, 0x308, 0x0e4, 0x239, 0x392, 0x05b, 0x1b0, 
  0x309, 0x0e5, 0x23a, 0x393, 0x05c, 0x1b1, 0x30a, 0x0e6, 0x23b, 0x394, 0x05d, 0x1b2, 0x30b, 0x0e7, 0x23c, 0x395, 
  0x05e, 0x1b3, 0x30c, 0x0e8, 0x23d, 0x396, 0x05f, 0x1b4, 0x30d, 0x0e9, 0x23e, 0x397, 0x060, 0x1b5, 0x30e, 0x0ea, 
  0x23f, 0x398, 0x061, 0x1b6, 0x30f, 0x0eb, 0x240, 0x399, 0x062, 0x1b7, 0x310, 0x0ec, 0x241, 0x39a, 0x063, 0x1b8, 
  0x311, 0x0ed, 0x242, 0x39b, 0x064, 0x1b9, 0x312, 0x0ee, 0x243, 0x39c, 0x065, 0x1ba, 0x313, 0x0ef, 0x244, 0x39d, 
  0x066, 0x1bb, 0x314, 0x0f0, 0x245, 0x39e, 0x067, 0x1bc, 0x315, 0x0f1, 0x246, 0x39f, 0x068, 0x1bd, 0x316, 0x0f2, 
  0x247, 0x3a0, 0x069, 0x1be, 0x317, 0x0f3, 0x248, 0x3a1, 0x06a, 0x1bf, 0x318, 0x0f4, 0x249, 0x3a2, 0x06b, 0x1c0, 
  0x319, 0x0f5, 0x24a, 0x3a3, 0x06c, 0x1c1, 0x31a, 0x0f6, 0x24b, 0x3a4, 0x06d, 0x1c2, 0x31b, 0x0f7, 0x24c, 0x3a5, 
  0x06e, 0x1c3, 0x31c, 0x0f8, 0x24d, 0x3a6, 0x06f, 0x1c4, 0x31d, 0x0f9, 0x24e, 0x3a7, 0x070, 0x1c5, 0x31e, 0x0fa, 
  0x24f, 0x3a8, 0x071, 0x1c6, 0x31f, 0x0fb, 0x250, 0x3a9, 0x072, 0x1c7, 0x320, 0x0fc, 0x251, 0x3aa, 0x073, 0x1c8, 
  0x321, 0x0fd, 0x252, 0x3ab, 0x074, 0x1c9, 0x322, 0x0fe, 0x253, 0x3ac, 0x075, 0x1ca, 0x323, 0x0ff, 0x254, 0x3ad, 
  0x076, 0x1cb, 0x324, 0x100, 0x255, 0x3ae, 0x077, 0x1cc, 0x325, 0x101, 0x256, 0x3af, 0x078, 0x1cd, 0x326, 0x102, 
  0x257, 0x3b0, 0x079, 0x1ce, 0x327, 0x103, 0x258, 0x3b1, 0x07a, 0x1cf, 0x328, 0x104, 0x259, 0x3b2, 0x07b, 0x1d0, 
  0x329, 0x105, 0x25a, 0x3b3, 0x07c, 0x1d1, 0x32a, 0x106, 0x25b, 0x3b4, 0x07d, 0x1d2, 0x32b, 0x107, 0x25c, 0x3b5, 
  0x07e, 0x1d3, 0x32c, 0x108, 0x25d, 0x3b6, 0x07f, 0x1d4, 0x32d, 0x109, 0x25e, 0x3b7, 0x080, 0x1d5, 0x32e, 0x10a, 
  0x25f, 0x3b8, 0x081, 0x1d6, 0x32f, 0x10b, 0x260, 0x3b9, 0x082, 0x1d7, 0x330, 0x10c, 0x261, 0x3ba, 0x083, 0x1d8, 
  0x331, 0x10d, 0x262, 0x3bb, 0x084, 0x1d9, 0x332, 0x10e, 0x263, 0x3bc, 0x085, 0x1da, 0x333, 0x10f, 0x264, 0x3bd, 
  0x086, 0x1db, 0x334, 0x110, 0x265, 0x3be, 0x087, 0x1dc, 0x335, 0x111, 0x266, 0x3bf, 0x088, 0x1dd, 0x336, 0x112, 
  0x267, 0x3c0, 0x089, 0x1de, 0x337, 0x113, 0x268, 0x3c1, 0x08a, 0x1df, 0x338, 0x114, 0x269, 0x3c2, 0x08b, 0x1e0, 
  0x339, 0x115, 0x26a, 0x3c3, 0x08c, 0x1e1, 0x33a, 0x116, 0x26b, 0x3c4, 0x08d, 0x1e2, 0x33b, 0x117, 0x26c, 0x3c5, 
  0x08e, 0x1e3, 0x33c, 0x118, 0x26d, 0x3c6, 0x08f, 0x1e4, 0x33d, 0x119, 0x26e, 0x3c7, 0x090, 0x1e5, 0x33e, 0x11a, 
  0x26f, 0x3c8, 0x091, 0x1e6, 0x33f, 0x11b, 0x270, 0x3c9, 0x092, 0x1e7, 0x340, 0x11c, 0x271, 0x3ca, 0x093, 0x1e8, 
  0x341, 0x11d, 0x272, 0x3cb, 0x094, 0x1e9, 0x342, 0x11e, 0x273, 0x3cc, 0x095, 0x1ea, 0x343, 0x11f, 0x274, 0x3cd, 
  0x096, 0x1eb, 0x344, 0x120, 0x275, 0x3ce, 0x097, 0x1ec, 0x345, 0x121, 0x276, 0x3cf, 0x098, 0x1ed, 0x346, 0x122, 
  0x277, 0x3d0, 0x099, 0x1ee, 0x347, 0x123, 0x278, 0x3d1, 0x09a, 0x1ef, 0x348, 0x124, 0x279, 0x3d2, 0x09b, 0x1f0, 
  0x349, 0x125, 0x27a, 0x3d3, 0x09c, 0x1f1, 0x34a, 0x126, 0x27b, 0x3d4, 0x09d, 0x1f2, 0x34b, 0x127, 0x27c, 0x3d5, 
  0x09e, 0x1f3, 0x34c, 0x128, 0x27d, 0x3d6, 0x09f, 0x1f4, 0x34d, 0x129, 0x27e, 0x3d7, 0x0a0, 0x1f5, 0x34e, 0x12a, 
  0x27f, 0x3d8, 0x0a1, 0x1f6, 0x34f, 0x12b, 0x280, 0x3d9, 0x0a2, 0x1f7, 0x350, 0x12c, 0x281, 0x3da, 0x0a3, 0x1f8, 
  0x351, 0x12d, 0x282, 0x3db, 0x0a4, 0x1f9, 0x352, 0x12e, 0x283, 0x3dc, 0x0a5, 0x1fa, 0x353, 0x12f, 0x284, 0x3dd, 
  0x0a6, 0x1fb, 0x354, 0x130, 0x285, 0x3de, 0x0a7, 0x1fc, 0x355, 0x131, 0x286, 0x3df, 0x0a8, 0x1fd, 0x356, 0x132,
];
```typescript //prettier-ignore: uint16, size 1024 (64x16) const x2mScrambleTable = [ 0x2a9, 0x2ab, 0x154, 0x2aa, 0x2a8, 0x2ac, 0x153, 0x2a7, 0x2ad, 0x152, 0x2a6, 0x3ff, 0x000, 0x155, 0x2ae, 0x151, 0x2a5, 0x3fe, 0x001, 0x156, 0x2af, 0x150, 0x2a4, 0x3fd, 0x002, 0x157, 0x2b0, 0x14f, 0x2a3, 0x3fc, 0x003, 0x158, 0x2b1, 0x14e, 0x2a2, 0x3fb, 0x004, 0x159, 0x2b2, 0x14d, 0x2a1, 0x3fa, 0x005, 0x15a, 0x2b3, 0x14c, 0x2a0, 0x3f9, 0x006, 0x15b, 0x2b4, 0x14b, 0x29f, 0x3f8, 0x007, 0x15c, 0x2b5, 0x14a, 0x29e, 0x3f7, 0x008, 0x15d, 0x2b6, 0x149, 0x29d, 0x3f6, 0x009, 0x15e, 0x2b7, 0x148, 0x29c, 0x3f5, 0x00a, 0x15f, 0x2b8, 0x147, 0x29b, 0x3f4, 0x00b, 0x160, 0x2b9, 0x146, 0x29a, 0x3f3, 0x00c, 0x161, 0x2ba, 0x145, 0x299, 0x3f2, 0x00d, 0x162, 0x2bb, 0x144, 0x298, 0x3f1, 0x00e, 0x163, 0x2bc, 0x143, 0x297, 0x3f0, 0x00f, 0x164, 0x2bd, 0x142, 0x296, 0x3ef, 0x010, 0x165, 0x2be, 0x141, 0x295, 0x3ee, 0x011, 0x166, 0x2bf, 0x140, 0x294, 0x3ed, 0x012, 0x167, 0x2c0, 0x13f, 0x293, 0x3ec, 0x013, 0x168, 0x2c1, 0x13e, 0x292, 0x3eb, 0x014, 0x169, 0x2c2, 0x13d, 0x291, 0x3ea, 0x015, 0x16a, 0x2c3, 0x13c, 0x290, 0x3e9, 0x016, 0x16b, 0x2c4, 0x13b, 0x28f, 0x3e8, 0x017, 0x16c, 0x2c5, 0x13a, 0x28e, 0x3e7, 0x018, 0x16d, 0x2c6, 0x139, 0x28d, 0x3e6, 0x019, 0x16e, 0x2c7, 0x138, 0x28c, 0x3e5, 0x01a, 0x16f, 0x2c8, 0x137, 0x28b, 0x3e4, 0x01b, 0x170, 0x2c9, 0x136, 0x28a, 0x3e3, 0x01c, 0x171, 0x2ca, 0x135, 0x289, 0x3e2, 0x01d, 0x172, 0x2cb, 0x134, 0x288, 0x3e1, 0x01e, 0x173, 0x2cc, 0x133, 0x287, 0x3e0, 0x01f, 0x174, 0x2cd, 0x0a9, 0x1fe, 0x357, 0x020, 0x175, 0x2ce, 0x0aa, 0x1ff, 0x358, 0x021, 0x176, 0x2cf, 0x0ab, 0x200, 0x359, 0x022, 0x177, 0x2d0, 0x0ac, 0x201, 0x35a, 0x023, 0x178, 0x2d1, 0x0ad, 0x202, 0x35b, 0x024, 0x179, 0x2d2, 0x0ae, 0x203, 0x35c, 0x025, 0x17a, 0x2d3, 0x0af, 0x204, 0x35d, 0x026, 0x17b, 0x2d4, 0x0b0, 0x205, 0x35e, 0x027, 0x17c, 0x2d5, 0x0b1, 0x206, 0x35f, 0x028, 0x17d, 0x2d6, 0x0b2, 0x207, 0x360, 0x029, 0x17e, 0x2d7, 0x0b3, 0x208, 0x361, 0x02a, 0x17f, 0x2d8, 0x0b4, 0x209, 0x362, 0x02b, 0x180, 0x2d9, 0x0b5, 0x20a, 0x363, 0x02c, 0x181, 0x2da, 0x0b6, 0x20b, 0x364, 0x02d, 0x182, 0x2db, 0x0b7, 0x20c, 0x365, 0x02e, 0x183, 0x2dc, 0x0b8, 0x20d, 0x366, 0x02f, 0x184, 0x2dd, 0x0b9, 0x20e, 0x367, 0x030, 0x185, 0x2de, 0x0ba, 0x20f, 0x368, 0x031, 0x186, 0x2df, 0x0bb, 0x210, 0x369, 0x032, 0x187, 0x2e0, 0x0bc, 0x211, 0x36a, 0x033, 0x188, 0x2e1, 0x0bd, 0x212, 0x36b, 0x034, 0x189, 0x2e2, 0x0be, 0x213, 0x36c, 0x035, 0x18a, 0x2e3, 0x0bf, 0x214, 0x36d, 0x036, 0x18b, 0x2e4, 0x0c0, 0x215, 0x36e, 0x037, 0x18c, 0x2e5, 0x0c1, 0x216, 0x36f, 0x038, 0x18d, 0x2e6, 0x0c2, 0x217, 0x370, 0x039, 0x18e, 0x2e7, 0x0c3, 0x218, 0x371, 0x03a, 0x18f, 0x2e8, 0x0c4, 0x219, 0x372, 0x03b, 0x190, 0x2e9, 0x0c5, 0x21a, 0x373, 0x03c, 0x191, 0x2ea, 0x0c6, 0x21b, 0x374, 0x03d, 0x192, 0x2eb, 0x0c7, 0x21c, 0x375, 0x03e, 0x193, 0x2ec, 0x0c8, 0x21d, 0x376, 0x03f, 0x194, 0x2ed, 0x0c9, 0x21e, 0x377, 0x040, 0x195, 0x2ee, 0x0ca, 0x21f, 0x378, 0x041, 0x196, 0x2ef, 0x0cb, 0x220, 0x379, 0x042, 0x197, 0x2f0, 0x0cc, 0x221, 0x37a, 0x043, 0x198, 0x2f1, 0x0cd, 0x222, 0x37b, 0x044, 0x199, 0x2f2, 0x0ce, 0x223, 0x37c, 0x045, 0x19a, 0x2f3, 0x0cf, 0x224, 0x37d, 0x046, 0x19b, 0x2f4, 0x0d0, 0x225, 0x37e, 0x047, 0x19c, 0x2f5, 0x0d1, 0x226, 0x37f, 0x048, 0x19d, 0x2f6, 0x0d2, 0x227, 0x380, 0x049, 0x19e, 0x2f7, 0x0d3, 0x228, 0x381, 0x04a, 0x19f, 0x2f8, 0x0d4, 0x229, 0x382, 0x04b, 0x1a0, 0x2f9, 0x0d5, 0x22a, 0x383, 0x04c, 0x1a1, 0x2fa, 0x0d6, 0x22b, 0x384, 0x04d, 0x1a2, 0x2fb, 0x0d7, 0x22c, 0x385, 0x04e, 0x1a3, 0x2fc, 0x0d8, 0x22d, 0x386, 0x04f, 0x1a4, 0x2fd, 0x0d9, 0x22e, 0x387, 0x050, 0x1a5, 0x2fe, 0x0da, 0x22f, 0x388, 0x051, 0x1a6, 0x2ff, 0x0db, 0x230, 0x389, 0x052, 0x1a7, 0x300, 0x0dc, 0x231, 0x38a, 0x053, 0x1a8, 0x301, 0x0dd, 0x232, 0x38b, 0x054, 0x1a9, 0x302, 0x0de, 0x233, 0x38c, 0x055, 0x1aa, 0x303, 0x0df, 0x234, 0x38d, 0x056, 0x1ab, 0x304, 0x0e0, 0x235, 0x38e, 0x057, 0x1ac, 0x305, 0x0e1, 0x236, 0x38f, 0x058, 0x1ad, 0x306, 0x0e2, 0x237, 0x390, 0x059, 0x1ae, 0x307, 0x0e3, 0x238, 0x391, 0x05a, 0x1af, 0x308, 0x0e4, 0x239, 0x392, 0x05b, 0x1b0, 0x309, 0x0e5, 0x23a, 0x393, 0x05c, 0x1b1, 0x30a, 0x0e6, 0x23b, 0x394, 0x05d, 0x1b2, 0x30b, 0x0e7, 0x23c, 0x395, 0x05e, 0x1b3, 0x30c, 0x0e8, 0x23d, 0x396, 0x05f, 0x1b4, 0x30d, 0x0e9, 0x23e, 0x397, 0x060, 0x1b5, 0x30e, 0x0ea, 0x23f, 0x398, 0x061, 0x1b6, 0x30f, 0x0eb, 0x240, 0x399, 0x062, 0x1b7, 0x310, 0x0ec, 0x241, 0x39a, 0x063, 0x1b8, 0x311, 0x0ed, 0x242, 0x39b, 0x064, 0x1b9, 0x312, 0x0ee, 0x243, 0x39c, 0x065, 0x1ba, 0x313, 0x0ef, 0x244, 0x39d, 0x066, 0x1bb, 0x314, 0x0f0, 0x245, 0x39e, 0x067, 0x1bc, 0x315, 0x0f1, 0x246, 0x39f, 0x068, 0x1bd, 0x316, 0x0f2, 0x247, 0x3a0, 0x069, 0x1be, 0x317, 0x0f3, 0x248, 0x3a1, 0x06a, 0x1bf, 0x318, 0x0f4, 0x249, 0x3a2, 0x06b, 0x1c0, 0x319, 0x0f5, 0x24a, 0x3a3, 0x06c, 0x1c1, 0x31a, 0x0f6, 0x24b, 0x3a4, 0x06d, 0x1c2, 0x31b, 0x0f7, 0x24c, 0x3a5, 0x06e, 0x1c3, 0x31c, 0x0f8, 0x24d, 0x3a6, 0x06f, 0x1c4, 0x31d, 0x0f9, 0x24e, 0x3a7, 0x070, 0x1c5, 0x31e, 0x0fa, 0x24f, 0x3a8, 0x071, 0x1c6, 0x31f, 0x0fb, 0x250, 0x3a9, 0x072, 0x1c7, 0x320, 0x0fc, 0x251, 0x3aa, 0x073, 0x1c8, 0x321, 0x0fd, 0x252, 0x3ab, 0x074, 0x1c9, 0x322, 0x0fe, 0x253, 0x3ac, 0x075, 0x1ca, 0x323, 0x0ff, 0x254, 0x3ad, 0x076, 0x1cb, 0x324, 0x100, 0x255, 0x3ae, 0x077, 0x1cc, 0x325, 0x101, 0x256, 0x3af, 0x078, 0x1cd, 0x326, 0x102, 0x257, 0x3b0, 0x079, 0x1ce, 0x327, 0x103, 0x258, 0x3b1, 0x07a, 0x1cf, 0x328, 0x104, 0x259, 0x3b2, 0x07b, 0x1d0, 0x329, 0x105, 0x25a, 0x3b3, 0x07c, 0x1d1, 0x32a, 0x106, 0x25b, 0x3b4, 0x07d, 0x1d2, 0x32b, 0x107, 0x25c, 0x3b5, 0x07e, 0x1d3, 0x32c, 0x108, 0x25d, 0x3b6, 0x07f, 0x1d4, 0x32d, 0x109, 0x25e, 0x3b7, 0x080, 0x1d5, 0x32e, 0x10a, 0x25f, 0x3b8, 0x081, 0x1d6, 0x32f, 0x10b, 0x260, 0x3b9, 0x082, 0x1d7, 0x330, 0x10c, 0x261, 0x3ba, 0x083, 0x1d8, 0x331, 0x10d, 0x262, 0x3bb, 0x084, 0x1d9, 0x332, 0x10e, 0x263, 0x3bc, 0x085, 0x1da, 0x333, 0x10f, 0x264, 0x3bd, 0x086, 0x1db, 0x334, 0x110, 0x265, 0x3be, 0x087, 0x1dc, 0x335, 0x111, 0x266, 0x3bf, 0x088, 0x1dd, 0x336, 0x112, 0x267, 0x3c0, 0x089, 0x1de, 0x337, 0x113, 0x268, 0x3c1, 0x08a, 0x1df, 0x338, 0x114, 0x269, 0x3c2, 0x08b, 0x1e0, 0x339, 0x115, 0x26a, 0x3c3, 0x08c, 0x1e1, 0x33a, 0x116, 0x26b, 0x3c4, 0x08d, 0x1e2, 0x33b, 0x117, 0x26c, 0x3c5, 0x08e, 0x1e3, 0x33c, 0x118, 0x26d, 0x3c6, 0x08f, 0x1e4, 0x33d, 0x119, 0x26e, 0x3c7, 0x090, 0x1e5, 0x33e, 0x11a, 0x26f, 0x3c8, 0x091, 0x1e6, 0x33f, 0x11b, 0x270, 0x3c9, 0x092, 0x1e7, 0x340, 0x11c, 0x271, 0x3ca, 0x093, 0x1e8, 0x341, 0x11d, 0x272, 0x3cb, 0x094, 0x1e9, 0x342, 0x11e, 0x273, 0x3cc, 0x095, 0x1ea, 0x343, 0x11f, 0x274, 0x3cd, 0x096, 0x1eb, 0x344, 0x120, 0x275, 0x3ce, 0x097, 0x1ec, 0x345, 0x121, 0x276, 0x3cf, 0x098, 0x1ed, 0x346, 0x122, 0x277, 0x3d0, 0x099, 0x1ee, 0x347, 0x123, 0x278, 0x3d1, 0x09a, 0x1ef, 0x348, 0x124, 0x279, 0x3d2, 0x09b, 0x1f0, 0x349, 0x125, 0x27a, 0x3d3, 0x09c, 0x1f1, 0x34a, 0x126, 0x27b, 0x3d4, 0x09d, 0x1f2, 0x34b, 0x127, 0x27c, 0x3d5, 0x09e, 0x1f3, 0x34c, 0x128, 0x27d, 0x3d6, 0x09f, 0x1f4, 0x34d, 0x129, 0x27e, 0x3d7, 0x0a0, 0x1f5, 0x34e, 0x12a, 0x27f, 0x3d8, 0x0a1, 0x1f6, 0x34f, 0x12b, 0x280, 0x3d9, 0x0a2, 0x1f7, 0x350, 0x12c, 0x281, 0x3da, 0x0a3, 0x1f8, 0x351, 0x12d, 0x282, 0x3db, 0x0a4, 0x1f9, 0x352, 0x12e, 0x283, 0x3dc, 0x0a5, 0x1fa, 0x353, 0x12f, 0x284, 0x3dd, 0x0a6, 0x1fb, 0x354, 0x130, 0x285, 0x3de, 0x0a7, 0x1fc, 0x355, 0x131, 0x286, 0x3df, 0x0a8, 0x1fd, 0x356, 0x132, ]; ```
Author
Contributor

抱歉,前两天发烧了没劲儿起来。。今天舒服点了在改了。

抱歉,前两天发烧了没劲儿起来。。今天舒服点了在改了。
Author
Contributor

感谢你们的帮忙

感谢你们的帮忙
Author
Contributor

嗯,都改好了

嗯,都改好了
Yuki1536 marked this conversation as resolved
@ -0,0 +102,4 @@
const x3mScrambleTable = [
Owner
//prettier-ignore: uint16, size 1024 (64x16)
const x3mScrambleTable = [
  0x256, 0x28d, 0x213, 0x307, 0x156, 0x39d, 0x062, 0x170, 0x3ca, 0x035, 0x0ed, 0x2a4, 0x1e4, 0x359, 0x0d3, 0x26b, 
  0x265, 0x274, 0x251, 0x297, 0x202, 0x322, 0x126, 0x32b, 0x117, 0x302, 0x15c, 0x3a8, 0x057, 0x148, 0x380, 0x090, 
  0x1f6, 0x335, 0x10c, 0x2ee, 0x175, 0x3d4, 0x02b, 0x0cc, 0x260, 0x27b, 0x23d, 0x2bb, 0x1b6, 0x3a1, 0x05e, 0x157, 
  0x39e, 0x061, 0x16f, 0x3c6, 0x039, 0x0f7, 0x2b9, 0x1b8, 0x39f, 0x060, 0x166, 0x3b9, 0x046, 0x122, 0x31c, 0x12f, 
  0x33d, 0x0fc, 0x2ca, 0x1a4, 0x3cc, 0x033, 0x0e6, 0x293, 0x209, 0x315, 0x13d, 0x358, 0x0d5, 0x26e, 0x25e, 0x27d, 
  0x23a, 0x2c0, 0x1b1, 0x3af, 0x050, 0x136, 0x346, 0x0ef, 0x2aa, 0x1ce, 0x376, 0x0a0, 0x210, 0x30c, 0x14c, 0x389, 
  0x082, 0x1db, 0x367, 0x0b9, 0x23e, 0x2ba, 0x1b7, 0x3a0, 0x05f, 0x164, 0x3b7, 0x048, 0x125, 0x326, 0x11c, 0x30a, 
  0x14f, 0x38f, 0x070, 0x1a8, 0x3c7, 0x038, 0x0f5, 0x2b5, 0x1bd, 0x393, 0x06c, 0x199, 0x3e1, 0x01e, 0x0b3, 0x22f, 
  0x2d7, 0x193, 0x3ea, 0x015, 0x09d, 0x20a, 0x314, 0x13e, 0x35a, 0x0d2, 0x26a, 0x267, 0x272, 0x253, 0x294, 0x208, 
  0x319, 0x137, 0x34c, 0x0e7, 0x295, 0x205, 0x31d, 0x12e, 0x33c, 0x0fe, 0x2cd, 0x1a0, 0x3d5, 0x02a, 0x0c8, 0x258, 
  0x286, 0x22a, 0x2dc, 0x18e, 0x3f7, 0x008, 0x07c, 0x1d3, 0x370, 0x0a7, 0x21d, 0x2f1, 0x171, 0x3cd, 0x032, 0x0e5, 
  0x292, 0x20b, 0x313, 0x13f, 0x35c, 0x0d0, 0x266, 0x273, 0x252, 0x296, 0x204, 0x31f, 0x12a, 0x332, 0x10f, 0x2f4, 
  0x16c, 0x3c3, 0x03c, 0x101, 0x2d2, 0x19a, 0x3e0, 0x01f, 0x0b5, 0x233, 0x2c9, 0x1a6, 0x3c9, 0x036, 0x0f0, 0x2ab, 
  0x1cb, 0x37c, 0x095, 0x1fd, 0x328, 0x11a, 0x306, 0x158, 0x3a2, 0x05d, 0x155, 0x39c, 0x063, 0x174, 0x3d3, 0x02c, 
  0x0cf, 0x264, 0x275, 0x24f, 0x299, 0x1fa, 0x32c, 0x115, 0x2ff, 0x15f, 0x3ab, 0x054, 0x143, 0x36c, 0x0ad, 0x225, 
  0x2e5, 0x181, 0x3ef, 0x010, 0x08c, 0x1f1, 0x344, 0x0f3, 0x2af, 0x1c4, 0x386, 0x088, 0x1e3, 0x35b, 0x0d1, 0x269, 
  0x268, 0x26d, 0x25f, 0x27c, 0x23b, 0x2bf, 0x1b2, 0x3ae, 0x051, 0x13b, 0x355, 0x0da, 0x278, 0x248, 0x2a6, 0x1dc, 
  0x365, 0x0c0, 0x246, 0x2a8, 0x1d6, 0x36d, 0x0ac, 0x224, 0x2e8, 0x17e, 0x3eb, 0x014, 0x09c, 0x207, 0x31a, 0x133, 
  0x341, 0x0f8, 0x2bc, 0x1b5, 0x3a3, 0x05c, 0x152, 0x395, 0x06a, 0x18c, 0x3f9, 0x006, 0x07a, 0x1d1, 0x373, 0x0a4, 
  0x217, 0x2fe, 0x160, 0x3ad, 0x052, 0x13c, 0x357, 0x0d7, 0x270, 0x25c, 0x281, 0x235, 0x2c6, 0x1aa, 0x3bc, 0x043, 
  0x11d, 0x30d, 0x14a, 0x384, 0x08a, 0x1e7, 0x353, 0x0dd, 0x284, 0x22e, 0x2d8, 0x192, 0x3ec, 0x013, 0x099, 0x201, 
  0x323, 0x124, 0x321, 0x127, 0x32d, 0x114, 0x2fd, 0x161, 0x3b0, 0x04f, 0x135, 0x343, 0x0f4, 0x2b4, 0x1be, 0x392, 
  0x06d, 0x19d, 0x3db, 0x024, 0x0be, 0x244, 0x2b0, 0x1c2, 0x38a, 0x080, 0x1d9, 0x369, 0x0b6, 0x234, 0x2c8, 0x1a7, 
  0x3c8, 0x037, 0x0f1, 0x2ad, 0x1c6, 0x383, 0x08d, 0x1f2, 0x33b, 0x100, 0x2d1, 0x19b, 0x3de, 0x021, 0x0bb, 0x240, 
  0x2b6, 0x1bb, 0x399, 0x066, 0x17a, 0x3df, 0x020, 0x0b8, 0x23c, 0x2bd, 0x1b4, 0x3a5, 0x05a, 0x150, 0x390, 0x06f, 
  0x1a5, 0x3cb, 0x034, 0x0ea, 0x29d, 0x1ee, 0x348, 0x0ec, 0x2a3, 0x1e5, 0x356, 0x0d8, 0x271, 0x257, 0x289, 0x220, 
  0x2ec, 0x178, 0x3d9, 0x026, 0x0c2, 0x24b, 0x2a1, 0x1ea, 0x34d, 0x0e4, 0x291, 0x20c, 0x312, 0x141, 0x360, 0x0ca, 
  0x25a, 0x283, 0x230, 0x2d0, 0x19c, 0x3dd, 0x022, 0x0bc, 0x241, 0x2b3, 0x1bf, 0x391, 0x06e, 0x1a2, 0x3d1, 0x02e, 
  0x0d6, 0x26f, 0x25d, 0x27f, 0x237, 0x2c4, 0x1ac, 0x3ba, 0x045, 0x121, 0x318, 0x138, 0x34e, 0x0e3, 0x28f, 0x211, 
  0x30b, 0x14d, 0x38c, 0x073, 0x1c3, 0x387, 0x084, 0x1df, 0x362, 0x0c7, 0x255, 0x28e, 0x212, 0x309, 0x153, 0x396, 
  0x069, 0x18b, 0x3fa, 0x005, 0x079, 0x1d0, 0x374, 0x0a2, 0x215, 0x301, 0x15d, 0x3a9, 0x056, 0x147, 0x37a, 0x098, 
  0x200, 0x324, 0x11f, 0x316, 0x13a, 0x352, 0x0df, 0x288, 0x223, 0x2e9, 0x17d, 0x3e9, 0x016, 0x09e, 0x20d, 0x310, 
  0x144, 0x372, 0x0a5, 0x219, 0x2fa, 0x165, 0x3b8, 0x047, 0x123, 0x31e, 0x12d, 0x338, 0x107, 0x2e0, 0x188, 0x3fe, 
  0x001, 0x075, 0x1c9, 0x37e, 0x093, 0x1f9, 0x32f, 0x112, 0x2f9, 0x167, 0x3be, 0x041, 0x10b, 0x2e7, 0x17f, 0x3ed, 
  0x012, 0x097, 0x1ff, 0x325, 0x11e, 0x311, 0x142, 0x366, 0x0ba, 0x23f, 0x2b8, 0x1b9, 0x39b, 0x064, 0x176, 0x3d6, 
  0x029, 0x0c5, 0x250, 0x298, 0x1fc, 0x329, 0x119, 0x304, 0x15a, 0x3a6, 0x059, 0x14e, 0x38e, 0x071, 0x1ad, 0x3b6, 
  0x049, 0x128, 0x32e, 0x113, 0x2fc, 0x162, 0x3b2, 0x04d, 0x131, 0x33f, 0x0fa, 0x2c2, 0x1af, 0x3b3, 0x04c, 0x130, 
  0x33e, 0x0fb, 0x2c7, 0x1a9, 0x3bd, 0x042, 0x116, 0x300, 0x15e, 0x3aa, 0x055, 0x146, 0x378, 0x09b, 0x206, 0x31b, 
  0x132, 0x340, 0x0f9, 0x2be, 0x1b3, 0x3ac, 0x053, 0x140, 0x35d, 0x0ce, 0x262, 0x279, 0x247, 0x2a7, 0x1d7, 0x36b, 
  0x0ae, 0x226, 0x2e3, 0x185, 0x3f6, 0x009, 0x07d, 0x1d4, 0x36f, 0x0a8, 0x21e, 0x2f0, 0x172, 0x3ce, 0x031, 0x0de, 
  0x287, 0x228, 0x2df, 0x189, 0x3fd, 0x002, 0x076, 0x1ca, 0x37d, 0x094, 0x1fb, 0x32a, 0x118, 0x303, 0x15b, 0x3a7, 
  0x058, 0x14b, 0x388, 0x083, 0x1dd, 0x364, 0x0c1, 0x24a, 0x2a2, 0x1e9, 0x350, 0x0e1, 0x28b, 0x21a, 0x2f8, 0x168, 
  0x3bf, 0x040, 0x10a, 0x2e6, 0x180, 0x3ee, 0x011, 0x091, 0x1f7, 0x334, 0x10d, 0x2ef, 0x173, 0x3cf, 0x030, 0x0dc, 
  0x280, 0x236, 0x2c5, 0x1ab, 0x3bb, 0x044, 0x120, 0x317, 0x139, 0x34f, 0x0e2, 0x28c, 0x218, 0x2fb, 0x163, 0x3b4, 
  0x04b, 0x12c, 0x337, 0x108, 0x2e2, 0x186, 0x3fc, 0x003, 0x077, 0x1cc, 0x37b, 0x096, 0x1fe, 0x327, 0x11b, 0x308, 
  0x154, 0x397, 0x068, 0x183, 0x3f3, 0x00c, 0x085, 0x1e0, 0x361, 0x0c9, 0x259, 0x285, 0x22c, 0x2da, 0x190, 0x3f2, 
  0x00d, 0x086, 0x1e1, 0x35f, 0x0cb, 0x25b, 0x282, 0x232, 0x2cc, 0x1a1, 0x3d2, 0x02d, 0x0d4, 0x26c, 0x263, 0x277, 
  0x249, 0x2a5, 0x1de, 0x363, 0x0c6, 0x254, 0x290, 0x20e, 0x30f, 0x145, 0x377, 0x09f, 0x20f, 0x30e, 0x149, 0x382, 
  0x08e, 0x1f3, 0x33a, 0x102, 0x2d3, 0x198, 0x3e2, 0x01d, 0x0b2, 0x22d, 0x2d9, 0x191, 0x3f1, 0x00e, 0x087, 0x1e2, 
  0x35e, 0x0cd, 0x261, 0x27a, 0x243, 0x2b1, 0x1c1, 0x38b, 0x07f, 0x1d8, 0x36a, 0x0b4, 0x231, 0x2cf, 0x19e, 0x3da, 
  0x025, 0x0bf, 0x245, 0x2ac, 0x1c7, 0x381, 0x08f, 0x1f5, 0x336, 0x109, 0x2e4, 0x184, 0x3f4, 0x00b, 0x081, 0x1da, 
  0x368, 0x0b7, 0x239, 0x2c1, 0x1b0, 0x3b1, 0x04e, 0x134, 0x342, 0x0f6, 0x2b7, 0x1ba, 0x39a, 0x065, 0x179, 0x3dc, 
  0x023, 0x0bd, 0x242, 0x2b2, 0x1c0, 0x38d, 0x072, 0x1bc, 0x398, 0x067, 0x182, 0x3f0, 0x00f, 0x08b, 0x1e8, 0x351, 
  0x0e0, 0x28a, 0x21c, 0x2f3, 0x16d, 0x3c4, 0x03b, 0x0ff, 0x2ce, 0x19f, 0x3d7, 0x028, 0x0c4, 0x24e, 0x29b, 0x1f0, 
  0x345, 0x0f2, 0x2ae, 0x1c5, 0x385, 0x089, 0x1e6, 0x354, 0x0db, 0x27e, 0x238, 0x2c3, 0x1ae, 0x3b5, 0x04a, 0x12b, 
  0x333, 0x10e, 0x2f2, 0x16e, 0x3c5, 0x03a, 0x0fd, 0x2cb, 0x1a3, 0x3d0, 0x02f, 0x0d9, 0x276, 0x24c, 0x29f, 0x1ec, 
  0x34a, 0x0e9, 0x29c, 0x1ef, 0x347, 0x0ee, 0x2a9, 0x1cf, 0x375, 0x0a1, 0x214, 0x305, 0x159, 0x3a4, 0x05b, 0x151, 
  0x394, 0x06b, 0x196, 0x3e6, 0x019, 0x0ab, 0x222, 0x2ea, 0x17c, 0x3e5, 0x01a, 0x0af, 0x227, 0x2e1, 0x187, 0x3ff, 
  0x000, 0x074, 0x1c8, 0x37f, 0x092, 0x1f8, 0x331, 0x110, 0x2f6, 0x16a, 0x3c1, 0x03e, 0x104, 0x2d5, 0x195, 0x3e7, 
  0x018, 0x0aa, 0x221, 0x2eb, 0x17b, 0x3e4, 0x01b, 0x0b0, 0x229, 0x2dd, 0x18d, 0x3f8, 0x007, 0x07b, 0x1d2, 0x371, 
  0x0a6, 0x21b, 0x2f5, 0x16b, 0x3c2, 0x03d, 0x103, 0x2d4, 0x197, 0x3e3, 0x01c, 0x0b1, 0x22b, 0x2db, 0x18f, 0x3f5, 
  0x00a, 0x07e, 0x1d5, 0x36e, 0x0a9, 0x21f, 0x2ed, 0x177, 0x3d8, 0x027, 0x0c3, 0x24d, 0x29e, 0x1ed, 0x349, 0x0eb, 
  0x2a0, 0x1eb, 0x34b, 0x0e8, 0x29a, 0x1f4, 0x339, 0x106, 0x2de, 0x18a, 0x3fb, 0x004, 0x078, 0x1cd, 0x379, 0x09a, 
  0x203, 0x320, 0x129, 0x330, 0x111, 0x2f7, 0x169, 0x3c0, 0x03f, 0x105, 0x2d6, 0x194, 0x3e8, 0x017, 0x0a3, 0x216, 
];
```typescript //prettier-ignore: uint16, size 1024 (64x16) const x3mScrambleTable = [ 0x256, 0x28d, 0x213, 0x307, 0x156, 0x39d, 0x062, 0x170, 0x3ca, 0x035, 0x0ed, 0x2a4, 0x1e4, 0x359, 0x0d3, 0x26b, 0x265, 0x274, 0x251, 0x297, 0x202, 0x322, 0x126, 0x32b, 0x117, 0x302, 0x15c, 0x3a8, 0x057, 0x148, 0x380, 0x090, 0x1f6, 0x335, 0x10c, 0x2ee, 0x175, 0x3d4, 0x02b, 0x0cc, 0x260, 0x27b, 0x23d, 0x2bb, 0x1b6, 0x3a1, 0x05e, 0x157, 0x39e, 0x061, 0x16f, 0x3c6, 0x039, 0x0f7, 0x2b9, 0x1b8, 0x39f, 0x060, 0x166, 0x3b9, 0x046, 0x122, 0x31c, 0x12f, 0x33d, 0x0fc, 0x2ca, 0x1a4, 0x3cc, 0x033, 0x0e6, 0x293, 0x209, 0x315, 0x13d, 0x358, 0x0d5, 0x26e, 0x25e, 0x27d, 0x23a, 0x2c0, 0x1b1, 0x3af, 0x050, 0x136, 0x346, 0x0ef, 0x2aa, 0x1ce, 0x376, 0x0a0, 0x210, 0x30c, 0x14c, 0x389, 0x082, 0x1db, 0x367, 0x0b9, 0x23e, 0x2ba, 0x1b7, 0x3a0, 0x05f, 0x164, 0x3b7, 0x048, 0x125, 0x326, 0x11c, 0x30a, 0x14f, 0x38f, 0x070, 0x1a8, 0x3c7, 0x038, 0x0f5, 0x2b5, 0x1bd, 0x393, 0x06c, 0x199, 0x3e1, 0x01e, 0x0b3, 0x22f, 0x2d7, 0x193, 0x3ea, 0x015, 0x09d, 0x20a, 0x314, 0x13e, 0x35a, 0x0d2, 0x26a, 0x267, 0x272, 0x253, 0x294, 0x208, 0x319, 0x137, 0x34c, 0x0e7, 0x295, 0x205, 0x31d, 0x12e, 0x33c, 0x0fe, 0x2cd, 0x1a0, 0x3d5, 0x02a, 0x0c8, 0x258, 0x286, 0x22a, 0x2dc, 0x18e, 0x3f7, 0x008, 0x07c, 0x1d3, 0x370, 0x0a7, 0x21d, 0x2f1, 0x171, 0x3cd, 0x032, 0x0e5, 0x292, 0x20b, 0x313, 0x13f, 0x35c, 0x0d0, 0x266, 0x273, 0x252, 0x296, 0x204, 0x31f, 0x12a, 0x332, 0x10f, 0x2f4, 0x16c, 0x3c3, 0x03c, 0x101, 0x2d2, 0x19a, 0x3e0, 0x01f, 0x0b5, 0x233, 0x2c9, 0x1a6, 0x3c9, 0x036, 0x0f0, 0x2ab, 0x1cb, 0x37c, 0x095, 0x1fd, 0x328, 0x11a, 0x306, 0x158, 0x3a2, 0x05d, 0x155, 0x39c, 0x063, 0x174, 0x3d3, 0x02c, 0x0cf, 0x264, 0x275, 0x24f, 0x299, 0x1fa, 0x32c, 0x115, 0x2ff, 0x15f, 0x3ab, 0x054, 0x143, 0x36c, 0x0ad, 0x225, 0x2e5, 0x181, 0x3ef, 0x010, 0x08c, 0x1f1, 0x344, 0x0f3, 0x2af, 0x1c4, 0x386, 0x088, 0x1e3, 0x35b, 0x0d1, 0x269, 0x268, 0x26d, 0x25f, 0x27c, 0x23b, 0x2bf, 0x1b2, 0x3ae, 0x051, 0x13b, 0x355, 0x0da, 0x278, 0x248, 0x2a6, 0x1dc, 0x365, 0x0c0, 0x246, 0x2a8, 0x1d6, 0x36d, 0x0ac, 0x224, 0x2e8, 0x17e, 0x3eb, 0x014, 0x09c, 0x207, 0x31a, 0x133, 0x341, 0x0f8, 0x2bc, 0x1b5, 0x3a3, 0x05c, 0x152, 0x395, 0x06a, 0x18c, 0x3f9, 0x006, 0x07a, 0x1d1, 0x373, 0x0a4, 0x217, 0x2fe, 0x160, 0x3ad, 0x052, 0x13c, 0x357, 0x0d7, 0x270, 0x25c, 0x281, 0x235, 0x2c6, 0x1aa, 0x3bc, 0x043, 0x11d, 0x30d, 0x14a, 0x384, 0x08a, 0x1e7, 0x353, 0x0dd, 0x284, 0x22e, 0x2d8, 0x192, 0x3ec, 0x013, 0x099, 0x201, 0x323, 0x124, 0x321, 0x127, 0x32d, 0x114, 0x2fd, 0x161, 0x3b0, 0x04f, 0x135, 0x343, 0x0f4, 0x2b4, 0x1be, 0x392, 0x06d, 0x19d, 0x3db, 0x024, 0x0be, 0x244, 0x2b0, 0x1c2, 0x38a, 0x080, 0x1d9, 0x369, 0x0b6, 0x234, 0x2c8, 0x1a7, 0x3c8, 0x037, 0x0f1, 0x2ad, 0x1c6, 0x383, 0x08d, 0x1f2, 0x33b, 0x100, 0x2d1, 0x19b, 0x3de, 0x021, 0x0bb, 0x240, 0x2b6, 0x1bb, 0x399, 0x066, 0x17a, 0x3df, 0x020, 0x0b8, 0x23c, 0x2bd, 0x1b4, 0x3a5, 0x05a, 0x150, 0x390, 0x06f, 0x1a5, 0x3cb, 0x034, 0x0ea, 0x29d, 0x1ee, 0x348, 0x0ec, 0x2a3, 0x1e5, 0x356, 0x0d8, 0x271, 0x257, 0x289, 0x220, 0x2ec, 0x178, 0x3d9, 0x026, 0x0c2, 0x24b, 0x2a1, 0x1ea, 0x34d, 0x0e4, 0x291, 0x20c, 0x312, 0x141, 0x360, 0x0ca, 0x25a, 0x283, 0x230, 0x2d0, 0x19c, 0x3dd, 0x022, 0x0bc, 0x241, 0x2b3, 0x1bf, 0x391, 0x06e, 0x1a2, 0x3d1, 0x02e, 0x0d6, 0x26f, 0x25d, 0x27f, 0x237, 0x2c4, 0x1ac, 0x3ba, 0x045, 0x121, 0x318, 0x138, 0x34e, 0x0e3, 0x28f, 0x211, 0x30b, 0x14d, 0x38c, 0x073, 0x1c3, 0x387, 0x084, 0x1df, 0x362, 0x0c7, 0x255, 0x28e, 0x212, 0x309, 0x153, 0x396, 0x069, 0x18b, 0x3fa, 0x005, 0x079, 0x1d0, 0x374, 0x0a2, 0x215, 0x301, 0x15d, 0x3a9, 0x056, 0x147, 0x37a, 0x098, 0x200, 0x324, 0x11f, 0x316, 0x13a, 0x352, 0x0df, 0x288, 0x223, 0x2e9, 0x17d, 0x3e9, 0x016, 0x09e, 0x20d, 0x310, 0x144, 0x372, 0x0a5, 0x219, 0x2fa, 0x165, 0x3b8, 0x047, 0x123, 0x31e, 0x12d, 0x338, 0x107, 0x2e0, 0x188, 0x3fe, 0x001, 0x075, 0x1c9, 0x37e, 0x093, 0x1f9, 0x32f, 0x112, 0x2f9, 0x167, 0x3be, 0x041, 0x10b, 0x2e7, 0x17f, 0x3ed, 0x012, 0x097, 0x1ff, 0x325, 0x11e, 0x311, 0x142, 0x366, 0x0ba, 0x23f, 0x2b8, 0x1b9, 0x39b, 0x064, 0x176, 0x3d6, 0x029, 0x0c5, 0x250, 0x298, 0x1fc, 0x329, 0x119, 0x304, 0x15a, 0x3a6, 0x059, 0x14e, 0x38e, 0x071, 0x1ad, 0x3b6, 0x049, 0x128, 0x32e, 0x113, 0x2fc, 0x162, 0x3b2, 0x04d, 0x131, 0x33f, 0x0fa, 0x2c2, 0x1af, 0x3b3, 0x04c, 0x130, 0x33e, 0x0fb, 0x2c7, 0x1a9, 0x3bd, 0x042, 0x116, 0x300, 0x15e, 0x3aa, 0x055, 0x146, 0x378, 0x09b, 0x206, 0x31b, 0x132, 0x340, 0x0f9, 0x2be, 0x1b3, 0x3ac, 0x053, 0x140, 0x35d, 0x0ce, 0x262, 0x279, 0x247, 0x2a7, 0x1d7, 0x36b, 0x0ae, 0x226, 0x2e3, 0x185, 0x3f6, 0x009, 0x07d, 0x1d4, 0x36f, 0x0a8, 0x21e, 0x2f0, 0x172, 0x3ce, 0x031, 0x0de, 0x287, 0x228, 0x2df, 0x189, 0x3fd, 0x002, 0x076, 0x1ca, 0x37d, 0x094, 0x1fb, 0x32a, 0x118, 0x303, 0x15b, 0x3a7, 0x058, 0x14b, 0x388, 0x083, 0x1dd, 0x364, 0x0c1, 0x24a, 0x2a2, 0x1e9, 0x350, 0x0e1, 0x28b, 0x21a, 0x2f8, 0x168, 0x3bf, 0x040, 0x10a, 0x2e6, 0x180, 0x3ee, 0x011, 0x091, 0x1f7, 0x334, 0x10d, 0x2ef, 0x173, 0x3cf, 0x030, 0x0dc, 0x280, 0x236, 0x2c5, 0x1ab, 0x3bb, 0x044, 0x120, 0x317, 0x139, 0x34f, 0x0e2, 0x28c, 0x218, 0x2fb, 0x163, 0x3b4, 0x04b, 0x12c, 0x337, 0x108, 0x2e2, 0x186, 0x3fc, 0x003, 0x077, 0x1cc, 0x37b, 0x096, 0x1fe, 0x327, 0x11b, 0x308, 0x154, 0x397, 0x068, 0x183, 0x3f3, 0x00c, 0x085, 0x1e0, 0x361, 0x0c9, 0x259, 0x285, 0x22c, 0x2da, 0x190, 0x3f2, 0x00d, 0x086, 0x1e1, 0x35f, 0x0cb, 0x25b, 0x282, 0x232, 0x2cc, 0x1a1, 0x3d2, 0x02d, 0x0d4, 0x26c, 0x263, 0x277, 0x249, 0x2a5, 0x1de, 0x363, 0x0c6, 0x254, 0x290, 0x20e, 0x30f, 0x145, 0x377, 0x09f, 0x20f, 0x30e, 0x149, 0x382, 0x08e, 0x1f3, 0x33a, 0x102, 0x2d3, 0x198, 0x3e2, 0x01d, 0x0b2, 0x22d, 0x2d9, 0x191, 0x3f1, 0x00e, 0x087, 0x1e2, 0x35e, 0x0cd, 0x261, 0x27a, 0x243, 0x2b1, 0x1c1, 0x38b, 0x07f, 0x1d8, 0x36a, 0x0b4, 0x231, 0x2cf, 0x19e, 0x3da, 0x025, 0x0bf, 0x245, 0x2ac, 0x1c7, 0x381, 0x08f, 0x1f5, 0x336, 0x109, 0x2e4, 0x184, 0x3f4, 0x00b, 0x081, 0x1da, 0x368, 0x0b7, 0x239, 0x2c1, 0x1b0, 0x3b1, 0x04e, 0x134, 0x342, 0x0f6, 0x2b7, 0x1ba, 0x39a, 0x065, 0x179, 0x3dc, 0x023, 0x0bd, 0x242, 0x2b2, 0x1c0, 0x38d, 0x072, 0x1bc, 0x398, 0x067, 0x182, 0x3f0, 0x00f, 0x08b, 0x1e8, 0x351, 0x0e0, 0x28a, 0x21c, 0x2f3, 0x16d, 0x3c4, 0x03b, 0x0ff, 0x2ce, 0x19f, 0x3d7, 0x028, 0x0c4, 0x24e, 0x29b, 0x1f0, 0x345, 0x0f2, 0x2ae, 0x1c5, 0x385, 0x089, 0x1e6, 0x354, 0x0db, 0x27e, 0x238, 0x2c3, 0x1ae, 0x3b5, 0x04a, 0x12b, 0x333, 0x10e, 0x2f2, 0x16e, 0x3c5, 0x03a, 0x0fd, 0x2cb, 0x1a3, 0x3d0, 0x02f, 0x0d9, 0x276, 0x24c, 0x29f, 0x1ec, 0x34a, 0x0e9, 0x29c, 0x1ef, 0x347, 0x0ee, 0x2a9, 0x1cf, 0x375, 0x0a1, 0x214, 0x305, 0x159, 0x3a4, 0x05b, 0x151, 0x394, 0x06b, 0x196, 0x3e6, 0x019, 0x0ab, 0x222, 0x2ea, 0x17c, 0x3e5, 0x01a, 0x0af, 0x227, 0x2e1, 0x187, 0x3ff, 0x000, 0x074, 0x1c8, 0x37f, 0x092, 0x1f8, 0x331, 0x110, 0x2f6, 0x16a, 0x3c1, 0x03e, 0x104, 0x2d5, 0x195, 0x3e7, 0x018, 0x0aa, 0x221, 0x2eb, 0x17b, 0x3e4, 0x01b, 0x0b0, 0x229, 0x2dd, 0x18d, 0x3f8, 0x007, 0x07b, 0x1d2, 0x371, 0x0a6, 0x21b, 0x2f5, 0x16b, 0x3c2, 0x03d, 0x103, 0x2d4, 0x197, 0x3e3, 0x01c, 0x0b1, 0x22b, 0x2db, 0x18f, 0x3f5, 0x00a, 0x07e, 0x1d5, 0x36e, 0x0a9, 0x21f, 0x2ed, 0x177, 0x3d8, 0x027, 0x0c3, 0x24d, 0x29e, 0x1ed, 0x349, 0x0eb, 0x2a0, 0x1eb, 0x34b, 0x0e8, 0x29a, 0x1f4, 0x339, 0x106, 0x2de, 0x18a, 0x3fb, 0x004, 0x078, 0x1cd, 0x379, 0x09a, 0x203, 0x320, 0x129, 0x330, 0x111, 0x2f7, 0x169, 0x3c0, 0x03f, 0x105, 0x2d6, 0x194, 0x3e8, 0x017, 0x0a3, 0x216, ]; ```
Author
Contributor

嗯,都改好了。

嗯,都改好了。
Yuki1536 marked this conversation as resolved
Yuki1536 added 1 commit 2022-12-15 03:26:05 +00:00
continuous-integration/drone/pr Build is passing Details
d21c48caff
Small fixes
Yuki1536 requested review from um-dev 2022-12-15 12:53:33 +00:00
um-dev approved these changes 2022-12-15 13:05:30 +00:00
um-dev left a comment
Owner

LGTM

LGTM
Yuki1536 added 1 commit 2022-12-17 12:38:20 +00:00
continuous-integration/drone/pr Build is passing Details
3393bb0bff
Change type
Yuki1536 requested review from jixunmoe 2022-12-17 12:42:32 +00:00
Yuki1536 requested review from um-dev 2022-12-17 12:42:41 +00:00
um-dev approved these changes 2022-12-17 14:40:30 +00:00
jixunmoe requested changes 2022-12-17 19:04:38 +00:00
@ -15,4 +16,3 @@
import InMemoryStorage from '@/utils/storage/InMemoryStorage';
export async function Decrypt(file: FileInfo, config: Record<string, any>): Promise<DecryptResult> {
// Worker thread will fallback to in-memory storage.
Owner

突然发现代码从 2 空格缩进变成了 4 空格缩进 - 请运行一次 npx prettier -w . 进行代码格式化。

突然发现代码从 2 空格缩进变成了 4 空格缩进 - 请运行一次 `npx prettier -w .` 进行代码格式化。
Author
Contributor

这么做修改了大量的文件,都需要包含到commit吗?

这么做修改了大量的文件,都需要包含到commit吗?
Owner

只包含你更改过的这两个文件吧。其它文件也需要格式化我是没想到的… 或者直接现在这样合并然后找个时间统一格式化? @um-dev 怎么看

只包含你更改过的这两个文件吧。其它文件也需要格式化我是没想到的… 或者直接现在这样合并然后找个时间统一格式化? @um-dev 怎么看
Author
Contributor

OK,那我先commit这两个格式化过的index.ts和ximalaya.ts吧。

提个小建议,要是统一全部格式化,行缩进是不是4个Space比较好些? 无论是VS还是VSCode默认换行都是4格缩进。

EDIT: (格式化完了,两格感觉有些短?)

OK,那我先commit这两个格式化过的index.ts和ximalaya.ts吧。 提个小建议,要是统一全部格式化,行缩进是不是4个Space比较好些? 无论是VS还是VSCode默认换行都是4格缩进。 EDIT: (格式化完了,两格感觉有些短?)
Owner

JavaScript/TypeScript 一般都是推荐使用 2 空格缩进(怀疑和 JS 语言容易产生 Callback Hell 有关),项目使用的 prettier 配置文件也是写的 2 空格。通常情况下遵守项目使用的代码风格即可。

https://git.unlock-music.dev/um/web/src/branch/master/.prettierrc.js

JavaScript/TypeScript 一般都是推荐使用 2 空格缩进(怀疑和 JS 语言容易产生 Callback Hell 有关),项目使用的 prettier 配置文件也是写的 2 空格。通常情况下遵守项目使用的代码风格即可。 https://git.unlock-music.dev/um/web/src/branch/master/.prettierrc.js
jixunmoe marked this conversation as resolved
Yuki1536 added 1 commit 2022-12-22 13:22:14 +00:00
continuous-integration/drone/pr Build is passing Details
62d83c752e
Format with prettier.
Yuki1536 requested review from jixunmoe 2022-12-22 13:22:32 +00:00
Yuki1536 requested review from um-dev 2022-12-22 13:22:42 +00:00
jixunmoe approved these changes 2022-12-22 14:51:10 +00:00
jixunmoe left a comment
Owner

感觉可以合并了,没有什么需要额外处理的了。

感觉可以合并了,没有什么需要额外处理的了。
um-dev approved these changes 2022-12-22 16:24:30 +00:00
um-dev merged commit 0458ee469b into master 2022-12-22 16:24:43 +00:00
Sign in to join this conversation.
No description provided.