shogiops 0.10.2 → 0.11.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.
package/compat.js CHANGED
@@ -34,7 +34,11 @@ export function usiToSquareNames(usi) {
34
34
  return defined(move) ? moveToSquareNames(move) : [];
35
35
  }
36
36
  export function moveToSquareNames(move) {
37
- return isDrop(move) ? [makeSquare(move.to)] : [makeSquare(move.from), makeSquare(move.to)];
37
+ return isDrop(move)
38
+ ? [makeSquare(move.to)]
39
+ : defined(move.midStep)
40
+ ? [makeSquare(move.from), makeSquare(move.midStep), makeSquare(move.to)]
41
+ : [makeSquare(move.from), makeSquare(move.to)];
38
42
  }
39
43
  export function checksSquareNames(pos) {
40
44
  return pos.checkSquares().map(s => makeSquare(s));
package/compat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAY,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,MAAM,UAAU,oBAAoB,CAAC,GAAa;IAChD,MAAM,MAAM,GAAkC,IAAI,GAAG,EAAE,EACrD,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;QACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAa;IAChD,MAAM,MAAM,GAAiC,IAAI,GAAG,EAAE,EACpD,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;QACxD,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC1B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAgB,EAChB,SAAqB,EACrB,KAAiB;IAEjB,MAAM,MAAM,GAAkC,IAAI,GAAG,EAAE,EACrD,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAa;IAC7C,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ export function parseCsaHeader(csa) {
71
71
  const baseBoard = defined(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
72
72
  const turn = lines.some(l => l === '-') ? 'gote' : 'sente';
73
73
  return baseBoard.chain(board => {
74
- return Shogi.from({ board, hands: Hands.empty(), turn, moveNumber: 1, lastMove: undefined, lastCapture: undefined }, true).chain(pos => parseAdditions(pos, lines.filter(l => /P[\+|-]/.test(l))));
74
+ return Shogi.from({ board, hands: Hands.empty(), turn, moveNumber: 1 }, true).chain(pos => parseAdditions(pos, lines.filter(l => /P[\+|-]/.test(l))));
75
75
  });
76
76
  }
77
77
  export function parseCsaHandicap(handicap) {
@@ -1 +1 @@
1
- {"version":3,"file":"csa.js","sourceRoot":"","sources":["../../src/notation/csa/csa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csa.js","sourceRoot":"","sources":["../../src/notation/csa/csa.ts"],"names":[],"mappings":"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"}
@@ -91,7 +91,12 @@ export function parseKifPositionHeader(kif) {
91
91
  const board = parseKifBoard(rules, kif);
92
92
  const goteHand = defined(goteHandStr) ? parseKifHand(rules, goteHandStr.split(':')[1]) : Result.ok(Hand.empty());
93
93
  const senteHand = defined(senteHandStr) ? parseKifHand(rules, senteHandStr.split(':')[1]) : Result.ok(Hand.empty());
94
- return board.chain(board => goteHand.chain(gHand => senteHand.chain(sHand => initializePosition(rules, { board, hands: Hands.from(sHand, gHand), turn, moveNumber: 1, lastMove: undefined, lastCapture: undefined }, false))));
94
+ return board.chain(board => goteHand.chain(gHand => senteHand.chain(sHand => initializePosition(rules, {
95
+ board,
96
+ hands: Hands.from(sHand, gHand),
97
+ turn,
98
+ moveNumber: 1,
99
+ }, false))));
95
100
  }
96
101
  function detectVariant(lines) {
97
102
  if (lines === 12)
@@ -1 +1 @@
1
- {"version":3,"file":"kif.js","sourceRoot":"","sources":["../../src/notation/kif/kif.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kif.js","sourceRoot":"","sources":["../../src/notation/kif/kif.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shogiops",
3
- "version": "0.10.2",
3
+ "version": "0.11.0",
4
4
  "description": "Shogi rules and operations",
5
5
  "keywords": [
6
6
  "shogi",
package/sfen.js CHANGED
@@ -142,12 +142,12 @@ export function parseSfen(rules, sfen, strict) {
142
142
  return Result.err(new SfenError(InvalidSfen.Turn));
143
143
  // Hands
144
144
  const handsPart = parts.shift();
145
- let hands = Result.ok(Hands.empty()), lastMove, lastCapture;
145
+ let hands = Result.ok(Hands.empty()), lastMove, lastLionCapture;
146
146
  if (rules === 'chushogi') {
147
147
  const destSquare = defined(handsPart) ? parseSquare(handsPart) : undefined;
148
148
  if (defined(destSquare)) {
149
149
  lastMove = { to: destSquare };
150
- lastCapture = { role: 'lion', color: turn };
150
+ lastLionCapture = destSquare;
151
151
  }
152
152
  }
153
153
  else if (defined(handsPart))
@@ -158,7 +158,7 @@ export function parseSfen(rules, sfen, strict) {
158
158
  return Result.err(new SfenError(InvalidSfen.MoveNumber));
159
159
  if (parts.length > 0)
160
160
  return Result.err(new SfenError(InvalidSfen.Sfen));
161
- return board.chain(board => hands.chain(hands => initializePosition(rules, { board, hands, turn, moveNumber: Math.max(1, moveNumber), lastMove, lastCapture }, !!strict)));
161
+ return board.chain(board => hands.chain(hands => initializePosition(rules, { board, hands, turn, moveNumber: Math.max(1, moveNumber), lastMove, lastLionCapture }, !!strict)));
162
162
  }
163
163
  export function makeBoardSfen(rules, board) {
164
164
  const dims = dimensions(rules);
@@ -200,11 +200,7 @@ export function makeHands(rules, hands) {
200
200
  return handsStr === '' ? '-' : handsStr;
201
201
  }
202
202
  function lastLionCapture(pos) {
203
- var _a, _b;
204
- if (pos.lastMove && (((_a = pos.lastCapture) === null || _a === void 0 ? void 0 : _a.role) === 'lion' || ((_b = pos.lastCapture) === null || _b === void 0 ? void 0 : _b.role) === 'lionpromoted'))
205
- return makeSquare(pos.lastMove.to);
206
- else
207
- return '-';
203
+ return defined(pos.lastLionCapture) ? makeSquare(pos.lastLionCapture) : '-';
208
204
  }
209
205
  export function makeSfen(pos) {
210
206
  return [
package/sfen.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sfen.js","sourceRoot":"","sources":["src/sfen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAQ,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAgB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAExE,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,2CAA4B,CAAA;IAC5B,6CAA8B,CAAA;IAC9B,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,4CAA6B,CAAA;AAC/B,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AACD,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,iIAAiI,CAAC;QAC3I,KAAK,WAAW;YACd,OAAO,2BAA2B,CAAC;QACrC;YACE,OAAO,iEAAiE,CAAC;KAC5E;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,qBAAqB,CAAC;KAChC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,qBAAqB,CAAC;KAChC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO;YAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,CAAC,CAAC,EAAE;QACT,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;SAC3B,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO;AACT,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,SAAiB;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,sFAAsF;IACtF,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EACvD,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAChE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,EACX,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE;YACzB,KAAK,GAAG,CAAC,CAAC;YACV,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC;SACR;aAAM;YACL,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAChB,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC1C,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;aAC3B;iBAAM;gBACL,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;oBAClE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;oBAAE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,EAC1C,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACzB,KAAK,GAAG,CAAC,CAAC;gBACV,IAAI,EAAE,CAAC;aACR;SACF;KACF;IAED,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,SAAiB;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,MAAM;QAChC,SAAS;QACT,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACrB,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC/B,CAAC,EAAE,CAAC;aACL;SACF;;YAAM,KAAK,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC3C;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAQ,EACR,IAAY,EACZ,MAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,QAAQ;IACR,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAG,EAC9B,KAAK,GAA6B,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAErE,OAAO;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAC5B,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE,QAAQ;IACR,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAClC,QAA2C,EAC3C,WAA8B,CAAC;IACjC,IAAI,KAAK,KAAK,UAAU,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACvB,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;YAC9B,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC7C;KACF;SAAM,IAAI,OAAO,CAAC,SAAS,CAAC;QAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpE,cAAc;IACd,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAClC,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CACzB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAClB,kBAAkB,CAChB,KAAK,EACL,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAClF,CAAC,CAAC,MAAM,CACT,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,KAAY;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,GAAG,EAAE,EACX,KAAK,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,EAC1C,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK;gBAAE,KAAK,EAAE,CAAC;iBACf;gBACH,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,IAAI,IAAI,KAAK,CAAC;oBACd,KAAK,GAAG,CAAC,CAAC;iBACX;gBACD,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,IAAI,IAAI,KAAK,CAAC;oBACd,KAAK,GAAG,CAAC,CAAC;iBACX;gBACD,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC;oBAAE,IAAI,IAAI,GAAG,CAAC;aAC1C;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAU;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC;SACpB,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAE,EACnC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,KAAY;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,GAAa;;IACpC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,IAAI,MAAK,MAAM,IAAI,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,IAAI,MAAK,cAAc,CAAC;QAChG,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;QAChC,OAAO,GAAG,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAa;IACpC,OAAO;QACL,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KAC5C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,YAAY;YACf,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,mBAAmB;YACtB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,uBAAuB;YAC1B,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,GAAG,CAAC;QACb,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE;QACzB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,YAAY,CAAC;QACtB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,mBAAmB,CAAC;QAC7B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,uBAAuB,CAAC;QACjC,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,UAAU,CAAC;QACpB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,eAAe,CAAC;QACzB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,kBAAkB,CAAC;QAC5B;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAU;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAU;IACxC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;QACxB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACvC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;QACxB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB;YACE,OAAO;KACV;AACH,CAAC"}
1
+ {"version":3,"file":"sfen.js","sourceRoot":"","sources":["src/sfen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAQ,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAgB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAExE,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,2CAA4B,CAAA;IAC5B,6CAA8B,CAAA;IAC9B,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,4CAA6B,CAAA;AAC/B,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AACD,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,iIAAiI,CAAC;QAC3I,KAAK,WAAW;YACd,OAAO,2BAA2B,CAAC;QACrC;YACE,OAAO,iEAAiE,CAAC;KAC5E;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,qBAAqB,CAAC;KAChC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,QAAQ,KAAK,EAAE;QACb,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,qBAAqB,CAAC;KAChC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO;YAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,CAAC,CAAC,EAAE;QACT,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;SAC3B,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO;AACT,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,SAAiB;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,sFAAsF;IACtF,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EACvD,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAChE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,EACX,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE;YACzB,KAAK,GAAG,CAAC,CAAC;YACV,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC;SACR;aAAM;YACL,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAChB,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC1C,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;aAC3B;iBAAM;gBACL,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;oBAClE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;oBAAE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,EAC1C,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACzB,KAAK,GAAG,CAAC,CAAC;gBACV,IAAI,EAAE,CAAC;aACR;SACF;KACF;IAED,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,SAAiB;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,MAAM;QAChC,SAAS;QACT,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACrB,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC/B,CAAC,EAAE,CAAC;aACL;SACF;;YAAM,KAAK,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC3C;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAQ,EACR,IAAY,EACZ,MAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,QAAQ;IACR,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAG,EAC9B,KAAK,GAA6B,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAErE,OAAO;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAC5B,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE,QAAQ;IACR,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAClC,QAA2C,EAC3C,eAAmC,CAAC;IACtC,IAAI,KAAK,KAAK,UAAU,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACvB,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;YAC9B,eAAe,GAAG,UAAU,CAAC;SAC9B;KACF;SAAM,IAAI,OAAO,CAAC,SAAS,CAAC;QAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpE,cAAc;IACd,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAClC,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CACzB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAClB,kBAAkB,CAChB,KAAK,EACL,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EACtF,CAAC,CAAC,MAAM,CACT,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,KAAY;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,GAAG,EAAE,EACX,KAAK,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,EAC1C,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK;gBAAE,KAAK,EAAE,CAAC;iBACf;gBACH,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,IAAI,IAAI,KAAK,CAAC;oBACd,KAAK,GAAG,CAAC,CAAC;iBACX;gBACD,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,IAAI,IAAI,KAAK,CAAC;oBACd,KAAK,GAAG,CAAC,CAAC;iBACX;gBACD,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC;oBAAE,IAAI,IAAI,GAAG,CAAC;aAC1C;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAU;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC;SACpB,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAE,EACnC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,KAAY;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,GAAa;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAa;IACpC,OAAO;QACL,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KAC5C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,YAAY;YACf,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,mBAAmB;YACtB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,uBAAuB;YAC1B,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,GAAG,CAAC;QACb,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE;QACzB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,YAAY,CAAC;QACtB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,mBAAmB,CAAC;QAC7B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,uBAAuB,CAAC;QACjC,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,UAAU,CAAC;QACpB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,eAAe,CAAC;QACzB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,kBAAkB,CAAC;QAC5B;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAU;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAU;IACxC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;QACxB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACvC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;QACxB,KAAK,GAAG;YACN,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB;YACE,OAAO;KACV;AACH,CAAC"}
package/src/compat.ts CHANGED
@@ -48,7 +48,11 @@ export function usiToSquareNames(usi: string): SquareName[] {
48
48
  }
49
49
 
50
50
  export function moveToSquareNames(move: Move): SquareName[] {
51
- return isDrop(move) ? [makeSquare(move.to)] : [makeSquare(move.from), makeSquare(move.to)];
51
+ return isDrop(move)
52
+ ? [makeSquare(move.to)]
53
+ : defined(move.midStep)
54
+ ? [makeSquare(move.from), makeSquare(move.midStep), makeSquare(move.to)]
55
+ : [makeSquare(move.from), makeSquare(move.to)];
52
56
  }
53
57
 
54
58
  export function checksSquareNames(pos: Position): SquareName[] {
@@ -77,10 +77,7 @@ export function parseCsaHeader(csa: string): Result<Shogi, CsaError> {
77
77
  defined(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
78
78
  const turn: Color = lines.some(l => l === '-') ? 'gote' : 'sente';
79
79
  return baseBoard.chain(board => {
80
- return Shogi.from(
81
- { board, hands: Hands.empty(), turn, moveNumber: 1, lastMove: undefined, lastCapture: undefined },
82
- true
83
- ).chain(pos =>
80
+ return Shogi.from({ board, hands: Hands.empty(), turn, moveNumber: 1 }, true).chain(pos =>
84
81
  parseAdditions(
85
82
  pos,
86
83
  lines.filter(l => /P[\+|-]/.test(l))
@@ -123,7 +123,12 @@ export function parseKifPositionHeader(kif: string): Result<Position, KifError>
123
123
  senteHand.chain(sHand =>
124
124
  initializePosition(
125
125
  rules,
126
- { board, hands: Hands.from(sHand, gHand), turn, moveNumber: 1, lastMove: undefined, lastCapture: undefined },
126
+ {
127
+ board,
128
+ hands: Hands.from(sHand, gHand),
129
+ turn,
130
+ moveNumber: 1,
131
+ },
127
132
  false
128
133
  )
129
134
  )
package/src/sfen.ts CHANGED
@@ -156,12 +156,12 @@ export function parseSfen<R extends keyof RulesTypeMap>(
156
156
  const handsPart = parts.shift();
157
157
  let hands = Result.ok(Hands.empty()),
158
158
  lastMove: Move | { to: Square } | undefined,
159
- lastCapture: Piece | undefined;
159
+ lastLionCapture: Square | undefined;
160
160
  if (rules === 'chushogi') {
161
161
  const destSquare = defined(handsPart) ? parseSquare(handsPart) : undefined;
162
162
  if (defined(destSquare)) {
163
163
  lastMove = { to: destSquare };
164
- lastCapture = { role: 'lion', color: turn };
164
+ lastLionCapture = destSquare;
165
165
  }
166
166
  } else if (defined(handsPart)) hands = parseHands(rules, handsPart);
167
167
 
@@ -176,7 +176,7 @@ export function parseSfen<R extends keyof RulesTypeMap>(
176
176
  hands.chain(hands =>
177
177
  initializePosition(
178
178
  rules,
179
- { board, hands, turn, moveNumber: Math.max(1, moveNumber), lastMove, lastCapture },
179
+ { board, hands, turn, moveNumber: Math.max(1, moveNumber), lastMove, lastLionCapture },
180
180
  !!strict
181
181
  )
182
182
  )
@@ -228,9 +228,7 @@ export function makeHands(rules: Rules, hands: Hands): string {
228
228
  }
229
229
 
230
230
  function lastLionCapture(pos: Position): string {
231
- if (pos.lastMove && (pos.lastCapture?.role === 'lion' || pos.lastCapture?.role === 'lionpromoted'))
232
- return makeSquare(pos.lastMove.to);
233
- else return '-';
231
+ return defined(pos.lastLionCapture) ? makeSquare(pos.lastLionCapture) : '-';
234
232
  }
235
233
 
236
234
  export function makeSfen(pos: Position): string {
package/src/types.ts CHANGED
@@ -125,13 +125,12 @@ export interface Setup {
125
125
  hands: Hands;
126
126
  turn: Color;
127
127
  moveNumber: number;
128
- lastMove:
128
+ lastMove?:
129
129
  | Move
130
130
  | {
131
131
  to: Square;
132
- }
133
- | undefined;
134
- lastCapture: Piece | undefined;
132
+ };
133
+ lastLionCapture?: Square; // by non-lion piece
135
134
  }
136
135
 
137
136
  export const RESULTS = ['checkmate', 'stalemate', 'draw', 'bareking', 'kinglost'] as const;
package/src/util.ts CHANGED
@@ -54,6 +54,8 @@ export function makeSquare(square: Square): SquareName {
54
54
  return (FILE_NAMES[squareFile(square)] + RANK_NAMES[squareRank(square)]) as SquareName;
55
55
  }
56
56
 
57
+ export const lionRoles: Role[] = ['lion', 'lionpromoted'];
58
+
57
59
  // other roles can't be dropped with any current variant
58
60
  function parseUsiDropRole(ch: string): Role | undefined {
59
61
  switch (ch.toUpperCase()) {
@@ -32,7 +32,7 @@ import { Board } from '../board.js';
32
32
  import { Hands } from '../hands.js';
33
33
  import { SquareSet } from '../squareSet.js';
34
34
  import { Color, Move, Outcome, Piece, Role, Setup, Square, isNormal } from '../types.js';
35
- import { defined, opposite, squareDist } from '../util.js';
35
+ import { defined, lionRoles, opposite, squareDist } from '../util.js';
36
36
  import { Context, IllegalSetup, Position, PositionError } from './position.js';
37
37
  import { allRoles, dimensions, fullSquareSet } from './util.js';
38
38
 
@@ -139,22 +139,17 @@ export class Chushogi extends Position {
139
139
  oppLions = this.board.color(oppColor).intersect(this.board.roles('lion', 'lionpromoted'));
140
140
 
141
141
  // considers only the first step destinations, for second step - secondLionStepDests
142
- if (piece.role === 'lion' || piece.role === 'lionpromoted') {
142
+ if (lionRoles.includes(piece.role)) {
143
143
  const neighbors = kingAttacks(square);
144
144
  // don't allow capture of a non-adjacent lion protected by an enemy piece
145
145
  for (const lion of pseudo.diff(neighbors).intersect(oppLions)) {
146
146
  if (this.squareAttackers(lion, oppColor, this.board.occupied.without(square)).nonEmpty())
147
147
  pseudo = pseudo.without(lion);
148
148
  }
149
- } else if (
150
- this.lastMove &&
151
- this.lastCapture &&
152
- (this.lastCapture.role === 'lion' || this.lastCapture.role === 'lionpromoted')
153
- ) {
154
- const lastDest = this.lastMove.to;
155
- // can't recapture lion on another square (allow capturing lion form kirin promotion)
149
+ } else if (defined(this.lastLionCapture)) {
150
+ // can't recapture lion on another square (allow capturing lion on the same square from kirin promotion)
156
151
  for (const lion of oppLions.intersect(pseudo)) {
157
- if (lion !== lastDest) pseudo = pseudo.without(lion);
152
+ if (lion !== this.lastLionCapture) pseudo = pseudo.without(lion);
158
153
  }
159
154
  }
160
155
 
@@ -314,7 +309,7 @@ export function secondLionStepDests(before: Chushogi, initialSq: Square, midSq:
314
309
  const piece = before.board.get(initialSq);
315
310
  if (!piece || piece.color !== before.turn) return SquareSet.empty();
316
311
 
317
- if (piece.role === 'lion' || piece.role === 'lionpromoted') {
312
+ if (lionRoles.includes(piece.role)) {
318
313
  if (!kingAttacks(initialSq).has(midSq)) return SquareSet.empty();
319
314
  let pseudoDests = kingAttacks(midSq)
320
315
  .diff(before.board.color(before.turn).without(initialSq))
@@ -4,7 +4,7 @@ import { Board } from '../board.js';
4
4
  import { Hands } from '../hands.js';
5
5
  import { SquareSet } from '../squareSet.js';
6
6
  import { COLORS, Color, Move, Outcome, Piece, PieceName, Rules, Setup, Square, isDrop } from '../types.js';
7
- import { defined, makePieceName, opposite } from '../util.js';
7
+ import { defined, lionRoles, makePieceName, opposite } from '../util.js';
8
8
  import { allRoles, fullSquareSet, handRoles, pieceCanPromote, pieceForcePromote, promote, unpromote } from './util.js';
9
9
 
10
10
  export enum IllegalSetup {
@@ -33,7 +33,7 @@ export abstract class Position {
33
33
  turn: Color;
34
34
  moveNumber: number;
35
35
  lastMove: Move | { to: Square } | undefined;
36
- lastCapture: Piece | undefined;
36
+ lastLionCapture: Square | undefined; // by non-lion piece
37
37
 
38
38
  protected constructor(readonly rules: Rules) {}
39
39
 
@@ -60,7 +60,7 @@ export abstract class Position {
60
60
  this.turn = setup.turn;
61
61
  this.moveNumber = setup.moveNumber;
62
62
  this.lastMove = setup.lastMove;
63
- this.lastCapture = setup.lastCapture;
63
+ this.lastLionCapture = setup.lastLionCapture;
64
64
  }
65
65
 
66
66
  clone(): this {
@@ -70,7 +70,7 @@ export abstract class Position {
70
70
  pos.turn = this.turn;
71
71
  pos.moveNumber = this.moveNumber;
72
72
  pos.lastMove = this.lastMove;
73
- pos.lastCapture = this.lastCapture;
73
+ pos.lastLionCapture = this.lastLionCapture;
74
74
  return pos;
75
75
  }
76
76
 
@@ -273,23 +273,29 @@ export abstract class Position {
273
273
  this.moveNumber += 1;
274
274
  this.turn = opposite(turn);
275
275
  this.lastMove = move;
276
- this.lastCapture = this.board.get(move.to);
276
+ this.lastLionCapture = undefined;
277
277
 
278
278
  if (isDrop(move)) {
279
279
  this.board.set(move.to, { role: move.role, color: turn });
280
280
  this.hands[turn].drop(move.role);
281
281
  } else {
282
- const piece = this.board.take(move.from);
283
- if (!piece) return;
282
+ const piece = this.board.take(move.from),
283
+ role = piece?.role;
284
+ if (!role) return;
285
+
284
286
  if (
285
287
  (move.promotion && pieceCanPromote(this.rules)(piece, move.from, move.to, this.board.get(move.to))) ||
286
288
  pieceForcePromote(this.rules)(piece, move.to)
287
289
  )
288
- piece.role = promote(this.rules)(piece.role) || piece.role;
290
+ piece.role = promote(this.rules)(role) || role;
289
291
 
290
292
  const capture = this.board.set(move.to, piece),
291
293
  secondCapture = defined(move.midStep) ? this.board.take(move.midStep) : undefined;
292
- if (capture) this.storeCapture(capture);
294
+ if (capture) {
295
+ if (!lionRoles.includes(role) && capture.color === this.turn && lionRoles.includes(capture.role))
296
+ this.lastLionCapture = move.to;
297
+ this.storeCapture(capture);
298
+ }
293
299
  if (defined(secondCapture)) this.storeCapture(secondCapture);
294
300
  }
295
301
  }
package/types.d.ts CHANGED
@@ -41,10 +41,10 @@ export interface Setup {
41
41
  hands: Hands;
42
42
  turn: Color;
43
43
  moveNumber: number;
44
- lastMove: Move | {
44
+ lastMove?: Move | {
45
45
  to: Square;
46
- } | undefined;
47
- lastCapture: Piece | undefined;
46
+ };
47
+ lastLionCapture?: Square;
48
48
  }
49
49
  export declare const RESULTS: readonly ["checkmate", "stalemate", "draw", "bareking", "kinglost"];
50
50
  export type Result = typeof RESULTS[number];
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["src/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACI,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAOpH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AASjD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,QAAQ;IACR,WAAW;IACX,cAAc;IACd,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,eAAe;IACf,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,QAAQ;IACR,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,MAAM;IACN,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,gBAAgB;CACR,CAAC;AA4BX,MAAM,UAAU,MAAM,CAAC,CAAO;IAC5B,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAO;IAC9B,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAgBD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AAG3F,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["src/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACI,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAOpH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AASjD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,OAAO;IACP,QAAQ;IACR,WAAW;IACX,cAAc;IACd,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,eAAe;IACf,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,QAAQ;IACR,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,MAAM;IACN,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,gBAAgB;CACR,CAAC;AA4BX,MAAM,UAAU,MAAM,CAAC,CAAO;IAC5B,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAO;IAC9B,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAeD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AAG3F,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC"}
package/util.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Color, Move, Piece, PieceName, Square, SquareName } from './types.js';
1
+ import { Color, Move, Piece, PieceName, Role, Square, SquareName } from './types.js';
2
2
  export declare function defined<A>(v: A | undefined): v is A;
3
3
  export declare function opposite(color: Color): Color;
4
4
  export declare function squareRank(square: Square): number;
@@ -10,6 +10,7 @@ export declare function parseCoordinates(file: number, rank: number): Square | u
10
10
  export declare function parseSquare(str: SquareName): Square;
11
11
  export declare function parseSquare(str: string): Square | undefined;
12
12
  export declare function makeSquare(square: Square): SquareName;
13
+ export declare const lionRoles: Role[];
13
14
  export declare const usiDropRegex: RegExp;
14
15
  export declare const usiMoveRegex: RegExp;
15
16
  export declare function parseUsi(str: string): Move | undefined;
package/util.js CHANGED
@@ -39,6 +39,7 @@ export function parseSquare(str) {
39
39
  export function makeSquare(square) {
40
40
  return (FILE_NAMES[squareFile(square)] + RANK_NAMES[squareRank(square)]);
41
41
  }
42
+ export const lionRoles = ['lion', 'lionpromoted'];
42
43
  // other roles can't be dropped with any current variant
43
44
  function parseUsiDropRole(ch) {
44
45
  switch (ch.toUpperCase()) {
package/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["src/util.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Board } from '../board.js';
4
4
  import { Hands } from '../hands.js';
5
5
  import { SquareSet } from '../squareSet.js';
6
6
  import { isNormal } from '../types.js';
7
- import { defined, opposite, squareDist } from '../util.js';
7
+ import { defined, lionRoles, opposite, squareDist } from '../util.js';
8
8
  import { IllegalSetup, Position, PositionError } from './position.js';
9
9
  import { allRoles, dimensions, fullSquareSet } from './util.js';
10
10
  export class Chushogi extends Position {
@@ -84,7 +84,7 @@ export class Chushogi extends Position {
84
84
  let pseudo = attacks(piece, square, this.board.occupied).diff(this.board.color(ctx.color));
85
85
  const oppColor = opposite(ctx.color), oppLions = this.board.color(oppColor).intersect(this.board.roles('lion', 'lionpromoted'));
86
86
  // considers only the first step destinations, for second step - secondLionStepDests
87
- if (piece.role === 'lion' || piece.role === 'lionpromoted') {
87
+ if (lionRoles.includes(piece.role)) {
88
88
  const neighbors = kingAttacks(square);
89
89
  // don't allow capture of a non-adjacent lion protected by an enemy piece
90
90
  for (const lion of pseudo.diff(neighbors).intersect(oppLions)) {
@@ -92,13 +92,10 @@ export class Chushogi extends Position {
92
92
  pseudo = pseudo.without(lion);
93
93
  }
94
94
  }
95
- else if (this.lastMove &&
96
- this.lastCapture &&
97
- (this.lastCapture.role === 'lion' || this.lastCapture.role === 'lionpromoted')) {
98
- const lastDest = this.lastMove.to;
99
- // can't recapture lion on another square (allow capturing lion form kirin promotion)
95
+ else if (defined(this.lastLionCapture)) {
96
+ // can't recapture lion on another square (allow capturing lion on the same square from kirin promotion)
100
97
  for (const lion of oppLions.intersect(pseudo)) {
101
- if (lion !== lastDest)
98
+ if (lion !== this.lastLionCapture)
102
99
  pseudo = pseudo.without(lion);
103
100
  }
104
101
  }
@@ -230,7 +227,7 @@ export function secondLionStepDests(before, initialSq, midSq) {
230
227
  const piece = before.board.get(initialSq);
231
228
  if (!piece || piece.color !== before.turn)
232
229
  return SquareSet.empty();
233
- if (piece.role === 'lion' || piece.role === 'lionpromoted') {
230
+ if (lionRoles.includes(piece.role)) {
234
231
  if (!kingAttacks(initialSq).has(midSq))
235
232
  return SquareSet.empty();
236
233
  let pseudoDests = kingAttacks(midSq)
@@ -1 +1 @@
1
- {"version":3,"file":"chushogi.js","sourceRoot":"","sources":["../src/variant/chushogi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chushogi.js","sourceRoot":"","sources":["../src/variant/chushogi.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export declare abstract class Position {
30
30
  lastMove: Move | {
31
31
  to: Square;
32
32
  } | undefined;
33
- lastCapture: Piece | undefined;
33
+ lastLionCapture: Square | undefined;
34
34
  protected constructor(rules: Rules);
35
35
  abstract moveDests(square: Square, ctx?: Context): SquareSet;
36
36
  abstract dropDests(piece: Piece, ctx?: Context): SquareSet;
@@ -2,7 +2,7 @@ import { Result } from '@badrap/result';
2
2
  import { between, ray } from '../attacks.js';
3
3
  import { SquareSet } from '../squareSet.js';
4
4
  import { COLORS, isDrop } from '../types.js';
5
- import { defined, makePieceName, opposite } from '../util.js';
5
+ import { defined, lionRoles, makePieceName, opposite } from '../util.js';
6
6
  import { allRoles, fullSquareSet, handRoles, pieceCanPromote, pieceForcePromote, promote, unpromote } from './util.js';
7
7
  export var IllegalSetup;
8
8
  (function (IllegalSetup) {
@@ -27,7 +27,7 @@ export class Position {
27
27
  this.turn = setup.turn;
28
28
  this.moveNumber = setup.moveNumber;
29
29
  this.lastMove = setup.lastMove;
30
- this.lastCapture = setup.lastCapture;
30
+ this.lastLionCapture = setup.lastLionCapture;
31
31
  }
32
32
  clone() {
33
33
  const pos = new this.constructor();
@@ -36,7 +36,7 @@ export class Position {
36
36
  pos.turn = this.turn;
37
37
  pos.moveNumber = this.moveNumber;
38
38
  pos.lastMove = this.lastMove;
39
- pos.lastCapture = this.lastCapture;
39
+ pos.lastLionCapture = this.lastLionCapture;
40
40
  return pos;
41
41
  }
42
42
  validate(strict) {
@@ -227,21 +227,24 @@ export class Position {
227
227
  this.moveNumber += 1;
228
228
  this.turn = opposite(turn);
229
229
  this.lastMove = move;
230
- this.lastCapture = this.board.get(move.to);
230
+ this.lastLionCapture = undefined;
231
231
  if (isDrop(move)) {
232
232
  this.board.set(move.to, { role: move.role, color: turn });
233
233
  this.hands[turn].drop(move.role);
234
234
  }
235
235
  else {
236
- const piece = this.board.take(move.from);
237
- if (!piece)
236
+ const piece = this.board.take(move.from), role = piece === null || piece === void 0 ? void 0 : piece.role;
237
+ if (!role)
238
238
  return;
239
239
  if ((move.promotion && pieceCanPromote(this.rules)(piece, move.from, move.to, this.board.get(move.to))) ||
240
240
  pieceForcePromote(this.rules)(piece, move.to))
241
- piece.role = promote(this.rules)(piece.role) || piece.role;
241
+ piece.role = promote(this.rules)(role) || role;
242
242
  const capture = this.board.set(move.to, piece), secondCapture = defined(move.midStep) ? this.board.take(move.midStep) : undefined;
243
- if (capture)
243
+ if (capture) {
244
+ if (!lionRoles.includes(role) && capture.color === this.turn && lionRoles.includes(capture.role))
245
+ this.lastLionCapture = move.to;
244
246
  this.storeCapture(capture);
247
+ }
245
248
  if (defined(secondCapture))
246
249
  this.storeCapture(secondCapture);
247
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../src/variant/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../src/variant/position.ts"],"names":[],"mappings":"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"}