From bae3a2c21295507c0c8139fe92f695be603989a7 Mon Sep 17 00:00:00 2001 From: Chathulanka Gamage Date: Tue, 28 Jan 2025 19:43:53 +0000 Subject: [PATCH 01/39] cg: ===true to !! and !==true to ! for boolean|undefined typed --- ui/coordinateTrainer/src/ctrl.ts | 2 +- ui/round/src/crazy/crazyCtrl.ts | 2 +- ui/round/src/ctrl.ts | 2 +- ui/swiss/src/view/standing.ts | 4 ++-- ui/voice/makeGrammar.mts | 2 +- ui/voice/src/mic.ts | 2 +- ui/voice/src/move/voice.move.ts | 2 +- ui/voice/src/util.ts | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ui/coordinateTrainer/src/ctrl.ts b/ui/coordinateTrainer/src/ctrl.ts index ae50c4d8ae07e..8b1d5ed83aa4a 100644 --- a/ui/coordinateTrainer/src/ctrl.ts +++ b/ui/coordinateTrainer/src/ctrl.ts @@ -254,7 +254,7 @@ export default class CoordinateTrainerCtrl { advanceCoordinates = () => { this.currentKey = this.nextKey; - if (this.selectionEnabled() === true) + if (this.selectionEnabled() ) this.nextKey = newKey(this.nextKey, this.selectedFiles, this.selectedRanks); else this.nextKey = newKey(this.nextKey); diff --git a/ui/round/src/crazy/crazyCtrl.ts b/ui/round/src/crazy/crazyCtrl.ts index 94ff172b68614..8c800b6cfa47f 100644 --- a/ui/round/src/crazy/crazyCtrl.ts +++ b/ui/round/src/crazy/crazyCtrl.ts @@ -43,7 +43,7 @@ export function valid(data: RoundData, role: Role, key: Key): boolean { const drops = dropStr.match(/.{2}/g); - return drops?.includes(key) === true; + return !!drops?.includes(key); } export function onEnd(): void { diff --git a/ui/round/src/ctrl.ts b/ui/round/src/ctrl.ts index 9e52423fa6152..55fa8ac9794bd 100644 --- a/ui/round/src/ctrl.ts +++ b/ui/round/src/ctrl.ts @@ -777,7 +777,7 @@ export default class RoundController implements MoveRootCtrl { rematch(accept?: boolean): boolean { if (accept === undefined) - return this.data.opponent.offeringRematch === true || this.data.player.offeringRematch === true; + return !!this.data.opponent.offeringRematch || !!this.data.player.offeringRematch; else if (accept) { if (this.data.game.rematch) location.href = gameRoute(this.data.game.rematch, this.data.opponent.color); if (!game.rematchable(this.data)) return false; diff --git a/ui/swiss/src/view/standing.ts b/ui/swiss/src/view/standing.ts index 738602ea51a7e..08384a269d716 100644 --- a/ui/swiss/src/view/standing.ts +++ b/ui/swiss/src/view/standing.ts @@ -36,9 +36,9 @@ function playerTr(ctrl: SwissCtrl, player: Player) { ? h(p, title('Late'), '½') : h( 'a.glpt.' + - (p.o ? 'ongoing' : p.w === true ? 'win' : p.w === false ? 'loss' : 'draw'), + (p.o ? 'ongoing' : !!p.w ? 'win' : p.w === false ? 'loss' : 'draw'), { attrs: { key: p.g, href: `/${p.g}` }, hook: onInsert(site.powertip.manualGame) }, - p.o ? '*' : p.w === true ? '1' : p.w === false ? '0' : '½', + p.o ? '*' : !!p.w ? '1' : p.w === false ? '0' : '½', ), ) .concat([...Array(Math.max(0, ctrl.data.nbRounds - player.sheet.length))].map(_ => h('r'))), diff --git a/ui/voice/makeGrammar.mts b/ui/voice/makeGrammar.mts index 7b293b68e2d05..1919b13991822 100644 --- a/ui/voice/makeGrammar.mts +++ b/ui/voice/makeGrammar.mts @@ -115,7 +115,7 @@ function findTransforms( function validOps(h: string, x: string, pos: number, mode: SubRestriction) { const validOps: { hnext: string; op: Transform | 'skip' }[] = []; if (h[pos] === x[pos]) validOps.push({ hnext: h, op: 'skip' }); - const minSlice = mode.del !== true || validOps.length > 0 ? 1 : 0; + const minSlice = !mode.del || validOps.length > 0 ? 1 : 0; let slen = Math.min(mode.sub ?? 0, x.length - pos); while (slen >= minSlice) { const slice = x.slice(pos, pos + slen); diff --git a/ui/voice/src/mic.ts b/ui/voice/src/mic.ts index 2791bbfc77807..d085251735850 100644 --- a/ui/voice/src/mic.ts +++ b/ui/voice/src/mic.ts @@ -80,7 +80,7 @@ export class Mic implements Microphone { return; } const recId = also.recId ?? 'default'; - const rec = new RecNode(words.slice(), also.partial === true); + const rec = new RecNode(words.slice(), !!also.partial); if (this.vosk?.isLoaded(this.lang)) this.initKaldi(recId, rec); this.recs.add(recId, rec); if (also.listener) this.addListener(also.listener, { recId, listenerId: also.listenerId }); diff --git a/ui/voice/src/move/voice.move.ts b/ui/voice/src/move/voice.move.ts index 22c2a552d2f41..b74b585398399 100644 --- a/ui/voice/src/move/voice.move.ts +++ b/ui/voice/src/move/voice.move.ts @@ -112,7 +112,7 @@ export function initModule({ function initDefaultRec() { const excludeTag = root?.vote ? 'round' : 'puzzle'; // reduce unneeded vocabulary - const words = tagWords().filter(x => byWord.get(x)?.tags?.includes(excludeTag) !== true); + const words = tagWords().filter(x => !byWord.get(x)?.tags?.includes(excludeTag)); voice.mic.initRecognizer(words, { listener: listen }); } diff --git a/ui/voice/src/util.ts b/ui/voice/src/util.ts index c2a982239c9d1..e2b31638a10ea 100644 --- a/ui/voice/src/util.ts +++ b/ui/voice/src/util.ts @@ -33,7 +33,7 @@ export function findTransforms( function validOps(h: string, x: string, pos: number) { const validOps: { hnext: string; op: Transform | 'skip' }[] = []; if (h[pos] === x[pos]) validOps.push({ hnext: h, op: 'skip' }); - const minSlice = mode.del !== true || validOps.length > 0 ? 1 : 0; + const minSlice = !mode.del || validOps.length > 0 ? 1 : 0; let slen = Math.min(mode.sub ?? 0, x.length - pos); while (slen >= minSlice) { const slice = x.slice(pos, pos + slen); From a93e162fae78bde5aeb1ff90e1b0134c3fb436a5 Mon Sep 17 00:00:00 2001 From: Chathulanka Gamage Date: Tue, 28 Jan 2025 19:50:30 +0000 Subject: [PATCH 02/39] scalafmt --- ui/coordinateTrainer/src/ctrl.ts | 3 +-- ui/swiss/src/view/standing.ts | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ui/coordinateTrainer/src/ctrl.ts b/ui/coordinateTrainer/src/ctrl.ts index 8b1d5ed83aa4a..c44a329ae8ead 100644 --- a/ui/coordinateTrainer/src/ctrl.ts +++ b/ui/coordinateTrainer/src/ctrl.ts @@ -254,8 +254,7 @@ export default class CoordinateTrainerCtrl { advanceCoordinates = () => { this.currentKey = this.nextKey; - if (this.selectionEnabled() ) - this.nextKey = newKey(this.nextKey, this.selectedFiles, this.selectedRanks); + if (this.selectionEnabled()) this.nextKey = newKey(this.nextKey, this.selectedFiles, this.selectedRanks); else this.nextKey = newKey(this.nextKey); if (this.mode() === 'nameSquare') diff --git a/ui/swiss/src/view/standing.ts b/ui/swiss/src/view/standing.ts index 08384a269d716..c48cc23574e36 100644 --- a/ui/swiss/src/view/standing.ts +++ b/ui/swiss/src/view/standing.ts @@ -35,8 +35,7 @@ function playerTr(ctrl: SwissCtrl, player: Player) { : p == 'late' ? h(p, title('Late'), '½') : h( - 'a.glpt.' + - (p.o ? 'ongoing' : !!p.w ? 'win' : p.w === false ? 'loss' : 'draw'), + 'a.glpt.' + (p.o ? 'ongoing' : !!p.w ? 'win' : p.w === false ? 'loss' : 'draw'), { attrs: { key: p.g, href: `/${p.g}` }, hook: onInsert(site.powertip.manualGame) }, p.o ? '*' : !!p.w ? '1' : p.w === false ? '0' : '½', ), From fea7e72836d8636ab808192a1c9f29dd3f2b6e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= Date: Tue, 28 Jan 2025 21:31:22 +0000 Subject: [PATCH 03/39] gdpr - use route delete instead close --- modules/web/src/main/ui/contact.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/web/src/main/ui/contact.scala b/modules/web/src/main/ui/contact.scala index 9b4f51253e17b..f726f10152ffd 100644 --- a/modules/web/src/main/ui/contact.scala +++ b/modules/web/src/main/ui/contact.scala @@ -265,7 +265,7 @@ object contact: p("You may request the deletion of your Lichess account."), p( "First, ", - a(href := routes.Account.close)("close your account"), + a(href := routes.Account.delete)("delete your account"), "." ), p( From 38a4dc787289e88bfe02e85f87656969644a84c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= Date: Tue, 28 Jan 2025 21:56:00 +0000 Subject: [PATCH 04/39] contact close - can close forever --- modules/coreI18n/src/main/key.scala | 1 + modules/web/src/main/ui/contact.scala | 1 + translation/source/contact.xml | 1 + ui/@types/lichess/i18n.d.ts | 2 ++ 4 files changed, 5 insertions(+) diff --git a/modules/coreI18n/src/main/key.scala b/modules/coreI18n/src/main/key.scala index 3773d57ab9250..07d1bb2b1e297 100644 --- a/modules/coreI18n/src/main/key.scala +++ b/modules/coreI18n/src/main/key.scala @@ -382,6 +382,7 @@ object I18nKey: val `visitTitleConfirmation`: I18nKey = "contact:visitTitleConfirmation" val `wantCloseAccount`: I18nKey = "contact:wantCloseAccount" val `closeYourAccount`: I18nKey = "contact:closeYourAccount" + val `canCloseForever`: I18nKey = "contact:canCloseForever" val `doNotAskByEmail`: I18nKey = "contact:doNotAskByEmail" val `wantReopen`: I18nKey = "contact:wantReopen" val `reopenOnThisPage`: I18nKey = "contact:reopenOnThisPage" diff --git a/modules/web/src/main/ui/contact.scala b/modules/web/src/main/ui/contact.scala index f726f10152ffd..d4b4f99c2d1eb 100644 --- a/modules/web/src/main/ui/contact.scala +++ b/modules/web/src/main/ui/contact.scala @@ -109,6 +109,7 @@ object contact: wantCloseAccount(), frag( p(a(href := routes.Account.close)(closeYourAccount()), "."), + p(canCloseForever()), p(doNotAskByEmail()) ) ), diff --git a/translation/source/contact.xml b/translation/source/contact.xml index 58165b14468f5..b175b3f0e7f6a 100644 --- a/translation/source/contact.xml +++ b/translation/source/contact.xml @@ -16,6 +16,7 @@ To show your title on your Lichess profile, and participate in Titled Arenas, visit the title confirmation page I want to close my account You can close your account on this page + You can close your account forever, preventing future reopenings. Do not ask us by email to close an account, we won't do it. I want to reopen my account You can reopen your account on this page. It only works once. diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index 75859de752689..49a3e0280bf9d 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -705,6 +705,8 @@ interface I18n { buyingLichess: string; /** It is called "en passant" and is one of the rules of chess. */ calledEnPassant: string; + /** You can close your account forever, preventing future reopenings. */ + canCloseForever: string; /** We can't change more than the case. For technical reasons, it's downright impossible. */ cantChangeMore: string; /** It's not possible to clear your game history, puzzle history, or ratings. */ From 5ba9b385014cce02fb7c8e27c4621af97b9ef1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= Date: Tue, 28 Jan 2025 22:05:12 +0000 Subject: [PATCH 05/39] contact reopen - if closed forever --- modules/coreI18n/src/main/key.scala | 1 + modules/web/src/main/ui/contact.scala | 1 + translation/source/contact.xml | 1 + ui/@types/lichess/i18n.d.ts | 2 ++ 4 files changed, 5 insertions(+) diff --git a/modules/coreI18n/src/main/key.scala b/modules/coreI18n/src/main/key.scala index 07d1bb2b1e297..1b95f2275a9fe 100644 --- a/modules/coreI18n/src/main/key.scala +++ b/modules/coreI18n/src/main/key.scala @@ -386,6 +386,7 @@ object I18nKey: val `doNotAskByEmail`: I18nKey = "contact:doNotAskByEmail" val `wantReopen`: I18nKey = "contact:wantReopen" val `reopenOnThisPage`: I18nKey = "contact:reopenOnThisPage" + val `ifClosedForever`: I18nKey = "contact:ifClosedForever" val `doNotAskByEmailToReopen`: I18nKey = "contact:doNotAskByEmailToReopen" val `wantChangeUsername`: I18nKey = "contact:wantChangeUsername" val `changeUsernameCase`: I18nKey = "contact:changeUsernameCase" diff --git a/modules/web/src/main/ui/contact.scala b/modules/web/src/main/ui/contact.scala index d4b4f99c2d1eb..88e4059f7b16c 100644 --- a/modules/web/src/main/ui/contact.scala +++ b/modules/web/src/main/ui/contact.scala @@ -28,6 +28,7 @@ object contact: wantReopen(), frag( p(a(href := routes.Account.reopen)(reopenOnThisPage())), + p(ifClosedForever()), p(doNotAskByEmailToReopen()) ) ) diff --git a/translation/source/contact.xml b/translation/source/contact.xml index b175b3f0e7f6a..13914cbb15077 100644 --- a/translation/source/contact.xml +++ b/translation/source/contact.xml @@ -20,6 +20,7 @@ Do not ask us by email to close an account, we won't do it. I want to reopen my account You can reopen your account on this page. It only works once. + If you have closed your account forever, you will not be able to reopen it. Do not ask us by email to reopen an account, we won't do it. I want to change my username Visit this page to change the case of your username diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index 49a3e0280bf9d..fdb4c8b50a3c1 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -761,6 +761,8 @@ interface I18n { howToReportBug: string; /** I can't log in */ iCantLogIn: string; + /** If you have closed your account forever, you will not be able to reopen it. */ + ifClosedForever: string; /** If your appeal is legitimate, we will lift the ban ASAP. */ ifLegit: string; /** Illegal or impossible castling */ From f9842512c41e1348b91c26de9e07f8ba33b927c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= Date: Tue, 28 Jan 2025 23:48:16 +0000 Subject: [PATCH 06/39] Rephrase text --- translation/source/contact.xml | 2 +- ui/@types/lichess/i18n.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/translation/source/contact.xml b/translation/source/contact.xml index 13914cbb15077..f2e5c4bcb3539 100644 --- a/translation/source/contact.xml +++ b/translation/source/contact.xml @@ -16,7 +16,7 @@ To show your title on your Lichess profile, and participate in Titled Arenas, visit the title confirmation page I want to close my account You can close your account on this page - You can close your account forever, preventing future reopenings. + If you want to close your account permanently, enable the "Forever close" option, but no one will be able to reopen your account. Do not ask us by email to close an account, we won't do it. I want to reopen my account You can reopen your account on this page. It only works once. diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index fdb4c8b50a3c1..1d00a39008917 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -705,7 +705,7 @@ interface I18n { buyingLichess: string; /** It is called "en passant" and is one of the rules of chess. */ calledEnPassant: string; - /** You can close your account forever, preventing future reopenings. */ + /** If you want to close your account permanently, enable the "Forever close" option, but no one will be able to reopen your account. */ canCloseForever: string; /** We can't change more than the case. For technical reasons, it's downright impossible. */ cantChangeMore: string; From dad3383a48d6edca23e6f59632f8768a48e65ef5 Mon Sep 17 00:00:00 2001 From: johndoknjas Date: Tue, 28 Jan 2025 22:12:54 -0800 Subject: [PATCH 07/39] Allow rated 'fromPosition' challenges only when the standard starting fen is used. Also remove any underscores from used-inputted FENs, and create a site variable for the starting FEN (non-functional changes). --- translation/source/site.xml | 1 + ui/@types/lichess/i18n.d.ts | 2 ++ ui/game/tests/status.test.ts | 8 ++------ ui/keyboardMove/tests/keyboardSubmit.test.ts | 2 +- ui/lobby/src/setupCtrl.ts | 2 +- ui/lobby/src/view/setup/components/fenInput.ts | 6 +++--- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/translation/source/site.xml b/translation/source/site.xml index b8d17e98bece2..185a67ec57ae4 100644 --- a/translation/source/site.xml +++ b/translation/source/site.xml @@ -508,6 +508,7 @@ Endgame positions Chess960 start position: %s Starting position + rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 Clear board Load position Private diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index 75859de752689..0db3fdf06efcf 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -4015,6 +4015,8 @@ interface I18n { startedStreaming: string; /** Starting: */ starting: string; + /** rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 */ + startPosFEN: string; /** Starting position */ startPosition: string; /** Stats */ diff --git a/ui/game/tests/status.test.ts b/ui/game/tests/status.test.ts index 028cf4604a7a5..b548b0a726d81 100644 --- a/ui/game/tests/status.test.ts +++ b/ui/game/tests/status.test.ts @@ -3,7 +3,7 @@ import { bishopOnColor, expandFen, insufficientMaterial } from '../src/view/stat describe('expand fen', () => { test('starting position', () => - expect(expandFen('rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')).toBe( + expect(expandFen(i18n.site.startPosFEN)).toBe( 'rnbqkbnrpppppppp11111111111111111111111111111111PPPPPPPPRNBQKBNR', )); test('middlegame position', () => @@ -48,11 +48,7 @@ describe('should not be insufficient material', () => { ['atomic'], ['antichess'], ['threeCheck'], - ])('variant %s', variant => - expect(insufficientMaterial(variant, 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')).toBe( - false, - ), - ); + ])('variant %s', variant => expect(insufficientMaterial(variant, i18n.site.startPosFEN)).toBe(false)); test('pawn is never insufficient material', () => expect(insufficientMaterial('standard', '4k3/8/8/8/8/8/7P/4K3 w - - 0 1')).toBe(false)); diff --git a/ui/keyboardMove/tests/keyboardSubmit.test.ts b/ui/keyboardMove/tests/keyboardSubmit.test.ts index 4c21bdab42597..154e11395ba77 100644 --- a/ui/keyboardMove/tests/keyboardSubmit.test.ts +++ b/ui/keyboardMove/tests/keyboardSubmit.test.ts @@ -10,7 +10,7 @@ import { destsToUcis, sanWriter } from 'chess'; // - use https://lichess.org/editor to create positions and get their FENs // - use https://lichess.org/editor/ to check what FENs look like -const startingFen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1'; +const startingFen = i18n.site.startPosFEN; const toDestsMap = (obj: object) => new Map(Object.entries(obj)) as Dests; const fenDestsToSans = (fen: string, dests: Record) => sanWriter(fen, destsToUcis(toDestsMap(dests))); diff --git a/ui/lobby/src/setupCtrl.ts b/ui/lobby/src/setupCtrl.ts index a2fd70e22e5ea..3acf1f9adbfb2 100644 --- a/ui/lobby/src/setupCtrl.ts +++ b/ui/lobby/src/setupCtrl.ts @@ -226,7 +226,7 @@ export default class SetupController { // anonymous games cannot be rated !this.root.me || this.timeMode() === 'unlimited' || - this.variant() === 'fromPosition' || + (this.variant() === 'fromPosition' && this.fen() !== i18n.site.startPosFEN) || // variants with very low time cannot be rated (this.variant() !== 'standard' && (this.timeMode() !== 'realTime' || diff --git a/ui/lobby/src/view/setup/components/fenInput.ts b/ui/lobby/src/view/setup/components/fenInput.ts index cbb22bfb1b030..a16f793b70262 100644 --- a/ui/lobby/src/view/setup/components/fenInput.ts +++ b/ui/lobby/src/view/setup/components/fenInput.ts @@ -13,7 +13,7 @@ export const fenInput = (ctrl: LobbyController) => { attrs: { placeholder: i18n.site.pasteTheFenStringHere, value: fen }, on: { input: (e: InputEvent) => { - setupCtrl.fen((e.target as HTMLInputElement).value.trim()); + setupCtrl.fen((e.target as HTMLInputElement).value.replace(/_/g, ' ').trim()); setupCtrl.validateFen(); }, }, @@ -24,13 +24,13 @@ export const fenInput = (ctrl: LobbyController) => { attrs: { 'data-icon': licon.Pencil, title: i18n.site.boardEditor, - href: '/editor' + (fen && !setupCtrl.fenError ? `/${fen.replace(' ', '_')}` : ''), + href: '/editor' + (fen && !setupCtrl.fenError ? `/${fen.replace(/ /g, '_')}` : ''), }, }), ]), h( 'a.fen__board', - { attrs: { href: `/editor/${setupCtrl.lastValidFen.replace(' ', '_')}` } }, + { attrs: { href: `/editor/${setupCtrl.lastValidFen.replace(/ /g, '_')}` } }, !setupCtrl.lastValidFen || !setupCtrl.validFen() ? null : h( From 19a2204c7ec9a0484b624997c0fd304c3c4c15cf Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 10:15:06 +0100 Subject: [PATCH 08/39] remove superfluous translations - they can see the option to close forever on the /account/close page - they get an error message when trying to reopen a forever closed account --- modules/coreI18n/src/main/key.scala | 2 -- modules/web/src/main/ui/contact.scala | 2 -- translation/source/contact.xml | 4 +--- ui/@types/lichess/i18n.d.ts | 6 +----- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/modules/coreI18n/src/main/key.scala b/modules/coreI18n/src/main/key.scala index 1b95f2275a9fe..3773d57ab9250 100644 --- a/modules/coreI18n/src/main/key.scala +++ b/modules/coreI18n/src/main/key.scala @@ -382,11 +382,9 @@ object I18nKey: val `visitTitleConfirmation`: I18nKey = "contact:visitTitleConfirmation" val `wantCloseAccount`: I18nKey = "contact:wantCloseAccount" val `closeYourAccount`: I18nKey = "contact:closeYourAccount" - val `canCloseForever`: I18nKey = "contact:canCloseForever" val `doNotAskByEmail`: I18nKey = "contact:doNotAskByEmail" val `wantReopen`: I18nKey = "contact:wantReopen" val `reopenOnThisPage`: I18nKey = "contact:reopenOnThisPage" - val `ifClosedForever`: I18nKey = "contact:ifClosedForever" val `doNotAskByEmailToReopen`: I18nKey = "contact:doNotAskByEmailToReopen" val `wantChangeUsername`: I18nKey = "contact:wantChangeUsername" val `changeUsernameCase`: I18nKey = "contact:changeUsernameCase" diff --git a/modules/web/src/main/ui/contact.scala b/modules/web/src/main/ui/contact.scala index 88e4059f7b16c..f726f10152ffd 100644 --- a/modules/web/src/main/ui/contact.scala +++ b/modules/web/src/main/ui/contact.scala @@ -28,7 +28,6 @@ object contact: wantReopen(), frag( p(a(href := routes.Account.reopen)(reopenOnThisPage())), - p(ifClosedForever()), p(doNotAskByEmailToReopen()) ) ) @@ -110,7 +109,6 @@ object contact: wantCloseAccount(), frag( p(a(href := routes.Account.close)(closeYourAccount()), "."), - p(canCloseForever()), p(doNotAskByEmail()) ) ), diff --git a/translation/source/contact.xml b/translation/source/contact.xml index f2e5c4bcb3539..4c3d7859bc668 100644 --- a/translation/source/contact.xml +++ b/translation/source/contact.xml @@ -16,11 +16,9 @@ To show your title on your Lichess profile, and participate in Titled Arenas, visit the title confirmation page I want to close my account You can close your account on this page - If you want to close your account permanently, enable the "Forever close" option, but no one will be able to reopen your account. Do not ask us by email to close an account, we won't do it. I want to reopen my account - You can reopen your account on this page. It only works once. - If you have closed your account forever, you will not be able to reopen it. + You can reopen your account on this page. Do not ask us by email to reopen an account, we won't do it. I want to change my username Visit this page to change the case of your username diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index 1d00a39008917..cb9be5755f35b 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -705,8 +705,6 @@ interface I18n { buyingLichess: string; /** It is called "en passant" and is one of the rules of chess. */ calledEnPassant: string; - /** If you want to close your account permanently, enable the "Forever close" option, but no one will be able to reopen your account. */ - canCloseForever: string; /** We can't change more than the case. For technical reasons, it's downright impossible. */ cantChangeMore: string; /** It's not possible to clear your game history, puzzle history, or ratings. */ @@ -761,8 +759,6 @@ interface I18n { howToReportBug: string; /** I can't log in */ iCantLogIn: string; - /** If you have closed your account forever, you will not be able to reopen it. */ - ifClosedForever: string; /** If your appeal is legitimate, we will lift the ban ASAP. */ ifLegit: string; /** Illegal or impossible castling */ @@ -793,7 +789,7 @@ interface I18n { otherRestriction: string; /** Make sure you played a rated game. Casual games do not affect the players ratings. */ ratedGame: string; - /** You can reopen your account on this page. It only works once. */ + /** You can reopen your account on this page. */ reopenOnThisPage: string; /** In the Lichess Discord server */ reportBugInDiscord: string; From 4ac3f27f83009ec45e616698c15a989057a05f27 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 10:25:06 +0100 Subject: [PATCH 09/39] update the /contact link to account deletion --- modules/web/src/main/ui/contact.scala | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/modules/web/src/main/ui/contact.scala b/modules/web/src/main/ui/contact.scala index f726f10152ffd..facfc3bcae239 100644 --- a/modules/web/src/main/ui/contact.scala +++ b/modules/web/src/main/ui/contact.scala @@ -260,19 +260,10 @@ object contact: List( Leaf( "gdpr", - "GDPR", - frag( - p("You may request the deletion of your Lichess account."), - p( - "First, ", - a(href := routes.Account.delete)("delete your account"), - "." - ), - p( - "Then send us an email at ", - contactEmailLink(contactEmail.value), - " to request the definitive erasure of all data linked to the account." - ) + "GDPR erasure", + p( + "You may request the ", + a(href := routes.Account.delete)("complete deletion of your Lichess account.") ) ), Leaf( From 197bd990063dd38f13f06f3257d13812ed514cda Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 10:40:57 +0100 Subject: [PATCH 10/39] don't consider mod account closure during account deletion --- modules/api/src/main/AccountTermination.scala | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/api/src/main/AccountTermination.scala b/modules/api/src/main/AccountTermination.scala index 630019afe4733..73ca6420e52e6 100644 --- a/modules/api/src/main/AccountTermination.scala +++ b/modules/api/src/main/AccountTermination.scala @@ -135,9 +135,8 @@ final class AccountTermination( else doDeleteNow(user, del).inject(user.some) private def doDeleteNow(u: User, del: UserDelete): Funit = for - playbanned <- playbanApi.hasCurrentPlayban(u.id) - closedByMod <- modLogApi.closedByMod(u) - tos = u.marks.dirty || closedByMod || playbanned + playbanned <- playbanApi.hasCurrentPlayban(u.id) + tos = u.marks.dirty || playbanned _ = logger.info(s"Deleting user ${u.username} tos=$tos erase=${del.erase}") _ <- if tos then userRepo.delete.nowWithTosViolation(u) else userRepo.delete.nowFully(u) _ <- activityWrite.deleteAll(u) From 154b9318e166ea0bfb36ca2b6e66d80d20f5b6f8 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 10:42:40 +0100 Subject: [PATCH 11/39] save deletion date --- modules/user/src/main/UserRepo.scala | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/user/src/main/UserRepo.scala b/modules/user/src/main/UserRepo.scala index 4acd814d67c46..da0852ca18d42 100644 --- a/modules/user/src/main/UserRepo.scala +++ b/modules/user/src/main/UserRepo.scala @@ -370,11 +370,12 @@ final class UserRepo(c: Coll)(using Executor) extends lila.core.user.UserRepo(c) bpass, "mustConfirmEmail", colorIt, - F.foreverClosed + F.foreverClosed, + F.delete ) coll.update.one( $id(user.id), - $unset(fields) ++ $set(s"${F.delete}.done" -> true) + $unset(fields) ++ $set("deletedAt" -> nowInstant) ) def nowFully(user: User) = for @@ -382,9 +383,9 @@ final class UserRepo(c: Coll)(using Executor) extends lila.core.user.UserRepo(c) _ <- coll.update.one( $id(user.id), $doc( - "prevEmail" -> lockEmail, - "createdAt" -> user.createdAt, - s"${F.delete}.done" -> true + "prevEmail" -> lockEmail, + "createdAt" -> user.createdAt, + "deletedAt" -> nowInstant ) ) yield () From 055ff5c07edd523579d3208201c0ace765f91e0e Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:17:23 +0100 Subject: [PATCH 12/39] fix and optimize deletion of swiss participation --- modules/api/src/main/AccountTermination.scala | 3 ++- modules/game/src/main/GameRepo.scala | 3 +++ modules/swiss/src/main/SwissApi.scala | 15 +++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/api/src/main/AccountTermination.scala b/modules/api/src/main/AccountTermination.scala index 73ca6420e52e6..38ac2c4385b81 100644 --- a/modules/api/src/main/AccountTermination.scala +++ b/modules/api/src/main/AccountTermination.scala @@ -144,7 +144,8 @@ final class AccountTermination( _ <- analysisRepo.remove(singlePlayerGameIds) _ <- deleteAllGameChats(u) _ <- streamerApi.delete(u) - _ <- del.erase.so(swissApi.onUserErase(u.id)) + swissIds <- gameRepo.swissIdsOf(u.id) + _ <- swissIds.nonEmpty.so(swissApi.onUserDelete(u.id, swissIds)) _ <- teamApi.onUserDelete(u.id) _ <- ublogApi.onAccountDelete(u) _ <- u.marks.clean.so: diff --git a/modules/game/src/main/GameRepo.scala b/modules/game/src/main/GameRepo.scala index 2cf82b6d74a4d..37f0b19d67cca 100644 --- a/modules/game/src/main/GameRepo.scala +++ b/modules/game/src/main/GameRepo.scala @@ -577,3 +577,6 @@ final class GameRepo(c: Coll)(using Executor) extends lila.core.game.GameRepo(c) allIds = aiIds ::: importIds _ <- coll.delete.one($inIds(allIds)) yield allIds + + // expensive, enumerates all the player's games + def swissIdsOf(id: UserId): Fu[Set[SwissId]] = coll.distinctEasy[SwissId, Set](F.swissId, Query.user(id)) diff --git a/modules/swiss/src/main/SwissApi.scala b/modules/swiss/src/main/SwissApi.scala index 0e6aef1d6aea3..07063c2652304 100644 --- a/modules/swiss/src/main/SwissApi.scala +++ b/modules/swiss/src/main/SwissApi.scala @@ -683,23 +683,22 @@ final class SwissApi( def idNames(ids: List[SwissId]): Fu[List[IdName]] = mongo.swiss.find($inIds(ids), idNameProjection.some).cursor[IdName]().listAll() - // very expensive, misses several indexes - def onUserErase(u: UserId) = for + def onUserDelete(u: UserId, ids: Set[SwissId]) = for _ <- mongo.swiss.update.one( - $doc("winnerId" -> u), + $inIds(ids) ++ $doc("winnerId" -> u), $set("winnerId" -> UserId.ghost), multi = true - ) // no index!!! - players <- mongo.player.list[SwissPlayer]($doc("u" -> u), _.priTemp) // no index!!! - swissIds = players.map(_.swissId).distinct + ) + playerIds = ids.map(SwissPlayer.makeId(_, u)) + players <- mongo.player.list[SwissPlayer]($inIds(playerIds), _.priTemp) // here we use a single ghost ID for all swiss players and pairings, // because the mapping of swiss player to swiss pairings must be preserved ghostId = UserId(s"!${scalalib.ThreadLocalRandom.nextString(8)}") newPlayers = players.map: p => p.copy(id = SwissPlayer.makeId(p.swissId, ghostId), userId = ghostId) - _ <- mongo.player.delete.one($inIds(players.map(_.id))) + _ <- mongo.player.delete.one($inIds(playerIds)) _ <- mongo.player.insert.many(newPlayers) - _ <- mongo.pairing.update.one($inIds(swissIds) ++ $doc("p" -> u), $set("p.$" -> ghostId), multi = true) + _ <- mongo.pairing.update.one($doc("s".$in(ids), "p" -> u), $set("p.$" -> ghostId), multi = true) yield () private def Sequencing[A <: Matchable: alleycats.Zero]( From 258175968cfdd9c9a2bba15e7342a26ba3781c36 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:20:54 +0100 Subject: [PATCH 13/39] add index to the note collection --- bin/mongodb/indexes.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/mongodb/indexes.js b/bin/mongodb/indexes.js index ca55a91a152d5..dbe714cfd89d1 100644 --- a/bin/mongodb/indexes.js +++ b/bin/mongodb/indexes.js @@ -89,6 +89,7 @@ db.fide_player.createIndex( { weights: { token: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 }, ); db.note.createIndex({ to: 1, date: -1 }, { background: 1 }); +db.note.createIndex({ from: 1 }); db.note.createIndex( { _fts: 'text', _ftsx: 1, dox: 1, date: -1 }, { From 07a61e1f1d54f918b729340cd74e13a903bc6c3d Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:31:42 +0100 Subject: [PATCH 14/39] fix study deletion --- modules/study/src/main/Env.scala | 1 + modules/study/src/main/StudyRepo.scala | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/study/src/main/Env.scala b/modules/study/src/main/Env.scala index cb5a48b8a61f2..fc39e8f725a07 100644 --- a/modules/study/src/main/Env.scala +++ b/modules/study/src/main/Env.scala @@ -114,5 +114,6 @@ final class Env( for studyIds <- studyRepo.deletePrivateByOwner(del.id) _ <- chapterRepo.deleteByStudyIds(studyIds) + _ <- studyRepo.anonymizeAllOf(del.id) _ <- topicApi.userTopicsDelete(del.id) yield () diff --git a/modules/study/src/main/StudyRepo.scala b/modules/study/src/main/StudyRepo.scala index 473b5da286fe5..8c122618296d9 100644 --- a/modules/study/src/main/StudyRepo.scala +++ b/modules/study/src/main/StudyRepo.scala @@ -319,11 +319,15 @@ final class StudyRepo(private[study] val coll: AsyncColl)(using privateSelector = selectOwnerId(u) ++ selectPrivateOrUnlisted ids <- c.distinctEasy[StudyId, List]("_id", privateSelector) _ <- c.delete.one(privateSelector) - _ <- c.update.one(selectOwnerId(u), $set("ownerId" -> UserId.ghost), multi = true) - _ <- c.update.one($doc(F.likers -> u), $pull(F.likers -> u)) - _ <- c.update.one($doc(F.uids -> u), $pull(F.uids -> u) ++ $unset(s"members.$u")) yield ids + private[study] def anonymizeAllOf(u: UserId): Funit = for + c <- coll.get + _ <- c.update.one(selectOwnerId(u), $set("ownerId" -> UserId.ghost), multi = true) + _ <- c.update.one($doc(F.likers -> u), $pull(F.likers -> u), multi = true) + _ <- c.update.one($doc(F.uids -> u), $pull(F.uids -> u) ++ $unset(s"members.$u"), multi = true) + yield () + private def countLikes(studyId: StudyId): Fu[Option[(Study.Likes, Instant)]] = coll: _.aggregateWith[Bdoc](): framework => From 27d2f1afc0bbde1516b1177cf6976082f32e07e1 Mon Sep 17 00:00:00 2001 From: johndoknjas Date: Wed, 29 Jan 2025 02:36:31 -0800 Subject: [PATCH 15/39] Undo using the i18n startPosFEN in test files. --- ui/game/tests/status.test.ts | 8 ++++++-- ui/keyboardMove/tests/keyboardSubmit.test.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ui/game/tests/status.test.ts b/ui/game/tests/status.test.ts index b548b0a726d81..028cf4604a7a5 100644 --- a/ui/game/tests/status.test.ts +++ b/ui/game/tests/status.test.ts @@ -3,7 +3,7 @@ import { bishopOnColor, expandFen, insufficientMaterial } from '../src/view/stat describe('expand fen', () => { test('starting position', () => - expect(expandFen(i18n.site.startPosFEN)).toBe( + expect(expandFen('rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')).toBe( 'rnbqkbnrpppppppp11111111111111111111111111111111PPPPPPPPRNBQKBNR', )); test('middlegame position', () => @@ -48,7 +48,11 @@ describe('should not be insufficient material', () => { ['atomic'], ['antichess'], ['threeCheck'], - ])('variant %s', variant => expect(insufficientMaterial(variant, i18n.site.startPosFEN)).toBe(false)); + ])('variant %s', variant => + expect(insufficientMaterial(variant, 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')).toBe( + false, + ), + ); test('pawn is never insufficient material', () => expect(insufficientMaterial('standard', '4k3/8/8/8/8/8/7P/4K3 w - - 0 1')).toBe(false)); diff --git a/ui/keyboardMove/tests/keyboardSubmit.test.ts b/ui/keyboardMove/tests/keyboardSubmit.test.ts index 154e11395ba77..4c21bdab42597 100644 --- a/ui/keyboardMove/tests/keyboardSubmit.test.ts +++ b/ui/keyboardMove/tests/keyboardSubmit.test.ts @@ -10,7 +10,7 @@ import { destsToUcis, sanWriter } from 'chess'; // - use https://lichess.org/editor to create positions and get their FENs // - use https://lichess.org/editor/ to check what FENs look like -const startingFen = i18n.site.startPosFEN; +const startingFen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1'; const toDestsMap = (obj: object) => new Map(Object.entries(obj)) as Dests; const fenDestsToSans = (fen: string, dests: Record) => sanWriter(fen, destsToUcis(toDestsMap(dests))); From 64a4140d98e79a99a2d6a9dadf02744679ca6038 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:36:33 +0100 Subject: [PATCH 16/39] smaller note from:1 index --- bin/mongodb/indexes.js | 2 +- modules/user/src/main/NoteApi.scala | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/mongodb/indexes.js b/bin/mongodb/indexes.js index dbe714cfd89d1..2f9eb5f34604b 100644 --- a/bin/mongodb/indexes.js +++ b/bin/mongodb/indexes.js @@ -89,7 +89,7 @@ db.fide_player.createIndex( { weights: { token: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 }, ); db.note.createIndex({ to: 1, date: -1 }, { background: 1 }); -db.note.createIndex({ from: 1 }); +db.note.createIndex({ from: 1 }, { partialFilterExpression: { mod: false } }) db.note.createIndex( { _fts: 'text', _ftsx: 1, dox: 1, date: -1 }, { diff --git a/modules/user/src/main/NoteApi.scala b/modules/user/src/main/NoteApi.scala index 04dda802a8f02..9d0325a98d534 100644 --- a/modules/user/src/main/NoteApi.scala +++ b/modules/user/src/main/NoteApi.scala @@ -27,8 +27,7 @@ final class NoteApi(coll: Coll)(using Executor) extends lila.core.user.NoteApi: lila.common.Bus.sub[lila.core.user.UserDelete]: del => for - _ <- del.erase.so: - coll.delete.one($doc("from" -> del.id)).void // no index, expensive! + _ <- coll.delete.one($doc("from" -> del.id, "mod" -> false)) // hits the from_1 partial index maybeKeepModNotes = del.user.marks.dirty.so($doc("mod" -> false)) _ <- coll.delete.one($doc("to" -> del.id) ++ maybeKeepModNotes) yield () From 8956c25a7c8f9934ecbea73be121e79dc7c6d51f Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:38:03 +0100 Subject: [PATCH 17/39] remove distinction between user delete and erase user delete is now a full GDPR erasure --- app/controllers/Mod.scala | 2 +- modules/api/src/main/AccountTermination.scala | 62 +++++++++---------- modules/core/src/main/user.scala | 2 +- modules/mailer/src/main/AutomaticEmail.scala | 21 ------- modules/user/src/main/User.scala | 2 +- 5 files changed, 31 insertions(+), 58 deletions(-) diff --git a/app/controllers/Mod.scala b/app/controllers/Mod.scala index e4491cada447c..548daeaf1dddf 100644 --- a/app/controllers/Mod.scala +++ b/app/controllers/Mod.scala @@ -384,7 +384,7 @@ final class Mod( def gdprErase(username: UserStr) = Secure(_.GdprErase) { _ ?=> _ ?=> Found(env.user.repo.byId(username)): user => - for _ <- env.api.accountTermination.scheduleErase(user) + for _ <- env.api.accountTermination.scheduleDelete(user) yield Redirect(routes.User.show(username)).flashSuccess("Erasure scheduled") } diff --git a/modules/api/src/main/AccountTermination.scala b/modules/api/src/main/AccountTermination.scala index 38ac2c4385b81..c810d80044024 100644 --- a/modules/api/src/main/AccountTermination.scala +++ b/modules/api/src/main/AccountTermination.scala @@ -7,32 +7,32 @@ import akka.stream.scaladsl.* import lila.db.dsl.{ *, given } enum Termination: - case disable, delete, erase + case disable, delete -/* There are 3 stages to account termination. -| | disable | delete | erase | -|---------------------------|----------------------------------|-----------------------|--------------------------------| -| how | from settings menu | from /account/delete | request to contact@lichess.org | -| reopen | available to user | strictly impossible | strictly impossible | -| games | intact | anonymized | anonymized | -| username | intact, no reuse | anonymized, no reuse | anonymized, no reuse | -| email | kept for reopening, no reuse[^1] | deleted, no reuse[^1] | deleted, no reuse[^1] | -| profile data | hidden | deleted | deleted | -| sessions and oauth tokens | closed | deleted | deleted | -| patron subscription | canceled | canceled | canceled | -| blog posts | unlisted | deleted | deleted | -| public studies | unlisted | anonymized | deleted | -| private studies | hidden | deleted | deleted | -| activity | hidden | deleted | deleted | -| coach/streamer profiles | hidden | deleted | deleted | -| tournaments joined | unlisted | anonymized | anonymized | -| tournaments created | hidden | anonymized | anonymized | -| forum posts | intact | anonymized | deleted | -| teams/classes joined | quit | quit | quit | -| team/classes created | intact[^2] | intact[^2] | intact[^2] | -| classes joiated | intact[^2] | intact[^2] | intact[^2] | -| puzzle history | hidden | deleted | deleted | -| follows and blocks | deleted | deleted | deleted | +/* There are 2 flavours of account termination. +| | disable | delete | +|---------------------------|----------------------------------|-----------------------| +| how | from settings menu | from /account/delete | +| reopen | available to user | strictly impossible | +| games | intact | anonymized | +| username | intact, no reuse | anonymized, no reuse | +| email | kept for reopening, no reuse[^1] | deleted, no reuse[^1] | +| profile data | hidden | deleted | +| sessions and oauth tokens | closed | deleted | +| patron subscription | canceled | canceled | +| blog posts | unlisted | deleted | +| public studies | unlisted | anonymized | +| private studies | hidden | deleted | +| activity | hidden | deleted | +| coach/streamer profiles | hidden | deleted | +| tournaments joined | unlisted | anonymized | +| tournaments created | hidden | anonymized | +| forum posts | intact | deleted | +| teams/classes joined | quit | quit | +| team/classes created | intact[^2] | intact[^2] | +| classes joiated | intact[^2] | intact[^2] | +| puzzle history | hidden | deleted | +| follows and blocks | deleted | deleted | [^1] the email address of a closed account can be re-used to make a new account, up to 4 times per month. [^2] classes and teams have a life of their own. Close them manually if you want to, before deleting your account. @@ -108,13 +108,7 @@ final class AccountTermination( def scheduleDelete(u: User)(using Me): Funit = for _ <- disable(u, forever = false) _ <- email.delete(u) - _ <- userRepo.delete.schedule(u.id, UserDelete(nowInstant, erase = false).some) - yield () - - def scheduleErase(u: User)(using Me): Funit = for - _ <- disable(u, forever = false) - _ <- email.gdprErase(u) - _ <- userRepo.delete.schedule(u.id, UserDelete(nowInstant, erase = true).some) + _ <- userRepo.delete.schedule(u.id, UserDelete(nowInstant).some) yield () private def lichessDisable(userId: UserId) = @@ -137,7 +131,7 @@ final class AccountTermination( private def doDeleteNow(u: User, del: UserDelete): Funit = for playbanned <- playbanApi.hasCurrentPlayban(u.id) tos = u.marks.dirty || playbanned - _ = logger.info(s"Deleting user ${u.username} tos=$tos erase=${del.erase}") + _ = logger.info(s"Deleting user ${u.username} tos=$tos") _ <- if tos then userRepo.delete.nowWithTosViolation(u) else userRepo.delete.nowFully(u) _ <- activityWrite.deleteAll(u) singlePlayerGameIds <- gameRepo.deleteAllSinglePlayerOf(u.id) @@ -152,7 +146,7 @@ final class AccountTermination( securityStore.deleteAllSessionsOf(u.id) yield // a lot of deletion is done by modules listening to the following event: - Bus.pub(lila.core.user.UserDelete(u, del.erase)) + Bus.pub(lila.core.user.UserDelete(u)) private def deleteAllGameChats(u: User) = gameRepo .docCursor(lila.game.Query.user(u.id), $id(true).some) diff --git a/modules/core/src/main/user.scala b/modules/core/src/main/user.scala index 456b4d71065e3..666c7f0465701 100644 --- a/modules/core/src/main/user.scala +++ b/modules/core/src/main/user.scala @@ -161,7 +161,7 @@ object user: case class ChangeEmail(id: UserId, email: EmailAddress) - case class UserDelete(user: User, erase: Boolean): + case class UserDelete(user: User): export user.id object UserDelete extends bus.GivenChannel[UserDelete]("userDelete"): val delay = scalalib.model.Days(7) diff --git a/modules/mailer/src/main/AutomaticEmail.scala b/modules/mailer/src/main/AutomaticEmail.scala index 2818c0e4df68f..ff4c8d3f3bdd6 100644 --- a/modules/mailer/src/main/AutomaticEmail.scala +++ b/modules/mailer/src/main/AutomaticEmail.scala @@ -133,27 +133,6 @@ $regards ) } - def gdprErase(user: User): Funit = - val days = lila.core.user.UserDelete.delay - val body = - s"""Hello, - -Following your request, the Lichess account "${user.username}" will be fully erased in $days days from now. - -$regards -""" - userApi.emailOrPrevious(user.id).flatMapz { email => - given Lang = userLang(user) - mailer.send( - Mailer.Message( - to = email, - subject = "lichess.org account erasure", - text = Mailer.txt.addServiceNote(body), - htmlBody = standardEmail(body).some - ) - ) - } - def onPatronNew(userId: UserId): Funit = userApi.byId(userId).map { _.foreach: user => diff --git a/modules/user/src/main/User.scala b/modules/user/src/main/User.scala index 5d43b0ee51d93..6840ab413f561 100644 --- a/modules/user/src/main/User.scala +++ b/modules/user/src/main/User.scala @@ -15,7 +15,7 @@ case class WithPerfsAndEmails(user: UserWithPerfs, emails: Emails) case class TotpToken(value: String) extends AnyVal -case class UserDelete(requested: Instant, erase: Boolean, done: Boolean = false) +case class UserDelete(requested: Instant, done: Boolean = false) object PlayTime: extension (p: PlayTime) From 41a05ed89439228b67f2230ee0379d28d27354e8 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:40:08 +0100 Subject: [PATCH 18/39] remove deprecated mongodb index background option --- bin/mongodb/indexes.js | 70 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/bin/mongodb/indexes.js b/bin/mongodb/indexes.js index 2f9eb5f34604b..51dcaf0688976 100644 --- a/bin/mongodb/indexes.js +++ b/bin/mongodb/indexes.js @@ -27,16 +27,16 @@ db.report2.createIndex( db.report2.createIndex({ user: 1 }); db.report2.createIndex({ 'atoms.by': 1 }); db.report2.createIndex({ room: 1, 'atoms.0.at': -1 }); -db.report2.createIndex({ 'atoms.0.at': -1 }, { background: 1 }); +db.report2.createIndex({ 'atoms.0.at': -1 }); db.report2.createIndex({ 'done.at': -1 }, { partialFilterExpression: { open: false } }); -db.firewall.createIndex({ date: 1 }, { expireAfterSeconds: 7776000, background: true }); +db.firewall.createIndex({ date: 1 }, { expireAfterSeconds: 7776000 }); db.timeline_entry.createIndex({ users: 1, date: -1 }); db.timeline_entry.createIndex({ typ: 1, date: -1 }); db.notify.createIndex({ notifies: 1, read: 1, createdAt: -1 }); db.notify.createIndex({ createdAt: 1 }, { expireAfterSeconds: 2592000 }); db.tournament_pairing.createIndex({ tid: 1, d: -1 }); db.tournament_pairing.createIndex({ tid: 1, u: 1, d: -1 }); -db.tournament_pairing.createIndex({ tid: 1 }, { partialFilterExpression: { s: { $lt: 30 } }, background: 1 }); +db.tournament_pairing.createIndex({ tid: 1 }, { partialFilterExpression: { s: { $lt: 30 } } }); db.round_history.createIndex({ d: 1 }, { expireAfterSeconds: 3600 }); db.relay_tour.createIndex( { active: 1, tier: 1 }, @@ -64,10 +64,10 @@ db.irwin_request.createIndex({ priority: 1 }); db.irwin_request.createIndex({ createdAt: 1 }, { expireAfterSeconds: 1296000 }); db.tournament2.createIndex({ status: 1 }); db.tournament2.createIndex({ startsAt: 1 }); -db.tournament2.createIndex({ 'schedule.freq': 1, startsAt: -1 }, { background: true }); +db.tournament2.createIndex({ 'schedule.freq': 1, startsAt: -1 }); db.tournament2.createIndex( { status: 1, startsAt: 1 }, - { partialFilterExpression: { status: 10 }, background: 1 }, + { partialFilterExpression: { status: 10 } }, ); db.tournament2.createIndex( { forTeams: 1, startsAt: -1 }, @@ -88,7 +88,7 @@ db.fide_player.createIndex( { _fts: 'text', _ftsx: 1, standard: -1 }, { weights: { token: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 }, ); -db.note.createIndex({ to: 1, date: -1 }, { background: 1 }); +db.note.createIndex({ to: 1, date: -1 }); db.note.createIndex({ from: 1 }, { partialFilterExpression: { mod: false } }) db.note.createIndex( { _fts: 'text', _ftsx: 1, dox: 1, date: -1 }, @@ -104,8 +104,8 @@ db.irwin_report.createIndex({ date: -1 }); db.user4.createIndex({ 'count.game': -1 }); db.user4.createIndex({ title: 1 }, { partialFilterExpression: { title: { $exists: 1 } } }); db.user4.createIndex({ email: 1 }, { unique: true, partialFilterExpression: { email: { $exists: 1 } } }); -db.user4.createIndex({ roles: 1 }, { background: 1, partialFilterExpression: { roles: { $exists: 1 } } }); -db.user4.createIndex({ prevEmail: 1 }, { sparse: 1, background: 1 }); +db.user4.createIndex({ roles: 1 }, { partialFilterExpression: { roles: { $exists: 1 } } }); +db.user4.createIndex({ prevEmail: 1 }, { sparse: 1 }); db.user4.createIndex( { 'delete.requested': 1 }, { partialFilterExpression: { 'delete.requested': { $exists: 1 }, 'delete.done': false } }, @@ -113,7 +113,7 @@ db.user4.createIndex( db.f_topic.createIndex({ categId: 1, troll: 1 }); db.f_topic.createIndex({ categId: 1, updatedAt: -1, troll: 1 }); db.f_topic.createIndex({ categId: 1, slug: 1 }); -db.f_topic.createIndex({ categId: 1 }, { partialFilterExpression: { sticky: true }, background: true }); +db.f_topic.createIndex({ categId: 1 }, { partialFilterExpression: { sticky: true } }); db.seek_archive.createIndex({ archivedAt: 1 }, { expireAfterSeconds: 604800 }); db.seek_archive.createIndex({ gameId: 1 }); db.swiss_player.createIndex({ s: 1, c: -1 }); @@ -132,16 +132,16 @@ db.donation.createIndex({ payPalTnx: 1 }, { unique: true, sparse: 1 }); db.donation.createIndex({ userId: 1 }); db.donation.createIndex({ date: -1 }); db.donation.createIndex({ gross: -1 }); -db.player_assessment.createIndex({ userId: 1, date: -1 }, { background: 1 }); -db.player_assessment.createIndex({ date: 1 }, { expireAfterSeconds: 15552000, background: true }); +db.player_assessment.createIndex({ userId: 1, date: -1 }); +db.player_assessment.createIndex({ date: 1 }, { expireAfterSeconds: 15552000 }); db.fishnet_analysis.createIndex({ 'sender.system': 1, createdAt: 1 }); -db.fishnet_analysis.createIndex({ 'game.id': 1 }, { background: true }); -db.fishnet_analysis.createIndex({ 'sender.userId': 1 }, { background: 1 }); -db.fishnet_analysis.createIndex({ 'sender.ip': 1 }, { background: 1 }); -db.fishnet_analysis.createIndex({ 'sender.system': 1 }, { background: 1 }); +db.fishnet_analysis.createIndex({ 'game.id': 1 }); +db.fishnet_analysis.createIndex({ 'sender.userId': 1 }); +db.fishnet_analysis.createIndex({ 'sender.ip': 1 },); +db.fishnet_analysis.createIndex({ 'sender.system': 1 },); db.fishnet_analysis.createIndex( { acquired: 1 }, - { partialFilterExpression: { acquired: { $exists: true } }, background: 1 }, + { partialFilterExpression: { acquired: { $exists: true } } }, ); db.bookmark.createIndex({ g: 1 }); db.bookmark.createIndex({ u: 1 }); @@ -149,11 +149,11 @@ db.bookmark.createIndex({ u: 1, d: -1 }); db.f_categ.createIndex({ team: 1 }); db.relay_group.createIndex({ tours: 1 }); db.seek.createIndex({ createdAt: -1 }, { expireAfterSeconds: 86400 }); -db.msg_msg.createIndex({ tid: 1, date: -1 }, { background: 1 }); +db.msg_msg.createIndex({ tid: 1, date: -1 },); db.team.createIndex({ enabled: 1, nbMembers: -1 }); db.team.createIndex({ createdAt: -1 }); db.team.createIndex({ createdBy: 1 }); -db.team.createIndex({ leaders: 1 }, { background: 1 }); +db.team.createIndex({ leaders: 1 },); db.swiss.createIndex({ teamId: 1, startsAt: 1 }); db.swiss.createIndex({ nextRoundAt: 1 }, { partialFilterExpression: { nextRoundAt: { $exists: true } } }); db.swiss.createIndex( @@ -185,7 +185,7 @@ db.chat_timeout.createIndex( { chat: 1, expiresAt: -1 }, { partialFilterExpression: { expiresAt: { $exists: 1 } } }, ); -db.chat_timeout.createIndex({ user: 1, createdAt: -1 }, { background: 1 }); +db.chat_timeout.createIndex({ user: 1, createdAt: -1 },); db.daily_feed.createIndex({ at: -1 }); db.tournament_leaderboard.createIndex({ t: 1 }); db.tournament_leaderboard.createIndex({ u: 1, d: -1 }); @@ -214,10 +214,10 @@ db.oauth2_access_token.createIndex({ userId: 1 }); db.oauth2_access_token.createIndex({ expires: 1 }, { expireAfterSeconds: 0 }); db.cache.createIndex({ e: 1 }, { expireAfterSeconds: 0 }); db.forecast.createIndex({ date: 1 }, { expireAfterSeconds: 1296000 }); -db.msg_thread.createIndex({ users: 1, 'lastMsg.date': -1 }, { background: 1 }); +db.msg_thread.createIndex({ users: 1, 'lastMsg.date': -1 },); db.msg_thread.createIndex( { users: 1 }, - { partialFilterExpression: { 'lastMsg.read': false }, background: 1 }, + { partialFilterExpression: { 'lastMsg.read': false } }, ); db.msg_thread.createIndex({ users: 1, 'maskWith.date': -1 }); db.video.createIndex({ 'metadata.likes': -1 }); @@ -253,8 +253,8 @@ db.plan_charge.createIndex( db.f_post.createIndex({ topicId: 1, troll: 1 }); db.f_post.createIndex({ createdAt: -1, troll: 1 }); db.f_post.createIndex({ userId: 1 }); -db.f_post.createIndex({ categId: 1, createdAt: -1 }, { background: 1 }); -db.f_post.createIndex({ topicId: 1, createdAt: -1 }, { background: 1 }); +db.f_post.createIndex({ categId: 1, createdAt: -1 },); +db.f_post.createIndex({ topicId: 1, createdAt: -1 },); db.external_engine.createIndex({ userId: 1 }); db.external_engine.createIndex({ oauthToken: 1 }); db.tutor_queue.createIndex({ requestedAt: 1 }); @@ -269,18 +269,18 @@ db.challenge_bulk.createIndex({ by: 1, pairAt: -1 }); db.push_subscription.createIndex({ userId: 1 }); db.team_member.createIndex({ team: 1 }); db.team_member.createIndex({ user: 1 }); -db.team_member.createIndex({ team: 1, date: -1 }, { background: 1 }); +db.team_member.createIndex({ team: 1, date: -1 },); db.team_member.createIndex({ team: 1, perms: 1 }, { partialFilterExpression: { perms: { $exists: 1 } } }); -db.email_domains.createIndex({ nb: -1 }, { background: 1 }); +db.email_domains.createIndex({ nb: -1 },); db.game5.createIndex({ ca: -1 }); db.game5.createIndex({ us: 1, ca: -1 }); db.game5.createIndex({ 'pgni.user': 1, 'pgni.ca': -1 }, { sparse: 1 }); -db.game5.createIndex({ ck: 1 }, { sparse: 1, background: 1 }); -db.game5.createIndex({ pl: 1 }, { sparse: true, background: true }); -db.game5.createIndex({ 'pgni.h': 1 }, { sparse: true, background: true }); +db.game5.createIndex({ ck: 1 }, { sparse: 1 }); +db.game5.createIndex({ pl: 1 }, { sparse: true }); +db.game5.createIndex({ 'pgni.h': 1 }, { sparse: true }); db.security.createIndex({ user: 1 }); db.security.createIndex({ ip: 1 }); -db.security.createIndex({ fp: 1 }, { sparse: 1, background: 1 }); +db.security.createIndex({ fp: 1 }, { sparse: 1 }); db.study.createIndex({ ownerId: 1, createdAt: -1 }); db.study.createIndex({ likes: 1, createdAt: -1 }); db.study.createIndex({ ownerId: 1, updatedAt: -1 }); @@ -289,26 +289,26 @@ db.study.createIndex({ rank: -1 }); db.study.createIndex({ createdAt: -1 }); db.study.createIndex({ updatedAt: -1 }); db.study.createIndex({ likers: 1 }); -db.study.createIndex({ uids: 1 }, { background: true }); +db.study.createIndex({ uids: 1 },); db.study.createIndex( { topics: 1, rank: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } }, background: 1 }, + { partialFilterExpression: { topics: { $exists: 1 } } }, ); db.study.createIndex( { topics: 1, createdAt: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } }, background: 1 }, + { partialFilterExpression: { topics: { $exists: 1 } } }, ); db.study.createIndex( { topics: 1, updatedAt: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } }, background: 1 }, + { partialFilterExpression: { topics: { $exists: 1 } } }, ); db.study.createIndex( { topics: 1, likes: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } }, background: 1 }, + { partialFilterExpression: { topics: { $exists: 1 } } }, ); db.study.createIndex( { uids: 1, rank: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } }, background: 1 }, + { partialFilterExpression: { topics: { $exists: 1 } } }, ); db.study_chapter_flat.createIndex({ studyId: 1, order: 1 }); db.study_chapter_flat.createIndex( From 822832af5d1f958187f526ccbb12289175955959 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 11:48:06 +0100 Subject: [PATCH 19/39] pnpm format --- bin/mongodb/indexes.js | 59 ++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 40 deletions(-) diff --git a/bin/mongodb/indexes.js b/bin/mongodb/indexes.js index 51dcaf0688976..c27decff0b26a 100644 --- a/bin/mongodb/indexes.js +++ b/bin/mongodb/indexes.js @@ -65,10 +65,7 @@ db.irwin_request.createIndex({ createdAt: 1 }, { expireAfterSeconds: 1296000 }); db.tournament2.createIndex({ status: 1 }); db.tournament2.createIndex({ startsAt: 1 }); db.tournament2.createIndex({ 'schedule.freq': 1, startsAt: -1 }); -db.tournament2.createIndex( - { status: 1, startsAt: 1 }, - { partialFilterExpression: { status: 10 } }, -); +db.tournament2.createIndex({ status: 1, startsAt: 1 }, { partialFilterExpression: { status: 10 } }); db.tournament2.createIndex( { forTeams: 1, startsAt: -1 }, { partialFilterExpression: { forTeams: { $exists: 1 } } }, @@ -89,7 +86,7 @@ db.fide_player.createIndex( { weights: { token: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 }, ); db.note.createIndex({ to: 1, date: -1 }); -db.note.createIndex({ from: 1 }, { partialFilterExpression: { mod: false } }) +db.note.createIndex({ from: 1 }, { partialFilterExpression: { mod: false } }); db.note.createIndex( { _fts: 'text', _ftsx: 1, dox: 1, date: -1 }, { @@ -137,8 +134,8 @@ db.player_assessment.createIndex({ date: 1 }, { expireAfterSeconds: 15552000 }); db.fishnet_analysis.createIndex({ 'sender.system': 1, createdAt: 1 }); db.fishnet_analysis.createIndex({ 'game.id': 1 }); db.fishnet_analysis.createIndex({ 'sender.userId': 1 }); -db.fishnet_analysis.createIndex({ 'sender.ip': 1 },); -db.fishnet_analysis.createIndex({ 'sender.system': 1 },); +db.fishnet_analysis.createIndex({ 'sender.ip': 1 }); +db.fishnet_analysis.createIndex({ 'sender.system': 1 }); db.fishnet_analysis.createIndex( { acquired: 1 }, { partialFilterExpression: { acquired: { $exists: true } } }, @@ -149,11 +146,11 @@ db.bookmark.createIndex({ u: 1, d: -1 }); db.f_categ.createIndex({ team: 1 }); db.relay_group.createIndex({ tours: 1 }); db.seek.createIndex({ createdAt: -1 }, { expireAfterSeconds: 86400 }); -db.msg_msg.createIndex({ tid: 1, date: -1 },); +db.msg_msg.createIndex({ tid: 1, date: -1 }); db.team.createIndex({ enabled: 1, nbMembers: -1 }); db.team.createIndex({ createdAt: -1 }); db.team.createIndex({ createdBy: 1 }); -db.team.createIndex({ leaders: 1 },); +db.team.createIndex({ leaders: 1 }); db.swiss.createIndex({ teamId: 1, startsAt: 1 }); db.swiss.createIndex({ nextRoundAt: 1 }, { partialFilterExpression: { nextRoundAt: { $exists: true } } }); db.swiss.createIndex( @@ -185,7 +182,7 @@ db.chat_timeout.createIndex( { chat: 1, expiresAt: -1 }, { partialFilterExpression: { expiresAt: { $exists: 1 } } }, ); -db.chat_timeout.createIndex({ user: 1, createdAt: -1 },); +db.chat_timeout.createIndex({ user: 1, createdAt: -1 }); db.daily_feed.createIndex({ at: -1 }); db.tournament_leaderboard.createIndex({ t: 1 }); db.tournament_leaderboard.createIndex({ u: 1, d: -1 }); @@ -214,11 +211,8 @@ db.oauth2_access_token.createIndex({ userId: 1 }); db.oauth2_access_token.createIndex({ expires: 1 }, { expireAfterSeconds: 0 }); db.cache.createIndex({ e: 1 }, { expireAfterSeconds: 0 }); db.forecast.createIndex({ date: 1 }, { expireAfterSeconds: 1296000 }); -db.msg_thread.createIndex({ users: 1, 'lastMsg.date': -1 },); -db.msg_thread.createIndex( - { users: 1 }, - { partialFilterExpression: { 'lastMsg.read': false } }, -); +db.msg_thread.createIndex({ users: 1, 'lastMsg.date': -1 }); +db.msg_thread.createIndex({ users: 1 }, { partialFilterExpression: { 'lastMsg.read': false } }); db.msg_thread.createIndex({ users: 1, 'maskWith.date': -1 }); db.video.createIndex({ 'metadata.likes': -1 }); db.video.createIndex({ tags: 1, 'metadata.likes': -1 }); @@ -253,8 +247,8 @@ db.plan_charge.createIndex( db.f_post.createIndex({ topicId: 1, troll: 1 }); db.f_post.createIndex({ createdAt: -1, troll: 1 }); db.f_post.createIndex({ userId: 1 }); -db.f_post.createIndex({ categId: 1, createdAt: -1 },); -db.f_post.createIndex({ topicId: 1, createdAt: -1 },); +db.f_post.createIndex({ categId: 1, createdAt: -1 }); +db.f_post.createIndex({ topicId: 1, createdAt: -1 }); db.external_engine.createIndex({ userId: 1 }); db.external_engine.createIndex({ oauthToken: 1 }); db.tutor_queue.createIndex({ requestedAt: 1 }); @@ -269,9 +263,9 @@ db.challenge_bulk.createIndex({ by: 1, pairAt: -1 }); db.push_subscription.createIndex({ userId: 1 }); db.team_member.createIndex({ team: 1 }); db.team_member.createIndex({ user: 1 }); -db.team_member.createIndex({ team: 1, date: -1 },); +db.team_member.createIndex({ team: 1, date: -1 }); db.team_member.createIndex({ team: 1, perms: 1 }, { partialFilterExpression: { perms: { $exists: 1 } } }); -db.email_domains.createIndex({ nb: -1 },); +db.email_domains.createIndex({ nb: -1 }); db.game5.createIndex({ ca: -1 }); db.game5.createIndex({ us: 1, ca: -1 }); db.game5.createIndex({ 'pgni.user': 1, 'pgni.ca': -1 }, { sparse: 1 }); @@ -289,27 +283,12 @@ db.study.createIndex({ rank: -1 }); db.study.createIndex({ createdAt: -1 }); db.study.createIndex({ updatedAt: -1 }); db.study.createIndex({ likers: 1 }); -db.study.createIndex({ uids: 1 },); -db.study.createIndex( - { topics: 1, rank: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } } }, -); -db.study.createIndex( - { topics: 1, createdAt: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } } }, -); -db.study.createIndex( - { topics: 1, updatedAt: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } } }, -); -db.study.createIndex( - { topics: 1, likes: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } } }, -); -db.study.createIndex( - { uids: 1, rank: -1 }, - { partialFilterExpression: { topics: { $exists: 1 } } }, -); +db.study.createIndex({ uids: 1 }); +db.study.createIndex({ topics: 1, rank: -1 }, { partialFilterExpression: { topics: { $exists: 1 } } }); +db.study.createIndex({ topics: 1, createdAt: -1 }, { partialFilterExpression: { topics: { $exists: 1 } } }); +db.study.createIndex({ topics: 1, updatedAt: -1 }, { partialFilterExpression: { topics: { $exists: 1 } } }); +db.study.createIndex({ topics: 1, likes: -1 }, { partialFilterExpression: { topics: { $exists: 1 } } }); +db.study.createIndex({ uids: 1, rank: -1 }, { partialFilterExpression: { topics: { $exists: 1 } } }); db.study_chapter_flat.createIndex({ studyId: 1, order: 1 }); db.study_chapter_flat.createIndex( { 'relay.fideIds': 1 }, From d926907deed7b7d756238d5833110820cd91c073 Mon Sep 17 00:00:00 2001 From: johndoknjas Date: Wed, 29 Jan 2025 03:43:59 -0800 Subject: [PATCH 20/39] Use `INITIAL_FEN` in chessops instead. --- translation/source/site.xml | 1 - ui/@types/lichess/i18n.d.ts | 2 -- ui/lobby/src/setupCtrl.ts | 5 +++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/translation/source/site.xml b/translation/source/site.xml index 185a67ec57ae4..b8d17e98bece2 100644 --- a/translation/source/site.xml +++ b/translation/source/site.xml @@ -508,7 +508,6 @@ Endgame positions Chess960 start position: %s Starting position - rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 Clear board Load position Private diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts index d5a8d2faa1c92..cb9be5755f35b 100644 --- a/ui/@types/lichess/i18n.d.ts +++ b/ui/@types/lichess/i18n.d.ts @@ -4015,8 +4015,6 @@ interface I18n { startedStreaming: string; /** Starting: */ starting: string; - /** rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 */ - startPosFEN: string; /** Starting position */ startPosition: string; /** Stats */ diff --git a/ui/lobby/src/setupCtrl.ts b/ui/lobby/src/setupCtrl.ts index 3acf1f9adbfb2..a4c5e10ed900a 100644 --- a/ui/lobby/src/setupCtrl.ts +++ b/ui/lobby/src/setupCtrl.ts @@ -3,6 +3,8 @@ import { debounce } from 'common/timing'; import * as xhr from 'common/xhr'; import { storedJsonProp } from 'common/storage'; import { clockToSpeed } from 'game'; +import { alert } from 'common/dialog'; +import { INITIAL_FEN } from 'chessops/fen'; import type LobbyController from './ctrl'; import type { ForceSetupOptions, @@ -23,7 +25,6 @@ import { timeVToTime, variants, } from './options'; -import { alert } from 'common/dialog'; const getPerf = (variant: VariantKey, timeMode: TimeMode, time: RealValue, increment: RealValue): Perf => variant !== 'standard' && variant !== 'fromPosition' @@ -226,7 +227,7 @@ export default class SetupController { // anonymous games cannot be rated !this.root.me || this.timeMode() === 'unlimited' || - (this.variant() === 'fromPosition' && this.fen() !== i18n.site.startPosFEN) || + (this.variant() === 'fromPosition' && this.fen() !== INITIAL_FEN) || // variants with very low time cannot be rated (this.variant() !== 'standard' && (this.timeMode() !== 'realTime' || From d023de81b572105ec7af72322ee9c7fc0f11847b Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 29 Jan 2025 14:09:48 +0100 Subject: [PATCH 21/39] code golf --- app/controllers/Auth.scala | 4 ++-- app/controllers/Puzzle.scala | 8 ++++---- modules/fide/src/main/ZipInputStreamSource.scala | 2 +- modules/forum/src/main/ForumPostApi.scala | 4 ++-- modules/memo/src/main/RateLimit.scala | 4 ++-- modules/puzzle/src/main/PuzzleFinisher.scala | 2 +- modules/puzzle/src/main/PuzzleOpening.scala | 2 +- modules/relay/src/main/HttpClient.scala | 2 +- modules/relay/src/main/RelayListing.scala | 2 +- modules/round/src/main/FarmBoostDetection.scala | 2 +- modules/round/src/main/ForecastApi.scala | 6 +++--- modules/study/src/main/StudyApi.scala | 2 +- modules/study/src/main/StudyRepo.scala | 4 ++-- modules/study/src/main/UciPath.scala | 2 +- modules/tree/src/main/tree.scala | 4 ++-- modules/ublog/src/main/UblogRank.scala | 2 +- 16 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/controllers/Auth.scala b/app/controllers/Auth.scala index d8450de7ad086..cce2e81bd4d41 100644 --- a/app/controllers/Auth.scala +++ b/app/controllers/Auth.scala @@ -334,7 +334,7 @@ final class Auth( err => renderPasswordReset(err.some, fail = true).map { BadRequest(_) }, data => env.user.repo.enabledWithEmail(data.email.normalize).flatMap { - case Some((user, storedEmail)) => + case Some(user, storedEmail) => lila.mon.user.auth.passwordResetRequest("success").increment() env.security.passwordReset .send(user, storedEmail) @@ -412,7 +412,7 @@ final class Auth( err => BadRequest.async(renderMagicLink(err.some, fail = true)), data => env.user.repo.enabledWithEmail(data.email.normalize).flatMap { - case Some((user, storedEmail)) => + case Some(user, storedEmail) => env.security.magicLink.rateLimit[Result](user, storedEmail, ctx.req, rateLimited): lila.mon.user.auth.magicLinkRequest("success").increment() env.security.magicLink diff --git a/app/controllers/Puzzle.scala b/app/controllers/Puzzle.scala index 72b101ba998cd..680410c4111c8 100644 --- a/app/controllers/Puzzle.scala +++ b/app/controllers/Puzzle.scala @@ -173,7 +173,7 @@ final class Puzzle(env: Env, apiC: => Api) extends LilaController(env): next <- env.puzzle.replay(me, replayDays.some, theme) json <- next match case None => fuccess(Json.obj("replayComplete" -> true)) - case Some((puzzle, replay)) => + case Some(puzzle, replay) => renderJson(puzzle, angle, replay.some).map { nextJson => Json.obj( "round" -> env.puzzle.jsonView.roundJson.web(round, perf)(using @@ -411,8 +411,8 @@ final class Puzzle(env: Env, apiC: => Api) extends LilaController(env): val theme = PuzzleTheme.findOrMix(themeKey) val checkedDayOpt = lila.puzzle.PuzzleDashboard.getClosestDay(days) env.puzzle.replay(me, checkedDayOpt, theme.key).flatMap { - case None => Redirect(routes.Puzzle.dashboard(days, "home", none)) - case Some((puzzle, replay)) => renderShow(puzzle, PuzzleAngle(theme), replay = replay.some) + case None => Redirect(routes.Puzzle.dashboard(days, "home", none)) + case Some(puzzle, replay) => renderShow(puzzle, PuzzleAngle(theme), replay = replay.some) } } @@ -510,7 +510,7 @@ final class Puzzle(env: Env, apiC: => Api) extends LilaController(env): .map: case None => Ok(env.puzzle.jsonView.bc.userJson(perf.intRating)) - case Some((round, newPerf)) => + case Some(round, newPerf) => env.puzzle.session.onComplete(round, PuzzleAngle.mix) Ok(env.puzzle.jsonView.bc.userJson(newPerf.intRating)) ) diff --git a/modules/fide/src/main/ZipInputStreamSource.scala b/modules/fide/src/main/ZipInputStreamSource.scala index c447da17de1d0..80a19c4d130a3 100644 --- a/modules/fide/src/main/ZipInputStreamSource.scala +++ b/modules/fide/src/main/ZipInputStreamSource.scala @@ -191,7 +191,7 @@ final class ZipInputStreamSource private ( read(arr) match case None => eof = true - case Some((entry, readBytes)) => + case Some(entry, readBytes) => readBytesTotal += readBytes val entryData = ZipEntryData(entry.getName, entry.getTime) val chunk = diff --git a/modules/forum/src/main/ForumPostApi.scala b/modules/forum/src/main/ForumPostApi.scala index 9e3d4554290f3..633ae88af3636 100644 --- a/modules/forum/src/main/ForumPostApi.scala +++ b/modules/forum/src/main/ForumPostApi.scala @@ -94,8 +94,8 @@ final class ForumPostApi( def urlData(postId: ForumPostId, forUser: Option[User]): Fu[Option[PostUrlData]] = get(postId).flatMap: - case Some((_, post)) if !post.visibleBy(forUser) => fuccess(none[PostUrlData]) - case Some((topic, post)) => + case Some(_, post) if !post.visibleBy(forUser) => fuccess(none[PostUrlData]) + case Some(topic, post) => postRepo.forUser(forUser).countBeforeNumber(topic.id, post.number).dmap { nb => val page = nb / config.postMaxPerPage.value + 1 PostUrlData(topic.categId, topic.slug, page, post.number).some diff --git a/modules/memo/src/main/RateLimit.scala b/modules/memo/src/main/RateLimit.scala index 90beb34a6bcb6..5270ad9610425 100644 --- a/modules/memo/src/main/RateLimit.scala +++ b/modules/memo/src/main/RateLimit.scala @@ -37,10 +37,10 @@ final class RateLimit[K]( case None => storage.put(k, cost -> makeClearAt) op - case Some((a, clearAt)) if a < credits => + case Some(a, clearAt) if a < credits => storage.put(k, (a + cost) -> clearAt) op - case Some((_, clearAt)) if nowMillis > clearAt => + case Some(_, clearAt) if nowMillis > clearAt => storage.put(k, cost -> makeClearAt) op case _ if enforce.yes => diff --git a/modules/puzzle/src/main/PuzzleFinisher.scala b/modules/puzzle/src/main/PuzzleFinisher.scala index 0ef97de26cc13..77f8e06a3957c 100644 --- a/modules/puzzle/src/main/PuzzleFinisher.scala +++ b/modules/puzzle/src/main/PuzzleFinisher.scala @@ -38,7 +38,7 @@ final private[puzzle] class PuzzleFinisher( .foldM((perf, List.empty[(PuzzleRound, IntRatingDiff)])): case ((perf, rounds), sol) => apply(sol.id, angle, sol.win, sol.mode)(using me, perf).map: - case Some((round, newPerf)) => + case Some(round, newPerf) => val rDiff = IntRatingDiff(newPerf.intRating.value - perf.intRating.value) (newPerf, (round, rDiff) :: rounds) case None => (perf, rounds) diff --git a/modules/puzzle/src/main/PuzzleOpening.scala b/modules/puzzle/src/main/PuzzleOpening.scala index 907f2cd2c91a6..69b6470e310f4 100644 --- a/modules/puzzle/src/main/PuzzleOpening.scala +++ b/modules/puzzle/src/main/PuzzleOpening.scala @@ -26,7 +26,7 @@ case class PuzzleOpeningCollection( families.find(_.family.key == op.opening.family.key).so(_.count), op.opening.ref.variation.isDefined.so(Set(op)) ).some - case Some((famCount, ops)) => + case Some(famCount, ops) => (famCount, if op.opening.ref.variation.isDefined then ops.incl(op) else ops).some val treePopular: TreeList = treeMap.toList diff --git a/modules/relay/src/main/HttpClient.scala b/modules/relay/src/main/HttpClient.scala index c080b5a33be34..d630890b59558 100644 --- a/modules/relay/src/main/HttpClient.scala +++ b/modules/relay/src/main/HttpClient.scala @@ -30,7 +30,7 @@ private final class HttpClient( .match case None => fetchBodyAndEtag(url, none) - case Some((prevBody, prevEtag)) => + case Some(prevBody, prevEtag) => fetchBodyAndEtag(url, prevEtag.some).map: (newBody, newEtag) => val body = if newBody.isEmpty && newEtag.has(prevEtag) then prevBody.some else newBody (body, newEtag) diff --git a/modules/relay/src/main/RelayListing.scala b/modules/relay/src/main/RelayListing.scala index c87e55292dad1..4d09f06581446 100644 --- a/modules/relay/src/main/RelayListing.scala +++ b/modules/relay/src/main/RelayListing.scala @@ -182,7 +182,7 @@ private object RelayListing: .headOption .match case None => trs.rounds.headOption - case Some((_, last)) => + case Some(_, last) => trs.rounds.find(!_.isFinished) match case None => last.some case Some(next) => diff --git a/modules/round/src/main/FarmBoostDetection.scala b/modules/round/src/main/FarmBoostDetection.scala index 1e725ee38ba73..bd8bb00570d2c 100644 --- a/modules/round/src/main/FarmBoostDetection.scala +++ b/modules/round/src/main/FarmBoostDetection.scala @@ -22,7 +22,7 @@ final private class FarmBoostDetection( */ def botFarming(g: Game): Fu[Boolean] = g.twoUserIds match - case Some((u1, u2)) if g.finished && g.rated && g.userIds.exists(isBotSync) => + case Some(u1, u2) if g.finished && g.rated && g.userIds.exists(isBotSync) => crosstableApi(u1, u2).flatMap: ct => gameRepo .gamesFromSecondary(ct.results.reverse.take(PREV_GAMES).map(_.gameId)) diff --git a/modules/round/src/main/ForecastApi.scala b/modules/round/src/main/ForecastApi.scala index 93849b2553b4e..9b5d5a7db1350 100644 --- a/modules/round/src/main/ForecastApi.scala +++ b/modules/round/src/main/ForecastApi.scala @@ -77,10 +77,10 @@ final class ForecastApi(coll: Coll, roundApi: lila.core.round.RoundApi)(using Ex case None => fuccess(none) case Some(fc) => fc(g, last) match - case Some((newFc, uciMove)) if newFc.steps.nonEmpty => + case Some(newFc, uciMove) if newFc.steps.nonEmpty => coll.update.one($id(fc._id), newFc).inject(uciMove.some) - case Some((_, uciMove)) => clearPov(pov).inject(uciMove.some) - case _ => clearPov(pov).inject(none) + case Some(_, uciMove) => clearPov(pov).inject(uciMove.some) + case _ => clearPov(pov).inject(none) private def firstStep(steps: Forecast.Steps) = steps.headOption.flatMap(_.headOption) diff --git a/modules/study/src/main/StudyApi.scala b/modules/study/src/main/StudyApi.scala index 5e790a2eb518c..42a181e408148 100644 --- a/modules/study/src/main/StudyApi.scala +++ b/modules/study/src/main/StudyApi.scala @@ -546,7 +546,7 @@ final class StudyApi( case None => reloadSriBecauseOf(study, who.sri, chapter.id) fufail(s"Invalid explorerGame insert $studyId $data") - case Some((chapter, path)) => + case Some(chapter, path) => studyRepo.updateNow(study) chapter.root.nodeAt(path).so { parent => for _ <- chapterRepo.setChildren(parent.children)(chapter, path) diff --git a/modules/study/src/main/StudyRepo.scala b/modules/study/src/main/StudyRepo.scala index 8c122618296d9..276c0a58c0ccb 100644 --- a/modules/study/src/main/StudyRepo.scala +++ b/modules/study/src/main/StudyRepo.scala @@ -268,8 +268,8 @@ final class StudyRepo(private[study] val coll: AsyncColl)(using _ <- c.update.one($id(studyId), if v then $addToSet(F.likers -> userId) else $pull(F.likers -> userId)) likes <- countLikes(studyId) updated <- likes match - case None => fuccess(Study.Likes(0)) - case Some((likes, createdAt)) => + case None => fuccess(Study.Likes(0)) + case Some(likes, createdAt) => // Multiple updates may race to set denormalized likes and rank, // but values should be approximately correct, match a real like // count (though perhaps not the latest one), and any uncontended diff --git a/modules/study/src/main/UciPath.scala b/modules/study/src/main/UciPath.scala index de94f9d7e02e4..42bd046a71ebf 100644 --- a/modules/study/src/main/UciPath.scala +++ b/modules/study/src/main/UciPath.scala @@ -10,7 +10,7 @@ extension (e: UciPath) def isMainline(node: Node): Boolean = e.split match case None => true - case Some((id, rest)) => + case Some(id, rest) => node.children.mainlineFirst match case None => false case Some(child) => child.id == id && rest.isMainline(child) diff --git a/modules/tree/src/main/tree.scala b/modules/tree/src/main/tree.scala index 469ec767ebbdc..7374821efc12e 100644 --- a/modules/tree/src/main/tree.scala +++ b/modules/tree/src/main/tree.scala @@ -65,7 +65,7 @@ case class Branches(nodes: List[Branch]) extends AnyVal: def promoteToMainlineAt(path: UciPath): Option[Branches] = path.split match case None => this.some - case Some((head, tail)) => + case Some(head, tail) => get(head).flatMap: node => node.withChildren(_.promoteToMainlineAt(tail)).map { promoted => Branches(promoted :: nodes.filterNot(node ==)) @@ -74,7 +74,7 @@ case class Branches(nodes: List[Branch]) extends AnyVal: def promoteUpAt(path: UciPath): Option[(Branches, Boolean)] = path.split match case None => Some(this -> false) - case Some((head, tail)) => + case Some(head, tail) => for node <- get(head) mainlineNode <- this.first diff --git a/modules/ublog/src/main/UblogRank.scala b/modules/ublog/src/main/UblogRank.scala index 536b2767b9e64..398d49600d06d 100644 --- a/modules/ublog/src/main/UblogRank.scala +++ b/modules/ublog/src/main/UblogRank.scala @@ -122,7 +122,7 @@ final class UblogRank(colls: UblogColls)(using Executor, akka.stream.Materialize yield (id, likes, liveAt, tier, language, title, hasImage, adjust) .flatMap: case None => fuccess(UblogPost.Likes(0)) - case Some((id, likes, liveAt, tier, language, title, hasImage, adjust)) => + case Some(id, likes, liveAt, tier, language, title, hasImage, adjust) => // Multiple updates may race to set denormalized likes and rank, // but values should be approximately correct, match a real like // count (though perhaps not the latest one), and any uncontended From 6e3b525797f0e2b1b34a29e01a73ec14c62e565e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= <9739913+SergioGlorias@users.noreply.github.com> Date: Wed, 29 Jan 2025 20:19:52 +0000 Subject: [PATCH 22/39] reduce staunty pieces --- public/piece-css/staunty.css | 24 ++++++++++++------------ public/piece/staunty/bB.svg | 2 +- public/piece/staunty/bK.svg | 2 +- public/piece/staunty/bN.svg | 24 +----------------------- public/piece/staunty/bP.svg | 2 +- public/piece/staunty/bQ.svg | 2 +- public/piece/staunty/bR.svg | 2 +- public/piece/staunty/wB.svg | 2 +- public/piece/staunty/wK.svg | 2 +- public/piece/staunty/wN.svg | 24 +----------------------- public/piece/staunty/wP.svg | 2 +- public/piece/staunty/wQ.svg | 2 +- public/piece/staunty/wR.svg | 2 +- 13 files changed, 24 insertions(+), 68 deletions(-) diff --git a/public/piece-css/staunty.css b/public/piece-css/staunty.css index 1af9a30bb9b11..b945cb89be0b1 100644 --- a/public/piece-css/staunty.css +++ b/public/piece-css/staunty.css @@ -1,12 +1,12 @@ -.is2d .pawn.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTIxLjUwMyAyNy41OTRoNi45OTRNMTkgMTcuNTA4YzAgMS43MzIuNzEyIDMuMzg3IDEuOTY2IDQuNTg3bC0zLjY1IDIuMS40MyAzLjM5OWg0LjMwNmMtLjc5NCAzLjU1OS0yLjc1NSA3LjMzLTUuMDYyIDguNjE3cy01LjMgMy4wOTctNC44NDMgOC4xODloMjUuNzA2Yy40NTctNS4wOTItMi41MzUtNi45MDItNC44NDItOC4xODktMi4zMDctMS4yODYtNC4yNjgtNS4wNTgtNS4wNjItOC42MTdoNC4zMDZsLjQzLTMuNC0zLjY1LTIuMDk5YTYuMzUyIDYuMzUyIDAgMCAwIDEuOTY2LTQuNTg3YzAtMy4zNjctMi42MjgtNS45MTItNi01LjkxMi0zLjM3MyAwLTYuMDAyIDIuNTQ1LTYuMDAxIDUuOTEyeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2YwZjBmMDtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMzYzNjM2MiLz48cGF0aCBkPSJNMjQuOTYyIDExLjUzN2MxLjE3LS40NTkgOS41MjcgNS45MDYuNjQ3IDEwLjc3M2w0LjUxMiAyLjEtLjU2MiAzLjEyNWgyLjY1OWwuNDI4LTMuMzk5LTMuNjUtMi4xYzEuMjUzLTEuMiAxLjk2Mi0yLjU4IDEuOTY0LTQuMzEyLS40NjgtNS40MTYtNS45OTgtNi4xODYtNS45OTgtNi4xODZ6bS0yLjk0OSAxNS45OThjNC41MDMgNy45MzQgOS40NyA5Ljk5NCAxMy4wNzQgOS45NjVsLTIuMTE1LTEuMzQ3Yy0yLjA3NS0xLjQ5LTQuNzMyLTQuODU4LTUuMDYyLTguNjE4eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2Utd2lkdGg6LjI2NDU3Ii8+PHBhdGggZD0ibTIxLjk4MyAyMi4yMTMtMS42NDcgMi4zNDctMi4zNTYtLjAxNCA0LjAxMy0yLjMyNHpNMjQuMzA3IDEyLjI2N2MtMi41NDIuMTM4LTUuNzMgMy4xNzMtNC4zODUgNi45MThsLjE5OS42NDNjLS4zMy0zLjQ4OSAyLjEyNy03LjExNiA0LjE4Ni03LjU2MXpNMTcuODYzIDM3LjYyNWMtMy45ODQgMi4zMDUtNS4xMTcgNi4xNC01LjExNyA2LjE0LS4wMSAwLS41NDgtNC4xNzUgMy45NTYtNi42NTRzNC44MjItNi4xNSA1Ljg2LTguODkzYy0uNjM2IDMuNzA0LS43MTUgNy4xMDItNC42OTkgOS40MDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .knight.white {background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTBtbSIgaGVpZ2h0PSI1MG1tIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9Ii0xLjUgMCA1MCA1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiA8bWV0YWRhdGE+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICAgPGRjOnRpdGxlLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogIDxwYXRoIGQ9Im0yNS4xOTIgMjMuMDE1Yy0wLjE2NTQ0IDYuOTY3Mi0xMS43NTggNS4yMTg5LTExLjUxNiAxOC4xMDRsMjIuODYgMC4xMTg0Yy0yLjA5NC02LjQ0MiA5LjY5LTI1LjE2LTExLjkzMS0zMi4yNTh2LTFlLTRzLTIuNDM4MS0yLjYwMS01Ljk2NTUtMi44MjM3bDAuMjIyNyAzLjUzNDctNC41NTgzIDQuNTgxNmMtMi42Mjk0IDMuMTQ1NS04LjczNDcgOC4zNzg0LTcuNzUxMyA5LjYxMTEgMy4xMTU4IDUuMzA0MSA2LjMzMDYgNC40MzE2IDYuMzMwNiA0LjQzMTYgNC4yNDE4LTQuNTQzMyA1LjgxOTMtMi4wODk0IDEyLjMwOS01LjI5OTd6IiBmaWxsPSIjZjBmMGYwIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogIDxwYXRoIGQ9Im0xOS4zMiAxNC42OTRjLTAuNzc1NyAwLjg2MDg4LTAuNjkwMiAxLjExNTYtMC44MTM3IDIuMTUwMyAwLjgwNTUgMC4xMjMxNiAxLjUwNjkgMC4yMzk4MiAyLjI0ODYgMC4wNjU2IDIuMzgwOS0xLjI2MiAwLjA3NS0zLjQwMjYtMS40MzQ3LTIuMjE2MnoiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBvcGFjaXR5PSIuMzUiIHN0eWxlPSJwYWludC1vcmRlcjpmaWxsIG1hcmtlcnMgc3Ryb2tlIi8+CiAgPHBhdGggZD0ibTkuMTkxNiAyMi4xNjZjLTAuODQ5NiAwLjQwNzgtMC45OTg0IDAuOTYwOC0xLjA1NjUgMS40NzU0IDAuNzI4OCAwLjQxODEgMS44NzY1LTAuMTI1NSAyLjA0MTItMS40MzE2bC0wLjk4NDYtMC4wNDR6IiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgb3BhY2l0eT0iLjMiLz4KICA8cGF0aCBkPSJtOC4xOTA1IDI1LjE1czAuNjUyNSAxLjEzNzQtMS4xMDE5LTEuNjQxYzAuNjU5NC0xLjk3NzQgOC4yNjMtOS4wNzk2IDEyLjQzOC0xMy41MzRsLTAuMTgzNi0zLjA4NTdzMS4wNjg5IDEuNjkwMSAxLjI0NzUgMy40NjhjLTQuMzg5OCA0LjM5LTEyLjIyIDEwLjgzMy0xMi44MjQgMTMuMjEzIDAuMDIzIDAuNjczOCAwLjI0IDEuMDI3OCAwLjQyMzEgMS41Nzk3eiIgZmlsbD0iI2ZmZiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiLz4KICA8cGF0aCBkPSJtMTMuMjYgMjguMjU3YzIuMDI5MS0zLjMzNjcgOC4zOTE0LTMuMjIzOSAxMS45MzItNS4yNDI0IDAuMzIyOCAwLjEwMjQgMC4xMzA0IDEuMzY5NyAwLjIzOTggMS4yMyAwLjg0NzYtMS4wOTAzIDIuOTI1OS0zLjI3OSAwLjg2ODQtNi44NzQzIDAuNTIxNCA1Ljk1NzUtMTMuNzE4IDUuNTkxMi0xNS44OSAxMC4zMDUtMC4yMDA1IDAuNDM1NSAyLjE4MTggMC43OTMyIDIuODUgMC41ODE4eiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIG9wYWNpdHk9Ii4xNSIvPgogIDxwYXRoIGQ9Im0yNS44IDIzLjc4MWMtMS4wMTMxIDUuODEzMi05LjU0NDkgNi4xMTY5LTEwLjk4OCAxMi42NDEgMi44MzMyLTYuNDA1OCAxMC43NjItNS43MTM2IDEwLjk4OC0xMi42NDF6IiBmaWxsPSIjZmZmIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIvPgogIDxwYXRoIGQ9Im0xOC42NCA2LjE1NTZzMy4wNTEgMC43MzgwNyA0LjkwNDUgMy45ODI1YzIwLjQ5OSA3LjE1MzYgNy42NDEzIDI3LjkzNyA1Ljc4ODMgMzEuMDczbDcuMjAzNCAwLjAyNmMtMS45ODcxLTMuMjQzMSA5LjU0ODItMjUuNTk3LTExLjkzMS0zMi4yNTgtMS43NzU3LTEuMDY5MS0yLjc2NzctMi42MDkyLTUuOTY1NS0yLjgyMzh6IiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgb3BhY2l0eT0iLjE1Ii8+CiAgPHBhdGggZD0ibTI1IDM2LjQ1N3MtOS4xMzA5IDAuMDQ4LTExLjY5MSAxLjYxOTJjLTEuNzI3MyAxLjA2MDItMi4xMzQ4IDMuNjUxNC0xLjg5OTggNi4zMjM3aDI3LjE4MmMwLjIzNS0yLjY3MjMtMC4xNzI1LTUuMjYzNi0xLjg5OTktNi4zMjM3LTIuNTU5Ny0xLjU3MTEtMTEuNjkxLTEuNjE5Mi0xMS42OTEtMS42MTkyeiIgZmlsbD0iI2YwZjBmMCIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHN0cm9rZT0iIzNjM2MzYyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KICA8cGF0aCBkPSJtMjUgMzcuMTQ3cy04LjcxMjEtMC4xMzczLTExLjYyNCAxLjY2NThjLTAuMzY5OCAwLjIyOTEtMC42OTkyIDAuODM5NC0wLjk1MzYgMS4zOTAyIDAuMjYwOC0wLjMzMTMgMC41MDIyLTAuNjEzIDAuODg2Ny0wLjg0OSAyLjU1OTgtMS41NzExIDExLjY5MS0xLjYxOTEgMTEuNjkxLTEuNjE5MXM5LjEzMTggMC4wNDggMTEuNjkyIDEuNjE5MWMwLjM5MSAwLjI0IDAuNTkyNCAwLjUzMTYgMC44NTU2IDAuODcwMSAwLjAyNi0wLjA3Ni0wLjQwODQtMS4xNTc4LTEuMTQzOC0xLjU5NjItMi43NTU0LTEuNDkyLTExLjQwMy0xLjQ4MDgtMTEuNDAzLTEuNDgwOHoiIGZpbGw9IiNmZmYiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5Ii8+CiA8L2c+Cjwvc3ZnPgo=')} -.is2d .bishop.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI1IDUuNzY3Yy0yLjEwNiAwLTMuODEyLjg3OS0zLjgxMiAxLjk2M2wxLjUxNyAyLjY1Yy0xNi4wNSAxNC4wOS01LjcwNyAyNy4xMzYtNS43MDcgMjcuMTM2aDE2LjAwNXM3LjA1LTguNjcyLjc2My0xOS41MWwtMi45OSA0LjgyN2MtLjY3IDEuMDg0LTEuOTYyIDEuNDktMi44OTcuOTExLS45MzUtLjU3OC0xLjE0Ny0xLjkxNy0uNDc3LTNsMy44ODctNi4yNzdhMzUuMzgyIDM1LjM4MiAwIDAgMC0zLjk5My00LjA4NmwxLjUxNy0yLjY1YzAtMS4wODUtMS43MDctMS45NjQtMy44MTItMS45NjR6IiBzdHlsZT0iZmlsbDojZjBmMGYwO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojM2MzYzNjIi8+PHBhdGggZD0iTTI1IDUuNzY3Yy0uODE2IDAtMS41NzEuMTM0LTIuMTkxLjM1OCA0LjMzOC44NDggNC45NzYgMS4xMiAyLjU2IDQuMzUxbDMuMjQ2IDMuNTY3Yy0zLjY1NyA4LjI0LTEuNjA0IDcuOTkxLTEuNjA0IDcuOTkxcy42OTYtMi42NDggNC4xMTItNy43NjhhMzUuNjk2IDM1LjY5NiAwIDAgMC0zLjgyNy0zLjg4NmwxLjUxNi0yLjY1YzAtMS4wODQtMS43MDYtMS45NjMtMy44MTItMS45NjN6bTguNzY1IDEyLjIzOC0xLjAwOSAxLjUxM2MzLjczNyA4LjQxMy00LjEzNCAxNy45OTctNC4xMzQgMTcuOTk3aDQuMzgxYy4xNTguMDM0IDYuOTU4LTguODQ0Ljc2Mi0xOS41MXoiIHN0eWxlPSJmaWxsOiMwMDA7b3BhY2l0eTouMTUiLz48cGF0aCBkPSJNMTUuMTQ1IDMxLjcyMWMtLjIyLS4wMzEtMy40MjMtOS43ODYgNS43NTQtMTguNzUxLTIuMzAyIDEuODk1LTcuMTM1IDEzLjE2My01Ljc1NCAxOC43NTF6TTIzLjI5MiAxMC4xOTZsLTEuNDc3LTIuNTk0cy4yNDItLjcyMiAxLjc4LTEuMDQ4Yy0xLjcyNiAxLjM1LS45ODcgMS42NjMtLjMwMyAzLjY0MnoiIHN0eWxlPSJmaWxsOiNmZmYiLz48cGF0aCBkPSJNMjUgMzYuNDU3cy05LjEzLjA0OC0xMS42OTEgMS42MmMtMS43MjcgMS4wNi0yLjEzNSAzLjY1LTEuOSA2LjMyM2gyNy4xODJjLjIzNS0yLjY3Mi0uMTcyLTUuMjY0LTEuOS02LjMyNC0yLjU2LTEuNTctMTEuNjktMS42MTktMTEuNjktMS42MTl6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjBmMGYwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzNjM2MzYyIvPjxwYXRoIGQ9Ik0yNSAzNy4xNDdzLTguNzEyLS4xMzctMTEuNjI0IDEuNjY2Yy0uMzcuMjI5LS43Ljg0LS45NTQgMS4zOS4yNjEtLjMzMS41MDItLjYxMy44ODctLjg1QzE1Ljg2OSAzNy43ODQgMjUgMzcuNzM2IDI1IDM3LjczNnM5LjEzMi4wNDggMTEuNjkyIDEuNjE5Yy4zOTEuMjQuNTkyLjUzMi44NTYuODcuMDI2LS4wNzYtLjQwOS0xLjE1OC0xLjE0NC0xLjU5NkMzMy42NDggMzcuMTM2IDI1IDM3LjE0NyAyNSAzNy4xNDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .rook.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTE3LjkzMiAyMC40MTRjNC45MDYtLjc0IDkuNTc5LS41NzggMTQuMTM2IDBNMTQuMTgzIDkuNjYyYy0xLjA2IDguNzY3IDEuMTAzIDEwLjY3NyAzLjc0OCAxMC43NTJsLTMuMzE1IDE4LjE1OWgyMC43NjdsLTMuMzE2LTE4LjE1OWMyLjY0NS0uMDc0IDQuODA4LTEuOTg1IDMuNzQ5LTEwLjc1MmwtMy42MDgtLjUzLTEuMDczIDMuNjQ0LTMuMTQyLS4xLS41MjItMy43NTRoLTQuOTQ1bC0uNTIgMy43NTQtMy4xNDMuMS0xLjA3My0zLjY0M3oiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmMGYwZjA7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMzYzNjM2MiLz48cGF0aCBkPSJNMTcuOTMyIDIwLjQxNGM2LjgyOCAwIDEzLjExOC40MDggMTQuOTQ4IDE2LjU3MmwyLjMxOS4zODYtMy4xMzEtMTYuNDI4Yy0uMDMyLS4zMDgtNi4wODgtMS44MjMtMTQuMTM2LS41M3oiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O29wYWNpdHk6LjE1O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48cGF0aCBkPSJtMTQuNzc3IDEwLjIxOSAyLjI3Ny0uMjg2Yy0xLjkxNC4zMTItMi4zMTMgNS4yOTYtMi4zMTMgNS4yOTYtLjIzOC0uMTc3LS4xODgtNC45MDMuMDM2LTUuMDF6TTI1LjI3NiA5LjU1Yy0xLjY0OCAwLTIuNTIgMi43NDgtMi41MiAyLjc0OGwuMzM4LTIuNzI5ek0zMi42NzEgOS44MTZsLjkzNC4xMThjLS43ODUuNS0xLjU5IDEuOTg5LTEuNTkgMS45ODl6TTE4LjQ3MiAyMC45NjRsMi42Mi0uMjkzYy0yLjYyLjI5My00Ljg4OCAxMy4xMTMtNC44ODggMTMuMTEzeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48cGF0aCBkPSJNMzQuMDEzIDkuMzk4Yy4zNTcgNi4zNjMtMS45NSAxMC42MDMtOC4wNDEgMTAuNTM2bDQuNzc3LjU2M2M3LjUyMy4zMSA1LjEwMS0xMC44MDYgNS4wNjgtMTAuODM1eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNSAzNi40NTdzLTkuMTMuMDQ4LTExLjY5MSAxLjYyYy0xLjcyNyAxLjA2LTIuMTM1IDMuNjUtMS45IDYuMzIzaDI3LjE4MmMuMjM1LTIuNjcyLS4xNzItNS4yNjQtMS45LTYuMzI0LTIuNTYtMS41Ny0xMS42OS0xLjYxOS0xMS42OS0xLjYxOXoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmMGYwZjA7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojM2MzYzNjIi8+PHBhdGggZD0iTTI1IDM3LjE0NnMtOC43MTItLjEzNy0xMS42MjQgMS42NjZjLS4zNy4yMjktLjcuODQtLjk1NCAxLjM5LjI2MS0uMzMxLjUwMy0uNjEzLjg4Ny0uODQ5QzE1Ljg3IDM3Ljc4MiAyNSAzNy43MzMgMjUgMzcuNzMzczkuMTMyLjA0OSAxMS42OTIgMS42MmMuMzkxLjI0LjU5Mi41MzIuODU2Ljg3LjAyNS0uMDc2LS40MDktMS4xNTgtMS4xNDQtMS41OTZDMzMuNjQ4IDM3LjEzNSAyNSAzNy4xNDcgMjUgMzcuMTQ3eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48L3N2Zz4=')} -.is2d .queen.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI0Ljk1OSA1LjA5NGEyLjk1OCAzLjMxNiA5MCAwIDAtMy4zMTYgMi45NTggMi45NTggMy4zMTYgOTAgMCAwIDMuMzE2IDIuOTU5IDIuOTU4IDMuMzE2IDkwIDAgMCAzLjMxNi0yLjk1OSAyLjk1OCAzLjMxNiA5MCAwIDAtMy4zMTYtMi45NTh6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjBmMGYwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7cGFpbnQtb3JkZXI6bm9ybWFsO3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjE5OTk7c3Ryb2tlOiMzYzNjM2MiLz48cGF0aCBkPSJNMjQuODM2IDUuNzMyYy0uMzc2LS4yMS0zLjcyNC44MDYtMi4xODUgMy41NzYtLjIzNS0xLjU0NS40MzgtMy4yMDMgMi4xODUtMy41NzZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNC45NTkgMTEuMDExYy02LjUwNyAwLTkuNTk1IDUuODg0LTkuNTk1IDEwLjM1OGgxOS4yNjNjMC00LjQ3NC0zLjE2LTEwLjM1OC05LjY2OC0xMC4zNTh6IiBzdHlsZT0iZmlsbDojZjBmMGYwO3BhaW50LW9yZGVyOm5vcm1hbDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzNjM2MzYyIvPjxwYXRoIGQ9Ik0xOC4xNjEgMTQuOTc3YzEuMDQyLTEuNDc4IDIuOTItMy4yMiA2Ljg0LTMuMzgtLjMxLjI3Ny00Ljc4OCAxLjEzOC02Ljg0IDMuMzh6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNC44MzYgNS4wMDdzLjA0Ni4yMzggMCAwYzIuNDggMS4xMjkgMi4wNSAzLjg0Ny44MTcgNS41NDcgNy4zNTQgMy44MDMgMi4yMTMgOC42NjkgMi4yMTIgOC42NjhoMi43MDFjMS43NjIgMS4yODcgNy4yMDktMi43NDEtMy44MzUtOC42NyAzLjUyOC0zLjExNS4wOTctNS42MDYtMS44OTUtNS41NDZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtvcGFjaXR5Oi4xNTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uIi8+PHBhdGggZD0iTTI1IDE1LjIyNWMtMS45NzEgMC0yLjM0OCAyLjY1LTQuMTM3IDIuODYtMS44Mi4yMTMtMy4zODEtMi4zMTItNS4yNS0xLjczNy0xLjQ5NS40Ni0uNzc4IDIuNi0xLjgwNSAzLjE3NS0xLjQwMi43ODUtMy4xODUtMS44MzItNS4yOS0uMjk4IDYuODM4IDguODI5IDguMDg1IDEyLjM3NyA3Ljk4MyAxOC44MTloMTYuOTk4Yy0uMTAzLTYuNDQzIDEuMTQ0LTkuOTkgNy45ODMtMTguODItMi4xMDYtMS41MzMtMy44ODkgMS4wODQtNS4yOS4zLTEuMDI3LS41NzYtLjMxMS0yLjcxNi0xLjgwNi0zLjE3Ni0xLjg2OC0uNTc1LTMuNDI5IDEuOTUtNS4yNSAxLjczNi0xLjc4OS0uMjEtMi4xNjYtMi44Ni00LjEzNy0yLjg2eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2YwZjBmMDtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjE5OTk7c3Ryb2tlOiMzYzNjM2MiLz48cGF0aCBkPSJNOS44OTUgMTkuMzRjLS4xMzYtLjAxLS4zMzEuMDU2LS40NTguMDg1IDMuMDgxIDQuMSA2LjU3NSA5LjUzNyA3LjA5OSAxMi40MTctMS40MDctNC45MzMtMy4yNjctOS41NjItNi4xNC0xMi40NzJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0zOS45NzQgMTguNzM1Yy05LjQ4NSAxMC4wMDMtOS45MjQgMTcuOTg1LTE2Ljk0MSAxOS4zMWgxMC40NzZjLS4xMDMtNi40NDMgMS4xNDUtOS45OSA3Ljk4My0xOC44MTkgMCAwLS42ODgtLjc1Ni0xLjUxOC0uNDkxeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0xNC45MTIgMTguOTQ1Yy4yMDMtLjA4OCAxLjE4NC0xLjgwOCAxLjk4LTEuOTUtMS40Mi0uMzQ2LTEuNjE4LS4wNDYtMS45OCAxLjk1ek0yMi41MTEgMTcuODc2Yy45NTMtLjg0NyAxLjYzMy0yLjY1NSAzLjIzOC0xLjg0NS0uNzk4LS4yMy0yLjIxNSAxLjA0LTMuMjM4IDEuODQ1ek0zMS4xMiAxOC4xMzNjLjIxLjA3IDIuMTc2LTEuNjQyIDIuODYyLTEuMjE4IDAgMC0xLjQzIDEuMTItMi44NjIgMS4yMTh6IiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTI1IDM2LjQ1N3MtOS4xMy4wNDgtMTEuNjkxIDEuNjJjLTEuNzI3IDEuMDYtMi4xMzUgMy42NS0xLjkgNi4zMjNoMjcuMTgyYy4yMzUtMi42NzItLjE3Mi01LjI2NC0xLjktNi4zMjQtMi41Ni0xLjU3MS0xMS42OS0xLjYyLTExLjY5LTEuNjJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjBmMGYwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzNjM2MzYyIvPjxwYXRoIGQ9Ik0yNSAzNy4xNDdzLTguNzEyLS4xMzctMTEuNjI0IDEuNjY2Yy0uMzcuMjI5LS43Ljg0LS45NTQgMS4zOS4yNjEtLjMzMS41MDItLjYxMy44ODctLjg0OUMxNS44NjkgMzcuNzgzIDI1IDM3LjczNCAyNSAzNy43MzRzOS4xMzIuMDQ5IDExLjY5MiAxLjYyYy4zOTEuMjQuNTkzLjUzMi44NTYuODcuMDI2LS4wNzYtLjQwOS0xLjE1OC0xLjE0NC0xLjU5NkMzMy42NDggMzcuMTM2IDI1IDM3LjE0NyAyNSAzNy4xNDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .king.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI3LjY3IDE1LjIyNXYtMy41NDRoNC40NFY3LjI1MmgtNC45MzVWMy4zNkgyMi44MXYzLjg5M2gtNC45MzR2NC40M2g0LjQ0djMuNTQzIiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjBmMGYwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojM2MzYzNjIi8+PHJlY3Qgd2lkdGg9IjkuMzk4IiBoZWlnaHQ9IjIuNzg3IiB4PSIyMC4yOTkiIHk9IjE0LjIxNSIgcnk9IjEuMzk0IiBzdHlsZT0iZmlsbDojZjBmMGYwO3BhaW50LW9yZGVyOm5vcm1hbDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzNjM2MzYyIvPjxwYXRoIGQ9Ik0yNi40MTYgMTQuMjE1Yy43MjUgMCAxLjMwOC42MjEgMS4zMDggMS4zOTMgMCAuNzczLS41ODMgMS4zOTQtMS4zMDggMS4zOTRoMS45NzRjLjcyNCAwIDEuMzA4LS42MjEgMS4zMDgtMS4zOTMgMC0uNzczLS41ODQtMS4zOTQtMS4zMDgtMS4zOTR6IiBzdHlsZT0iZmlsbDojMDAwO29wYWNpdHk6LjE1O3BhaW50LW9yZGVyOm5vcm1hbCIvPjxwYXRoIGQ9Ik0yMS42MzEgMTQuODQyYy0uNDAyIDAtLjcyNS4zNDUtLjcyNS43NzMgMCAuNDI3LjMyMy43NzIuNzI1Ljc3MmguODc0Yy0uNDAyIDAtLjcyNS0uMzQ1LS43MjUtLjc3MiAwLS40MjguMzIzLS43NzMuNzI1LS43NzN6IiBzdHlsZT0iZmlsbDojZmZmO3BhaW50LW9yZGVyOm5vcm1hbCIvPjxwYXRoIGQ9Ik0zMy42MzUgMzYuOTg2czcuNzc2LTEzLjMxOCA2LjYxMy0xNS45MTZjLTEuMTY0LTIuNTk2LTguNDgtNC40OTctMTUuMjQ4LTQuNDk3LTYuNzY4IDAtMTQuMDg0IDEuOS0xNS4yNDggNC40OTctMS4xNjQgMi41OTcgNi42MTIgMTUuOTE2IDYuNjEyIDE1LjkxNnoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmMGYwZjA7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMzYzNjM2MiLz48cGF0aCBkPSJNMjQuOTk2IDE2LjU3NmMxNS45MzggMi42MjIgMTIuNTczIDkuMzU0IDYuNjQgMjIuNTQzbDIuMDI4LTEuNzI5czcuNzQ3LTEzLjcyMyA2LjU4NC0xNi4zMmMtMS41NDUtMi44MzMtNy41MDMtNC4xNTktMTUuMjUyLTQuNDk0eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yMy43NjUgMTcuMjk1Yy0zLjkwNC0uMTg0LTE0LjYyMSAxLjgwMS0xMy41MDMgNS4wMTcuODE3IDMuNzI3IDIuNzU0IDcuMjQ0IDQuNTA4IDEwLjUwNC01LjY4Ny0xMC4zMzUtNS45NDItMTMuNzc0IDguOTk1LTE1LjUyMXpNMjMuMzkxIDMuOTk3bC0uMDE2IDMuMzEyaC41NDZsLjAxNi0zLjMxMnptLTQuOTMxIDMuODctLjAwOCAzLjIwOGguNzc0bC4wMDctMy4yMDh6bTQuNDEzIDMuMjEzLjAyNSAyLjQ4NmguNTJsLS4wMjUtMi40ODZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNi4xODkgMy4zNTh2My44OTRoLjk4N1YzLjM1OHptNC40NDEgMy44OTR2NC45NDVoMS40OFY3LjI1MnptLTQuNDQgNC40Mjl2Mi40OTJoMS40OHYtMi40OTJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojMDAwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNSAzNi40NTdzLTkuMTMuMDQ4LTExLjY5MSAxLjYyYy0xLjcyNyAxLjA2LTIuMTM1IDMuNjUtMS45IDYuMzIzaDI3LjE4MmMuMjM1LTIuNjcyLS4xNzItNS4yNjQtMS45LTYuMzI0LTIuNTYtMS41Ny0xMS42OS0xLjYxOS0xMS42OS0xLjYxOXoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmMGYwZjA7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojM2MzYzNjIi8+PHBhdGggZD0iTTI1IDM3LjE0N3MtOC43MTItLjEzNy0xMS42MjQgMS42NjZjLS4zNy4yMjktLjcuODQtLjk1NCAxLjM5LjI2MS0uMzMxLjUwMy0uNjEzLjg4Ny0uODQ5QzE1Ljg2OSAzNy43ODMgMjUgMzcuNzM0IDI1IDM3LjczNHM5LjEzMi4wNDkgMTEuNjkyIDEuNjJjLjM5MS4yNC41OTIuNTMyLjg1Ni44Ny4wMjUtLjA3Ni0uNDA5LTEuMTU4LTEuMTQ0LTEuNTk2QzMzLjY0OCAzNy4xMzYgMjUgMzcuMTQ4IDI1IDM3LjE0OHoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmY7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uIi8+PC9zdmc+')} -.is2d .pawn.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTIxLjUwMyAyNy41OTRoNi45OTRNMTkgMTcuNTA4YzAgMS43MzIuNzEyIDMuMzg3IDEuOTY2IDQuNTg3bC0zLjY1IDIuMS40MyAzLjM5OWg0LjMwNmMtLjc5NCAzLjU1OS0yLjc1NSA3LjMzLTUuMDYyIDguNjE3cy01LjMgMy4wOTctNC44NDMgOC4xODloMjUuNzA2Yy40NTctNS4wOTItMi41MzUtNi45MDItNC44NDItOC4xODktMi4zMDctMS4yODYtNC4yNjgtNS4wNTgtNS4wNjItOC42MTdoNC4zMDZsLjQzLTMuNC0zLjY1LTIuMDk5YTYuMzUyIDYuMzUyIDAgMCAwIDEuOTY2LTQuNTg3YzAtMy4zNjctMi42MjgtNS45MTItNi01LjkxMi0zLjM3MyAwLTYuMDAyIDIuNTQ1LTYuMDAxIDUuOTEyeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6IzVmNTk1NTtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMxZTFlMWUiLz48cGF0aCBkPSJNMjQuOTYyIDExLjUzN2MxLjE3LS40NTkgOS41MjcgNS45MDYuNjQ3IDEwLjc3M2w0LjUxMiAyLjEtLjU2MiAzLjEyNWgyLjY1OWwuNDI4LTMuMzk5LTMuNjUtMi4xYzEuMjUzLTEuMiAxLjk2Mi0yLjU4IDEuOTY0LTQuMzEyLS40NjgtNS40MTYtNS45OTgtNi4xODYtNS45OTgtNi4xODZ6bS0yLjk0OSAxNS45OThjNC41MDMgNy45MzQgOS40NyA5Ljk5NCAxMy4wNzQgOS45NjVsLTIuMTE1LTEuMzQ3Yy0yLjA3NS0xLjQ5LTQuNzMyLTQuODU4LTUuMDYyLTguNjE4eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTg7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2Utd2lkdGg6LjI2NDU3Ii8+PHBhdGggZD0ibTIxLjk4MyAyMi4yMTMtMS42NDcgMi4zNDctMi4zNTYtLjAxNCA0LjAxMy0yLjMyNHpNMjQuMzA3IDEyLjI2N2MtMi41NDIuMTM4LTUuNzMgMy4xNzMtNC4zODUgNi45MThsLjE5OS42NDNjLS4zMy0zLjQ4OSAyLjEyNy03LjExNiA0LjE4Ni03LjU2MXpNMTcuODYzIDM3LjYyNWMtMy45ODQgMi4zMDUtNS4xMTcgNi4xNC01LjExNyA2LjE0LS4wMSAwLS41NDgtNC4xNzUgMy45NTYtNi42NTRzNC44MjItNi4xNSA1Ljg2LTguODkzYy0uNjM2IDMuNzA0LS43MTUgNy4xMDItNC42OTkgOS40MDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .knight.black {background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTBtbSIgaGVpZ2h0PSI1MG1tIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9Ii0xLjUgMCA1MCA1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiA8bWV0YWRhdGE+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICAgPGRjOnRpdGxlLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogIDxwYXRoIGQ9Im0yNS4xOTIgMjMuMDE1Yy0wLjE2NTQ0IDYuOTY3Mi0xMS43NTggNS4yMTg5LTExLjUxNiAxOC4xMDRsMjIuODYgMC4xMTg0Yy0yLjA5NC02LjQ0MiA5LjY5LTI1LjE2LTExLjkzMS0zMi4yNTh2LTFlLTRzLTIuNDM4MS0yLjYwMS01Ljk2NTUtMi44MjM3bDAuMjIyNyAzLjUzNDctNC41NTgzIDQuNTgxNmMtMi42Mjk0IDMuMTQ1NS04LjczNDcgOC4zNzg0LTcuNzUxMyA5LjYxMTEgMy4xMTU4IDUuMzA0MSA2LjMzMDYgNC40MzE2IDYuMzMwNiA0LjQzMTYgNC4yNDE4LTQuNTQzMyA1LjgxOTMtMi4wODk0IDEyLjMwOS01LjI5OTd6IiBmaWxsPSIjNWY1OTU1IiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogIDxwYXRoIGQ9Im0xOS4zMiAxNC42OTRjLTAuNzc1NyAwLjg2MDg4LTAuNjkwMiAxLjExNTYtMC44MTM3IDIuMTUwMyAwLjgwNTUgMC4xMjMxNiAxLjUwNjkgMC4yMzk4MiAyLjI0ODYgMC4wNjU2IDIuMzgwOS0xLjI2MiAwLjA3NS0zLjQwMjYtMS40MzQ3LTIuMjE2MnoiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBvcGFjaXR5PSIuNCIgc3R5bGU9InBhaW50LW9yZGVyOmZpbGwgbWFya2VycyBzdHJva2UiLz4KICA8cGF0aCBkPSJtOS4xOTE2IDIyLjE2NmMtMC44NDk2IDAuNDA3OC0wLjk5ODQgMC45NjA4LTEuMDU2NSAxLjQ3NTQgMC43Mjg4IDAuNDE4MSAxLjg3NjUtMC4xMjU1IDIuMDQxMi0xLjQzMTZsLTAuOTg0Ni0wLjA0NHoiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBvcGFjaXR5PSIuMzUiLz4KICA8cGF0aCBkPSJtOC4xOTA1IDI1LjE1czAuNjUyNSAxLjEzNzQtMS4xMDE5LTEuNjQxYzAuNjU5NC0xLjk3NzQgOC4yNjMtOS4wNzk2IDEyLjQzOC0xMy41MzRsLTAuMTgzNi0zLjA4NTdzMS4wNjg5IDEuNjkwMSAxLjI0NzUgMy40NjhjLTQuMzg5OCA0LjM5LTEyLjIyIDEwLjgzMy0xMi44MjQgMTMuMjEzIDAuMDIzIDAuNjczOCAwLjI0IDEuMDI3OCAwLjQyMzEgMS41Nzk3eiIgZmlsbD0iI2ZmZiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIG9wYWNpdHk9Ii4yNSIvPgogIDxwYXRoIGQ9Im0xMy4yNiAyOC4yNTdjMi4wMjkxLTMuMzM2NyA4LjM5MTQtMy4yMjM5IDExLjkzMi01LjI0MjQgMC4zMjI4IDAuMTAyNCAwLjEzMDQgMS4zNjk3IDAuMjM5OCAxLjIzIDAuODQ3Ni0xLjA5MDMgMi45MjU5LTMuMjc5IDAuODY4NC02Ljg3NDMgMC41MjE0IDUuOTU3NS0xMy43MTggNS41OTEyLTE1Ljg5IDEwLjMwNS0wLjIwMDUgMC40MzU1IDIuMTgxOCAwLjc5MzIgMi44NSAwLjU4MTh6IiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgb3BhY2l0eT0iLjE4Ii8+CiAgPHBhdGggZD0ibTI1LjggMjMuNzgxYy0xLjAxMzEgNS44MTMyLTkuNTQ0OSA2LjExNjktMTAuOTg4IDEyLjY0MSAyLjgzMzItNi40MDU4IDEwLjc2Mi01LjcxMzYgMTAuOTg4LTEyLjY0MXoiIGZpbGw9IiNmZmYiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBvcGFjaXR5PSIuMjUiLz4KICA8cGF0aCBkPSJtMTguNjQgNi4xNTU2czMuMDUxIDAuNzM4MDcgNC45MDQ1IDMuOTgyNWMyMC40OTkgNy4xNTM2IDcuNjQxMyAyNy45MzcgNS43ODgzIDMxLjA3M2w3LjIwMzQgMC4wMjZjLTEuOTg3MS0zLjI0MzEgOS41NDgyLTI1LjU5Ny0xMS45MzEtMzIuMjU4LTEuNzc1Ny0xLjA2OTEtMi43Njc3LTIuNjA5Mi01Ljk2NTUtMi44MjM4eiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIG9wYWNpdHk9Ii4xOCIvPgogIDxwYXRoIGQ9Im0yNSAzNi40NTdzLTkuMTMwOSAwLjA0OC0xMS42OTEgMS42MTkyYy0xLjcyNzMgMS4wNjAyLTIuMTM0OCAzLjY1MTQtMS44OTk4IDYuMzIzN2gyNy4xODJjMC4yMzUtMi42NzIzLTAuMTcyNS01LjI2MzYtMS44OTk5LTYuMzIzNy0yLjU1OTctMS41NzExLTExLjY5MS0xLjYxOTItMTEuNjkxLTEuNjE5MnoiIGZpbGw9IiM1ZjU5NTUiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBzdHJva2U9IiMxZTFlMWUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIi8+CiAgPHBhdGggZD0ibTI1IDM3LjE0N3MtOC43MTIxLTAuMTM3My0xMS42MjQgMS42NjU4Yy0wLjM2OTggMC4yMjkxLTAuNjk5MiAwLjgzOTQtMC45NTM2IDEuMzkwMiAwLjI2MDgtMC4zMzEzIDAuNTAyMi0wLjYxMyAwLjg4NjctMC44NDkgMi41NTk4LTEuNTcxMSAxMS42OTEtMS42MTkxIDExLjY5MS0xLjYxOTFzOS4xMzE4IDAuMDQ4IDExLjY5MiAxLjYxOTFjMC4zOTEgMC4yNCAwLjU5MjQgMC41MzE2IDAuODU1NiAwLjg3MDEgMC4wMjYtMC4wNzYtMC40MDg0LTEuMTU3OC0xLjE0MzgtMS41OTYyLTIuNzU1NC0xLjQ5Mi0xMS40MDMtMS40ODA4LTExLjQwMy0xLjQ4MDh6IiBmaWxsPSIjZmZmIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgb3BhY2l0eT0iLjI1Ii8+CiA8L2c+Cjwvc3ZnPgo=')} -.is2d .bishop.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI1IDUuNzY3Yy0yLjEwNiAwLTMuODEyLjg3OS0zLjgxMiAxLjk2M2wxLjUxNyAyLjY1Yy0xNi4wNSAxNC4wOS01LjcwNyAyNy4xMzYtNS43MDcgMjcuMTM2aDE2LjAwNXM3LjA1LTguNjcyLjc2My0xOS41MWwtMi45OSA0LjgyN2MtLjY3IDEuMDg0LTEuOTYyIDEuNDktMi44OTcuOTExLS45MzUtLjU3OC0xLjE0Ny0xLjkxNy0uNDc3LTNsMy44ODctNi4yNzdhMzUuMzgyIDM1LjM4MiAwIDAgMC0zLjk5My00LjA4NmwxLjUxNy0yLjY1YzAtMS4wODUtMS43MDctMS45NjQtMy44MTItMS45NjR6IiBzdHlsZT0iZmlsbDojNWY1OTU1O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojMWUxZTFlIi8+PHBhdGggZD0iTTI1IDUuNzY3Yy0uODE2IDAtMS41NzEuMTM0LTIuMTkxLjM1OCA0LjMzOC44NDggNC45NzYgMS4xMiAyLjU2IDQuMzUxbDMuMjQ2IDMuNTY3Yy0zLjY1NyA4LjI0LTEuNjA0IDcuOTkxLTEuNjA0IDcuOTkxcy42OTYtMi42NDggNC4xMTItNy43NjhhMzUuNjk2IDM1LjY5NiAwIDAgMC0zLjgyNy0zLjg4NmwxLjUxNi0yLjY1YzAtMS4wODQtMS43MDYtMS45NjMtMy44MTItMS45NjN6bTguNzY1IDEyLjIzOC0xLjAwOSAxLjUxM2MzLjczNyA4LjQxMy00LjEzNCAxNy45OTctNC4xMzQgMTcuOTk3aDQuMzgxYy4xNTguMDM0IDYuOTU4LTguODQ0Ljc2Mi0xOS41MXoiIHN0eWxlPSJmaWxsOiMwMDA7b3BhY2l0eTouMTgiLz48cGF0aCBkPSJNMTUuMTQ1IDMxLjcyMWMtLjIyLS4wMzEtMy40MjMtOS43ODYgNS43NTQtMTguNzUxLTIuMzAyIDEuODk1LTcuMTM1IDEzLjE2My01Ljc1NCAxOC43NTF6TTIzLjI5MiAxMC4xOTZsLTEuNDc3LTIuNTk0cy4yNDItLjcyMiAxLjc4LTEuMDQ4Yy0xLjcyNiAxLjM1LS45ODcgMS42NjMtLjMwMyAzLjY0MnoiIHN0eWxlPSJmaWxsOiNmZmY7b3BhY2l0eTouMjUiLz48cGF0aCBkPSJNMjUgMzYuNDU3cy05LjEzLjA0OC0xMS42OTEgMS42MmMtMS43MjcgMS4wNi0yLjEzNSAzLjY1LTEuOSA2LjMyM2gyNy4xODJjLjIzNS0yLjY3Mi0uMTcyLTUuMjY0LTEuOS02LjMyNC0yLjU2LTEuNTctMTEuNjktMS42MTktMTEuNjktMS42MTl6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNWY1OTU1O2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzFlMWUxZSIvPjxwYXRoIGQ9Ik0yNSAzNy4xNDdzLTguNzEyLS4xMzctMTEuNjI0IDEuNjY2Yy0uMzcuMjI5LS43Ljg0LS45NTQgMS4zOS4yNjEtLjMzMS41MDItLjYxMy44ODctLjg1QzE1Ljg2OSAzNy43ODQgMjUgMzcuNzM2IDI1IDM3LjczNnM5LjEzMi4wNDggMTEuNjkyIDEuNjE5Yy4zOTEuMjQuNTkyLjUzMi44NTYuODcuMDI2LS4wNzYtLjQwOS0xLjE1OC0xLjE0NC0xLjU5NkMzMy42NDggMzcuMTM2IDI1IDM3LjE0NyAyNSAzNy4xNDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .rook.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTE3LjkzMiAyMC40MTRjNC45MDYtLjc0IDkuNTc5LS41NzggMTQuMTM2IDBNMTQuMTgzIDkuNjYyYy0xLjA2IDguNzY3IDEuMTAzIDEwLjY3NyAzLjc0OCAxMC43NTJsLTMuMzE1IDE4LjE1OWgyMC43NjdsLTMuMzE2LTE4LjE1OWMyLjY0NS0uMDc0IDQuODA4LTEuOTg1IDMuNzQ5LTEwLjc1MmwtMy42MDgtLjUzLTEuMDczIDMuNjQ0LTMuMTQyLS4xLS41MjItMy43NTRoLTQuOTQ1bC0uNTIgMy43NTQtMy4xNDMuMS0xLjA3My0zLjY0M3oiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiM1ZjU5NTU7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMxZTFlMWUiLz48cGF0aCBkPSJNMTcuOTMyIDIwLjQxNGM2LjgyOCAwIDEzLjExOC40MDggMTQuOTQ4IDE2LjU3MmwyLjMxOS4zODYtMy4xMzEtMTYuNDI4Yy0uMDMyLS4zMDgtNi4wODgtMS44MjMtMTQuMTM2LS41M3oiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O29wYWNpdHk6LjE4O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48cGF0aCBkPSJtMTQuNzc3IDEwLjIxOSAyLjI3Ny0uMjg2Yy0xLjkxNC4zMTItMi4zMTMgNS4yOTYtMi4zMTMgNS4yOTYtLjIzOC0uMTc3LS4xODgtNC45MDMuMDM2LTUuMDF6TTI1LjI3NiA5LjU1Yy0xLjY0OCAwLTIuNTIgMi43NDgtMi41MiAyLjc0OGwuMzM4LTIuNzI5ek0zMi42NzEgOS44MTZsLjkzNC4xMThjLS43ODUuNS0xLjU5IDEuOTg5LTEuNTkgMS45ODl6TTE4LjQ3MiAyMC45NjRsMi42Mi0uMjkzYy0yLjYyLjI5My00Ljg5NSAxMy4wNTMtNC45MDYgMTMuMTEzeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O29wYWNpdHk6LjI1O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48cGF0aCBkPSJNMzQuMDEzIDkuMzk4Yy4zNTcgNi4zNjMtMS45NSAxMC42MDMtOC4wNDEgMTAuNTM2bDQuNzc3LjU2M2M3LjUyMy4zMSA1LjEwMS0xMC44MDYgNS4wNjgtMTAuODM1eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTg7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNSAzNi40NTdzLTkuMTMuMDQ4LTExLjY5MSAxLjYyYy0xLjcyNyAxLjA2LTIuMTM1IDMuNjUtMS45IDYuMzIzaDI3LjE4MmMuMjM1LTIuNjcyLS4xNzItNS4yNjQtMS45LTYuMzI0LTIuNTYtMS41Ny0xMS42OS0xLjYxOS0xMS42OS0xLjYxOXoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiM1ZjU5NTU7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojMWUxZTFlIi8+PHBhdGggZD0iTTI1IDM3LjE0NnMtOC43MTItLjEzNy0xMS42MjQgMS42NjZjLS4zNy4yMjktLjcuODQtLjk1NCAxLjM5LjI2MS0uMzMxLjUwMy0uNjEzLjg4Ny0uODQ5QzE1Ljg3IDM3Ljc4MiAyNSAzNy43MzMgMjUgMzcuNzMzczkuMTMyLjA0OSAxMS42OTIgMS42MmMuMzkxLjI0LjU5Mi41MzIuODU2Ljg3LjAyNS0uMDc2LS40MDktMS4xNTgtMS4xNDQtMS41OTZDMzMuNjQ4IDM3LjEzNSAyNSAzNy4xNDcgMjUgMzcuMTQ3eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O29wYWNpdHk6LjI1O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb24iLz48L3N2Zz4=')} -.is2d .queen.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI0Ljk1OSA1LjA5NGEyLjk1OCAzLjMxNiA5MCAwIDAtMy4zMTYgMi45NTggMi45NTggMy4zMTYgOTAgMCAwIDMuMzE2IDIuOTU5IDIuOTU4IDMuMzE2IDkwIDAgMCAzLjMxNi0yLjk1OSAyLjk1OCAzLjMxNiA5MCAwIDAtMy4zMTYtMi45NTh6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNWY1OTU1O2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7cGFpbnQtb3JkZXI6bm9ybWFsO3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjE5OTk7c3Ryb2tlOiMxZTFlMWUiLz48cGF0aCBkPSJNMjQuODM2IDUuNzMyYy0uMzc2LS4yMS0zLjcyNC44MDYtMi4xODUgMy41NzYtLjIzNS0xLjU0NS40MzgtMy4yMDMgMi4xODUtMy41NzZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNC45NTkgMTEuMDExYy02LjUwNyAwLTkuNTk1IDUuODg0LTkuNTk1IDEwLjM1OGgxOS4yNjNjMC00LjQ3NC0zLjE2LTEwLjM1OC05LjY2OC0xMC4zNTh6IiBzdHlsZT0iZmlsbDojNWY1OTU1O3BhaW50LW9yZGVyOm5vcm1hbDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzFlMWUxZSIvPjxwYXRoIGQ9Ik0xOC4xNjEgMTQuOTc3YzEuMDQyLTEuNDc4IDIuOTItMy4yMiA2Ljg0LTMuMzgtLjMxLjI3Ny00Ljc4OCAxLjEzOC02Ljg0IDMuMzh6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNC44MzYgNS4wMDdzLjA0Ni4yMzggMCAwYzIuNDggMS4xMjkgMi4wNSAzLjg0Ny44MTcgNS41NDcgNy4zNTQgMy44MDMgMi4yMTMgOC42NjkgMi4yMTIgOC42NjhoMi43MDFjMS43NjIgMS4yODcgNy4yMDktMi43NDEtMy44MzUtOC42NyAzLjUyOC0zLjExNS4wOTctNS42MDYtMS44OTUtNS41NDZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtvcGFjaXR5Oi4xODtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uIi8+PHBhdGggZD0iTTI1IDE1LjIyNWMtMS45NzEgMC0yLjM0OCAyLjY1LTQuMTM3IDIuODYtMS44Mi4yMTMtMy4zODEtMi4zMTItNS4yNS0xLjczNy0xLjQ5NS40Ni0uNzc4IDIuNi0xLjgwNSAzLjE3NS0xLjQwMi43ODUtMy4xODUtMS44MzItNS4yOS0uMjk4IDYuODM4IDguODI5IDguMDg1IDEyLjM3NyA3Ljk4MyAxOC44MTloMTYuOTk4Yy0uMTAzLTYuNDQzIDEuMTQ0LTkuOTkgNy45ODMtMTguODItMi4xMDYtMS41MzMtMy44ODkgMS4wODQtNS4yOS4zLTEuMDI3LS41NzYtLjMxMS0yLjcxNi0xLjgwNi0zLjE3Ni0xLjg2OC0uNTc1LTMuNDI5IDEuOTUtNS4yNSAxLjczNi0xLjc4OS0uMjEtMi4xNjYtMi44Ni00LjEzNy0yLjg2eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6IzVmNTk1NTtpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5O3NoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjE5OTk7c3Ryb2tlOiMxZTFlMWUiLz48cGF0aCBkPSJNOS44OTUgMTkuMzRjLS4xMzYtLjAxLS4zMzEuMDU2LS40NTguMDg1IDMuMDgxIDQuMSA2LjU3NSA5LjUzNyA3LjA5OSAxMi40MTctMS40MDctNC45MzMtMy4yNjctOS41NjItNi4xNC0xMi40NzJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0zOS45NzQgMTguNzM1Yy05LjQ4NSAxMC4wMDMtOS45MjQgMTcuOTg1LTE2Ljk0MSAxOS4zMWgxMC40NzZjLS4xMDMtNi40NDMgMS4xNDUtOS45OSA3Ljk4My0xOC44MTkgMCAwLS42ODgtLjc1Ni0xLjUxOC0uNDkxeiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTg7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0xNC45MTIgMTguOTQ1Yy4yMDMtLjA4OCAxLjE4NC0xLjgwOCAxLjk4LTEuOTUtMS40Mi0uMzQ2LTEuNjE4LS4wNDYtMS45OCAxLjk1ek0yMi41MTEgMTcuODc2Yy45NTMtLjg0NyAxLjYzMy0yLjY1NSAzLjIzOC0xLjg0NS0uNzk4LS4yMy0yLjIxNSAxLjA0LTMuMjM4IDEuODQ1ek0zMS4xMiAxOC4xMzNjLjIxLjA3IDIuMTc2LTEuNjQyIDIuODYyLTEuMjE4IDAgMC0xLjQzIDEuMTItMi44NjIgMS4yMTh6IiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6LjI1Ii8+PHBhdGggZD0iTTI1IDM2LjQ1N3MtOS4xMy4wNDgtMTEuNjkxIDEuNjJjLTEuNzI3IDEuMDYtMi4xMzUgMy42NS0xLjkgNi4zMjNoMjcuMTgyYy4yMzUtMi42NzItLjE3Mi01LjI2NC0xLjktNi4zMjQtMi41Ni0xLjU3MS0xMS42OS0xLjYyLTExLjY5LTEuNjJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNWY1OTU1O2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzFlMWUxZSIvPjxwYXRoIGQ9Ik0yNSAzNy4xNDdzLTguNzEyLS4xMzctMTEuNjI0IDEuNjY2Yy0uMzcuMjI5LS43Ljg0LS45NTQgMS4zOS4yNjEtLjMzMS41MDItLjYxMy44ODctLjg0OUMxNS44NjkgMzcuNzgzIDI1IDM3LjczNCAyNSAzNy43MzRzOS4xMzIuMDQ5IDExLjY5MiAxLjYyYy4zOTEuMjQuNTkzLjUzMi44NTYuODcuMDI2LS4wNzYtLjQwOS0xLjE1OC0xLjE0NC0xLjU5NkMzMy42NDggMzcuMTM2IDI1IDM3LjE0NyAyNSAzNy4xNDd6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjwvc3ZnPg==')} -.is2d .king.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MG1tIiBoZWlnaHQ9IjUwbW0iIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZD0iTTI3LjY3IDE1LjIyNXYtMy41NDRoNC40NFY3LjI1MmgtNC45MzVWMy4zNkgyMi44MXYzLjg5M2gtNC45MzR2NC40M2g0LjQ0djMuNTQzIiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNWY1OTU1O2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojMWUxZTFlIi8+PHJlY3Qgd2lkdGg9IjkuMzk4IiBoZWlnaHQ9IjIuNzg3IiB4PSIyMC4yOTkiIHk9IjE0LjIxNSIgcnk9IjEuMzk0IiBzdHlsZT0iZmlsbDojNWY1OTU1O3BhaW50LW9yZGVyOm5vcm1hbDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMjtzdHJva2U6IzFlMWUxZSIvPjxwYXRoIGQ9Ik0yNi40MTYgMTQuMjE1Yy43MjUgMCAxLjMwOC42MjEgMS4zMDggMS4zOTMgMCAuNzczLS41ODMgMS4zOTQtMS4zMDggMS4zOTRoMS45NzRjLjcyNCAwIDEuMzA4LS42MjEgMS4zMDgtMS4zOTMgMC0uNzczLS41ODQtMS4zOTQtMS4zMDgtMS4zOTR6IiBzdHlsZT0iZmlsbDojMDAwO29wYWNpdHk6LjE4O3BhaW50LW9yZGVyOm5vcm1hbCIvPjxwYXRoIGQ9Ik0yMS42MzEgMTQuODQyYy0uNDAyIDAtLjcyNS4zNDUtLjcyNS43NzMgMCAuNDI3LjMyMy43NzIuNzI1Ljc3MmguODc0Yy0uNDAyIDAtLjcyNS0uMzQ1LS43MjUtLjc3MiAwLS40MjguMzIzLS43NzMuNzI1LS43NzN6IiBzdHlsZT0iZmlsbDojZmZmO29wYWNpdHk6LjI1O3BhaW50LW9yZGVyOm5vcm1hbCIvPjxwYXRoIGQ9Ik0zMy42MzUgMzYuOTg2czcuNzc2LTEzLjMxOCA2LjYxMy0xNS45MTZjLTEuMTY0LTIuNTk2LTguNDgtNC40OTctMTUuMjQ4LTQuNDk3LTYuNzY4IDAtMTQuMDg0IDEuOS0xNS4yNDggNC40OTctMS4xNjQgMi41OTcgNi42MTIgMTUuOTE2IDYuNjEyIDE1LjkxNnoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiM1ZjU5NTU7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDoxLjI7c3Ryb2tlOiMxZTFlMWUiLz48cGF0aCBkPSJNMjQuOTk2IDE2LjU3NmMxNS45MzggMi42MjIgMTIuNTczIDkuMzU0IDYuNjQgMjIuNTQzbDIuMDI4LTEuNzI5czcuNzQ3LTEzLjcyMyA2LjU4NC0xNi4zMmMtMS41NDUtMi44MzMtNy41MDMtNC4xNTktMTUuMjUyLTQuNDk0eiIgc3R5bGU9ImNsaXAtcnVsZTpldmVub2RkO2ZpbGwtcnVsZTpldmVub2RkO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTg7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yMy43NjUgMTcuMjk1Yy0zLjkwNC0uMTg0LTE0LjYyMSAxLjgwMS0xMy41MDMgNS4wMTcuODE3IDMuNzI3IDIuNzU0IDcuMjQ0IDQuNTA4IDEwLjUwNC01LjY4Ny0xMC4zMzUtNS45NDItMTMuNzc0IDguOTk1LTE1LjUyMXpNMjMuMzkxIDMuOTk3bC0uMDE2IDMuMzEyaC41NDZsLjAxNi0zLjMxMnptLTQuOTMxIDMuODctLjAwOCAzLjIwOGguNzc0bC4wMDctMy4yMDh6bTQuNDEzIDMuMjEzLjAyNSAyLjQ4NmguNTJsLS4wMjUtMi40ODZ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZmZmO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMjU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNi4xODkgMy4zNTh2My44OTRoLjk4N1YzLjM1OHptNC40NDEgMy44OTR2NC45NDVoMS40OFY3LjI1MnptLTQuNDQgNC40Mjl2Mi40OTJoMS40OHYtMi40OTJ6IiBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojMDAwO2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7b3BhY2l0eTouMTg7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbiIvPjxwYXRoIGQ9Ik0yNSAzNi40NTdzLTkuMTMuMDQ4LTExLjY5MSAxLjYyYy0xLjcyNyAxLjA2LTIuMTM1IDMuNjUtMS45IDYuMzIzaDI3LjE4MmMuMjM1LTIuNjcyLS4xNzItNS4yNjQtMS45LTYuMzI0LTIuNTYtMS41Ny0xMS42OS0xLjYxOS0xMS42OS0xLjYxOXoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiM1ZjU5NTU7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4yO3N0cm9rZTojMWUxZTFlIi8+PHBhdGggZD0iTTI1IDM3LjE0N3MtOC43MTItLjEzNy0xMS42MjQgMS42NjZjLS4zNy4yMjktLjcuODQtLjk1NCAxLjM5LjI2MS0uMzMxLjUwMy0uNjEzLjg4Ny0uODQ5QzE1Ljg2OSAzNy43ODMgMjUgMzcuNzM0IDI1IDM3LjczNHM5LjEzMi4wNDkgMTEuNjkyIDEuNjJjLjM5MS4yNC41OTIuNTMyLjg1Ni44Ny4wMjUtLjA3Ni0uNDA5LTEuMTU4LTEuMTQ0LTEuNTk2QzMzLjY0OCAzNy4xMzYgMjUgMzcuMTQ4IDI1IDM3LjE0OHoiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmY7aW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTtvcGFjaXR5Oi4yNTtzaGFwZS1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uIi8+PC9zdmc+')} +.is2d .pawn.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTIxLjUwMyAyNy41OTRoNi45OTRNMTkgMTcuNTA4YTYuMzUgNi4zNSAwIDAgMCAxLjk2NiA0LjU4N2wtMy42NSAyLjEuNDMgMy4zOTloNC4zMDZjLS43OTQgMy41NTktMi43NTUgNy4zMy01LjA2MiA4LjYxN3MtNS4zIDMuMDk3LTQuODQzIDguMTg5aDI1LjcwNmMuNDU3LTUuMDkyLTIuNTM1LTYuOTAyLTQuODQyLTguMTg5LTIuMzA3LTEuMjg2LTQuMjY4LTUuMDU4LTUuMDYyLTguNjE3aDQuMzA2bC40My0zLjQtMy42NS0yLjA5OWE2LjM1MiA2LjM1MiAwIDAgMCAxLjk2Ni00LjU4N2MwLTMuMzY3LTIuNjI4LTUuOTEyLTYtNS45MTItMy4zNzMgMC02LjAwMiAyLjU0NS02LjAwMSA1LjkxMnoiLz48cGF0aCBkPSJNMjQuOTYyIDExLjUzN2MxLjE3LS40NTkgOS41MjcgNS45MDYuNjQ3IDEwLjc3M2w0LjUxMiAyLjEtLjU2MiAzLjEyNWgyLjY1OWwuNDI4LTMuMzk5LTMuNjUtMi4xYzEuMjUzLTEuMiAxLjk2Mi0yLjU4IDEuOTY0LTQuMzEyLS40NjgtNS40MTYtNS45OTgtNi4xODYtNS45OTgtNi4xODZ6bS0yLjk0OSAxNS45OThjNC41MDMgNy45MzQgOS40NyA5Ljk5NCAxMy4wNzQgOS45NjVsLTIuMTE1LTEuMzQ3Yy0yLjA3NS0xLjQ5LTQuNzMyLTQuODU4LTUuMDYyLTguNjE4eiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIxLjk4MyAyMi4yMTMtMS42NDcgMi4zNDctMi4zNTYtLjAxNCA0LjAxMy0yLjMyNHptMi4zMjQtOS45NDZjLTIuNTQyLjEzOC01LjczIDMuMTczLTQuMzg1IDYuOTE4bC4xOTkuNjQzYy0uMzMtMy40ODkgMi4xMjctNy4xMTYgNC4xODYtNy41NjF6bS02LjQ0NCAyNS4zNThjLTMuOTg0IDIuMzA1LTUuMTE3IDYuMTQtNS4xMTcgNi4xNC0uMDEgMC0uNTQ4LTQuMTc1IDMuOTU2LTYuNjU0czQuODIyLTYuMTUgNS44Ni04Ljg5M2MtLjYzNiAzLjcwNC0uNzE1IDcuMTAyLTQuNjk5IDkuNDA3eiIvPjwvc3ZnPg==')} +.is2d .knight.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9Ii0xLjUgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1LjE5MiAyMy4wMTVjLS4xNjU0IDYuOTY3Mi0xMS43NTggNS4yMTg5LTExLjUxNiAxOC4xMDRsMjIuODYuMTE4NGMtMi4wOTQtNi40NDIgOS42OS0yNS4xNi0xMS45MzEtMzIuMjU4di0uMDAwMXMtMi40MzgxLTIuNjAxLTUuOTY1NS0yLjgyMzdsLjIyMjcgMy41MzQ3LTQuNTU4MyA0LjU4MTZjLTIuNjI5NCAzLjE0NTUtOC43MzQ3IDguMzc4NC03Ljc1MTMgOS42MTExIDMuMTE1OCA1LjMwNDEgNi4zMzA2IDQuNDMxNiA2LjMzMDYgNC40MzE2IDQuMjQxOC00LjU0MzMgNS44MTkzLTIuMDg5NCAxMi4zMDktNS4yOTk3eiIvPjxwYXRoIGQ9Ik0xOS4zMiAxNC42OTRjLS43NzU3Ljg2MDktLjY5MDIgMS4xMTU2LS44MTM3IDIuMTUwMy44MDU1LjEyMzIgMS41MDY5LjIzOTggMi4yNDg2LjA2NTYgMi4zODA5LTEuMjYyLjA3NS0zLjQwMjYtMS40MzQ3LTIuMjE2MnoiIG9wYWNpdHk9Ii4zNSIgcGFpbnQtb3JkZXI9ImZpbGwgbWFya2VycyBzdHJva2UiLz48cGF0aCBkPSJNOS4xOTE2IDIyLjE2NmMtLjg0OTYuNDA3OC0uOTk4NC45NjA4LTEuMDU2NSAxLjQ3NTQuNzI4OC40MTgxIDEuODc2NS0uMTI1NSAyLjA0MTItMS40MzE2bC0uOTg0Ni0uMDQ0eiIgb3BhY2l0eT0iLjMiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNOC4xOTA1IDI1LjE1cy42NTI1IDEuMTM3NC0xLjEwMTktMS42NDFjLjY1OTQtMS45Nzc0IDguMjYzLTkuMDc5NiAxMi40MzgtMTMuNTM0bC0uMTgzNi0zLjA4NTdzMS4wNjg5IDEuNjkwMSAxLjI0NzUgMy40NjhjLTQuMzg5OCA0LjM5LTEyLjIyIDEwLjgzMy0xMi44MjQgMTMuMjEzLjAyMy42NzM4LjI0IDEuMDI3OC40MjMxIDEuNTc5N3oiLz48cGF0aCBkPSJNMTMuMjYgMjguMjU3YzIuMDI5MS0zLjMzNjcgOC4zOTE0LTMuMjIzOSAxMS45MzItNS4yNDI0LjMyMjguMTAyNC4xMzA0IDEuMzY5Ny4yMzk4IDEuMjMuODQ3Ni0xLjA5MDMgMi45MjU5LTMuMjc5Ljg2ODQtNi44NzQzLjUyMTQgNS45NTc1LTEzLjcxOCA1LjU5MTItMTUuODkgMTAuMzA1LS4yMDA1LjQzNTUgMi4xODE4Ljc5MzIgMi44NS41ODE4eiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1LjggMjMuNzgxYy0xLjAxMzEgNS44MTMyLTkuNTQ0OSA2LjExNjktMTAuOTg4IDEyLjY0MSAyLjgzMzItNi40MDU4IDEwLjc2Mi01LjcxMzYgMTAuOTg4LTEyLjY0MXoiLz48cGF0aCBkPSJNMTguNjQgNi4xNTU2czMuMDUxLjczOCA0LjkwNDUgMy45ODI1YzIwLjQ5OSA3LjE1MzYgNy42NDEzIDI3LjkzNyA1Ljc4ODMgMzEuMDczbDcuMjAzNC4wMjZjLTEuOTg3MS0zLjI0MzEgOS41NDgyLTI1LjU5Ny0xMS45MzEtMzIuMjU4LTEuNzc1Ny0xLjA2OTEtMi43Njc3LTIuNjA5Mi01Ljk2NTUtMi44MjM4eiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDM2LjQ1N3MtOS4xMzA5LjA0OC0xMS42OTEgMS42MTkyYy0xLjcyNzMgMS4wNjAyLTIuMTM0OCAzLjY1MTQtMS44OTk4IDYuMzIzN2gyNy4xODJjLjIzNS0yLjY3MjMtLjE3MjUtNS4yNjM2LTEuODk5OS02LjMyMzctMi41NTk3LTEuNTcxMS0xMS42OTEtMS42MTkyLTExLjY5MS0xLjYxOTJ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1IDM3LjE0N3MtOC43MTIxLS4xMzczLTExLjYyNCAxLjY2NThjLS4zNjk4LjIyOTEtLjY5OTIuODM5NC0uOTUzNiAxLjM5MDIuMjYwOC0uMzMxMy41MDIyLS42MTMuODg2Ny0uODQ5IDIuNTU5OC0xLjU3MTEgMTEuNjkxLTEuNjE5MSAxMS42OTEtMS42MTkxczkuMTMxOC4wNDggMTEuNjkyIDEuNjE5MWMuMzkxLjI0LjU5MjQuNTMxNi44NTU2Ljg3MDEuMDI2LS4wNzYtLjQwODQtMS4xNTc4LTEuMTQzOC0xLjU5NjItMi43NTU0LTEuNDkyLTExLjQwMy0xLjQ4MDgtMTEuNDAzLTEuNDgwOHoiLz48L3N2Zz4=')} +.is2d .bishop.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDUuNzdjLTIuMSAwLTMuODEuODgtMy44MSAxLjk2bDEuNTEgMi42NUM2LjY1IDI0LjQ3IDE3IDM3LjUyIDE3IDM3LjUyaDE2czcuMDUtOC42OC43Ny0xOS41MWwtMyA0LjgyYy0uNjYgMS4wOS0xLjk2IDEuNS0yLjkuOTEtLjkzLS41Ny0xLjE0LTEuOTEtLjQ3LTNsMy44OS02LjI3YTM1LjM4IDM1LjM4IDAgMCAwLTQtNC4wOWwxLjUyLTIuNjVjMC0xLjA4LTEuNy0xLjk2LTMuOC0xLjk2eiIvPjxwYXRoIGQ9Ik0yNSA1Ljc3Yy0uODIgMC0xLjU3LjEzLTIuMi4zNiA0LjM1Ljg0IDQuOTkgMS4xMiAyLjU3IDQuMzVsMy4yNCAzLjU2Yy0zLjY1IDguMjQtMS42IDgtMS42IDhzLjctMi42NSA0LjExLTcuNzdhMzUuNyAzNS43IDAgMCAwLTMuODItMy44OWwxLjUxLTIuNjVjMC0xLjA4LTEuNy0xLjk2LTMuODEtMS45NnpNMzMuNzcgMThsLTEuMDEgMS41MmMzLjczIDguNDEtNC4xNCAxOC00LjE0IDE4SDMzYy4xNi4wMyA2Ljk2LTguODUuNzctMTkuNTJ6IiBvcGFjaXR5PSIuMTUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUuMTQgMzEuNzJjLS4yMi0uMDMtMy40Mi05Ljc4IDUuNzYtMTguNzUtMi4zIDEuOS03LjE0IDEzLjE2LTUuNzUgMTguNzV6TTIzLjMgMTAuMmwtMS40Ny0yLjZzLjI0LS43MiAxLjc4LTEuMDVjLTEuNzMgMS4zNS0xIDEuNjctLjMgMy42NXoiLz48cGF0aCBmaWxsPSIjZjBmMGYwIiBzdHJva2U9IiMzYzNjM2MiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjUgMzYuNDZzLTkuMTMuMDQtMTEuNyAxLjYyYy0xLjcyIDEuMDYtMi4xMyAzLjY1LTEuOSA2LjMyaDI3LjJjLjIzLTIuNjctLjE4LTUuMjYtMS45LTYuMzJDMzQuMTIgMzYuNSAyNSAzNi40NiAyNSAzNi40NnoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjUgMzcuMTVTMTYuMjkgMzcgMTMuMzggMzguOGMtLjM3LjIzLS43Ljg0LS45NiAxLjQuMjYtLjM0LjUtLjYyLjg5LS44NkMxNS44NyAzNy43OCAyNSAzNy43NCAyNSAzNy43NHM5LjEzLjA0IDExLjcgMS42MWMuMzguMjQuNTguNTQuODUuODdhMyAzIDAgMCAwLTEuMTUtMS42QzMzLjY1IDM3LjE1IDI1IDM3LjE2IDI1IDM3LjE2eiIvPjwvc3ZnPg==')} +.is2d .rook.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTE3LjkzIDIwLjQxYzQuOS0uNzQgOS41OC0uNTcgMTQuMTQgME0xNC4xOCA5LjY2Yy0xLjA2IDguNzcgMS4xIDEwLjY4IDMuNzUgMTAuNzVsLTMuMzEgMTguMTZoMjAuNzZsLTMuMzEtMTguMTZjMi42NC0uMDcgNC44LTEuOTggMy43NS0xMC43NWwtMy42MS0uNTMtMS4wNyAzLjY1LTMuMTUtLjEtLjUyLTMuNzZoLTQuOTRMMjIgMTIuNjhsLTMuMTUuMS0xLjA3LTMuNjV6Ii8+PHBhdGggZD0iTTE3LjkzIDIwLjQxYzYuODMgMCAxMy4xMi40MSAxNC45NSAxNi41OGwyLjMyLjM4LTMuMTMtMTYuNDNjLS4wMy0uMy02LjA5LTEuODItMTQuMTQtLjUzeiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTE0Ljc4IDEwLjIyIDIuMjctLjI5Yy0xLjkxLjMyLTIuMyA1LjMtMi4zIDUuMy0uMjUtLjE4LS4yLTQuOS4wMy01LjAxem0xMC41LS42N2MtMS42NSAwLTIuNTIgMi43NS0yLjUyIDIuNzVsLjMzLTIuNzN6bTcuNC4yNy45Mi4xMWMtLjc4LjUtMS41OSAyLTEuNTkgMnptLTE0LjIgMTEuMTQgMi42MS0uMjljLTIuNjIuMy00Ljg5IDEzLjExLTQuODkgMTMuMTF6Ii8+PHBhdGggZD0iTTM0LjAxIDkuNGMuMzYgNi4zNi0xLjk1IDEwLjYtOC4wNCAxMC41M2w0Ljc4LjU3YzcuNTIuMyA1LjEtMTAuOCA1LjA3LTEwLjg0eiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDM2LjQ2cy05LjEzLjA0LTExLjcgMS42MmMtMS43MiAxLjA2LTIuMTMgMy42NS0xLjkgNi4zMmgyNy4yYy4yMy0yLjY3LS4xOC01LjI2LTEuOS02LjMyQzM0LjEyIDM2LjUgMjUgMzYuNDYgMjUgMzYuNDZ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1IDM3LjE1UzE2LjI5IDM3IDEzLjM4IDM4LjhjLS4zNy4yMy0uNy44NC0uOTYgMS40LjI2LS4zNC41LS42Mi44OS0uODZDMTUuODcgMzcuNzggMjUgMzcuNzMgMjUgMzcuNzNzOS4xMy4wNSAxMS43IDEuNjJjLjM4LjI0LjU4LjUzLjg1Ljg3YTMgMyAwIDAgMC0xLjE1LTEuNkMzMy42NSAzNy4xNSAyNSAzNy4xNiAyNSAzNy4xNnoiLz48L3N2Zz4=')} +.is2d .queen.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjQuOTU5IDUuMDk0YTIuOTU4IDMuMzE2IDkwIDAgMC0zLjMxNiAyLjk1OCAyLjk1OCAzLjMxNiA5MCAwIDAgMy4zMTYgMi45NTkgMi45NTggMy4zMTYgOTAgMCAwIDMuMzE2LTIuOTU5IDIuOTU4IDMuMzE2IDkwIDAgMC0zLjMxNi0yLjk1OHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjQuODM2IDUuNzMyYy0uMzc2LS4yMS0zLjcyNC44MDYtMi4xODUgMy41NzYtLjIzNS0xLjU0NS40MzgtMy4yMDMgMi4xODUtMy41NzZ6Ii8+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjQuOTU5IDExLjAxMWMtNi41MDcgMC05LjU5NSA1Ljg4NC05LjU5NSAxMC4zNThoMTkuMjYzYzAtNC40NzQtMy4xNi0xMC4zNTgtOS42NjgtMTAuMzU4eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xOC4xNjEgMTQuOTc3YzEuMDQyLTEuNDc4IDIuOTItMy4yMiA2Ljg0LTMuMzgtLjMxLjI3Ny00Ljc4OCAxLjEzOC02Ljg0IDMuMzh6Ii8+PHBhdGggZD0iTTI0LjgzNiA1LjAwN3MuMDQ2LjIzOCAwIDBjMi40OCAxLjEyOSAyLjA1IDMuODQ3LjgxNyA1LjU0NyA3LjM1NCAzLjgwMyAyLjIxMyA4LjY2OSAyLjIxMiA4LjY2OGgyLjcwMWMxLjc2MiAxLjI4NyA3LjIwOS0yLjc0MS0zLjgzNS04LjY3IDMuNTI4LTMuMTE1LjA5Ny01LjYwNi0xLjg5NS01LjU0NnoiIG9wYWNpdHk9Ii4xNSIvPjxwYXRoIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzNjM2MzYyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDE1LjIyNWMtMS45NzEgMC0yLjM0OCAyLjY1LTQuMTM3IDIuODYtMS44Mi4yMTMtMy4zODEtMi4zMTItNS4yNS0xLjczNy0xLjQ5NS40Ni0uNzc4IDIuNi0xLjgwNSAzLjE3NS0xLjQwMi43ODUtMy4xODUtMS44MzItNS4yOS0uMjk4IDYuODM4IDguODI5IDguMDg1IDEyLjM3NyA3Ljk4MyAxOC44MTloMTYuOTk4Yy0uMTAzLTYuNDQzIDEuMTQ0LTkuOTkgNy45ODMtMTguODItMi4xMDYtMS41MzMtMy44ODkgMS4wODQtNS4yOS4zLTEuMDI3LS41NzYtLjMxMS0yLjcxNi0xLjgwNi0zLjE3Ni0xLjg2OC0uNTc1LTMuNDI5IDEuOTUtNS4yNSAxLjczNi0xLjc4OS0uMjEtMi4xNjYtMi44Ni00LjEzNy0yLjg2eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik05Ljg5NSAxOS4zNGMtLjEzNi0uMDEtLjMzMS4wNTYtLjQ1OC4wODUgMy4wODEgNC4xIDYuNTc1IDkuNTM3IDcuMDk5IDEyLjQxNy0xLjQwNy00LjkzMy0zLjI2Ny05LjU2Mi02LjE0LTEyLjQ3MnoiLz48cGF0aCBkPSJNMzkuOTc0IDE4LjczNWMtOS40ODUgMTAuMDAzLTkuOTI0IDE3Ljk4NS0xNi45NDEgMTkuMzFoMTAuNDc2Yy0uMTAzLTYuNDQzIDEuMTQ1LTkuOTkgNy45ODMtMTguODE5IDAgMC0uNjg4LS43NTYtMS41MTgtLjQ5MXoiIG9wYWNpdHk9Ii4xNSIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xNC45MTIgMTguOTQ1Yy4yMDMtLjA4OCAxLjE4NC0xLjgwOCAxLjk4LTEuOTUtMS40Mi0uMzQ2LTEuNjE4LS4wNDYtMS45OCAxLjk1em03LjU5OS0xLjA2OWMuOTUzLS44NDcgMS42MzMtMi42NTUgMy4yMzgtMS44NDUtLjc5OC0uMjMtMi4yMTUgMS4wNC0zLjIzOCAxLjg0NXptOC42MDkuMjU3Yy4yMS4wNyAyLjE3Ni0xLjY0MiAyLjg2Mi0xLjIxOCAwIDAtMS40MyAxLjEyLTIuODYyIDEuMjE4eiIvPjxwYXRoIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzNjM2MzYyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNSAzNi40NTdzLTkuMTMuMDQ4LTExLjY5MSAxLjYyYy0xLjcyNyAxLjA2LTIuMTM1IDMuNjUtMS45IDYuMzIzaDI3LjE4MmMuMjM1LTIuNjcyLS4xNzItNS4yNjQtMS45LTYuMzI0LTIuNTYtMS41NzEtMTEuNjktMS42Mi0xMS42OS0xLjYyeiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNSAzNy4xNDdzLTguNzEyLS4xMzctMTEuNjI0IDEuNjY2Yy0uMzcuMjI5LS43Ljg0LS45NTQgMS4zOS4yNjEtLjMzMS41MDItLjYxMy44ODctLjg0OUMxNS44NjkgMzcuNzgzIDI1IDM3LjczNCAyNSAzNy43MzRzOS4xMzIuMDQ5IDExLjY5MiAxLjYyYy4zOTEuMjQuNTkzLjUzMi44NTYuODcuMDI2LS4wNzYtLjQwOS0xLjE1OC0xLjE0NC0xLjU5NkMzMy42NDggMzcuMTM2IDI1IDM3LjE0NyAyNSAzNy4xNDd6Ii8+PC9zdmc+')} +.is2d .king.white {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjM2MzYzNjIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjcuNjcgMTUuMjJ2LTMuNTRoNC40NFY3LjI1aC00LjkzVjMuMzZIMjIuOHYzLjloLTQuOTN2NC40Mmg0LjQ0djMuNTUiLz48cmVjdCB3aWR0aD0iOS40IiBoZWlnaHQ9IjIuNzkiIHg9IjIwLjMiIHk9IjE0LjIxIiBmaWxsPSIjZjBmMGYwIiBzdHJva2U9IiMzYzNjM2MiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiByeT0iMS4zOSIvPjxwYXRoIGQ9Ik0yNi40MiAxNC4yMWMuNzIgMCAxLjMuNjMgMS4zIDEuNCAwIC43Ny0uNTggMS40LTEuMyAxLjRoMS45N2MuNzIgMCAxLjMtLjYzIDEuMy0xLjQgMC0uNzctLjU4LTEuNC0xLjMtMS40eiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxLjYzIDE0Ljg0Yy0uNCAwLS43Mi4zNS0uNzIuNzggMCAuNDIuMzIuNzcuNzIuNzdoLjg4Yy0uNCAwLS43My0uMzUtLjczLS43OCAwLS40Mi4zMi0uNzcuNzItLjc3eiIvPjxwYXRoIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzNjM2MzYyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTMzLjYzIDM2Ljk5czcuNzgtMTMuMzIgNi42Mi0xNS45MmMtMS4xNy0yLjYtOC40OC00LjUtMTUuMjUtNC41cy0xNC4wOCAxLjktMTUuMjUgNC41Yy0xLjE2IDIuNiA2LjYxIDE1LjkyIDYuNjEgMTUuOTJ6Ii8+PHBhdGggZD0iTTI1IDE2LjU4YzE1LjkzIDIuNjIgMTIuNTcgOS4zNSA2LjY0IDIyLjU0bDIuMDItMS43M3M3Ljc1LTEzLjcyIDYuNTktMTYuMzJjLTEuNTUtMi44My03LjUtNC4xNi0xNS4yNS00LjV6IiBvcGFjaXR5PSIuMTUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjMuNzcgMTcuM2MtMy45LS4xOS0xNC42MyAxLjgtMTMuNSA1LjAxLjggMy43MyAyLjc1IDcuMjUgNC41IDEwLjUtNS42OS0xMC4zMy01Ljk0LTEzLjc3IDktMTUuNTJ6TTIzLjM5IDRsLS4wMiAzLjNoLjU1bC4wMi0zLjN6bS00LjkzIDMuODd2My4yaC43N3YtMy4yem00LjQxIDMuMjEuMDMgMi40OWguNTJsLS4wMy0yLjQ5eiIvPjxwYXRoIGQ9Ik0yNi4xOSAzLjM2djMuOWguOTl2LTMuOXptNC40NCAzLjl2NC45NGgxLjQ4VjcuMjV6bS00LjQ0IDQuNDJ2Mi41aDEuNDh2LTIuNXoiIG9wYWNpdHk9Ii4xNSIvPjxwYXRoIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzNjM2MzYyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNSAzNi40NnMtOS4xMy4wNC0xMS43IDEuNjJjLTEuNzIgMS4wNi0yLjEzIDMuNjUtMS45IDYuMzJoMjcuMmMuMjMtMi42Ny0uMTgtNS4yNi0xLjktNi4zMkMzNC4xMiAzNi41IDI1IDM2LjQ2IDI1IDM2LjQ2eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNSAzNy4xNVMxNi4yOSAzNyAxMy4zOCAzOC44Yy0uMzcuMjMtLjcuODQtLjk2IDEuNC4yNi0uMzQuNS0uNjIuODktLjg2QzE1Ljg3IDM3Ljc4IDI1IDM3LjczIDI1IDM3LjczczkuMTMuMDUgMTEuNyAxLjYyYy4zOC4yNC41OC41NC44NS44N2EzIDMgMCAwIDAtMS4xNS0xLjZDMzMuNjUgMzcuMTUgMjUgMzcuMTYgMjUgMzcuMTZ6Ii8+PC9zdmc+')} +.is2d .pawn.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTIxLjUwMyAyNy41OTRoNi45OTRNMTkgMTcuNTA4YTYuMzUgNi4zNSAwIDAgMCAxLjk2NiA0LjU4N2wtMy42NSAyLjEuNDMgMy4zOTloNC4zMDZjLS43OTQgMy41NTktMi43NTUgNy4zMy01LjA2MiA4LjYxN3MtNS4zIDMuMDk3LTQuODQzIDguMTg5aDI1LjcwNmMuNDU3LTUuMDkyLTIuNTM1LTYuOTAyLTQuODQyLTguMTg5LTIuMzA3LTEuMjg2LTQuMjY4LTUuMDU4LTUuMDYyLTguNjE3aDQuMzA2bC40My0zLjQtMy42NS0yLjA5OWE2LjM1MiA2LjM1MiAwIDAgMCAxLjk2Ni00LjU4N2MwLTMuMzY3LTIuNjI4LTUuOTEyLTYtNS45MTItMy4zNzMgMC02LjAwMiAyLjU0NS02LjAwMSA1LjkxMnoiLz48cGF0aCBkPSJNMjQuOTYyIDExLjUzN2MxLjE3LS40NTkgOS41MjcgNS45MDYuNjQ3IDEwLjc3M2w0LjUxMiAyLjEtLjU2MiAzLjEyNWgyLjY1OWwuNDI4LTMuMzk5LTMuNjUtMi4xYzEuMjUzLTEuMiAxLjk2Mi0yLjU4IDEuOTY0LTQuMzEyLS40NjgtNS40MTYtNS45OTgtNi4xODYtNS45OTgtNi4xODZ6bS0yLjk0OSAxNS45OThjNC41MDMgNy45MzQgOS40NyA5Ljk5NCAxMy4wNzQgOS45NjVsLTIuMTE1LTEuMzQ3Yy0yLjA3NS0xLjQ5LTQuNzMyLTQuODU4LTUuMDYyLTguNjE4eiIgb3BhY2l0eT0iLjE4Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTIxLjk4MyAyMi4yMTMtMS42NDcgMi4zNDctMi4zNTYtLjAxNCA0LjAxMy0yLjMyNHptMi4zMjQtOS45NDZjLTIuNTQyLjEzOC01LjczIDMuMTczLTQuMzg1IDYuOTE4bC4xOTkuNjQzYy0uMzMtMy40ODkgMi4xMjctNy4xMTYgNC4xODYtNy41NjF6bS02LjQ0NCAyNS4zNThjLTMuOTg0IDIuMzA1LTUuMTE3IDYuMTQtNS4xMTcgNi4xNC0uMDEgMC0uNTQ4LTQuMTc1IDMuOTU2LTYuNjU0czQuODIyLTYuMTUgNS44Ni04Ljg5M2MtLjYzNiAzLjcwNC0uNzE1IDcuMTAyLTQuNjk5IDkuNDA3eiIgb3BhY2l0eT0iLjI1Ii8+PC9zdmc+')} +.is2d .knight.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9Ii0xLjUgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1LjE5MiAyMy4wMTVjLS4xNjU0IDYuOTY3Mi0xMS43NTggNS4yMTg5LTExLjUxNiAxOC4xMDRsMjIuODYuMTE4NGMtMi4wOTQtNi40NDIgOS42OS0yNS4xNi0xMS45MzEtMzIuMjU4di0uMDAwMXMtMi40MzgxLTIuNjAxLTUuOTY1NS0yLjgyMzdsLjIyMjcgMy41MzQ3LTQuNTU4MyA0LjU4MTZjLTIuNjI5NCAzLjE0NTUtOC43MzQ3IDguMzc4NC03Ljc1MTMgOS42MTExIDMuMTE1OCA1LjMwNDEgNi4zMzA2IDQuNDMxNiA2LjMzMDYgNC40MzE2IDQuMjQxOC00LjU0MzMgNS44MTkzLTIuMDg5NCAxMi4zMDktNS4yOTk3eiIvPjxwYXRoIGQ9Ik0xOS4zMiAxNC42OTRjLS43NzU3Ljg2MDktLjY5MDIgMS4xMTU2LS44MTM3IDIuMTUwMy44MDU1LjEyMzIgMS41MDY5LjIzOTggMi4yNDg2LjA2NTYgMi4zODA5LTEuMjYyLjA3NS0zLjQwMjYtMS40MzQ3LTIuMjE2MnoiIG9wYWNpdHk9Ii40IiBwYWludC1vcmRlcj0iZmlsbCBtYXJrZXJzIHN0cm9rZSIvPjxwYXRoIGQ9Ik05LjE5MTYgMjIuMTY2Yy0uODQ5Ni40MDc4LS45OTg0Ljk2MDgtMS4wNTY1IDEuNDc1NC43Mjg4LjQxODEgMS44NzY1LS4xMjU1IDIuMDQxMi0xLjQzMTZsLS45ODQ2LS4wNDR6IiBvcGFjaXR5PSIuMzUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNOC4xOTA1IDI1LjE1cy42NTI1IDEuMTM3NC0xLjEwMTktMS42NDFjLjY1OTQtMS45Nzc0IDguMjYzLTkuMDc5NiAxMi40MzgtMTMuNTM0bC0uMTgzNi0zLjA4NTdzMS4wNjg5IDEuNjkwMSAxLjI0NzUgMy40NjhjLTQuMzg5OCA0LjM5LTEyLjIyIDEwLjgzMy0xMi44MjQgMTMuMjEzLjAyMy42NzM4LjI0IDEuMDI3OC40MjMxIDEuNTc5N3oiIG9wYWNpdHk9Ii4yNSIvPjxwYXRoIGQ9Ik0xMy4yNiAyOC4yNTdjMi4wMjkxLTMuMzM2NyA4LjM5MTQtMy4yMjM5IDExLjkzMi01LjI0MjQuMzIyOC4xMDI0LjEzMDQgMS4zNjk3LjIzOTggMS4yMy44NDc2LTEuMDkwMyAyLjkyNTktMy4yNzkuODY4NC02Ljg3NDMuNTIxNCA1Ljk1NzUtMTMuNzE4IDUuNTkxMi0xNS44OSAxMC4zMDUtLjIwMDUuNDM1NSAyLjE4MTguNzkzMiAyLjg1LjU4MTh6IiBvcGFjaXR5PSIuMTgiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjUuOCAyMy43ODFjLTEuMDEzMSA1LjgxMzItOS41NDQ5IDYuMTE2OS0xMC45ODggMTIuNjQxIDIuODMzMi02LjQwNTggMTAuNzYyLTUuNzEzNiAxMC45ODgtMTIuNjQxeiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZD0iTTE4LjY0IDYuMTU1NnMzLjA1MS43MzggNC45MDQ1IDMuOTgyNWMyMC40OTkgNy4xNTM2IDcuNjQxMyAyNy45MzcgNS43ODgzIDMxLjA3M2w3LjIwMzQuMDI2Yy0xLjk4NzEtMy4yNDMxIDkuNTQ4Mi0yNS41OTctMTEuOTMxLTMyLjI1OC0xLjc3NTctMS4wNjkxLTIuNzY3Ny0yLjYwOTItNS45NjU1LTIuODIzOHoiIG9wYWNpdHk9Ii4xOCIvPjxwYXRoIGZpbGw9IiM1ZjU5NTUiIHN0cm9rZT0iIzFlMWUxZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNSAzNi40NTdzLTkuMTMwOS4wNDgtMTEuNjkxIDEuNjE5MmMtMS43MjczIDEuMDYwMi0yLjEzNDggMy42NTE0LTEuODk5OCA2LjMyMzdoMjcuMTgyYy4yMzUtMi42NzIzLS4xNzI1LTUuMjYzNi0xLjg5OTktNi4zMjM3LTIuNTU5Ny0xLjU3MTEtMTEuNjkxLTEuNjE5Mi0xMS42OTEtMS42MTkyeiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNSAzNy4xNDdzLTguNzEyMS0uMTM3My0xMS42MjQgMS42NjU4Yy0uMzY5OC4yMjkxLS42OTkyLjgzOTQtLjk1MzYgMS4zOTAyLjI2MDgtLjMzMTMuNTAyMi0uNjEzLjg4NjctLjg0OSAyLjU1OTgtMS41NzExIDExLjY5MS0xLjYxOTEgMTEuNjkxLTEuNjE5MXM5LjEzMTguMDQ4IDExLjY5MiAxLjYxOTFjLjM5MS4yNC41OTI0LjUzMTYuODU1Ni44NzAxLjAyNi0uMDc2LS40MDg0LTEuMTU3OC0xLjE0MzgtMS41OTYyLTIuNzU1NC0xLjQ5Mi0xMS40MDMtMS40ODA4LTExLjQwMy0xLjQ4MDh6IiBvcGFjaXR5PSIuMjUiLz48L3N2Zz4=')} +.is2d .bishop.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDUuNzdjLTIuMSAwLTMuODEuODgtMy44MSAxLjk2bDEuNTEgMi42NUM2LjY1IDI0LjQ3IDE3IDM3LjUyIDE3IDM3LjUyaDE2czcuMDUtOC42OC43Ny0xOS41MWwtMyA0LjgyYy0uNjYgMS4wOS0xLjk2IDEuNS0yLjkuOTEtLjkzLS41Ny0xLjE0LTEuOTEtLjQ3LTNsMy44OS02LjI3YTM1LjM4IDM1LjM4IDAgMCAwLTQtNC4wOWwxLjUyLTIuNjVjMC0xLjA4LTEuNy0xLjk2LTMuOC0xLjk2eiIvPjxwYXRoIGQ9Ik0yNSA1Ljc3Yy0uODIgMC0xLjU3LjEzLTIuMi4zNiA0LjM1Ljg0IDQuOTkgMS4xMiAyLjU3IDQuMzVsMy4yNCAzLjU2Yy0zLjY1IDguMjQtMS42IDgtMS42IDhzLjctMi42NSA0LjExLTcuNzdhMzUuNyAzNS43IDAgMCAwLTMuODItMy44OWwxLjUxLTIuNjVjMC0xLjA4LTEuNy0xLjk2LTMuODEtMS45NnpNMzMuNzcgMThsLTEuMDEgMS41MmMzLjczIDguNDEtNC4xNCAxOC00LjE0IDE4SDMzYy4xNi4wMyA2Ljk2LTguODUuNzctMTkuNTJ6IiBvcGFjaXR5PSIuMTgiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUuMTQgMzEuNzJjLS4yMi0uMDMtMy40Mi05Ljc4IDUuNzYtMTguNzUtMi4zIDEuOS03LjE0IDEzLjE2LTUuNzUgMTguNzV6TTIzLjMgMTAuMmwtMS40Ny0yLjZzLjI0LS43MiAxLjc4LTEuMDVjLTEuNzMgMS4zNS0xIDEuNjctLjMgMy42NXoiIG9wYWNpdHk9Ii4yNSIvPjxwYXRoIGZpbGw9IiM1ZjU5NTUiIHN0cm9rZT0iIzFlMWUxZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNSAzNi40NnMtOS4xMy4wNC0xMS43IDEuNjJjLTEuNzIgMS4wNi0yLjEzIDMuNjUtMS45IDYuMzJoMjcuMmMuMjMtMi42Ny0uMTgtNS4yNi0xLjktNi4zMkMzNC4xMiAzNi41IDI1IDM2LjQ2IDI1IDM2LjQ2eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNSAzNy4xNVMxNi4yOSAzNyAxMy4zOCAzOC44Yy0uMzcuMjMtLjcuODQtLjk2IDEuNC4yNi0uMzQuNS0uNjIuODktLjg2QzE1Ljg3IDM3Ljc4IDI1IDM3Ljc0IDI1IDM3Ljc0czkuMTMuMDQgMTEuNyAxLjYxYy4zOC4yNC41OC41NC44NS44N2EzIDMgMCAwIDAtMS4xNS0xLjZDMzMuNjUgMzcuMTUgMjUgMzcuMTYgMjUgMzcuMTZ6IiBvcGFjaXR5PSIuMjUiLz48L3N2Zz4=')} +.is2d .rook.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTE3LjkzIDIwLjQxYzQuOS0uNzQgOS41OC0uNTcgMTQuMTQgME0xNC4xOCA5LjY2Yy0xLjA2IDguNzcgMS4xIDEwLjY4IDMuNzUgMTAuNzVsLTMuMzEgMTguMTZoMjAuNzZsLTMuMzEtMTguMTZjMi42NC0uMDcgNC44LTEuOTggMy43NS0xMC43NWwtMy42MS0uNTMtMS4wNyAzLjY1LTMuMTUtLjEtLjUyLTMuNzZoLTQuOTRMMjIgMTIuNjhsLTMuMTUuMS0xLjA3LTMuNjV6Ii8+PHBhdGggZD0iTTE3LjkzIDIwLjQxYzYuODMgMCAxMy4xMi40MSAxNC45NSAxNi41OGwyLjMyLjM4LTMuMTMtMTYuNDNjLS4wMy0uMy02LjA5LTEuODItMTQuMTQtLjUzeiIgb3BhY2l0eT0iLjE4Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTE0Ljc4IDEwLjIyIDIuMjctLjI5Yy0xLjkxLjMyLTIuMyA1LjMtMi4zIDUuMy0uMjUtLjE4LS4yLTQuOS4wMy01LjAxem0xMC41LS42N2MtMS42NSAwLTIuNTIgMi43NS0yLjUyIDIuNzVsLjMzLTIuNzN6bTcuNC4yNy45Mi4xMWMtLjc4LjUtMS41OSAyLTEuNTkgMnptLTE0LjIgMTEuMTQgMi42MS0uMjljLTIuNjIuMy00LjkgMTMuMDUtNC45IDEzLjExeiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZD0iTTM0LjAxIDkuNGMuMzYgNi4zNi0xLjk1IDEwLjYtOC4wNCAxMC41M2w0Ljc4LjU3YzcuNTIuMyA1LjEtMTAuOCA1LjA3LTEwLjg0eiIgb3BhY2l0eT0iLjE4Ii8+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDM2LjQ2cy05LjEzLjA0LTExLjcgMS42MmMtMS43MiAxLjA2LTIuMTMgMy42NS0xLjkgNi4zMmgyNy4yYy4yMy0yLjY3LS4xOC01LjI2LTEuOS02LjMyQzM0LjEyIDM2LjUgMjUgMzYuNDYgMjUgMzYuNDZ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1IDM3LjE1UzE2LjI5IDM3IDEzLjM4IDM4LjhjLS4zNy4yMy0uNy44NC0uOTYgMS40LjI2LS4zNC41LS42Mi44OS0uODZDMTUuODcgMzcuNzggMjUgMzcuNzMgMjUgMzcuNzNzOS4xMy4wNSAxMS43IDEuNjJjLjM4LjI0LjU4LjUzLjg1Ljg3YTMgMyAwIDAgMC0xLjE1LTEuNkMzMy42NSAzNy4xNSAyNSAzNy4xNiAyNSAzNy4xNnoiIG9wYWNpdHk9Ii4yNSIvPjwvc3ZnPg==')} +.is2d .queen.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjQuOTU5IDUuMDk0YTIuOTU4IDMuMzE2IDkwIDAgMC0zLjMxNiAyLjk1OCAyLjk1OCAzLjMxNiA5MCAwIDAgMy4zMTYgMi45NTkgMi45NTggMy4zMTYgOTAgMCAwIDMuMzE2LTIuOTU5IDIuOTU4IDMuMzE2IDkwIDAgMC0zLjMxNi0yLjk1OHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjQuODM2IDUuNzMyYy0uMzc2LS4yMS0zLjcyNC44MDYtMi4xODUgMy41NzYtLjIzNS0xLjU0NS40MzgtMy4yMDMgMi4xODUtMy41NzZ6IiBvcGFjaXR5PSIuMjUiLz48cGF0aCBmaWxsPSIjNWY1OTU1IiBzdHJva2U9IiMxZTFlMWUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNC45NTkgMTEuMDExYy02LjUwNyAwLTkuNTk1IDUuODg0LTkuNTk1IDEwLjM1OGgxOS4yNjNjMC00LjQ3NC0zLjE2LTEwLjM1OC05LjY2OC0xMC4zNTh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE4LjE2MSAxNC45NzdjMS4wNDItMS40NzggMi45Mi0zLjIyIDYuODQtMy4zOC0uMzEuMjc3LTQuNzg4IDEuMTM4LTYuODQgMy4zOHoiIG9wYWNpdHk9Ii4yNSIvPjxwYXRoIGQ9Ik0yNC44MzYgNS4wMDdzLjA0Ni4yMzggMCAwYzIuNDggMS4xMjkgMi4wNSAzLjg0Ny44MTcgNS41NDcgNy4zNTQgMy44MDMgMi4yMTMgOC42NjkgMi4yMTIgOC42NjhoMi43MDFjMS43NjIgMS4yODcgNy4yMDktMi43NDEtMy44MzUtOC42NyAzLjUyOC0zLjExNS4wOTctNS42MDYtMS44OTUtNS41NDZ6IiBvcGFjaXR5PSIuMTgiLz48cGF0aCBmaWxsPSIjNWY1OTU1IiBzdHJva2U9IiMxZTFlMWUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Ik0yNSAxNS4yMjVjLTEuOTcxIDAtMi4zNDggMi42NS00LjEzNyAyLjg2LTEuODIuMjEzLTMuMzgxLTIuMzEyLTUuMjUtMS43MzctMS40OTUuNDYtLjc3OCAyLjYtMS44MDUgMy4xNzUtMS40MDIuNzg1LTMuMTg1LTEuODMyLTUuMjktLjI5OCA2LjgzOCA4LjgyOSA4LjA4NSAxMi4zNzcgNy45ODMgMTguODE5aDE2Ljk5OGMtLjEwMy02LjQ0MyAxLjE0NC05Ljk5IDcuOTgzLTE4LjgyLTIuMTA2LTEuNTMzLTMuODg5IDEuMDg0LTUuMjkuMy0xLjAyNy0uNTc2LS4zMTEtMi43MTYtMS44MDYtMy4xNzYtMS44NjgtLjU3NS0zLjQyOSAxLjk1LTUuMjUgMS43MzYtMS43ODktLjIxLTIuMTY2LTIuODYtNC4xMzctMi44NnoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNOS44OTUgMTkuMzRjLS4xMzYtLjAxLS4zMzEuMDU2LS40NTguMDg1IDMuMDgxIDQuMSA2LjU3NSA5LjUzNyA3LjA5OSAxMi40MTctMS40MDctNC45MzMtMy4yNjctOS41NjItNi4xNC0xMi40NzJ6IiBvcGFjaXR5PSIuMjUiLz48cGF0aCBkPSJNMzkuOTc0IDE4LjczNWMtOS40ODUgMTAuMDAzLTkuOTI0IDE3Ljk4NS0xNi45NDEgMTkuMzFoMTAuNDc2Yy0uMTAzLTYuNDQzIDEuMTQ1LTkuOTkgNy45ODMtMTguODE5IDAgMC0uNjg4LS43NTYtMS41MTgtLjQ5MXoiIG9wYWNpdHk9Ii4xOCIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xNC45MTIgMTguOTQ1Yy4yMDMtLjA4OCAxLjE4NC0xLjgwOCAxLjk4LTEuOTUtMS40Mi0uMzQ2LTEuNjE4LS4wNDYtMS45OCAxLjk1em03LjU5OS0xLjA2OWMuOTUzLS44NDcgMS42MzMtMi42NTUgMy4yMzgtMS44NDUtLjc5OC0uMjMtMi4yMTUgMS4wNC0zLjIzOCAxLjg0NXptOC42MDkuMjU3Yy4yMS4wNyAyLjE3Ni0xLjY0MiAyLjg2Mi0xLjIxOCAwIDAtMS40MyAxLjEyLTIuODYyIDEuMjE4eiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0iTTI1IDM2LjQ1N3MtOS4xMy4wNDgtMTEuNjkxIDEuNjJjLTEuNzI3IDEuMDYtMi4xMzUgMy42NS0xLjkgNi4zMjNoMjcuMTgyYy4yMzUtMi42NzItLjE3Mi01LjI2NC0xLjktNi4zMjQtMi41Ni0xLjU3MS0xMS42OS0xLjYyLTExLjY5LTEuNjJ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1IDM3LjE0N3MtOC43MTItLjEzNy0xMS42MjQgMS42NjZjLS4zNy4yMjktLjcuODQtLjk1NCAxLjM5LjI2MS0uMzMxLjUwMi0uNjEzLjg4Ny0uODQ5QzE1Ljg2OSAzNy43ODMgMjUgMzcuNzM0IDI1IDM3LjczNHM5LjEzMi4wNDkgMTEuNjkyIDEuNjJjLjM5MS4yNC41OTMuNTMyLjg1Ni44Ny4wMjYtLjA3Ni0uNDA5LTEuMTU4LTEuMTQ0LTEuNTk2QzMzLjY0OCAzNy4xMzYgMjUgMzcuMTQ3IDI1IDM3LjE0N3oiIG9wYWNpdHk9Ii4yNSIvPjwvc3ZnPg==')} +.is2d .king.black {background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBpbWFnZS1yZW5kZXJpbmc9Im9wdGltaXplUXVhbGl0eSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHZpZXdCb3g9IjAgMCA1MCA1MCI+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjcuNjcgMTUuMjJ2LTMuNTRoNC40NFY3LjI1aC00LjkzVjMuMzZIMjIuOHYzLjloLTQuOTN2NC40Mmg0LjQ0djMuNTUiLz48cmVjdCB3aWR0aD0iOS40IiBoZWlnaHQ9IjIuNzkiIHg9IjIwLjMiIHk9IjE0LjIxIiBmaWxsPSIjNWY1OTU1IiBzdHJva2U9IiMxZTFlMWUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiByeT0iMS4zOSIvPjxwYXRoIGQ9Ik0yNi40MiAxNC4yMWMuNzIgMCAxLjMuNjMgMS4zIDEuNCAwIC43Ny0uNTggMS40LTEuMyAxLjRoMS45N2MuNzIgMCAxLjMtLjYzIDEuMy0xLjQgMC0uNzctLjU4LTEuNC0xLjMtMS40eiIgb3BhY2l0eT0iLjE4Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxLjYzIDE0Ljg0Yy0uNCAwLS43Mi4zNS0uNzIuNzggMCAuNDIuMzIuNzcuNzIuNzdoLjg4Yy0uNCAwLS43My0uMzUtLjczLS43OCAwLS40Mi4zMi0uNzcuNzItLjc3eiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZmlsbD0iIzVmNTk1NSIgc3Ryb2tlPSIjMWUxZTFlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMzMuNjMgMzYuOTlzNy43OC0xMy4zMiA2LjYyLTE1LjkyYy0xLjE3LTIuNi04LjQ4LTQuNS0xNS4yNS00LjVzLTE0LjA4IDEuOS0xNS4yNSA0LjVjLTEuMTYgMi42IDYuNjEgMTUuOTIgNi42MSAxNS45MnoiLz48cGF0aCBkPSJNMjUgMTYuNThjMTUuOTMgMi42MiAxMi41NyA5LjM1IDYuNjQgMjIuNTRsMi4wMi0xLjczczcuNzUtMTMuNzIgNi41OS0xNi4zMmMtMS41NS0yLjgzLTcuNS00LjE2LTE1LjI1LTQuNXoiIG9wYWNpdHk9Ii4xOCIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMy43NyAxNy4zYy0zLjktLjE5LTE0LjYzIDEuOC0xMy41IDUuMDEuOCAzLjczIDIuNzUgNy4yNSA0LjUgMTAuNS01LjY5LTEwLjMzLTUuOTQtMTMuNzcgOS0xNS41MnpNMjMuMzkgNGwtLjAyIDMuM2guNTVsLjAyLTMuM3ptLTQuOTMgMy44N3YzLjJoLjc3di0zLjJ6bTQuNDEgMy4yMS4wMyAyLjQ5aC41MmwtLjAzLTIuNDl6IiBvcGFjaXR5PSIuMjUiLz48cGF0aCBkPSJNMjYuMTkgMy4zNnYzLjloLjk5di0zLjl6bTQuNDQgMy45djQuOTRoMS40OFY3LjI1em0tNC40NCA0LjQydjIuNWgxLjQ4di0yLjV6IiBvcGFjaXR5PSIuMTgiLz48cGF0aCBmaWxsPSIjNWY1OTU1IiBzdHJva2U9IiMxZTFlMWUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS4yIiBkPSJNMjUgMzYuNDZzLTkuMTMuMDQtMTEuNyAxLjYyYy0xLjcyIDEuMDYtMi4xMyAzLjY1LTEuOSA2LjMyaDI3LjJjLjIzLTIuNjctLjE4LTUuMjYtMS45LTYuMzJDMzQuMTIgMzYuNSAyNSAzNi40NiAyNSAzNi40NnoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjUgMzcuMTVTMTYuMjkgMzcgMTMuMzggMzguOGMtLjM3LjIzLS43Ljg0LS45NiAxLjQuMjYtLjM0LjUtLjYyLjg5LS44NkMxNS44NyAzNy43OCAyNSAzNy43MyAyNSAzNy43M3M5LjEzLjA1IDExLjcgMS42MmMuMzguMjQuNTguNTQuODUuODdhMyAzIDAgMCAwLTEuMTUtMS42QzMzLjY1IDM3LjE1IDI1IDM3LjE2IDI1IDM3LjE2eiIgb3BhY2l0eT0iLjI1Ii8+PC9zdmc+')} diff --git a/public/piece/staunty/bB.svg b/public/piece/staunty/bB.svg index af5fca1de65a1..6bad880d4184e 100644 --- a/public/piece/staunty/bB.svg +++ b/public/piece/staunty/bB.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/bK.svg b/public/piece/staunty/bK.svg index 5cebf93124b94..4b931cbf4652e 100644 --- a/public/piece/staunty/bK.svg +++ b/public/piece/staunty/bK.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/bN.svg b/public/piece/staunty/bN.svg index 0d5809da61df9..610665375a6de 100644 --- a/public/piece/staunty/bN.svg +++ b/public/piece/staunty/bN.svg @@ -1,23 +1 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/public/piece/staunty/bP.svg b/public/piece/staunty/bP.svg index b08fe6675da52..6dd75936412c9 100644 --- a/public/piece/staunty/bP.svg +++ b/public/piece/staunty/bP.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/bQ.svg b/public/piece/staunty/bQ.svg index 414a8af231db3..88aeed9e47e5d 100644 --- a/public/piece/staunty/bQ.svg +++ b/public/piece/staunty/bQ.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/bR.svg b/public/piece/staunty/bR.svg index 770eae50d510e..32d2bf24e071d 100644 --- a/public/piece/staunty/bR.svg +++ b/public/piece/staunty/bR.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/wB.svg b/public/piece/staunty/wB.svg index 1f9387a7aa433..483963aa8f1c5 100644 --- a/public/piece/staunty/wB.svg +++ b/public/piece/staunty/wB.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/wK.svg b/public/piece/staunty/wK.svg index b4124c4bce6c4..c6ac16ec2582a 100644 --- a/public/piece/staunty/wK.svg +++ b/public/piece/staunty/wK.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/wN.svg b/public/piece/staunty/wN.svg index 84416f63b1877..300033c54bf20 100644 --- a/public/piece/staunty/wN.svg +++ b/public/piece/staunty/wN.svg @@ -1,23 +1 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/public/piece/staunty/wP.svg b/public/piece/staunty/wP.svg index 6cd86679978a2..652082941f28c 100644 --- a/public/piece/staunty/wP.svg +++ b/public/piece/staunty/wP.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/wQ.svg b/public/piece/staunty/wQ.svg index c0da902cdb0ba..93dd7a07d09b5 100644 --- a/public/piece/staunty/wQ.svg +++ b/public/piece/staunty/wQ.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/piece/staunty/wR.svg b/public/piece/staunty/wR.svg index 1a9146f37bd80..99ed08e30a5dc 100644 --- a/public/piece/staunty/wR.svg +++ b/public/piece/staunty/wR.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 7f29533c706834981994f7ad17e5e34de3bf95bc Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Thu, 30 Jan 2025 08:25:02 +0100 Subject: [PATCH 23/39] Merge pull request #16881 from lichess-org/l10n_master New Crowdin updates --- translation/dest/appeal/pt-PT.xml | 2 +- translation/dest/coach/fr-FR.xml | 2 +- translation/dest/contact/af-ZA.xml | 2 +- translation/dest/contact/an-ES.xml | 2 +- translation/dest/contact/ar-SA.xml | 2 +- translation/dest/contact/az-AZ.xml | 2 +- translation/dest/contact/be-BY.xml | 2 +- translation/dest/contact/bg-BG.xml | 2 +- translation/dest/contact/bn-BD.xml | 2 +- translation/dest/contact/br-FR.xml | 2 +- translation/dest/contact/bs-BA.xml | 2 +- translation/dest/contact/ca-ES.xml | 2 +- translation/dest/contact/ckb-IR.xml | 2 +- translation/dest/contact/cs-CZ.xml | 2 +- translation/dest/contact/da-DK.xml | 2 +- translation/dest/contact/de-DE.xml | 2 +- translation/dest/contact/el-GR.xml | 2 +- translation/dest/contact/en-US.xml | 2 +- translation/dest/contact/eo-AA.xml | 2 +- translation/dest/contact/es-ES.xml | 2 +- translation/dest/contact/et-EE.xml | 2 +- translation/dest/contact/eu-ES.xml | 2 +- translation/dest/contact/fa-IR.xml | 2 +- translation/dest/contact/fi-FI.xml | 2 +- translation/dest/contact/fo-FO.xml | 2 +- translation/dest/contact/fr-FR.xml | 2 +- translation/dest/contact/ga-IE.xml | 2 +- translation/dest/contact/gl-ES.xml | 4 ++-- translation/dest/contact/gsw-CH.xml | 2 +- translation/dest/contact/gu-IN.xml | 2 +- translation/dest/contact/he-IL.xml | 2 +- translation/dest/contact/hi-IN.xml | 2 +- translation/dest/contact/hr-HR.xml | 2 +- translation/dest/contact/hu-HU.xml | 2 +- translation/dest/contact/hy-AM.xml | 2 +- translation/dest/contact/id-ID.xml | 2 +- translation/dest/contact/is-IS.xml | 2 +- translation/dest/contact/it-IT.xml | 2 +- translation/dest/contact/ja-JP.xml | 2 +- translation/dest/contact/kaa-UZ.xml | 2 +- translation/dest/contact/kk-KZ.xml | 2 +- translation/dest/contact/kmr-TR.xml | 2 +- translation/dest/contact/kn-IN.xml | 2 +- translation/dest/contact/ko-KR.xml | 2 +- translation/dest/contact/lb-LU.xml | 2 +- translation/dest/contact/lt-LT.xml | 2 +- translation/dest/contact/lv-LV.xml | 2 +- translation/dest/contact/mk-MK.xml | 2 +- translation/dest/contact/ml-IN.xml | 2 +- translation/dest/contact/nb-NO.xml | 2 +- translation/dest/contact/nl-NL.xml | 2 +- translation/dest/contact/nn-NO.xml | 2 +- translation/dest/contact/pl-PL.xml | 2 +- translation/dest/contact/pt-BR.xml | 2 +- translation/dest/contact/pt-PT.xml | 4 ++-- translation/dest/contact/ro-RO.xml | 2 +- translation/dest/contact/ru-RU.xml | 2 +- translation/dest/contact/si-LK.xml | 2 +- translation/dest/contact/sk-SK.xml | 2 +- translation/dest/contact/sl-SI.xml | 2 +- translation/dest/contact/sq-AL.xml | 2 +- translation/dest/contact/sr-SP.xml | 2 +- translation/dest/contact/sv-SE.xml | 2 +- translation/dest/contact/ta-IN.xml | 2 +- translation/dest/contact/th-TH.xml | 2 +- translation/dest/contact/tk-TM.xml | 2 +- translation/dest/contact/tr-TR.xml | 2 +- translation/dest/contact/tt-RU.xml | 2 +- translation/dest/contact/uk-UA.xml | 2 +- translation/dest/contact/uz-UZ.xml | 2 +- translation/dest/contact/vi-VN.xml | 2 +- translation/dest/contact/zh-CN.xml | 2 +- translation/dest/contact/zh-TW.xml | 2 +- translation/dest/settings/pt-PT.xml | 4 +++- translation/dest/site/en-US.xml | 2 +- translation/dest/site/pt-PT.xml | 1 + translation/dest/tfa/nl-NL.xml | 2 +- translation/dest/ublog/pt-PT.xml | 2 +- 78 files changed, 82 insertions(+), 79 deletions(-) diff --git a/translation/dest/appeal/pt-PT.xml b/translation/dest/appeal/pt-PT.xml index 5d8bd4c3879e4..9b20d6b727cf3 100644 --- a/translation/dest/appeal/pt-PT.xml +++ b/translation/dest/appeal/pt-PT.xml @@ -8,7 +8,7 @@ A tua conta está marcada por manipulação de classificação. Definimos isto como manipular deliberadamente a classificação ao perder jogos de propósito ou ao jogar contra outra conta que esteja deliberadamente a perder jogos. A tua conta foi silenciada. - Leia as nossas %s. O não cumprimento das diretrizes de comunicação pode resultar no silenciamento das contas. + Lê as nossas %s. O não cumprimento das diretrizes de comunicação pode resultar no silenciamento das contas. A tua conta foi excluída das tabelas de classificação. Definimos isto como a utilização de qualquer forma injusta para entrar na tabela de liderança. A tua conta foi encerrada pelos moderadores. diff --git a/translation/dest/coach/fr-FR.xml b/translation/dest/coach/fr-FR.xml index 4790228679a9a..ea330b6c3297f 100644 --- a/translation/dest/coach/fr-FR.xml +++ b/translation/dest/coach/fr-FR.xml @@ -3,7 +3,7 @@ Coaches sur Lichess Coach sur Lichess Êtes-vous entraîneur d\'échecs avec un %s ? - Maitre national ou titre FIDE + titre de maître national ou un titre FIDE Confirmez votre titre ici et nous examinerons votre demande. Envoyez-nous un courriel à %s et nous examinerons votre demande. Localisation diff --git a/translation/dest/contact/af-ZA.xml b/translation/dest/contact/af-ZA.xml index 2210f0e20352f..806d7bfc6ea04 100644 --- a/translation/dest/contact/af-ZA.xml +++ b/translation/dest/contact/af-ZA.xml @@ -5,7 +5,7 @@ Waarmee kan ons jou help? Besoek die webblad om die probleem op te los Ek kan nie aanteken nie - Ek het nie my bevestiging e-pos ontvang nie + Ek het nie my bevestiging e-pos ontvang nie Ek het my wagwoord vergeet Ek het my gebruikernaam vergeet Jy kan inteken met die e-pos adres waarmee jy geregistreer het diff --git a/translation/dest/contact/an-ES.xml b/translation/dest/contact/an-ES.xml index 5d3b3ed6ad930..c1609c655d3db 100644 --- a/translation/dest/contact/an-ES.xml +++ b/translation/dest/contact/an-ES.xml @@ -5,7 +5,7 @@ En qué podemos aduyar-te? Visita esta pachina pa resolver lo problema No puedo iniciar sesión - No recibo lo mío correu de confirmación + No recibo lo mío correu de confirmación He oblidau la mía clau He oblidau lo mío nombre d\'usuario Puez iniciar sesión con l\'adreza de correu electronico con que te rechistrés diff --git a/translation/dest/contact/ar-SA.xml b/translation/dest/contact/ar-SA.xml index fede3bdbc81c4..3ccce9a7c6d1f 100644 --- a/translation/dest/contact/ar-SA.xml +++ b/translation/dest/contact/ar-SA.xml @@ -5,7 +5,7 @@ كيف يمكن أن نساعدك؟ قم بزيارة هذه الصفحة لحل المشكلة لا يمكنني تسجيل الدخول - لم أستلم رسالة تأكيد البريد الإلكتروني + لم أستلم رسالة تأكيد البريد الإلكتروني لقد نسيت كلمة السر الخاصة بي لقد نسيت اسم المستخدم الخاص بي يمكنك تسجيل الدخول باستخدام عنوان البريد الإلكتروني الذي قمت بالتسجيل به diff --git a/translation/dest/contact/az-AZ.xml b/translation/dest/contact/az-AZ.xml index 0626ae09d8e44..064113c194f0e 100644 --- a/translation/dest/contact/az-AZ.xml +++ b/translation/dest/contact/az-AZ.xml @@ -5,7 +5,7 @@ Sizə nədə kömək edə bilərik? Problemi həll etmək üçün bu səhifəyə keçin Daxil ola bilmirəm - Təsdiq e-poçtu almadım + Təsdiq e-poçtu almadım Şifrəmi unutdum İstifadəçi adımı unutdum Qeydiyyatdan keçdiyiniz elektron poçt ünvanı ilə daxil ola bilərsiniz diff --git a/translation/dest/contact/be-BY.xml b/translation/dest/contact/be-BY.xml index b438a09e357a5..d1cffbb6d4eed 100644 --- a/translation/dest/contact/be-BY.xml +++ b/translation/dest/contact/be-BY.xml @@ -5,7 +5,7 @@ Чым мы можам вам дапамагчы? Наведайце гэтую старонку каб вырашыць праблему Не магу ўвайсці - Ліст пацвярджэння не прыйшоў + Ліст пацвярджэння не прыйшоў Забыўся(-лася) пароль Забыўся(-лася) на сваё імя карыстальніка(-цы) Вы можаце ўваісці з дапамогай электронай пошты, з якой вы рэгістраваліся diff --git a/translation/dest/contact/bg-BG.xml b/translation/dest/contact/bg-BG.xml index 180d93aea2195..492dc0ab27f11 100644 --- a/translation/dest/contact/bg-BG.xml +++ b/translation/dest/contact/bg-BG.xml @@ -5,7 +5,7 @@ Как можем да бъдем полезни? Посетете тази страница за разрешаване на проблема Не мога да вляза в профила си - Не получих имейл за потвърждение + Не получих имейл за потвърждение Забравих паролата си Забравих потребителското си име Можете да влезете с имейл адреса, с който сте регистрирани diff --git a/translation/dest/contact/bn-BD.xml b/translation/dest/contact/bn-BD.xml index ab7115fbce349..82b0fd708f6ee 100644 --- a/translation/dest/contact/bn-BD.xml +++ b/translation/dest/contact/bn-BD.xml @@ -5,7 +5,7 @@ আমরা কি আপনাকে কোন সাহায্য করতে পারি? সমস্যাটি সমাধান করতে এই পৃষ্ঠাটি দেখুন আমি লগ ইন করতে পারি না - আমি আমার নিশ্চিতকরণ ইমেলটি পাইনি + আমি আমার নিশ্চিতকরণ ইমেলটি পাইনি আমি আমার পাসওয়ার্ড ভুলে গেছি আমি আমার লেসেস ব্যবহারকারীর নাম ভুলে গেছি আপনি যে ইমেল ঠিকানাটি সাইন আপ করেছেন তা দিয়ে আপনি লগইন করতে পারেন diff --git a/translation/dest/contact/br-FR.xml b/translation/dest/contact/br-FR.xml index d345697c43f9c..de20a19e202fb 100644 --- a/translation/dest/contact/br-FR.xml +++ b/translation/dest/contact/br-FR.xml @@ -5,7 +5,7 @@ Penaos e c\'hellomp ho sikour? Kit war ar pajenn-mañ da zirouestlañ ho kudenn Ne c\'hallan ket kevreañ - N\'em eus ket resevet postel ebet evit kadarnat + N\'em eus ket resevet postel ebet evit kadarnat Disoñjet em eus ma ger-tremen Disoñjet em eus ma anv-implijer Gallout a rit kevreañ gant ar chomlec\'h postel arveret ganeoc\'h evit lakaat hoc\'h anv diff --git a/translation/dest/contact/bs-BA.xml b/translation/dest/contact/bs-BA.xml index 6cfe831bc7cbe..2ac01f149c266 100644 --- a/translation/dest/contact/bs-BA.xml +++ b/translation/dest/contact/bs-BA.xml @@ -5,7 +5,7 @@ Kako Vam možemo pomoći? Posjetite ovu stranicu kako biste riješili problem Ne mogu se prijaviti - Ne dobijam moju potvrdnu e-mail poruku + Ne dobijam moju potvrdnu e-mail poruku Zaboravio sam lozinku Zaboravio sam svoje korisničko ime Možete se prijaviti sa e-mail adresom koju ste koristili kada ste kreirali korisnički račun diff --git a/translation/dest/contact/ca-ES.xml b/translation/dest/contact/ca-ES.xml index 21d1683089d67..92268b7b7d41b 100644 --- a/translation/dest/contact/ca-ES.xml +++ b/translation/dest/contact/ca-ES.xml @@ -5,7 +5,7 @@ En que et podem ajudar? Visita aquesta pàgina per resoldre el problema No em puc connectar - No he rebut el correu de confirmació + No he rebut el correu de confirmació He oblidat la meva contrasenya He oblidat el meu nom d\'usuari Podeu iniciar la sessió amb l’adreça de correu electrònic amb la que us vau registrar diff --git a/translation/dest/contact/ckb-IR.xml b/translation/dest/contact/ckb-IR.xml index 709f50e196bd3..e585148e287e2 100644 --- a/translation/dest/contact/ckb-IR.xml +++ b/translation/dest/contact/ckb-IR.xml @@ -5,7 +5,7 @@ چۆن دەتوانین یارمەتیت بدەین? سەردانی ئەم پەڕەیە بکە بۆ چارەسەرکردنی کێشەکە ناتوانم بچمە ژوورەوە - ئیمەیڵی پشتڕاستکردنەوەکەم پێنەگەیشتووە + ئیمەیڵی پشتڕاستکردنەوەکەم پێنەگەیشتووە ووشەی نهێنیم بیرچووە ناوی بەکارهێنەرم بیرچووە دەتوانی لە ڕێگەی ناونیشانی ئەو ئیمێڵە بچیتە ژوورەوە کە سەرەتا هەژمارەکەت پێ دروستکردووە diff --git a/translation/dest/contact/cs-CZ.xml b/translation/dest/contact/cs-CZ.xml index 4f497cbcad2d3..33f958e0a006e 100644 --- a/translation/dest/contact/cs-CZ.xml +++ b/translation/dest/contact/cs-CZ.xml @@ -5,7 +5,7 @@ S čím vám můžeme pomoci? Navštivte tuto stránku pro vyřešení problému Nemohu se přihlásit - Nedostal jsem svůj potvrzovací e-mail + Nedostal jsem svůj potvrzovací e-mail Zapomněl jsem své heslo Zapomněl jsem své uživatelské jméno Můžete se přihlásit pomocí e-mailové adresy, se kterou jste se zaregistrovali diff --git a/translation/dest/contact/da-DK.xml b/translation/dest/contact/da-DK.xml index 6c32d83d23de4..233d404fc67bf 100644 --- a/translation/dest/contact/da-DK.xml +++ b/translation/dest/contact/da-DK.xml @@ -5,7 +5,7 @@ Hvad kan vi hjælpe dig med? Besøg denne side for at løse problemet Jeg kan ikke logge ind - Jeg modtog ikke min bekræftelsesmail + Jeg modtog ikke min bekræftelsesmail Jeg har glemt min adgangskode Jeg har glemt mit brugernavn Du kan logge ind med den e-mailadresse, som du tilmeldte dig med diff --git a/translation/dest/contact/de-DE.xml b/translation/dest/contact/de-DE.xml index 4325dd8a7ec93..3c05f71284d0c 100644 --- a/translation/dest/contact/de-DE.xml +++ b/translation/dest/contact/de-DE.xml @@ -5,7 +5,7 @@ Wie können wir dir helfen? Besuche diese Seite, um das Problem zu lösen Ich kann mich nicht einloggen - Ich erhalte meine Bestätigungs-E-Mail nicht + Ich erhalte meine Bestätigungs-E-Mail nicht Ich habe mein Passwort vergessen Ich habe meinen Benutzernamen vergessen Du kannst dich mit der E-Mail-Adresse einloggen, mit der du dich angemeldet hast diff --git a/translation/dest/contact/el-GR.xml b/translation/dest/contact/el-GR.xml index eabaf060c2a13..13fb786e168fe 100644 --- a/translation/dest/contact/el-GR.xml +++ b/translation/dest/contact/el-GR.xml @@ -5,7 +5,7 @@ Πως μπορούμε να σας βοηθήσουμε; Επισκεφτείτε αυτή τη σελίδα για επίλυση του προβλήματος Δεν μπορώ να συνδεθώ - Δεν έχω λάβει μήνυμα επιβεβαίωσης + Δεν έχω λάβει μήνυμα επιβεβαίωσης Ξέχασα τον κωδικό μου Ξέχασα το όνομα χρήστη Μπορείτε να συνδεθείτε με το email που εγγραφήκατε diff --git a/translation/dest/contact/en-US.xml b/translation/dest/contact/en-US.xml index 4744d5d67b942..4000a4db1bc98 100644 --- a/translation/dest/contact/en-US.xml +++ b/translation/dest/contact/en-US.xml @@ -5,7 +5,7 @@ What can we help you with? Visit this page to solve the issue I can\'t log in - I didn\'t receive my confirmation email + I didn\'t receive my confirmation email I forgot my password I forgot my username You can login with the email address you signed up with diff --git a/translation/dest/contact/eo-AA.xml b/translation/dest/contact/eo-AA.xml index 541b21f678516..45424296f1d16 100644 --- a/translation/dest/contact/eo-AA.xml +++ b/translation/dest/contact/eo-AA.xml @@ -5,7 +5,7 @@ Kiel ni povas helpi vin? Vizitu ĉi tiun paĝon por solvi la problemon Mi ne povas ensaluti - Mi ne ricevis mian konfirman retpoŝton + Mi ne ricevis mian konfirman retpoŝton Mi forgesis mian pasvorton Mi forgesis mian uzantnomo Vi povas ensaluti per la retpoŝta adreso, kiun vi uzis diff --git a/translation/dest/contact/es-ES.xml b/translation/dest/contact/es-ES.xml index a51451abb1b63..a70366af40479 100644 --- a/translation/dest/contact/es-ES.xml +++ b/translation/dest/contact/es-ES.xml @@ -5,7 +5,7 @@ ¿En qué podemos ayudarte? Visita esta página para resolver el problema No puedo iniciar sesión - No recibo mi correo de confirmación + No recibo mi correo de confirmación Olvidé mi contraseña Olvidé mi nombre de usuario Puedes iniciar sesión con la dirección de correo electrónico con la que te registraste diff --git a/translation/dest/contact/et-EE.xml b/translation/dest/contact/et-EE.xml index b81f8e4e2f238..73b02438eba27 100644 --- a/translation/dest/contact/et-EE.xml +++ b/translation/dest/contact/et-EE.xml @@ -5,7 +5,7 @@ Millega saame sind aidata? Külasta seda lehekülge, et probleem lahendada Ma ei saa sisse logida - Ma ei saanud kinnitust e-mailile + Ma ei saanud kinnitust e-mailile Ma unustasin oma parooli Ma unustasin oma kasutajanime Võid logida sisse sama e-mailiga, millega registreerusid kasutajaks diff --git a/translation/dest/contact/eu-ES.xml b/translation/dest/contact/eu-ES.xml index 9e4cf985744c6..59913806311f9 100644 --- a/translation/dest/contact/eu-ES.xml +++ b/translation/dest/contact/eu-ES.xml @@ -5,7 +5,7 @@ Zertan lagun zaitzakegu? Ikusi orrialde hau zure arazoa konpontzeko Ezin naiz sartu - Ez dut nire baieztapen eposta jaso + Ez dut nire baieztapen eposta jaso Pasahitza ahaztu dut Erabiltzaile-izena ahaztu dut Izena eman zenuenean esan zenigun eposta helbidearekin sar zaitezke diff --git a/translation/dest/contact/fa-IR.xml b/translation/dest/contact/fa-IR.xml index 17184aedb3e3f..4549759320322 100644 --- a/translation/dest/contact/fa-IR.xml +++ b/translation/dest/contact/fa-IR.xml @@ -5,7 +5,7 @@ در چه موردی می توانیم به شما کمک کنیم؟ از این صفحه بازدید نمایید تا مشکل برطرف شود نمی توانم وارد شوم - ایمیل تایید ثبت نام را دریافت نکردم + ایمیل تایید ثبت نام را دریافت نکردم رمز عبورم را فراموش کردم نام کاربری ام را فراموش کردم شما می توانید با آدرس ایمیلی که برای ثبت نام استفاده کردید وارد شوید diff --git a/translation/dest/contact/fi-FI.xml b/translation/dest/contact/fi-FI.xml index 73412d5d94263..491556919bf06 100644 --- a/translation/dest/contact/fi-FI.xml +++ b/translation/dest/contact/fi-FI.xml @@ -5,7 +5,7 @@ Kuinka voimme olla avuksi? Ongelman ratkaisemiseksi käy tällä sivulla En pääse kirjautumaan sisään - En saanut vahvistusta sähköpostitse + En saanut vahvistusta sähköpostitse Unohdin salasanani Unohdin käyttäjänimeni Voit kirjautua sisään sähköpostiosoitteella, jolla rekisteröidyit käyttäjäksi diff --git a/translation/dest/contact/fo-FO.xml b/translation/dest/contact/fo-FO.xml index 237bc00650c66..ae16da0f959b8 100644 --- a/translation/dest/contact/fo-FO.xml +++ b/translation/dest/contact/fo-FO.xml @@ -5,7 +5,7 @@ Hvørjum kunnu vit hjálpa tær við? Vitja hesa síðuna at greiða trupulleikan Eg fái ikki ritað inn - Eg fekk ikki teldupost við váttan + Eg fekk ikki teldupost við váttan Gloymt loyniorðið Eg havi gloymt mítt brúkaranavn Tú kanst rita inn við teldupostbústaðinum, tú meldaði teg til við diff --git a/translation/dest/contact/fr-FR.xml b/translation/dest/contact/fr-FR.xml index 4d9860145a095..548c9923c8b70 100644 --- a/translation/dest/contact/fr-FR.xml +++ b/translation/dest/contact/fr-FR.xml @@ -5,7 +5,7 @@ Comment pouvons-nous vous aider ? Visitez cette page pour résoudre le problème Je ne peux pas me connecter - Je ne reçois pas mon courriel de confirmation + Je ne reçois pas mon courriel de confirmation J’ai oublié mon mot de passe J\'ai oublié mon nom d\'utilisateur Vous pouvez vous connecter avec l\'adresse e-mail avec laquelle vous vous êtes inscrit diff --git a/translation/dest/contact/ga-IE.xml b/translation/dest/contact/ga-IE.xml index 49734245f35a9..b3af4575170ef 100644 --- a/translation/dest/contact/ga-IE.xml +++ b/translation/dest/contact/ga-IE.xml @@ -5,7 +5,7 @@ Cad is féidir linn cabhrú leat le? Tabhair cuairt ar an leathanach seo chun an cheist a réiteach Ní féidir liom logáil isteach - Ní bhfuair mé deimhniú r-phost + Ní bhfuair mé deimhniú r-phost Rinne mé dearmad ar mo phasfhocal Rinne mé dearmad ar m’ainm úsáideora Féadfaidh tú logáil isteach leis an seoladh ríomhphoist a usáid tú le sínigh isteach diff --git a/translation/dest/contact/gl-ES.xml b/translation/dest/contact/gl-ES.xml index 5919ec282d8bd..de28fa7272677 100644 --- a/translation/dest/contact/gl-ES.xml +++ b/translation/dest/contact/gl-ES.xml @@ -5,7 +5,7 @@ En que podemos axudarte? Visita esta páxina para resolver o problema Non podo iniciar sesión - Non recibín o meu correo de confirmación + Non recibín o meu correo de confirmación Esquecín o meu contrasinal Esquecín o meu nome de usuario Podes identificarte co enderezo de correo co que te deches de alta @@ -18,7 +18,7 @@ Podes pechar a túa conta nesta páxina Non nos solicites o peche da túa conta por correo electrónico. Non o faremos. Quero reabrir miña conta - Podes reabrir a túa conta nesta páxina. Só funcionará unha vez. + Podes reabrir a túa conta nesta páxina. Non nos solicites reabrir unha conta por correo electrónico. Non o faremos. Quero mudar o meu nome de usuario Visita esta páxina para cambiar as maiúsculas/minúsculas do teu nome de usuario diff --git a/translation/dest/contact/gsw-CH.xml b/translation/dest/contact/gsw-CH.xml index 88308e8afa800..d751d2cb226bd 100644 --- a/translation/dest/contact/gsw-CH.xml +++ b/translation/dest/contact/gsw-CH.xml @@ -5,7 +5,7 @@ Mit was chömmer hälfe? Bsuech die Site, um s\'Problem z\'löse Ich chann nöd ilogge - Ich han mis Beschtätigungs Mail nöd übercho + Ich han mis Beschtätigungs Mail nöd übercho Ich han mis Passwort vergässe Ich han min Benutzername vergässe Du chasch mit de E-Mail-Adrässe ilogge, wo du für d\'Regischtrierig benutzt häsch diff --git a/translation/dest/contact/gu-IN.xml b/translation/dest/contact/gu-IN.xml index fec61e2a00093..2bd7ad1c5e1c9 100644 --- a/translation/dest/contact/gu-IN.xml +++ b/translation/dest/contact/gu-IN.xml @@ -5,7 +5,7 @@ અમે તમને કેવી રીતે મદદ કરી શકીએ? તમારી સમસ્યા હલ કરવા માટે આ પેજની મુલાકાત લો હું લોગીન કરી શકતો નથી - મને મારો કન્ફર્મેશન ઈમેલ મળ્યો નથી + મને મારો કન્ફર્મેશન ઈમેલ મળ્યો નથી હું મારો પાસવાર્ડ ભૂલી ગયો છું હું મારું યુઝરનેમ નામ ભૂલી ગયો છુ તમે જે ઈમેલ એડ્રેસ સાથે સાઈન અપ કર્યું છે તેનાથી તમે લોગીન કરી શકો છો diff --git a/translation/dest/contact/he-IL.xml b/translation/dest/contact/he-IL.xml index 11f38cb1b7ff7..75fb85bcf948e 100644 --- a/translation/dest/contact/he-IL.xml +++ b/translation/dest/contact/he-IL.xml @@ -5,7 +5,7 @@ במה נוכל לעזור? צפו בעמוד זה כדי לפתור את הבעיה אני לא מצליח/ה להתחבר - לא קיבלתי את אימייל האישור + לא קיבלתי את אימייל האישור שכחתי את הסיסמה שכחתי את שם המשתמש את/ה יכול/ה להתחבר עם כתובת האימייל שאיתה נרשמת diff --git a/translation/dest/contact/hi-IN.xml b/translation/dest/contact/hi-IN.xml index 41bd37f34bdc0..5784510d8bf61 100644 --- a/translation/dest/contact/hi-IN.xml +++ b/translation/dest/contact/hi-IN.xml @@ -5,7 +5,7 @@ हमारे द्वारा आपकी किस प्रकार से सहायता की जा सकती है? समस्या को हल करने के लिए इस पृष्ठ पर जाएं मैं लॉगइन नहीं कर सकता। - मुझे अपना पुष्टिकरण ईमेल नहीं मिला + मुझे अपना पुष्टिकरण ईमेल नहीं मिला मैं अपना पासवर्ड भूल गया मैं अपना उपयोगकर्ता नाम भूल गया आप उस ईमेल पते से लॉगिन कर सकते हैं, जिससे आपने साइन अप किया था diff --git a/translation/dest/contact/hr-HR.xml b/translation/dest/contact/hr-HR.xml index f3cff80d2e815..46a4521937b0d 100644 --- a/translation/dest/contact/hr-HR.xml +++ b/translation/dest/contact/hr-HR.xml @@ -5,7 +5,7 @@ Kako vam možemo pomoći? Posjetite ovu stranicu da riješite problem Ne mogu se prijaviti - Nisam dobio potvrdni email + Nisam dobio potvrdni email Zaboravio/la sam lozinku Zaboravio/la sam svoje korisničko ime Možete se prijaviti sa e-poštom s kojom ste se prijavili diff --git a/translation/dest/contact/hu-HU.xml b/translation/dest/contact/hu-HU.xml index 6f9655df98b3f..9e30bbeba89c2 100644 --- a/translation/dest/contact/hu-HU.xml +++ b/translation/dest/contact/hu-HU.xml @@ -5,7 +5,7 @@ Miben segíthetünk? Látogass el az alábbi oldalra a probléma magoldásához Nem tudok belépni - Nem kaptam meg a visszaigazoló emailt + Nem kaptam meg a visszaigazoló emailt Elfelejtettem a jelszavamat Elfelejtettem a felhasználói nevemet Be tudsz lépni azzal az email címmel amivel regisztráltál diff --git a/translation/dest/contact/hy-AM.xml b/translation/dest/contact/hy-AM.xml index ae05e4c8e2df9..82975018ccf97 100644 --- a/translation/dest/contact/hy-AM.xml +++ b/translation/dest/contact/hy-AM.xml @@ -5,7 +5,7 @@ Ինչո՞վ կարող ենք օգնել։ Խնդիրը կարգավորելու համար այցելեք այս էջը Չեմ կարողանում մտնել - Չեմ ստանում հաստատումով նամակը + Չեմ ստանում հաստատումով նամակը Մոռացել եմ գաղտնաբառը։ Մոռացել եմ մասնակցային անունս Դուք կարող եք մուտք գործել այն էլեկտրոնային հասցեի օգնությամբ, որով գրանցվել եք diff --git a/translation/dest/contact/id-ID.xml b/translation/dest/contact/id-ID.xml index ac14e2f8a8bfd..1db4fb2828e9b 100644 --- a/translation/dest/contact/id-ID.xml +++ b/translation/dest/contact/id-ID.xml @@ -5,7 +5,7 @@ Apa yang bisa kami bantu? Kunjungi halaman ini untuk mengatasi masalah ini Saya tidak dapat masuk - Saya tidak mendapatkan konfirmasi email + Saya tidak mendapatkan konfirmasi email Saya lupa kata sandi Saya lupa nama pengguna Anda dapat masuk dengan alamat email yang Anda daftarkan diff --git a/translation/dest/contact/is-IS.xml b/translation/dest/contact/is-IS.xml index e4ef47ff92003..59346ab0c7ca6 100644 --- a/translation/dest/contact/is-IS.xml +++ b/translation/dest/contact/is-IS.xml @@ -5,7 +5,7 @@ Hvernig getum við aðstoðað? Farðu á síðuna til að leysa vandamálinu Ég get ekki skráð mig inn - Ég fékk ekki staðfestingapóstinn minn + Ég fékk ekki staðfestingapóstinn minn Ég gleymdi lykilorðinu mínu Ég gleymdi notendanafninu mínu diff --git a/translation/dest/contact/it-IT.xml b/translation/dest/contact/it-IT.xml index c9ceb947007b0..e266f8c38d533 100644 --- a/translation/dest/contact/it-IT.xml +++ b/translation/dest/contact/it-IT.xml @@ -5,7 +5,7 @@ In cosa possiamo aiutarti? Visita questa pagina per risolvere il problema Non riesco ad accedere - Non ho ricevuto la mia email di conferma + Non ho ricevuto la mia email di conferma Ho dimenticato la password Ho dimenticato il mio nome utente Puoi effettuare l\'accesso con l\'indirizzo email con cui ti sei registrato diff --git a/translation/dest/contact/ja-JP.xml b/translation/dest/contact/ja-JP.xml index e7f5458b46a5c..1b751f2b2b209 100644 --- a/translation/dest/contact/ja-JP.xml +++ b/translation/dest/contact/ja-JP.xml @@ -5,7 +5,7 @@ 何かお困りですか? こちらのページでトラブルを解決 ログインができない - アカウント確認のメールが来ない + アカウント確認のメールが来ない パスワードを忘れた ユーザー名を忘れた 登録した時のメールアドレスを使ってログインできます diff --git a/translation/dest/contact/kaa-UZ.xml b/translation/dest/contact/kaa-UZ.xml index aebc5265e47fb..13c36edfbd221 100644 --- a/translation/dest/contact/kaa-UZ.xml +++ b/translation/dest/contact/kaa-UZ.xml @@ -3,7 +3,7 @@ Sizge qanday járdem bere alamız? Bul mashqalanı sheshiw ushın bul betke ótiń Men kire almay atırman - Men tastıyıqlaw xatın qabıllamadım + Men tastıyıqlaw xatın qabıllamadım Men paroldi umıttım Men paydalanıwshı atın umıttım Siz dizimnen ótken elektron pochta adresińiz benen kire alasız diff --git a/translation/dest/contact/kk-KZ.xml b/translation/dest/contact/kk-KZ.xml index e79ea2f9f9f49..434ac6c4be919 100644 --- a/translation/dest/contact/kk-KZ.xml +++ b/translation/dest/contact/kk-KZ.xml @@ -5,7 +5,7 @@ Сізге қандай көмек көрсете аламыз? Бұл мәселені шешу үшін осы парақшаны ашыңыз Мен кіре алмай отырмын - Маған растау хаты келген жоқ + Маған растау хаты келген жоқ Мен құпиясөзімді ұмыттым Мен тіркеулі атымды ұмыттым Сіз поштаңыздың мекенжайын жазып, тіркелгіге кіре аласыз diff --git a/translation/dest/contact/kmr-TR.xml b/translation/dest/contact/kmr-TR.xml index 8810281229926..18ac9f1ea09cc 100644 --- a/translation/dest/contact/kmr-TR.xml +++ b/translation/dest/contact/kmr-TR.xml @@ -5,7 +5,7 @@ Em dikarin çawa alîkarîya we bikin? Serdana vê rûpelê bikin ku pirsgirêk çareser bikin Ez nikarim têkevim - Min e-nameya xwe ya pejirandinê wernegirt + Min e-nameya xwe ya pejirandinê wernegirt Min pêborînê xwe ji bîr kir Min navê bikarhênerê bîr ve kir Hûn dikarin bi navnîşana e-nameya ku we pê re qeydkirî têkevinê diff --git a/translation/dest/contact/kn-IN.xml b/translation/dest/contact/kn-IN.xml index 89b9a9b882275..2a9afde215520 100644 --- a/translation/dest/contact/kn-IN.xml +++ b/translation/dest/contact/kn-IN.xml @@ -5,7 +5,7 @@ ನಾವು ನಿಮಗೆ ಏನು ಸಹಾಯ ಮಾಡಬಹುದು? ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಈ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಿ ನಾನು ಲಾಗ್ ಇನ್ ಆಗಲು ಸಾಧ್ಯವಿಲ್ಲ - ನನ್ನ ದೃಢೀಕರಣ ಇಮೇಲ್ ಅನ್ನು ನಾನು ಸ್ವೀಕರಿಸಲಿಲ್ಲ + ನನ್ನ ದೃಢೀಕರಣ ಇಮೇಲ್ ಅನ್ನು ನಾನು ಸ್ವೀಕರಿಸಲಿಲ್ಲ ನಾನು ನನ್ನ ಗುಪ್ತಪದವನ್ನು ಮರೆತಿದ್ದೇನೆ ನನ್ನ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಾನು ಮರೆತಿದ್ದೇನೆ ನೀವು ಸೈನ್ ಅಪ್ ಮಾಡಿದ ಇಮೇಲ್ ವಿಳಾಸದೊಂದಿಗೆ ನೀವು ಲಾಗಿನ್ ಮಾಡಬಹುದು diff --git a/translation/dest/contact/ko-KR.xml b/translation/dest/contact/ko-KR.xml index 985796708df4e..028b10c4ddc18 100644 --- a/translation/dest/contact/ko-KR.xml +++ b/translation/dest/contact/ko-KR.xml @@ -5,7 +5,7 @@ 어떻게 도와드릴까요? 이 페이지를 방문해 문제를 해결하십시오 로그인이 되지 않아요 - 확인 이메일을 받지 못했어요 + 확인 이메일을 받지 못했어요 비밀번호를 잊어버렸어요 유저네임을 잊어버렸어요 당신이 회원가입한 이메일 주소로 로그인할 수 있습니다 diff --git a/translation/dest/contact/lb-LU.xml b/translation/dest/contact/lb-LU.xml index 4d03c3f93af45..5cf27b48e52db 100644 --- a/translation/dest/contact/lb-LU.xml +++ b/translation/dest/contact/lb-LU.xml @@ -5,7 +5,7 @@ Woubäi kënne mir dir hëllefen? Besich dës Säit fir den Probleem ze léisen Ech kann mech net aloggen - Ech hunn keng Confirmatiounsemail kritt + Ech hunn keng Confirmatiounsemail kritt Ech hunn mäin Passwuert vergiess Ech hun mäin Benotzernumm vergiess Du kanns dech mat der Email Adress aloggen mat der du dech ugemellt hues diff --git a/translation/dest/contact/lt-LT.xml b/translation/dest/contact/lt-LT.xml index fcd78c66909d3..3ec7c133009e5 100644 --- a/translation/dest/contact/lt-LT.xml +++ b/translation/dest/contact/lt-LT.xml @@ -5,7 +5,7 @@ Kuo galime padėti? Apsilankę šiame tinklalapyje išspręsite problemą Negaliu prisijungti - Negaunu patvirtinimo laiško + Negaunu patvirtinimo laiško Pamiršau slaptažodį Pamiršau prisijungimo vardą Galite prisijungti el. pašto adresu, kuriuo užsiregistravote diff --git a/translation/dest/contact/lv-LV.xml b/translation/dest/contact/lv-LV.xml index b95c968399c6d..3b400fdb99c4a 100644 --- a/translation/dest/contact/lv-LV.xml +++ b/translation/dest/contact/lv-LV.xml @@ -5,7 +5,7 @@ Kā varam palīdzēt? Apmeklējiet šo lapu, lai atrisinātu problēmu Nevaru ierakstīties - Neesmu saņēmis apstiprinājuma e-pastu + Neesmu saņēmis apstiprinājuma e-pastu Aizmirsu savu paroli Aizmirsu savu lietotājvārdu Varat ierakstīties ar e-pasta adresi, kuru izmantojāt lai reģistrētos diff --git a/translation/dest/contact/mk-MK.xml b/translation/dest/contact/mk-MK.xml index d7d55bd35f693..6fb1c6e55aac1 100644 --- a/translation/dest/contact/mk-MK.xml +++ b/translation/dest/contact/mk-MK.xml @@ -5,7 +5,7 @@ Како можеме да ви помогнеме? Посетете ја странава за да го решите проблемот Не можам да се пријавам - Не ја добив потврдната е-пошта + Не ја добив потврдната е-пошта Ја заборавив мојата лозинка Го заборавив моето корисничко име Можете да се пријавите со е-поштата со која се регистриравте diff --git a/translation/dest/contact/ml-IN.xml b/translation/dest/contact/ml-IN.xml index 0ca81e754cdd6..0269637d0fab5 100644 --- a/translation/dest/contact/ml-IN.xml +++ b/translation/dest/contact/ml-IN.xml @@ -5,7 +5,7 @@ ഞങ്ങൾക്കു് താങ്ങളെ എങ്ങനെ സഹായിക്കാനാകും? ഈ പ്രശ്നത്തിനു് വഴികണ്ടെത്താൻ ഈ താളിലേക്കു് ചെല്ലുക എനിക്കു് പ്രവേശിക്കാൻ ഒക്കനില്ല - എനിക്കു് എന്റെ ഉറപ്പിക്കൽ ഇമെയിൽ കിട്ടിയില്ല + എനിക്കു് എന്റെ ഉറപ്പിക്കൽ ഇമെയിൽ കിട്ടിയില്ല ഞാൻ എന്റെ രഹസ്യവാക്ക് മറന്നുപോയി ഞാൻ എന്റെ ഉപയോക്തൃപേര് മറന്നുപോയി ഈ വെബ്സ്ഥാനത്തിൽ ചേരാൻ ഉപയോഗിച്ച ഇ-തപാൽ വിലാസം ഒപ്പം താങ്ങൾക്കു് പ്രവേശിക്കാം diff --git a/translation/dest/contact/nb-NO.xml b/translation/dest/contact/nb-NO.xml index 47d184db27dd0..33275a4871f32 100644 --- a/translation/dest/contact/nb-NO.xml +++ b/translation/dest/contact/nb-NO.xml @@ -5,7 +5,7 @@ Hva kan vi hjelpe deg med? Gå til denne sida for å løse problemet Jeg kan ikke logge inn - Jeg mottar ikke bekreftelse på epost + Jeg mottar ikke bekreftelse på epost Jeg har glemt passordet mitt Jeg har glemt brukernavnet mitt Du kan logge inn med den e-postadressen du registrerte deg med diff --git a/translation/dest/contact/nl-NL.xml b/translation/dest/contact/nl-NL.xml index 07ef95d1c4f09..73d34f644d870 100644 --- a/translation/dest/contact/nl-NL.xml +++ b/translation/dest/contact/nl-NL.xml @@ -5,7 +5,7 @@ Waar kunnen we je mee helpen? Bezoek deze pagina om het probleem op te lossen Ik kan niet inloggen - Ik heb geen bevestigingsmail ontvangen + Ik heb geen bevestigingsmail ontvangen Ik ben mijn wachtwoord vergeten Ik ben mijn gebruikersnaam vergeten Je kunt inloggen met het e-mailadres waarmee je je hebt aangemeld diff --git a/translation/dest/contact/nn-NO.xml b/translation/dest/contact/nn-NO.xml index 94e14cf3e837a..976596bc9f23d 100644 --- a/translation/dest/contact/nn-NO.xml +++ b/translation/dest/contact/nn-NO.xml @@ -5,7 +5,7 @@ Kva kan vi hjelpe deg med? Gå til denne sida for å løyse problemet Eg kan ikkje logge inn - Eg mottok ikkje stadfesting på epost + Eg mottok ikkje stadfesting på epost Eg har gløymd passordet mitt Eg har gløymd brukarnamnet mitt Du kan logge inn med den e-postadressa du registrerte deg med diff --git a/translation/dest/contact/pl-PL.xml b/translation/dest/contact/pl-PL.xml index 0d7edab8e5c7a..ec53a6acca551 100644 --- a/translation/dest/contact/pl-PL.xml +++ b/translation/dest/contact/pl-PL.xml @@ -5,7 +5,7 @@ W czym możemy Ci pomóc? Odwiedź tę stronę, aby rozwiązać problem Nie mogę się zalogować - Nie otrzymałem potwierdzenia e-mail + Nie otrzymałem potwierdzenia e-mail Nie pamiętam hasła Zapomniałem moją nazwę użytkownika Możesz zalogować się za pomocą adresu e-mail, którego użyłeś podczas rejestracji diff --git a/translation/dest/contact/pt-BR.xml b/translation/dest/contact/pt-BR.xml index ad45e33efa91a..fac6ece9bd1e1 100644 --- a/translation/dest/contact/pt-BR.xml +++ b/translation/dest/contact/pt-BR.xml @@ -5,7 +5,7 @@ Como podemos ajudar? Visite esta página para resolver o problema Eu não consigo entrar - Não recebi meu e-mail de confirmação + Não recebi meu e-mail de confirmação Esqueci minha senha Esqueci meu usuário Você pode fazer login com o e-mail que você se inscreveu diff --git a/translation/dest/contact/pt-PT.xml b/translation/dest/contact/pt-PT.xml index f59e4fee880e1..81f619844d092 100644 --- a/translation/dest/contact/pt-PT.xml +++ b/translation/dest/contact/pt-PT.xml @@ -5,7 +5,7 @@ Como te podemos ajudar? Visita esta página para resolveres o problema Não consigo iniciar sessão - Não recebi a minha confirmação de e-mail + Não recebi a minha confirmação de e-mail Esqueci-me da minha palavra-passe Esqueci-me do meu nome de utilizador Podes iniciar sessão com o endereço de e-mail com que te registaste @@ -18,7 +18,7 @@ Podes fechar a tua conta nesta página Não nos peças para fecharmos uma conta por e-mail, não o faremos. Quero reabrir a minha conta - Podes reabrir a tua conta a partir desta página. Só funciona uma vez. + Podes reabrir a tua conta a partir desta página. Não nos peças para reabrirmos uma conta por e-mail, não o faremos. Quero mudar o meu nome de utilizador Visita esta página para alterares as maiúsculas para minúsculas ou vice-versa do teu nome de utilizador diff --git a/translation/dest/contact/ro-RO.xml b/translation/dest/contact/ro-RO.xml index bd6b1992364be..8d82bbaa6f49b 100644 --- a/translation/dest/contact/ro-RO.xml +++ b/translation/dest/contact/ro-RO.xml @@ -5,7 +5,7 @@ Cu ce te putem ajuta? Vizitați această pagină pentru a rezolva problema Nu mă pot conecta - Nu am primit e-mail-ul de confirmare + Nu am primit e-mail-ul de confirmare Mi-am uitat parola Mi-am uitat numele de utilizator Te poți autentifica cu adresa de e-mail cu care te-ai înregistrat diff --git a/translation/dest/contact/ru-RU.xml b/translation/dest/contact/ru-RU.xml index 442affea45f7d..abe576325af3c 100644 --- a/translation/dest/contact/ru-RU.xml +++ b/translation/dest/contact/ru-RU.xml @@ -5,7 +5,7 @@ Чем мы можем вам помочь? Посетите эту страницу для решения проблемы Не могу войти - Не приходит письмо с подтверждением + Не приходит письмо с подтверждением Я забыл(-а) пароль Я забыл(-а) свое имя пользователя Вы можете войти с помощью адреса электронной почты, с которого вы зарегистрировались diff --git a/translation/dest/contact/si-LK.xml b/translation/dest/contact/si-LK.xml index b2eb02eebec74..acabef12753b1 100644 --- a/translation/dest/contact/si-LK.xml +++ b/translation/dest/contact/si-LK.xml @@ -5,7 +5,7 @@ අපට ඔබට උදව් කළ හැක්කේ කුමක් ද? ගැටලුව විසඳීමට මෙම පිටුවට පිවිසෙන්න මට ලොග් වෙන්න බෑ - මට මගේ තහවුරු කිරීමේ විද්‍යුත් තැපෑල ලැබුණේ නැත + මට මගේ තහවුරු කිරීමේ විද්‍යුත් තැපෑල ලැබුණේ නැත මට මගේ මුරපදය අමතක විය මට මගේ පරිශීලක නාමය අමතක විය ඔබ ලියාපදිංචි වූ විද්‍යුත් තැපැල් ලිපිනයෙන් ඔබට පුරනය විය හැක diff --git a/translation/dest/contact/sk-SK.xml b/translation/dest/contact/sk-SK.xml index a63150e18d3f8..654fd9663f87f 100644 --- a/translation/dest/contact/sk-SK.xml +++ b/translation/dest/contact/sk-SK.xml @@ -5,7 +5,7 @@ Ako ti môžeme pomôcť? Pre vyriešenie problému navštív túto stránku Nemôžem sa prihlásiť - Nedostal som potvrdzovací email + Nedostal som potvrdzovací email Zabudol som svoje heslo Zabudol som svoje používateľské meno Môžeš sa prihlásiť s emailovou adresou, ktorú si použil pri registrácii diff --git a/translation/dest/contact/sl-SI.xml b/translation/dest/contact/sl-SI.xml index 60cf1182a92b2..402ad9265fb68 100644 --- a/translation/dest/contact/sl-SI.xml +++ b/translation/dest/contact/sl-SI.xml @@ -5,7 +5,7 @@ Kako vam lahko pomagamo? Obiščite to stran, da rešite težavo Ne morem se vpisati - Nisem prejel potrditvene pošte + Nisem prejel potrditvene pošte Pozabil sem geslo Pozabil sem uporabniško ime Vpišete se lahko z naslovom elektronske pošte, s katero ste se registrirali diff --git a/translation/dest/contact/sq-AL.xml b/translation/dest/contact/sq-AL.xml index a6b879eccb6c8..5e56ab4f2ee8e 100644 --- a/translation/dest/contact/sq-AL.xml +++ b/translation/dest/contact/sq-AL.xml @@ -5,7 +5,7 @@ Si mund t’ju ndihmojmë? Vizitoni këtë faqe për të zgjidhur problemin S’bëj dot hyrjen - S’mora email-in tim të ripohimit + S’mora email-in tim të ripohimit Harrova fjalëkalimin Harrova emrin tim të përdoruesit Mund të bëni hyrjen me adresën email me të cilën u regjistruar diff --git a/translation/dest/contact/sr-SP.xml b/translation/dest/contact/sr-SP.xml index c0d35699d20eb..5969ee22250ec 100644 --- a/translation/dest/contact/sr-SP.xml +++ b/translation/dest/contact/sr-SP.xml @@ -5,7 +5,7 @@ Како Вам можемо помоћи? Посетите ову страницу да решите проблем Логовање није успело - Нисам примио е-пошту потврде + Нисам примио е-пошту потврде Заборавио/ла сам лозинку Заборавио/ла сам корисничко име Можете се улоговати са адресом е-поште са којом сте се пријавили diff --git a/translation/dest/contact/sv-SE.xml b/translation/dest/contact/sv-SE.xml index a0885eb8d00ec..150634cbb047b 100644 --- a/translation/dest/contact/sv-SE.xml +++ b/translation/dest/contact/sv-SE.xml @@ -5,7 +5,7 @@ Vad kan vi hjälpa dig med? Besök denna sida för att lösa problemet Jag kan inte logga in - Jag får inte mitt bekräftelsemejl + Jag får inte mitt bekräftelsemejl Jag har glömt mitt lösenord Jag har glömt mitt användarnamn Du kan logga in med den e-postadress du registrerade dig med diff --git a/translation/dest/contact/ta-IN.xml b/translation/dest/contact/ta-IN.xml index dfbc8a6f0c76f..3d0fa63384b8d 100644 --- a/translation/dest/contact/ta-IN.xml +++ b/translation/dest/contact/ta-IN.xml @@ -5,7 +5,7 @@ நாங்கள் உங்களுக்கு என்ன உதவ முடியும்? சிக்கலைத் தீர்க்க இந்தப் பக்கத்தைப் பார்வையிடவும் என்னால் உள்நுழைய முடியவில்லை - எனது உறுதிப்படுத்தல் மின்னஞ்சலைப் பெறவில்லை + எனது உறுதிப்படுத்தல் மின்னஞ்சலைப் பெறவில்லை என் கடவுச்சொல்லை மறந்துவிட்டேன் என் பயனர்பெயரை மறந்துவிட்டேன் நீங்கள் பதிவுசெய்த மின்னஞ்சல் முகவரியுடன் உள்நுழையலாம் diff --git a/translation/dest/contact/th-TH.xml b/translation/dest/contact/th-TH.xml index 43d77ea91c8d6..a3ead2cbc67fb 100644 --- a/translation/dest/contact/th-TH.xml +++ b/translation/dest/contact/th-TH.xml @@ -5,7 +5,7 @@ เราช่วยอะไรคุณได้บ้าง? แวะไปหน้านี้เพื่อแก้ปัญหา ฉันไม่สามารถเข้าสู่ระบบ - ฉันไม่ได้รับอีเมลยืนยัน + ฉันไม่ได้รับอีเมลยืนยัน ฉันลืมรหัสผ่าน ฉันลืมชื่อผู้ใช้ของฉัน คุณสามารถเข้าสู่ระบบด้วยอีเมลที่คุณสมัครไว้ diff --git a/translation/dest/contact/tk-TM.xml b/translation/dest/contact/tk-TM.xml index 5ab7518b3ca37..6913c26c1c469 100644 --- a/translation/dest/contact/tk-TM.xml +++ b/translation/dest/contact/tk-TM.xml @@ -4,7 +4,7 @@ Lichess bilen habarlaş Size näme komek edip bileris? Şahsy sahypama girip bilemok - Dogrulama hatyny almadym + Dogrulama hatyny almadym Parolymy unutdym Ulanyjy adyny unutdym Men şahsy sahypamy tazeden açmak isleýän diff --git a/translation/dest/contact/tr-TR.xml b/translation/dest/contact/tr-TR.xml index 57ea2e22edacb..8a23929712809 100644 --- a/translation/dest/contact/tr-TR.xml +++ b/translation/dest/contact/tr-TR.xml @@ -5,7 +5,7 @@ Size ne konuda yardımcı olabiliriz? Sorununuzu çözmek için bu sayfayı ziyaret edin Giriş yapamıyorum - Hesap doğrulama e-postasını almadım + Hesap doğrulama e-postasını almadım Şifremi unuttum Kullanıcı adımı unuttum Üye olduğunuz e-posta adresini kullanarak giriş yapabilirsiniz diff --git a/translation/dest/contact/tt-RU.xml b/translation/dest/contact/tt-RU.xml index 2e009642e1370..657155980569a 100644 --- a/translation/dest/contact/tt-RU.xml +++ b/translation/dest/contact/tt-RU.xml @@ -5,7 +5,7 @@ Без сезгә нәрсә ярдәм итә алабыз? Мәсьәләне чишү өчен бу биткә керегез Мин керә алмыйм - Мин раслау электрон почтасын алмадым + Мин раслау электрон почтасын алмадым Мин оныттым серсүзне Мин оныттым кулланучы исемен Сез үзегез язган электрон почта адресы белән керә аласыз diff --git a/translation/dest/contact/uk-UA.xml b/translation/dest/contact/uk-UA.xml index 891a71f223ca6..5e63b727b8651 100644 --- a/translation/dest/contact/uk-UA.xml +++ b/translation/dest/contact/uk-UA.xml @@ -5,7 +5,7 @@ Чим ми можемо вам допомогти? Відвідайте цю сторінку, щоб вирішити проблему Я не можу увійти - Я не отримав лист з підтвердженням + Я не отримав лист з підтвердженням Я забув пароль Я забув ім\'я користувача Ви можете увійти за допомогою електронної пошти, за допомогою якої ви зареєструвалися diff --git a/translation/dest/contact/uz-UZ.xml b/translation/dest/contact/uz-UZ.xml index 99dc5a771bb35..0558aa7e35d45 100644 --- a/translation/dest/contact/uz-UZ.xml +++ b/translation/dest/contact/uz-UZ.xml @@ -5,7 +5,7 @@ Sizga qanday yordam bera olamiz? Muammoni hal qilish uchun ushbu sahifaga tashrif buyuring Men kira olmayabman - Elektron manzilimga tasdiq xati kelmadi + Elektron manzilimga tasdiq xati kelmadi Men parolimni unutib qo\'ydim Men username eslay olmayabman Siz tasdiqlangan elektron manzili bilan tizimga kirishingiz mumkin diff --git a/translation/dest/contact/vi-VN.xml b/translation/dest/contact/vi-VN.xml index 31407eae8b1d3..8fdf6392e587d 100644 --- a/translation/dest/contact/vi-VN.xml +++ b/translation/dest/contact/vi-VN.xml @@ -5,7 +5,7 @@ Chúng tôi có thể giúp gì cho bạn? Truy cập trang này để giải quyết vấn đề Tôi không thể đăng nhập được - Tôi không nhận được email xác nhận của mình + Tôi không nhận được email xác nhận của mình Tôi đã quên mật khẩu của mình Tôi đã quên tên đăng nhập của mình Bạn có thể đăng nhập bằng địa chỉ email mà bạn đăng kí diff --git a/translation/dest/contact/zh-CN.xml b/translation/dest/contact/zh-CN.xml index 74a8d32a75d77..8fe9ae2ea0fbe 100644 --- a/translation/dest/contact/zh-CN.xml +++ b/translation/dest/contact/zh-CN.xml @@ -5,7 +5,7 @@ 你需要什么帮助? 请向往该页面解决问题 我无法登录 - 我没有收到确认邮件 + 我没有收到确认邮件 我忘了我的密码 我忘了我的用户名 你可以使用你注册的电子邮箱地址登录 diff --git a/translation/dest/contact/zh-TW.xml b/translation/dest/contact/zh-TW.xml index cac6d23de321b..a55a7e98137e1 100644 --- a/translation/dest/contact/zh-TW.xml +++ b/translation/dest/contact/zh-TW.xml @@ -5,7 +5,7 @@ 有什麼我們能幫您的地方? 觀看這個頁面以獲取解答 我無法登錄。 - 我沒有收到我的電子郵件確認信 + 我沒有收到我的電子郵件確認信 我忘記了密碼 我忘了自己的用戶名 您可以使用之前註冊的電子郵件登入 diff --git a/translation/dest/settings/pt-PT.xml b/translation/dest/settings/pt-PT.xml index 062b8d0da1f52..91b62ab510dd2 100644 --- a/translation/dest/settings/pt-PT.xml +++ b/translation/dest/settings/pt-PT.xml @@ -3,6 +3,8 @@ Configurações Encerrar a conta A sua conta é gerida e não pode ser encerrada. - Não poderá criar uma nova conta com o mesmo nome, mesmo que as maiúsculas ou minúsculas sejam diferentes. + O nome de utilizador NÃO estará disponível para registo novamente. + Cancelar e manter a minha conta + Tens certeza que desejas encerrar a tua conta? Esta conta foi encerrada. diff --git a/translation/dest/site/en-US.xml b/translation/dest/site/en-US.xml index c33bc12559dd4..d53b4d143b145 100644 --- a/translation/dest/site/en-US.xml +++ b/translation/dest/site/en-US.xml @@ -982,7 +982,7 @@ Leave empty to start games from the normal initial position. Focus chat Show this help dialog Reopen your account - If you closed your account but have since changed your mind, you have a chance to get your account back. + If you closed your account but have since changed your mind, you may reopen it now. Email address associated to the account We\'ve sent you an email with a link. Tournament entry code diff --git a/translation/dest/site/pt-PT.xml b/translation/dest/site/pt-PT.xml index 96e387dcc779c..a31dc4c0326d5 100644 --- a/translation/dest/site/pt-PT.xml +++ b/translation/dest/site/pt-PT.xml @@ -985,6 +985,7 @@ Deixe em branco para iniciar jogos da posição inicial normal. Focar no bate-papo Mostrar esta mensagem de ajuda Reabrir a sua conta + Se fechares a tua conta, mas mudares de ideias, tens uma hipótese de recuperá-la. Endereço de email associado à conta Enviámos-lhe um e-mail com um link. Código de entrada do torneio diff --git a/translation/dest/tfa/nl-NL.xml b/translation/dest/tfa/nl-NL.xml index 58df703c1f91c..4ccedcb514bee 100644 --- a/translation/dest/tfa/nl-NL.xml +++ b/translation/dest/tfa/nl-NL.xml @@ -5,7 +5,7 @@ Download een app voor tweestapsverificatie. Wij raden de volgende apps aan: Scan de QR-code met de app. Voer je wachtwoord in en de verificatiecode die door de app wordt gegenereerd om de tweestapsverificatie te activeren. Je hebt elke keer dat je inlogt een verificatiecode nodig. - Als u de code niet kunt scannen, voer de geheime code %s in in uw app. + Als je de code niet kunt scannen, voer de geheime code %s in in je app. Verificatiecode Opmerking: Als je geen toegang meer hebt tot je tweestapsverificatiecodes, kan je een %s via e-mail doen. Schakel tweestapsverificatie in diff --git a/translation/dest/ublog/pt-PT.xml b/translation/dest/ublog/pt-PT.xml index b857a7e0f756c..f9e2d305ff9ff 100644 --- a/translation/dest/ublog/pt-PT.xml +++ b/translation/dest/ublog/pt-PT.xml @@ -26,7 +26,7 @@ Publicar no teu blog Se for marcada, a publicação será listada no teu blog. Se não, ficará privada, nos teus rascunhos de publicações Fixar publicação - Se selecionado, esta publicação será listada em primeiro no teu perfil de publicações recentes. + Se selecionado, esta publicação será listada em primeiro lugar nas publicações recentes do teu perfil e no teu blog. Fez uma publicação no blog Fez %s publicações no blog From 783a76aa9e7a976834f4d098097cdbfede03306d Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Thu, 30 Jan 2025 08:28:11 +0100 Subject: [PATCH 24/39] fix tournament schedule highlight --- modules/tournament/src/main/ui/TournamentList.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tournament/src/main/ui/TournamentList.scala b/modules/tournament/src/main/ui/TournamentList.scala index 7c5f2a36caeb6..3f1b4fdbcf440 100644 --- a/modules/tournament/src/main/ui/TournamentList.scala +++ b/modules/tournament/src/main/ui/TournamentList.scala @@ -68,7 +68,7 @@ final class TournamentList(helpers: Helpers, ui: TournamentUi)( div(cls := "scheduled")( scheduled.map: tour => tour.schedule - .filter(_ != Freq.Hourly) + .filter(_.freq != Freq.Hourly) .map: s => a(href := routes.Tournament.show(tour.id), dataIcon := ui.tournamentIcon(tour))( strong(tour.name(full = false)), From c0d5a09d0369f422d341d9210cfa17c980df8e0e Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Thu, 30 Jan 2025 08:29:46 +0100 Subject: [PATCH 25/39] delete unused function --- modules/tournament/src/main/Tournament.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/tournament/src/main/Tournament.scala b/modules/tournament/src/main/Tournament.scala index b276d2d0edbd0..5e70aef616de8 100644 --- a/modules/tournament/src/main/Tournament.scala +++ b/modules/tournament/src/main/Tournament.scala @@ -124,8 +124,6 @@ case class Tournament( secondsToFinish.pipe: s => "%02d:%02d".format(s / 60, s % 60) - def schedulePair = schedule.map { this -> _ } - def winner = winnerId.map { userId => Winner( From a1fe70ed68fe31287e870d25293aecda2e1f9d29 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Thu, 30 Jan 2025 08:47:16 +0100 Subject: [PATCH 26/39] tweak swiss ids from game query --- modules/game/src/main/GameRepo.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/game/src/main/GameRepo.scala b/modules/game/src/main/GameRepo.scala index 37f0b19d67cca..2ac2617031fa2 100644 --- a/modules/game/src/main/GameRepo.scala +++ b/modules/game/src/main/GameRepo.scala @@ -579,4 +579,5 @@ final class GameRepo(c: Coll)(using Executor) extends lila.core.game.GameRepo(c) yield allIds // expensive, enumerates all the player's games - def swissIdsOf(id: UserId): Fu[Set[SwissId]] = coll.distinctEasy[SwissId, Set](F.swissId, Query.user(id)) + def swissIdsOf(id: UserId): Fu[Set[SwissId]] = + coll.distinctEasy[SwissId, Set](F.swissId, Query.user(id) ++ F.swissId.$exists(true)) From f6f76c2fac7c9bbbaedc7c5bc9dbdc61b92e8eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Gl=C3=B3rias?= Date: Thu, 30 Jan 2025 17:50:24 +0000 Subject: [PATCH 27/39] add fide-fed webp version --- public/images/fide-fed-webp/img/AFG.webp | Bin 0 -> 3144 bytes public/images/fide-fed-webp/img/AHO.webp | Bin 0 -> 102 bytes public/images/fide-fed-webp/img/ALB.webp | Bin 0 -> 2128 bytes public/images/fide-fed-webp/img/ALG.webp | Bin 0 -> 894 bytes public/images/fide-fed-webp/img/AND.webp | Bin 0 -> 2496 bytes public/images/fide-fed-webp/img/ANG.webp | Bin 0 -> 1360 bytes public/images/fide-fed-webp/img/ANT.webp | Bin 0 -> 1962 bytes public/images/fide-fed-webp/img/ARG.webp | Bin 0 -> 1518 bytes public/images/fide-fed-webp/img/ARM.webp | Bin 0 -> 76 bytes public/images/fide-fed-webp/img/ARU.webp | Bin 0 -> 830 bytes public/images/fide-fed-webp/img/AUS.webp | Bin 0 -> 2918 bytes public/images/fide-fed-webp/img/AUT.webp | Bin 0 -> 84 bytes public/images/fide-fed-webp/img/AZE.webp | Bin 0 -> 646 bytes public/images/fide-fed-webp/img/BAH.webp | Bin 0 -> 1204 bytes public/images/fide-fed-webp/img/BAN.webp | Bin 0 -> 624 bytes public/images/fide-fed-webp/img/BAR.webp | Bin 0 -> 650 bytes public/images/fide-fed-webp/img/BDI.webp | Bin 0 -> 2558 bytes public/images/fide-fed-webp/img/BEL.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/BER.webp | Bin 0 -> 3516 bytes public/images/fide-fed-webp/img/BHU.webp | Bin 0 -> 5932 bytes public/images/fide-fed-webp/img/BIH.webp | Bin 0 -> 2296 bytes public/images/fide-fed-webp/img/BIZ.webp | Bin 0 -> 6080 bytes public/images/fide-fed-webp/img/BLR.webp | Bin 0 -> 3012 bytes public/images/fide-fed-webp/img/BOL.webp | Bin 0 -> 1960 bytes public/images/fide-fed-webp/img/BOT.webp | Bin 0 -> 96 bytes public/images/fide-fed-webp/img/BRA.webp | Bin 0 -> 3396 bytes public/images/fide-fed-webp/img/BRN.webp | Bin 0 -> 282 bytes public/images/fide-fed-webp/img/BRU.webp | Bin 0 -> 4758 bytes public/images/fide-fed-webp/img/BUL.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/BUR.webp | Bin 0 -> 792 bytes public/images/fide-fed-webp/img/CAF.webp | Bin 0 -> 398 bytes public/images/fide-fed-webp/img/CAM.webp | Bin 0 -> 1932 bytes public/images/fide-fed-webp/img/CAN.webp | Bin 0 -> 702 bytes public/images/fide-fed-webp/img/CAY.webp | Bin 0 -> 3516 bytes public/images/fide-fed-webp/img/CHA.webp | Bin 0 -> 78 bytes public/images/fide-fed-webp/img/CHI.webp | Bin 0 -> 394 bytes public/images/fide-fed-webp/img/CHN.webp | Bin 0 -> 664 bytes public/images/fide-fed-webp/img/CIV.webp | Bin 0 -> 82 bytes public/images/fide-fed-webp/img/CMR.webp | Bin 0 -> 334 bytes public/images/fide-fed-webp/img/COD.webp | Bin 0 -> 2150 bytes public/images/fide-fed-webp/img/COL.webp | Bin 0 -> 80 bytes public/images/fide-fed-webp/img/COM.webp | Bin 0 -> 1926 bytes public/images/fide-fed-webp/img/CPV.webp | Bin 0 -> 1908 bytes public/images/fide-fed-webp/img/CRC.webp | Bin 0 -> 108 bytes public/images/fide-fed-webp/img/CRO.webp | Bin 0 -> 2312 bytes public/images/fide-fed-webp/img/CUB.webp | Bin 0 -> 1472 bytes public/images/fide-fed-webp/img/CYP.webp | Bin 0 -> 2032 bytes public/images/fide-fed-webp/img/CZE.webp | Bin 0 -> 784 bytes public/images/fide-fed-webp/img/DEN.webp | Bin 0 -> 152 bytes public/images/fide-fed-webp/img/DJI.webp | Bin 0 -> 1128 bytes public/images/fide-fed-webp/img/DMA.webp | Bin 0 -> 1738 bytes public/images/fide-fed-webp/img/DOM.webp | Bin 0 -> 1264 bytes public/images/fide-fed-webp/img/ECU.webp | Bin 0 -> 7118 bytes public/images/fide-fed-webp/img/EGY.webp | Bin 0 -> 1384 bytes public/images/fide-fed-webp/img/ENG.webp | Bin 0 -> 108 bytes public/images/fide-fed-webp/img/ERI.webp | Bin 0 -> 3714 bytes public/images/fide-fed-webp/img/ESA.webp | Bin 0 -> 2026 bytes public/images/fide-fed-webp/img/ESP.webp | Bin 0 -> 2616 bytes public/images/fide-fed-webp/img/EST.webp | Bin 0 -> 86 bytes public/images/fide-fed-webp/img/ETH.webp | Bin 0 -> 1968 bytes public/images/fide-fed-webp/img/FAI.webp | Bin 0 -> 198 bytes public/images/fide-fed-webp/img/FID.webp | Bin 0 -> 3226 bytes public/images/fide-fed-webp/img/FIJ.webp | Bin 0 -> 4362 bytes public/images/fide-fed-webp/img/FIN.webp | Bin 0 -> 340 bytes public/images/fide-fed-webp/img/FRA.webp | Bin 0 -> 94 bytes public/images/fide-fed-webp/img/GAB.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/GAM.webp | Bin 0 -> 106 bytes public/images/fide-fed-webp/img/GCI.webp | Bin 0 -> 356 bytes public/images/fide-fed-webp/img/GEO.webp | Bin 0 -> 328 bytes public/images/fide-fed-webp/img/GEQ.webp | Bin 0 -> 1664 bytes public/images/fide-fed-webp/img/GER.webp | Bin 0 -> 72 bytes public/images/fide-fed-webp/img/GHA.webp | Bin 0 -> 508 bytes public/images/fide-fed-webp/img/GRE.webp | Bin 0 -> 294 bytes public/images/fide-fed-webp/img/GRN.webp | Bin 0 -> 1914 bytes public/images/fide-fed-webp/img/GUA.webp | Bin 0 -> 1506 bytes public/images/fide-fed-webp/img/GUM.webp | Bin 0 -> 4008 bytes public/images/fide-fed-webp/img/GUY.webp | Bin 0 -> 3572 bytes public/images/fide-fed-webp/img/HAI.webp | Bin 0 -> 1786 bytes public/images/fide-fed-webp/img/HKG.webp | Bin 0 -> 1238 bytes public/images/fide-fed-webp/img/HON.webp | Bin 0 -> 588 bytes public/images/fide-fed-webp/img/HUN.webp | Bin 0 -> 92 bytes public/images/fide-fed-webp/img/INA.webp | Bin 0 -> 56 bytes public/images/fide-fed-webp/img/IND.webp | Bin 0 -> 734 bytes public/images/fide-fed-webp/img/IOM.webp | Bin 0 -> 2866 bytes public/images/fide-fed-webp/img/IRI.webp | Bin 0 -> 3612 bytes public/images/fide-fed-webp/img/IRL.webp | Bin 0 -> 86 bytes public/images/fide-fed-webp/img/IRQ.webp | Bin 0 -> 690 bytes public/images/fide-fed-webp/img/ISL.webp | Bin 0 -> 180 bytes public/images/fide-fed-webp/img/ISR.webp | Bin 0 -> 936 bytes public/images/fide-fed-webp/img/ISV.webp | Bin 0 -> 7154 bytes public/images/fide-fed-webp/img/ITA.webp | Bin 0 -> 92 bytes public/images/fide-fed-webp/img/IVB.webp | Bin 0 -> 7204 bytes public/images/fide-fed-webp/img/JAM.webp | Bin 0 -> 1230 bytes public/images/fide-fed-webp/img/JCI.webp | Bin 0 -> 9716 bytes public/images/fide-fed-webp/img/JOR.webp | Bin 0 -> 1070 bytes public/images/fide-fed-webp/img/JPN.webp | Bin 0 -> 624 bytes public/images/fide-fed-webp/img/KAZ.webp | Bin 0 -> 5914 bytes public/images/fide-fed-webp/img/KEN.webp | Bin 0 -> 1440 bytes public/images/fide-fed-webp/img/KGZ.webp | Bin 0 -> 3276 bytes public/images/fide-fed-webp/img/KOR.webp | Bin 0 -> 3004 bytes public/images/fide-fed-webp/img/KOS.webp | Bin 0 -> 1724 bytes public/images/fide-fed-webp/img/KSA.webp | Bin 0 -> 3218 bytes public/images/fide-fed-webp/img/KUW.webp | Bin 0 -> 642 bytes public/images/fide-fed-webp/img/LAO.webp | Bin 0 -> 530 bytes public/images/fide-fed-webp/img/LAT.webp | Bin 0 -> 60 bytes public/images/fide-fed-webp/img/LBA.webp | Bin 0 -> 444 bytes public/images/fide-fed-webp/img/LBN.webp | Bin 0 -> 1714 bytes public/images/fide-fed-webp/img/LBR.webp | Bin 0 -> 606 bytes public/images/fide-fed-webp/img/LCA.webp | Bin 0 -> 1856 bytes public/images/fide-fed-webp/img/LES.webp | Bin 0 -> 588 bytes public/images/fide-fed-webp/img/LIE.webp | Bin 0 -> 1688 bytes public/images/fide-fed-webp/img/LTU.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/LUX.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/MAC.webp | Bin 0 -> 2004 bytes public/images/fide-fed-webp/img/MAD.webp | Bin 0 -> 84 bytes public/images/fide-fed-webp/img/MAR.webp | Bin 0 -> 484 bytes public/images/fide-fed-webp/img/MAS.webp | Bin 0 -> 1664 bytes public/images/fide-fed-webp/img/MAW.webp | Bin 0 -> 1792 bytes public/images/fide-fed-webp/img/MDA.webp | Bin 0 -> 4944 bytes public/images/fide-fed-webp/img/MDV.webp | Bin 0 -> 444 bytes public/images/fide-fed-webp/img/MEX.webp | Bin 0 -> 2144 bytes public/images/fide-fed-webp/img/MGL.webp | Bin 0 -> 750 bytes public/images/fide-fed-webp/img/MKD.webp | Bin 0 -> 1692 bytes public/images/fide-fed-webp/img/MLI.webp | Bin 0 -> 74 bytes public/images/fide-fed-webp/img/MLT.webp | Bin 0 -> 824 bytes public/images/fide-fed-webp/img/MNC.webp | Bin 0 -> 56 bytes public/images/fide-fed-webp/img/MNE.webp | Bin 0 -> 4246 bytes public/images/fide-fed-webp/img/MOZ.webp | Bin 0 -> 1748 bytes public/images/fide-fed-webp/img/MRI.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/MTN.webp | Bin 0 -> 888 bytes public/images/fide-fed-webp/img/MYA.webp | Bin 0 -> 1012 bytes public/images/fide-fed-webp/img/NAM.webp | Bin 0 -> 3248 bytes public/images/fide-fed-webp/img/NCA.webp | Bin 0 -> 1326 bytes public/images/fide-fed-webp/img/NED.webp | Bin 0 -> 102 bytes public/images/fide-fed-webp/img/NEP.webp | Bin 0 -> 2416 bytes public/images/fide-fed-webp/img/NGR.webp | Bin 0 -> 76 bytes public/images/fide-fed-webp/img/NIG.webp | Bin 0 -> 350 bytes public/images/fide-fed-webp/img/NOR.webp | Bin 0 -> 180 bytes public/images/fide-fed-webp/img/NRU.webp | Bin 0 -> 700 bytes public/images/fide-fed-webp/img/NZL.webp | Bin 0 -> 2948 bytes public/images/fide-fed-webp/img/OMA.webp | Bin 0 -> 784 bytes public/images/fide-fed-webp/img/PAK.webp | Bin 0 -> 772 bytes public/images/fide-fed-webp/img/PAN.webp | Bin 0 -> 884 bytes public/images/fide-fed-webp/img/PAR.webp | Bin 0 -> 1064 bytes public/images/fide-fed-webp/img/PER.webp | Bin 0 -> 2956 bytes public/images/fide-fed-webp/img/PHI.webp | Bin 0 -> 2678 bytes public/images/fide-fed-webp/img/PLE.webp | Bin 0 -> 640 bytes public/images/fide-fed-webp/img/PLW.webp | Bin 0 -> 604 bytes public/images/fide-fed-webp/img/PNG.webp | Bin 0 -> 2274 bytes public/images/fide-fed-webp/img/POL.webp | Bin 0 -> 56 bytes public/images/fide-fed-webp/img/POR.webp | Bin 0 -> 3048 bytes public/images/fide-fed-webp/img/PUR.webp | Bin 0 -> 1580 bytes public/images/fide-fed-webp/img/QAT.webp | Bin 0 -> 754 bytes public/images/fide-fed-webp/img/ROU.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/img/RSA.webp | Bin 0 -> 2102 bytes public/images/fide-fed-webp/img/RUS.webp | Bin 0 -> 3012 bytes public/images/fide-fed-webp/img/RWA.webp | Bin 0 -> 1336 bytes public/images/fide-fed-webp/img/SCO.webp | Bin 0 -> 832 bytes public/images/fide-fed-webp/img/SEN.webp | Bin 0 -> 524 bytes public/images/fide-fed-webp/img/SEY.webp | Bin 0 -> 2406 bytes public/images/fide-fed-webp/img/SGP.webp | Bin 0 -> 744 bytes public/images/fide-fed-webp/img/SKN.webp | Bin 0 -> 6240 bytes public/images/fide-fed-webp/img/SLE.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/img/SLO.webp | Bin 0 -> 1344 bytes public/images/fide-fed-webp/img/SMR.webp | Bin 0 -> 5740 bytes public/images/fide-fed-webp/img/SOL.webp | Bin 0 -> 2384 bytes public/images/fide-fed-webp/img/SOM.webp | Bin 0 -> 536 bytes public/images/fide-fed-webp/img/SRB.webp | Bin 0 -> 4780 bytes public/images/fide-fed-webp/img/SRI.webp | Bin 0 -> 2960 bytes public/images/fide-fed-webp/img/SSD.webp | Bin 0 -> 1274 bytes public/images/fide-fed-webp/img/STP.webp | Bin 0 -> 1200 bytes public/images/fide-fed-webp/img/SUD.webp | Bin 0 -> 778 bytes public/images/fide-fed-webp/img/SUI.webp | Bin 0 -> 176 bytes public/images/fide-fed-webp/img/SUR.webp | Bin 0 -> 456 bytes public/images/fide-fed-webp/img/SVK.webp | Bin 0 -> 1636 bytes public/images/fide-fed-webp/img/SWE.webp | Bin 0 -> 98 bytes public/images/fide-fed-webp/img/SWZ.webp | Bin 0 -> 2880 bytes public/images/fide-fed-webp/img/SYR.webp | Bin 0 -> 496 bytes public/images/fide-fed-webp/img/TAN.webp | Bin 0 -> 2140 bytes public/images/fide-fed-webp/img/THA.webp | Bin 0 -> 140 bytes public/images/fide-fed-webp/img/TJK.webp | Bin 0 -> 982 bytes public/images/fide-fed-webp/img/TKM.webp | Bin 0 -> 6122 bytes public/images/fide-fed-webp/img/TLS.webp | Bin 0 -> 2200 bytes public/images/fide-fed-webp/img/TOG.webp | Bin 0 -> 530 bytes public/images/fide-fed-webp/img/TPE.webp | Bin 0 -> 5022 bytes public/images/fide-fed-webp/img/TTO.webp | Bin 0 -> 1730 bytes public/images/fide-fed-webp/img/TUN.webp | Bin 0 -> 1428 bytes public/images/fide-fed-webp/img/TUR.webp | Bin 0 -> 932 bytes public/images/fide-fed-webp/img/UAE.webp | Bin 0 -> 126 bytes public/images/fide-fed-webp/img/UGA.webp | Bin 0 -> 1142 bytes public/images/fide-fed-webp/img/UKR.webp | Bin 0 -> 56 bytes public/images/fide-fed-webp/img/URU.webp | Bin 0 -> 2388 bytes public/images/fide-fed-webp/img/USA.webp | Bin 0 -> 2968 bytes public/images/fide-fed-webp/img/UZB.webp | Bin 0 -> 732 bytes public/images/fide-fed-webp/img/VAN.webp | Bin 0 -> 2274 bytes public/images/fide-fed-webp/img/VEN.webp | Bin 0 -> 734 bytes public/images/fide-fed-webp/img/VIE.webp | Bin 0 -> 636 bytes public/images/fide-fed-webp/img/VIN.webp | Bin 0 -> 1008 bytes public/images/fide-fed-webp/img/W.webp | Bin 0 -> 3012 bytes public/images/fide-fed-webp/img/WLS.webp | Bin 0 -> 6584 bytes public/images/fide-fed-webp/img/YEM.webp | Bin 0 -> 86 bytes public/images/fide-fed-webp/img/ZAM.webp | Bin 0 -> 1232 bytes public/images/fide-fed-webp/img/ZIM.webp | Bin 0 -> 2674 bytes public/images/fide-fed-webp/mini/AFG.webp | Bin 0 -> 370 bytes public/images/fide-fed-webp/mini/AHO.webp | Bin 0 -> 92 bytes public/images/fide-fed-webp/mini/ALB.webp | Bin 0 -> 298 bytes public/images/fide-fed-webp/mini/ALG.webp | Bin 0 -> 264 bytes public/images/fide-fed-webp/mini/AND.webp | Bin 0 -> 410 bytes public/images/fide-fed-webp/mini/ANG.webp | Bin 0 -> 314 bytes public/images/fide-fed-webp/mini/ANT.webp | Bin 0 -> 608 bytes public/images/fide-fed-webp/mini/ARG.webp | Bin 0 -> 184 bytes public/images/fide-fed-webp/mini/ARM.webp | Bin 0 -> 74 bytes public/images/fide-fed-webp/mini/ARU.webp | Bin 0 -> 260 bytes public/images/fide-fed-webp/mini/AUS.webp | Bin 0 -> 718 bytes public/images/fide-fed-webp/mini/AUT.webp | Bin 0 -> 82 bytes public/images/fide-fed-webp/mini/AZE.webp | Bin 0 -> 244 bytes public/images/fide-fed-webp/mini/BAH.webp | Bin 0 -> 362 bytes public/images/fide-fed-webp/mini/BAN.webp | Bin 0 -> 200 bytes public/images/fide-fed-webp/mini/BAR.webp | Bin 0 -> 228 bytes public/images/fide-fed-webp/mini/BDI.webp | Bin 0 -> 564 bytes public/images/fide-fed-webp/mini/BEL.webp | Bin 0 -> 84 bytes public/images/fide-fed-webp/mini/BER.webp | Bin 0 -> 652 bytes public/images/fide-fed-webp/mini/BHU.webp | Bin 0 -> 820 bytes public/images/fide-fed-webp/mini/BIH.webp | Bin 0 -> 534 bytes public/images/fide-fed-webp/mini/BIZ.webp | Bin 0 -> 738 bytes public/images/fide-fed-webp/mini/BLR.webp | Bin 0 -> 552 bytes public/images/fide-fed-webp/mini/BOL.webp | Bin 0 -> 296 bytes public/images/fide-fed-webp/mini/BOT.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/mini/BRA.webp | Bin 0 -> 668 bytes public/images/fide-fed-webp/mini/BRN.webp | Bin 0 -> 206 bytes public/images/fide-fed-webp/mini/BRU.webp | Bin 0 -> 902 bytes public/images/fide-fed-webp/mini/BUL.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/mini/BUR.webp | Bin 0 -> 264 bytes public/images/fide-fed-webp/mini/CAF.webp | Bin 0 -> 252 bytes public/images/fide-fed-webp/mini/CAM.webp | Bin 0 -> 372 bytes public/images/fide-fed-webp/mini/CAN.webp | Bin 0 -> 238 bytes public/images/fide-fed-webp/mini/CAY.webp | Bin 0 -> 686 bytes public/images/fide-fed-webp/mini/CHA.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/mini/CHI.webp | Bin 0 -> 214 bytes public/images/fide-fed-webp/mini/CHN.webp | Bin 0 -> 202 bytes public/images/fide-fed-webp/mini/CIV.webp | Bin 0 -> 78 bytes public/images/fide-fed-webp/mini/CMR.webp | Bin 0 -> 152 bytes public/images/fide-fed-webp/mini/COD.webp | Bin 0 -> 430 bytes public/images/fide-fed-webp/mini/COL.webp | Bin 0 -> 110 bytes public/images/fide-fed-webp/mini/COM.webp | Bin 0 -> 514 bytes public/images/fide-fed-webp/mini/CPV.webp | Bin 0 -> 450 bytes public/images/fide-fed-webp/mini/CRC.webp | Bin 0 -> 104 bytes public/images/fide-fed-webp/mini/CRO.webp | Bin 0 -> 512 bytes public/images/fide-fed-webp/mini/CUB.webp | Bin 0 -> 420 bytes public/images/fide-fed-webp/mini/CYP.webp | Bin 0 -> 400 bytes public/images/fide-fed-webp/mini/CZE.webp | Bin 0 -> 280 bytes public/images/fide-fed-webp/mini/DEN.webp | Bin 0 -> 118 bytes public/images/fide-fed-webp/mini/DJI.webp | Bin 0 -> 388 bytes public/images/fide-fed-webp/mini/DMA.webp | Bin 0 -> 434 bytes public/images/fide-fed-webp/mini/DOM.webp | Bin 0 -> 288 bytes public/images/fide-fed-webp/mini/ECU.webp | Bin 0 -> 1002 bytes public/images/fide-fed-webp/mini/EGY.webp | Bin 0 -> 212 bytes public/images/fide-fed-webp/mini/ENG.webp | Bin 0 -> 106 bytes public/images/fide-fed-webp/mini/ERI.webp | Bin 0 -> 720 bytes public/images/fide-fed-webp/mini/ESA.webp | Bin 0 -> 278 bytes public/images/fide-fed-webp/mini/ESP.webp | Bin 0 -> 440 bytes public/images/fide-fed-webp/mini/EST.webp | Bin 0 -> 82 bytes public/images/fide-fed-webp/mini/ETH.webp | Bin 0 -> 424 bytes public/images/fide-fed-webp/mini/FAI.webp | Bin 0 -> 194 bytes public/images/fide-fed-webp/mini/FID.webp | Bin 0 -> 630 bytes public/images/fide-fed-webp/mini/FIJ.webp | Bin 0 -> 882 bytes public/images/fide-fed-webp/mini/FIN.webp | Bin 0 -> 162 bytes public/images/fide-fed-webp/mini/FRA.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/mini/GAB.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/mini/GAM.webp | Bin 0 -> 98 bytes public/images/fide-fed-webp/mini/GCI.webp | Bin 0 -> 186 bytes public/images/fide-fed-webp/mini/GEO.webp | Bin 0 -> 140 bytes public/images/fide-fed-webp/mini/GEQ.webp | Bin 0 -> 434 bytes public/images/fide-fed-webp/mini/GER.webp | Bin 0 -> 70 bytes public/images/fide-fed-webp/mini/GHA.webp | Bin 0 -> 206 bytes public/images/fide-fed-webp/mini/GRE.webp | Bin 0 -> 238 bytes public/images/fide-fed-webp/mini/GRN.webp | Bin 0 -> 498 bytes public/images/fide-fed-webp/mini/GUA.webp | Bin 0 -> 248 bytes public/images/fide-fed-webp/mini/GUM.webp | Bin 0 -> 710 bytes public/images/fide-fed-webp/mini/GUY.webp | Bin 0 -> 790 bytes public/images/fide-fed-webp/mini/HAI.webp | Bin 0 -> 310 bytes public/images/fide-fed-webp/mini/HKG.webp | Bin 0 -> 318 bytes public/images/fide-fed-webp/mini/HON.webp | Bin 0 -> 180 bytes public/images/fide-fed-webp/mini/HUN.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/mini/INA.webp | Bin 0 -> 74 bytes public/images/fide-fed-webp/mini/IND.webp | Bin 0 -> 188 bytes public/images/fide-fed-webp/mini/IOM.webp | Bin 0 -> 572 bytes public/images/fide-fed-webp/mini/IRI.webp | Bin 0 -> 488 bytes public/images/fide-fed-webp/mini/IRL.webp | Bin 0 -> 82 bytes public/images/fide-fed-webp/mini/IRQ.webp | Bin 0 -> 236 bytes public/images/fide-fed-webp/mini/ISL.webp | Bin 0 -> 164 bytes public/images/fide-fed-webp/mini/ISR.webp | Bin 0 -> 274 bytes public/images/fide-fed-webp/mini/ISV.webp | Bin 0 -> 1068 bytes public/images/fide-fed-webp/mini/ITA.webp | Bin 0 -> 90 bytes public/images/fide-fed-webp/mini/IVB.webp | Bin 0 -> 1076 bytes public/images/fide-fed-webp/mini/JAM.webp | Bin 0 -> 334 bytes public/images/fide-fed-webp/mini/JCI.webp | Bin 0 -> 1356 bytes public/images/fide-fed-webp/mini/JOR.webp | Bin 0 -> 366 bytes public/images/fide-fed-webp/mini/JPN.webp | Bin 0 -> 236 bytes public/images/fide-fed-webp/mini/KAZ.webp | Bin 0 -> 602 bytes public/images/fide-fed-webp/mini/KEN.webp | Bin 0 -> 328 bytes public/images/fide-fed-webp/mini/KGZ.webp | Bin 0 -> 388 bytes public/images/fide-fed-webp/mini/KOR.webp | Bin 0 -> 660 bytes public/images/fide-fed-webp/mini/KOS.webp | Bin 0 -> 390 bytes public/images/fide-fed-webp/mini/KSA.webp | Bin 0 -> 388 bytes public/images/fide-fed-webp/mini/KUW.webp | Bin 0 -> 268 bytes public/images/fide-fed-webp/mini/LAO.webp | Bin 0 -> 186 bytes public/images/fide-fed-webp/mini/LAT.webp | Bin 0 -> 58 bytes public/images/fide-fed-webp/mini/LBA.webp | Bin 0 -> 170 bytes public/images/fide-fed-webp/mini/LBN.webp | Bin 0 -> 360 bytes public/images/fide-fed-webp/mini/LBR.webp | Bin 0 -> 286 bytes public/images/fide-fed-webp/mini/LCA.webp | Bin 0 -> 468 bytes public/images/fide-fed-webp/mini/LES.webp | Bin 0 -> 196 bytes public/images/fide-fed-webp/mini/LIE.webp | Bin 0 -> 282 bytes public/images/fide-fed-webp/mini/LTU.webp | Bin 0 -> 104 bytes public/images/fide-fed-webp/mini/LUX.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/mini/MAC.webp | Bin 0 -> 368 bytes public/images/fide-fed-webp/mini/MAD.webp | Bin 0 -> 104 bytes public/images/fide-fed-webp/mini/MAR.webp | Bin 0 -> 138 bytes public/images/fide-fed-webp/mini/MAS.webp | Bin 0 -> 468 bytes public/images/fide-fed-webp/mini/MAW.webp | Bin 0 -> 276 bytes public/images/fide-fed-webp/mini/MDA.webp | Bin 0 -> 806 bytes public/images/fide-fed-webp/mini/MDV.webp | Bin 0 -> 214 bytes public/images/fide-fed-webp/mini/MEX.webp | Bin 0 -> 328 bytes public/images/fide-fed-webp/mini/MGL.webp | Bin 0 -> 222 bytes public/images/fide-fed-webp/mini/MKD.webp | Bin 0 -> 356 bytes public/images/fide-fed-webp/mini/MLI.webp | Bin 0 -> 70 bytes public/images/fide-fed-webp/mini/MLT.webp | Bin 0 -> 248 bytes public/images/fide-fed-webp/mini/MNC.webp | Bin 0 -> 94 bytes public/images/fide-fed-webp/mini/MNE.webp | Bin 0 -> 528 bytes public/images/fide-fed-webp/mini/MOZ.webp | Bin 0 -> 364 bytes public/images/fide-fed-webp/mini/MRI.webp | Bin 0 -> 128 bytes public/images/fide-fed-webp/mini/MTN.webp | Bin 0 -> 268 bytes public/images/fide-fed-webp/mini/MYA.webp | Bin 0 -> 332 bytes public/images/fide-fed-webp/mini/NAM.webp | Bin 0 -> 734 bytes public/images/fide-fed-webp/mini/NCA.webp | Bin 0 -> 230 bytes public/images/fide-fed-webp/mini/NED.webp | Bin 0 -> 92 bytes public/images/fide-fed-webp/mini/NEP.webp | Bin 0 -> 522 bytes public/images/fide-fed-webp/mini/NGR.webp | Bin 0 -> 70 bytes public/images/fide-fed-webp/mini/NIG.webp | Bin 0 -> 164 bytes public/images/fide-fed-webp/mini/NOR.webp | Bin 0 -> 152 bytes public/images/fide-fed-webp/mini/NRU.webp | Bin 0 -> 236 bytes public/images/fide-fed-webp/mini/NZL.webp | Bin 0 -> 660 bytes public/images/fide-fed-webp/mini/OMA.webp | Bin 0 -> 212 bytes public/images/fide-fed-webp/mini/PAK.webp | Bin 0 -> 266 bytes public/images/fide-fed-webp/mini/PAN.webp | Bin 0 -> 310 bytes public/images/fide-fed-webp/mini/PAR.webp | Bin 0 -> 178 bytes public/images/fide-fed-webp/mini/PER.webp | Bin 0 -> 368 bytes public/images/fide-fed-webp/mini/PHI.webp | Bin 0 -> 544 bytes public/images/fide-fed-webp/mini/PLE.webp | Bin 0 -> 220 bytes public/images/fide-fed-webp/mini/PLW.webp | Bin 0 -> 228 bytes public/images/fide-fed-webp/mini/PNG.webp | Bin 0 -> 536 bytes public/images/fide-fed-webp/mini/POL.webp | Bin 0 -> 104 bytes public/images/fide-fed-webp/mini/POR.webp | Bin 0 -> 480 bytes public/images/fide-fed-webp/mini/PUR.webp | Bin 0 -> 374 bytes public/images/fide-fed-webp/mini/QAT.webp | Bin 0 -> 240 bytes public/images/fide-fed-webp/mini/ROU.webp | Bin 0 -> 88 bytes public/images/fide-fed-webp/mini/RSA.webp | Bin 0 -> 558 bytes public/images/fide-fed-webp/mini/RUS.webp | Bin 0 -> 552 bytes public/images/fide-fed-webp/mini/RWA.webp | Bin 0 -> 274 bytes public/images/fide-fed-webp/mini/SCO.webp | Bin 0 -> 346 bytes public/images/fide-fed-webp/mini/SEN.webp | Bin 0 -> 210 bytes public/images/fide-fed-webp/mini/SEY.webp | Bin 0 -> 650 bytes public/images/fide-fed-webp/mini/SGP.webp | Bin 0 -> 228 bytes public/images/fide-fed-webp/mini/SKN.webp | Bin 0 -> 844 bytes public/images/fide-fed-webp/mini/SLE.webp | Bin 0 -> 86 bytes public/images/fide-fed-webp/mini/SLO.webp | Bin 0 -> 300 bytes public/images/fide-fed-webp/mini/SMR.webp | Bin 0 -> 732 bytes public/images/fide-fed-webp/mini/SOL.webp | Bin 0 -> 608 bytes public/images/fide-fed-webp/mini/SOM.webp | Bin 0 -> 204 bytes public/images/fide-fed-webp/mini/SRB.webp | Bin 0 -> 640 bytes public/images/fide-fed-webp/mini/SRI.webp | Bin 0 -> 552 bytes public/images/fide-fed-webp/mini/SSD.webp | Bin 0 -> 410 bytes public/images/fide-fed-webp/mini/STP.webp | Bin 0 -> 378 bytes public/images/fide-fed-webp/mini/SUD.webp | Bin 0 -> 260 bytes public/images/fide-fed-webp/mini/SUI.webp | Bin 0 -> 138 bytes public/images/fide-fed-webp/mini/SUR.webp | Bin 0 -> 204 bytes public/images/fide-fed-webp/mini/SVK.webp | Bin 0 -> 418 bytes public/images/fide-fed-webp/mini/SWE.webp | Bin 0 -> 84 bytes public/images/fide-fed-webp/mini/SWZ.webp | Bin 0 -> 700 bytes public/images/fide-fed-webp/mini/SYR.webp | Bin 0 -> 216 bytes public/images/fide-fed-webp/mini/TAN.webp | Bin 0 -> 504 bytes public/images/fide-fed-webp/mini/THA.webp | Bin 0 -> 116 bytes public/images/fide-fed-webp/mini/TJK.webp | Bin 0 -> 246 bytes public/images/fide-fed-webp/mini/TKM.webp | Bin 0 -> 774 bytes public/images/fide-fed-webp/mini/TLS.webp | Bin 0 -> 566 bytes public/images/fide-fed-webp/mini/TOG.webp | Bin 0 -> 240 bytes public/images/fide-fed-webp/mini/TPE.webp | Bin 0 -> 792 bytes public/images/fide-fed-webp/mini/TTO.webp | Bin 0 -> 332 bytes public/images/fide-fed-webp/mini/TUN.webp | Bin 0 -> 294 bytes public/images/fide-fed-webp/mini/TUR.webp | Bin 0 -> 284 bytes public/images/fide-fed-webp/mini/UAE.webp | Bin 0 -> 124 bytes public/images/fide-fed-webp/mini/UGA.webp | Bin 0 -> 332 bytes public/images/fide-fed-webp/mini/UKR.webp | Bin 0 -> 74 bytes public/images/fide-fed-webp/mini/URU.webp | Bin 0 -> 430 bytes public/images/fide-fed-webp/mini/USA.webp | Bin 0 -> 524 bytes public/images/fide-fed-webp/mini/UZB.webp | Bin 0 -> 224 bytes public/images/fide-fed-webp/mini/VAN.webp | Bin 0 -> 526 bytes public/images/fide-fed-webp/mini/VEN.webp | Bin 0 -> 210 bytes public/images/fide-fed-webp/mini/VIE.webp | Bin 0 -> 210 bytes public/images/fide-fed-webp/mini/VIN.webp | Bin 0 -> 246 bytes public/images/fide-fed-webp/mini/W.webp | Bin 0 -> 552 bytes public/images/fide-fed-webp/mini/WLS.webp | Bin 0 -> 1130 bytes public/images/fide-fed-webp/mini/YEM.webp | Bin 0 -> 80 bytes public/images/fide-fed-webp/mini/ZAM.webp | Bin 0 -> 266 bytes public/images/fide-fed-webp/mini/ZIM.webp | Bin 0 -> 598 bytes 406 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/fide-fed-webp/img/AFG.webp create mode 100644 public/images/fide-fed-webp/img/AHO.webp create mode 100644 public/images/fide-fed-webp/img/ALB.webp create mode 100644 public/images/fide-fed-webp/img/ALG.webp create mode 100644 public/images/fide-fed-webp/img/AND.webp create mode 100644 public/images/fide-fed-webp/img/ANG.webp create mode 100644 public/images/fide-fed-webp/img/ANT.webp create mode 100644 public/images/fide-fed-webp/img/ARG.webp create mode 100644 public/images/fide-fed-webp/img/ARM.webp create mode 100644 public/images/fide-fed-webp/img/ARU.webp create mode 100644 public/images/fide-fed-webp/img/AUS.webp create mode 100644 public/images/fide-fed-webp/img/AUT.webp create mode 100644 public/images/fide-fed-webp/img/AZE.webp create mode 100644 public/images/fide-fed-webp/img/BAH.webp create mode 100644 public/images/fide-fed-webp/img/BAN.webp create mode 100644 public/images/fide-fed-webp/img/BAR.webp create mode 100644 public/images/fide-fed-webp/img/BDI.webp create mode 100644 public/images/fide-fed-webp/img/BEL.webp create mode 100644 public/images/fide-fed-webp/img/BER.webp create mode 100644 public/images/fide-fed-webp/img/BHU.webp create mode 100644 public/images/fide-fed-webp/img/BIH.webp create mode 100644 public/images/fide-fed-webp/img/BIZ.webp create mode 100644 public/images/fide-fed-webp/img/BLR.webp create mode 100644 public/images/fide-fed-webp/img/BOL.webp create mode 100644 public/images/fide-fed-webp/img/BOT.webp create mode 100644 public/images/fide-fed-webp/img/BRA.webp create mode 100644 public/images/fide-fed-webp/img/BRN.webp create mode 100644 public/images/fide-fed-webp/img/BRU.webp create mode 100644 public/images/fide-fed-webp/img/BUL.webp create mode 100644 public/images/fide-fed-webp/img/BUR.webp create mode 100644 public/images/fide-fed-webp/img/CAF.webp create mode 100644 public/images/fide-fed-webp/img/CAM.webp create mode 100644 public/images/fide-fed-webp/img/CAN.webp create mode 100644 public/images/fide-fed-webp/img/CAY.webp create mode 100644 public/images/fide-fed-webp/img/CHA.webp create mode 100644 public/images/fide-fed-webp/img/CHI.webp create mode 100644 public/images/fide-fed-webp/img/CHN.webp create mode 100644 public/images/fide-fed-webp/img/CIV.webp create mode 100644 public/images/fide-fed-webp/img/CMR.webp create mode 100644 public/images/fide-fed-webp/img/COD.webp create mode 100644 public/images/fide-fed-webp/img/COL.webp create mode 100644 public/images/fide-fed-webp/img/COM.webp create mode 100644 public/images/fide-fed-webp/img/CPV.webp create mode 100644 public/images/fide-fed-webp/img/CRC.webp create mode 100644 public/images/fide-fed-webp/img/CRO.webp create mode 100644 public/images/fide-fed-webp/img/CUB.webp create mode 100644 public/images/fide-fed-webp/img/CYP.webp create mode 100644 public/images/fide-fed-webp/img/CZE.webp create mode 100644 public/images/fide-fed-webp/img/DEN.webp create mode 100644 public/images/fide-fed-webp/img/DJI.webp create mode 100644 public/images/fide-fed-webp/img/DMA.webp create mode 100644 public/images/fide-fed-webp/img/DOM.webp create mode 100644 public/images/fide-fed-webp/img/ECU.webp create mode 100644 public/images/fide-fed-webp/img/EGY.webp create mode 100644 public/images/fide-fed-webp/img/ENG.webp create mode 100644 public/images/fide-fed-webp/img/ERI.webp create mode 100644 public/images/fide-fed-webp/img/ESA.webp create mode 100644 public/images/fide-fed-webp/img/ESP.webp create mode 100644 public/images/fide-fed-webp/img/EST.webp create mode 100644 public/images/fide-fed-webp/img/ETH.webp create mode 100644 public/images/fide-fed-webp/img/FAI.webp create mode 100644 public/images/fide-fed-webp/img/FID.webp create mode 100644 public/images/fide-fed-webp/img/FIJ.webp create mode 100644 public/images/fide-fed-webp/img/FIN.webp create mode 100644 public/images/fide-fed-webp/img/FRA.webp create mode 100644 public/images/fide-fed-webp/img/GAB.webp create mode 100644 public/images/fide-fed-webp/img/GAM.webp create mode 100644 public/images/fide-fed-webp/img/GCI.webp create mode 100644 public/images/fide-fed-webp/img/GEO.webp create mode 100644 public/images/fide-fed-webp/img/GEQ.webp create mode 100644 public/images/fide-fed-webp/img/GER.webp create mode 100644 public/images/fide-fed-webp/img/GHA.webp create mode 100644 public/images/fide-fed-webp/img/GRE.webp create mode 100644 public/images/fide-fed-webp/img/GRN.webp create mode 100644 public/images/fide-fed-webp/img/GUA.webp create mode 100644 public/images/fide-fed-webp/img/GUM.webp create mode 100644 public/images/fide-fed-webp/img/GUY.webp create mode 100644 public/images/fide-fed-webp/img/HAI.webp create mode 100644 public/images/fide-fed-webp/img/HKG.webp create mode 100644 public/images/fide-fed-webp/img/HON.webp create mode 100644 public/images/fide-fed-webp/img/HUN.webp create mode 100644 public/images/fide-fed-webp/img/INA.webp create mode 100644 public/images/fide-fed-webp/img/IND.webp create mode 100644 public/images/fide-fed-webp/img/IOM.webp create mode 100644 public/images/fide-fed-webp/img/IRI.webp create mode 100644 public/images/fide-fed-webp/img/IRL.webp create mode 100644 public/images/fide-fed-webp/img/IRQ.webp create mode 100644 public/images/fide-fed-webp/img/ISL.webp create mode 100644 public/images/fide-fed-webp/img/ISR.webp create mode 100644 public/images/fide-fed-webp/img/ISV.webp create mode 100644 public/images/fide-fed-webp/img/ITA.webp create mode 100644 public/images/fide-fed-webp/img/IVB.webp create mode 100644 public/images/fide-fed-webp/img/JAM.webp create mode 100644 public/images/fide-fed-webp/img/JCI.webp create mode 100644 public/images/fide-fed-webp/img/JOR.webp create mode 100644 public/images/fide-fed-webp/img/JPN.webp create mode 100644 public/images/fide-fed-webp/img/KAZ.webp create mode 100644 public/images/fide-fed-webp/img/KEN.webp create mode 100644 public/images/fide-fed-webp/img/KGZ.webp create mode 100644 public/images/fide-fed-webp/img/KOR.webp create mode 100644 public/images/fide-fed-webp/img/KOS.webp create mode 100644 public/images/fide-fed-webp/img/KSA.webp create mode 100644 public/images/fide-fed-webp/img/KUW.webp create mode 100644 public/images/fide-fed-webp/img/LAO.webp create mode 100644 public/images/fide-fed-webp/img/LAT.webp create mode 100644 public/images/fide-fed-webp/img/LBA.webp create mode 100644 public/images/fide-fed-webp/img/LBN.webp create mode 100644 public/images/fide-fed-webp/img/LBR.webp create mode 100644 public/images/fide-fed-webp/img/LCA.webp create mode 100644 public/images/fide-fed-webp/img/LES.webp create mode 100644 public/images/fide-fed-webp/img/LIE.webp create mode 100644 public/images/fide-fed-webp/img/LTU.webp create mode 100644 public/images/fide-fed-webp/img/LUX.webp create mode 100644 public/images/fide-fed-webp/img/MAC.webp create mode 100644 public/images/fide-fed-webp/img/MAD.webp create mode 100644 public/images/fide-fed-webp/img/MAR.webp create mode 100644 public/images/fide-fed-webp/img/MAS.webp create mode 100644 public/images/fide-fed-webp/img/MAW.webp create mode 100644 public/images/fide-fed-webp/img/MDA.webp create mode 100644 public/images/fide-fed-webp/img/MDV.webp create mode 100644 public/images/fide-fed-webp/img/MEX.webp create mode 100644 public/images/fide-fed-webp/img/MGL.webp create mode 100644 public/images/fide-fed-webp/img/MKD.webp create mode 100644 public/images/fide-fed-webp/img/MLI.webp create mode 100644 public/images/fide-fed-webp/img/MLT.webp create mode 100644 public/images/fide-fed-webp/img/MNC.webp create mode 100644 public/images/fide-fed-webp/img/MNE.webp create mode 100644 public/images/fide-fed-webp/img/MOZ.webp create mode 100644 public/images/fide-fed-webp/img/MRI.webp create mode 100644 public/images/fide-fed-webp/img/MTN.webp create mode 100644 public/images/fide-fed-webp/img/MYA.webp create mode 100644 public/images/fide-fed-webp/img/NAM.webp create mode 100644 public/images/fide-fed-webp/img/NCA.webp create mode 100644 public/images/fide-fed-webp/img/NED.webp create mode 100644 public/images/fide-fed-webp/img/NEP.webp create mode 100644 public/images/fide-fed-webp/img/NGR.webp create mode 100644 public/images/fide-fed-webp/img/NIG.webp create mode 100644 public/images/fide-fed-webp/img/NOR.webp create mode 100644 public/images/fide-fed-webp/img/NRU.webp create mode 100644 public/images/fide-fed-webp/img/NZL.webp create mode 100644 public/images/fide-fed-webp/img/OMA.webp create mode 100644 public/images/fide-fed-webp/img/PAK.webp create mode 100644 public/images/fide-fed-webp/img/PAN.webp create mode 100644 public/images/fide-fed-webp/img/PAR.webp create mode 100644 public/images/fide-fed-webp/img/PER.webp create mode 100644 public/images/fide-fed-webp/img/PHI.webp create mode 100644 public/images/fide-fed-webp/img/PLE.webp create mode 100644 public/images/fide-fed-webp/img/PLW.webp create mode 100644 public/images/fide-fed-webp/img/PNG.webp create mode 100644 public/images/fide-fed-webp/img/POL.webp create mode 100644 public/images/fide-fed-webp/img/POR.webp create mode 100644 public/images/fide-fed-webp/img/PUR.webp create mode 100644 public/images/fide-fed-webp/img/QAT.webp create mode 100644 public/images/fide-fed-webp/img/ROU.webp create mode 100644 public/images/fide-fed-webp/img/RSA.webp create mode 100644 public/images/fide-fed-webp/img/RUS.webp create mode 100644 public/images/fide-fed-webp/img/RWA.webp create mode 100644 public/images/fide-fed-webp/img/SCO.webp create mode 100644 public/images/fide-fed-webp/img/SEN.webp create mode 100644 public/images/fide-fed-webp/img/SEY.webp create mode 100644 public/images/fide-fed-webp/img/SGP.webp create mode 100644 public/images/fide-fed-webp/img/SKN.webp create mode 100644 public/images/fide-fed-webp/img/SLE.webp create mode 100644 public/images/fide-fed-webp/img/SLO.webp create mode 100644 public/images/fide-fed-webp/img/SMR.webp create mode 100644 public/images/fide-fed-webp/img/SOL.webp create mode 100644 public/images/fide-fed-webp/img/SOM.webp create mode 100644 public/images/fide-fed-webp/img/SRB.webp create mode 100644 public/images/fide-fed-webp/img/SRI.webp create mode 100644 public/images/fide-fed-webp/img/SSD.webp create mode 100644 public/images/fide-fed-webp/img/STP.webp create mode 100644 public/images/fide-fed-webp/img/SUD.webp create mode 100644 public/images/fide-fed-webp/img/SUI.webp create mode 100644 public/images/fide-fed-webp/img/SUR.webp create mode 100644 public/images/fide-fed-webp/img/SVK.webp create mode 100644 public/images/fide-fed-webp/img/SWE.webp create mode 100644 public/images/fide-fed-webp/img/SWZ.webp create mode 100644 public/images/fide-fed-webp/img/SYR.webp create mode 100644 public/images/fide-fed-webp/img/TAN.webp create mode 100644 public/images/fide-fed-webp/img/THA.webp create mode 100644 public/images/fide-fed-webp/img/TJK.webp create mode 100644 public/images/fide-fed-webp/img/TKM.webp create mode 100644 public/images/fide-fed-webp/img/TLS.webp create mode 100644 public/images/fide-fed-webp/img/TOG.webp create mode 100644 public/images/fide-fed-webp/img/TPE.webp create mode 100644 public/images/fide-fed-webp/img/TTO.webp create mode 100644 public/images/fide-fed-webp/img/TUN.webp create mode 100644 public/images/fide-fed-webp/img/TUR.webp create mode 100644 public/images/fide-fed-webp/img/UAE.webp create mode 100644 public/images/fide-fed-webp/img/UGA.webp create mode 100644 public/images/fide-fed-webp/img/UKR.webp create mode 100644 public/images/fide-fed-webp/img/URU.webp create mode 100644 public/images/fide-fed-webp/img/USA.webp create mode 100644 public/images/fide-fed-webp/img/UZB.webp create mode 100644 public/images/fide-fed-webp/img/VAN.webp create mode 100644 public/images/fide-fed-webp/img/VEN.webp create mode 100644 public/images/fide-fed-webp/img/VIE.webp create mode 100644 public/images/fide-fed-webp/img/VIN.webp create mode 100644 public/images/fide-fed-webp/img/W.webp create mode 100644 public/images/fide-fed-webp/img/WLS.webp create mode 100644 public/images/fide-fed-webp/img/YEM.webp create mode 100644 public/images/fide-fed-webp/img/ZAM.webp create mode 100644 public/images/fide-fed-webp/img/ZIM.webp create mode 100644 public/images/fide-fed-webp/mini/AFG.webp create mode 100644 public/images/fide-fed-webp/mini/AHO.webp create mode 100644 public/images/fide-fed-webp/mini/ALB.webp create mode 100644 public/images/fide-fed-webp/mini/ALG.webp create mode 100644 public/images/fide-fed-webp/mini/AND.webp create mode 100644 public/images/fide-fed-webp/mini/ANG.webp create mode 100644 public/images/fide-fed-webp/mini/ANT.webp create mode 100644 public/images/fide-fed-webp/mini/ARG.webp create mode 100644 public/images/fide-fed-webp/mini/ARM.webp create mode 100644 public/images/fide-fed-webp/mini/ARU.webp create mode 100644 public/images/fide-fed-webp/mini/AUS.webp create mode 100644 public/images/fide-fed-webp/mini/AUT.webp create mode 100644 public/images/fide-fed-webp/mini/AZE.webp create mode 100644 public/images/fide-fed-webp/mini/BAH.webp create mode 100644 public/images/fide-fed-webp/mini/BAN.webp create mode 100644 public/images/fide-fed-webp/mini/BAR.webp create mode 100644 public/images/fide-fed-webp/mini/BDI.webp create mode 100644 public/images/fide-fed-webp/mini/BEL.webp create mode 100644 public/images/fide-fed-webp/mini/BER.webp create mode 100644 public/images/fide-fed-webp/mini/BHU.webp create mode 100644 public/images/fide-fed-webp/mini/BIH.webp create mode 100644 public/images/fide-fed-webp/mini/BIZ.webp create mode 100644 public/images/fide-fed-webp/mini/BLR.webp create mode 100644 public/images/fide-fed-webp/mini/BOL.webp create mode 100644 public/images/fide-fed-webp/mini/BOT.webp create mode 100644 public/images/fide-fed-webp/mini/BRA.webp create mode 100644 public/images/fide-fed-webp/mini/BRN.webp create mode 100644 public/images/fide-fed-webp/mini/BRU.webp create mode 100644 public/images/fide-fed-webp/mini/BUL.webp create mode 100644 public/images/fide-fed-webp/mini/BUR.webp create mode 100644 public/images/fide-fed-webp/mini/CAF.webp create mode 100644 public/images/fide-fed-webp/mini/CAM.webp create mode 100644 public/images/fide-fed-webp/mini/CAN.webp create mode 100644 public/images/fide-fed-webp/mini/CAY.webp create mode 100644 public/images/fide-fed-webp/mini/CHA.webp create mode 100644 public/images/fide-fed-webp/mini/CHI.webp create mode 100644 public/images/fide-fed-webp/mini/CHN.webp create mode 100644 public/images/fide-fed-webp/mini/CIV.webp create mode 100644 public/images/fide-fed-webp/mini/CMR.webp create mode 100644 public/images/fide-fed-webp/mini/COD.webp create mode 100644 public/images/fide-fed-webp/mini/COL.webp create mode 100644 public/images/fide-fed-webp/mini/COM.webp create mode 100644 public/images/fide-fed-webp/mini/CPV.webp create mode 100644 public/images/fide-fed-webp/mini/CRC.webp create mode 100644 public/images/fide-fed-webp/mini/CRO.webp create mode 100644 public/images/fide-fed-webp/mini/CUB.webp create mode 100644 public/images/fide-fed-webp/mini/CYP.webp create mode 100644 public/images/fide-fed-webp/mini/CZE.webp create mode 100644 public/images/fide-fed-webp/mini/DEN.webp create mode 100644 public/images/fide-fed-webp/mini/DJI.webp create mode 100644 public/images/fide-fed-webp/mini/DMA.webp create mode 100644 public/images/fide-fed-webp/mini/DOM.webp create mode 100644 public/images/fide-fed-webp/mini/ECU.webp create mode 100644 public/images/fide-fed-webp/mini/EGY.webp create mode 100644 public/images/fide-fed-webp/mini/ENG.webp create mode 100644 public/images/fide-fed-webp/mini/ERI.webp create mode 100644 public/images/fide-fed-webp/mini/ESA.webp create mode 100644 public/images/fide-fed-webp/mini/ESP.webp create mode 100644 public/images/fide-fed-webp/mini/EST.webp create mode 100644 public/images/fide-fed-webp/mini/ETH.webp create mode 100644 public/images/fide-fed-webp/mini/FAI.webp create mode 100644 public/images/fide-fed-webp/mini/FID.webp create mode 100644 public/images/fide-fed-webp/mini/FIJ.webp create mode 100644 public/images/fide-fed-webp/mini/FIN.webp create mode 100644 public/images/fide-fed-webp/mini/FRA.webp create mode 100644 public/images/fide-fed-webp/mini/GAB.webp create mode 100644 public/images/fide-fed-webp/mini/GAM.webp create mode 100644 public/images/fide-fed-webp/mini/GCI.webp create mode 100644 public/images/fide-fed-webp/mini/GEO.webp create mode 100644 public/images/fide-fed-webp/mini/GEQ.webp create mode 100644 public/images/fide-fed-webp/mini/GER.webp create mode 100644 public/images/fide-fed-webp/mini/GHA.webp create mode 100644 public/images/fide-fed-webp/mini/GRE.webp create mode 100644 public/images/fide-fed-webp/mini/GRN.webp create mode 100644 public/images/fide-fed-webp/mini/GUA.webp create mode 100644 public/images/fide-fed-webp/mini/GUM.webp create mode 100644 public/images/fide-fed-webp/mini/GUY.webp create mode 100644 public/images/fide-fed-webp/mini/HAI.webp create mode 100644 public/images/fide-fed-webp/mini/HKG.webp create mode 100644 public/images/fide-fed-webp/mini/HON.webp create mode 100644 public/images/fide-fed-webp/mini/HUN.webp create mode 100644 public/images/fide-fed-webp/mini/INA.webp create mode 100644 public/images/fide-fed-webp/mini/IND.webp create mode 100644 public/images/fide-fed-webp/mini/IOM.webp create mode 100644 public/images/fide-fed-webp/mini/IRI.webp create mode 100644 public/images/fide-fed-webp/mini/IRL.webp create mode 100644 public/images/fide-fed-webp/mini/IRQ.webp create mode 100644 public/images/fide-fed-webp/mini/ISL.webp create mode 100644 public/images/fide-fed-webp/mini/ISR.webp create mode 100644 public/images/fide-fed-webp/mini/ISV.webp create mode 100644 public/images/fide-fed-webp/mini/ITA.webp create mode 100644 public/images/fide-fed-webp/mini/IVB.webp create mode 100644 public/images/fide-fed-webp/mini/JAM.webp create mode 100644 public/images/fide-fed-webp/mini/JCI.webp create mode 100644 public/images/fide-fed-webp/mini/JOR.webp create mode 100644 public/images/fide-fed-webp/mini/JPN.webp create mode 100644 public/images/fide-fed-webp/mini/KAZ.webp create mode 100644 public/images/fide-fed-webp/mini/KEN.webp create mode 100644 public/images/fide-fed-webp/mini/KGZ.webp create mode 100644 public/images/fide-fed-webp/mini/KOR.webp create mode 100644 public/images/fide-fed-webp/mini/KOS.webp create mode 100644 public/images/fide-fed-webp/mini/KSA.webp create mode 100644 public/images/fide-fed-webp/mini/KUW.webp create mode 100644 public/images/fide-fed-webp/mini/LAO.webp create mode 100644 public/images/fide-fed-webp/mini/LAT.webp create mode 100644 public/images/fide-fed-webp/mini/LBA.webp create mode 100644 public/images/fide-fed-webp/mini/LBN.webp create mode 100644 public/images/fide-fed-webp/mini/LBR.webp create mode 100644 public/images/fide-fed-webp/mini/LCA.webp create mode 100644 public/images/fide-fed-webp/mini/LES.webp create mode 100644 public/images/fide-fed-webp/mini/LIE.webp create mode 100644 public/images/fide-fed-webp/mini/LTU.webp create mode 100644 public/images/fide-fed-webp/mini/LUX.webp create mode 100644 public/images/fide-fed-webp/mini/MAC.webp create mode 100644 public/images/fide-fed-webp/mini/MAD.webp create mode 100644 public/images/fide-fed-webp/mini/MAR.webp create mode 100644 public/images/fide-fed-webp/mini/MAS.webp create mode 100644 public/images/fide-fed-webp/mini/MAW.webp create mode 100644 public/images/fide-fed-webp/mini/MDA.webp create mode 100644 public/images/fide-fed-webp/mini/MDV.webp create mode 100644 public/images/fide-fed-webp/mini/MEX.webp create mode 100644 public/images/fide-fed-webp/mini/MGL.webp create mode 100644 public/images/fide-fed-webp/mini/MKD.webp create mode 100644 public/images/fide-fed-webp/mini/MLI.webp create mode 100644 public/images/fide-fed-webp/mini/MLT.webp create mode 100644 public/images/fide-fed-webp/mini/MNC.webp create mode 100644 public/images/fide-fed-webp/mini/MNE.webp create mode 100644 public/images/fide-fed-webp/mini/MOZ.webp create mode 100644 public/images/fide-fed-webp/mini/MRI.webp create mode 100644 public/images/fide-fed-webp/mini/MTN.webp create mode 100644 public/images/fide-fed-webp/mini/MYA.webp create mode 100644 public/images/fide-fed-webp/mini/NAM.webp create mode 100644 public/images/fide-fed-webp/mini/NCA.webp create mode 100644 public/images/fide-fed-webp/mini/NED.webp create mode 100644 public/images/fide-fed-webp/mini/NEP.webp create mode 100644 public/images/fide-fed-webp/mini/NGR.webp create mode 100644 public/images/fide-fed-webp/mini/NIG.webp create mode 100644 public/images/fide-fed-webp/mini/NOR.webp create mode 100644 public/images/fide-fed-webp/mini/NRU.webp create mode 100644 public/images/fide-fed-webp/mini/NZL.webp create mode 100644 public/images/fide-fed-webp/mini/OMA.webp create mode 100644 public/images/fide-fed-webp/mini/PAK.webp create mode 100644 public/images/fide-fed-webp/mini/PAN.webp create mode 100644 public/images/fide-fed-webp/mini/PAR.webp create mode 100644 public/images/fide-fed-webp/mini/PER.webp create mode 100644 public/images/fide-fed-webp/mini/PHI.webp create mode 100644 public/images/fide-fed-webp/mini/PLE.webp create mode 100644 public/images/fide-fed-webp/mini/PLW.webp create mode 100644 public/images/fide-fed-webp/mini/PNG.webp create mode 100644 public/images/fide-fed-webp/mini/POL.webp create mode 100644 public/images/fide-fed-webp/mini/POR.webp create mode 100644 public/images/fide-fed-webp/mini/PUR.webp create mode 100644 public/images/fide-fed-webp/mini/QAT.webp create mode 100644 public/images/fide-fed-webp/mini/ROU.webp create mode 100644 public/images/fide-fed-webp/mini/RSA.webp create mode 100644 public/images/fide-fed-webp/mini/RUS.webp create mode 100644 public/images/fide-fed-webp/mini/RWA.webp create mode 100644 public/images/fide-fed-webp/mini/SCO.webp create mode 100644 public/images/fide-fed-webp/mini/SEN.webp create mode 100644 public/images/fide-fed-webp/mini/SEY.webp create mode 100644 public/images/fide-fed-webp/mini/SGP.webp create mode 100644 public/images/fide-fed-webp/mini/SKN.webp create mode 100644 public/images/fide-fed-webp/mini/SLE.webp create mode 100644 public/images/fide-fed-webp/mini/SLO.webp create mode 100644 public/images/fide-fed-webp/mini/SMR.webp create mode 100644 public/images/fide-fed-webp/mini/SOL.webp create mode 100644 public/images/fide-fed-webp/mini/SOM.webp create mode 100644 public/images/fide-fed-webp/mini/SRB.webp create mode 100644 public/images/fide-fed-webp/mini/SRI.webp create mode 100644 public/images/fide-fed-webp/mini/SSD.webp create mode 100644 public/images/fide-fed-webp/mini/STP.webp create mode 100644 public/images/fide-fed-webp/mini/SUD.webp create mode 100644 public/images/fide-fed-webp/mini/SUI.webp create mode 100644 public/images/fide-fed-webp/mini/SUR.webp create mode 100644 public/images/fide-fed-webp/mini/SVK.webp create mode 100644 public/images/fide-fed-webp/mini/SWE.webp create mode 100644 public/images/fide-fed-webp/mini/SWZ.webp create mode 100644 public/images/fide-fed-webp/mini/SYR.webp create mode 100644 public/images/fide-fed-webp/mini/TAN.webp create mode 100644 public/images/fide-fed-webp/mini/THA.webp create mode 100644 public/images/fide-fed-webp/mini/TJK.webp create mode 100644 public/images/fide-fed-webp/mini/TKM.webp create mode 100644 public/images/fide-fed-webp/mini/TLS.webp create mode 100644 public/images/fide-fed-webp/mini/TOG.webp create mode 100644 public/images/fide-fed-webp/mini/TPE.webp create mode 100644 public/images/fide-fed-webp/mini/TTO.webp create mode 100644 public/images/fide-fed-webp/mini/TUN.webp create mode 100644 public/images/fide-fed-webp/mini/TUR.webp create mode 100644 public/images/fide-fed-webp/mini/UAE.webp create mode 100644 public/images/fide-fed-webp/mini/UGA.webp create mode 100644 public/images/fide-fed-webp/mini/UKR.webp create mode 100644 public/images/fide-fed-webp/mini/URU.webp create mode 100644 public/images/fide-fed-webp/mini/USA.webp create mode 100644 public/images/fide-fed-webp/mini/UZB.webp create mode 100644 public/images/fide-fed-webp/mini/VAN.webp create mode 100644 public/images/fide-fed-webp/mini/VEN.webp create mode 100644 public/images/fide-fed-webp/mini/VIE.webp create mode 100644 public/images/fide-fed-webp/mini/VIN.webp create mode 100644 public/images/fide-fed-webp/mini/W.webp create mode 100644 public/images/fide-fed-webp/mini/WLS.webp create mode 100644 public/images/fide-fed-webp/mini/YEM.webp create mode 100644 public/images/fide-fed-webp/mini/ZAM.webp create mode 100644 public/images/fide-fed-webp/mini/ZIM.webp diff --git a/public/images/fide-fed-webp/img/AFG.webp b/public/images/fide-fed-webp/img/AFG.webp new file mode 100644 index 0000000000000000000000000000000000000000..0ac279908296581d2be257bca5d3c6479973229b GIT binary patch literal 3144 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 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/AHO.webp b/public/images/fide-fed-webp/img/AHO.webp new file mode 100644 index 0000000000000000000000000000000000000000..12cadcc8b31470ef3d0c72452ff9f76cb66a2dd3 GIT binary patch literal 102 zcmV-s0Ga<%Nk&Fq00012MM6+kP&iCc0000lg}@jPFF+PxvU4nHsO~e8MGi}?HLMe>GD2&4R6UrS$^gq{7N{C(z I;q>AO091@Ak^lez literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/ALB.webp b/public/images/fide-fed-webp/img/ALB.webp new file mode 100644 index 0000000000000000000000000000000000000000..ba946fd4603d53baf029736b9d8935acd90cdd38 GIT binary patch literal 2128 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 S&}ia|^ohSdjBF_$M==4z#;tAu literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/ANT.webp b/public/images/fide-fed-webp/img/ANT.webp new file mode 100644 index 0000000000000000000000000000000000000000..a8c31173b8856a43b5a0e65bce65b59a133cc4bb GIT binary patch literal 1962 zcmV;b2UYk|Nk&GZ2LJ$9MM6+kP&iDL2LJ#sg}@j98hZPGo0gk3if!Ar?c6)5ZQHhO z+qP|cW}=%{P`?AWa}Vx5YwunC7fd@?O?KyI)$Kev(Y>(^Y1Fozjnq_Q+qPAVJ+roL z+qP}nw!LGU#n~pqulplqzUm8v+O|z?^Ya(Ms_;j!?LUmIJ~oo@A;J69e+h0QIg&)} zo((Lm(b8j^7N;h>pL&u3m(DENz=K?!hRaHOtNQ@WjHk5rkbB~9vEdrYg(i*D5k+B>=s;wwb^gC@EyFPT+;-W zWR92nk=1km?7aioyY8zHV)Fta0TVW7<$EebbmAqrBjim{D^E)hQP$CCl(J`xxvd1* z`p?1n7?c{u z7!HxGG>sd7h$zwvBdd*&K>>5IKxh}TqfQ~5CSZ+(fEXmhQPR#U{ZPCvSKbwhzn}!* z#DX&5NK^{f#BgV-*{MUOqE;fFPoK;S zHR7&sAe=j8)BGKG=kIlHR%kFn))KZ?(u;hGa#z5JEiC>A5JYz}}=L5WV zRc+%Cmn>^DZY9cFTRR16+KJVzeRYYkt9f&7Css#EofcfPJI-zRam}i;QxHG*Iv#X4bi!NAh?U$aaBAEQ?OGW|ys~Wa;jPhA_#VZ_omm%KNWMprL{n+18aPZ?YN{uc}MlOkK*VRO9w^mQ)=UU9dW} zUw$l8fcNez#NROg>0r-+v~~>%@>!*7^wd9qe_t5}R$m$hwmjX0r4et!XNGQYV3yTt zD46<^?tViL|#jzZ(!H*Oor<~Y}@L7gWj6tp52H@1IW^er?;~%~+=uWD9 zmQ}3a3)De(mg0=n>@>v@wwK{+VWMEC`Q}qom^o6l>b=#EjsKWd2Ea6{+Ym7MIh`On zQ*p{FcdFtL&r9$nUulJi{PWZ!mOryu?P~Pa#v_e_V1`w1AQ)ST;ta(JtKTV#1C$dg zrh(Y=@DXpM`sPF9uUD&bSdRvSiD{lkx^%K)-hT*2#nTg zDVfO55jdgrtZHxhedBk8(K6OGn(iu#_3cD**Ui|q8cW8r&ro+RCsg&`D(hU8-qJkB wWoruSU4JlQ-z;F=JAvG>%!z3)_7ruK>97A;{|Y8do5J4#algUgUsyf{00&FWj{pDw literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/ARG.webp b/public/images/fide-fed-webp/img/ARG.webp new file mode 100644 index 0000000000000000000000000000000000000000..7e99f94aa78b5ef6031c0e85202cf40e7a7a4dcc GIT binary patch literal 1518 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 Q*)yL20O+SEdmXa^0Pmr9N&o-= literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/AUT.webp b/public/images/fide-fed-webp/img/AUT.webp new file mode 100644 index 0000000000000000000000000000000000000000..92dfd5caf0fc28ccb03076239e57ebc94d1d4807 GIT binary patch literal 84 zcmV-a0IUB}Nk&FY00012MM6+kP&iCL0000lg}@j97a)*Lc7Ky3(+~(G6#1)dvOqT3 q{Y{c={^KtasBI)Q;s?7wnxxaqFNo;>1S~%J!{NWs$HV`{Cw~CEHzQC0 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/AZE.webp b/public/images/fide-fed-webp/img/AZE.webp new file mode 100644 index 0000000000000000000000000000000000000000..3ba12944150ed605e9f548f0b24df557eb847cc9 GIT binary patch literal 646 zcmV;10(t#XNk&F~0ssJ4MM6+kP&iC+0ssIng}@jPujHtWBuUDd*$czIm&x+yGgqZ) zFlZaek(WP;Bl8W*GiY(pMv^1d2UJh_VLYk0ZG~;yHq83};B?hYBu6z96 zPak{Vi2gfp8%dE|OUHcO{e`b@I^^Gfe}K1lI^>zqA%SG*t4LA_6tRWvJ5P9RmP;Ae z2vWvxadOm&;dO&@8{7EC+~D*>j7}5ad!IGqgipjdS2BsuK{!~W7uj-4tamB@6?W~_QyOJBCBunioM4arv|wLGymAxA zz?2g9n+96EyZ4O@7d5&k)*AwPy>QYR&$uhAX+1_NNbP1jjbBbw9Y3=E#I|3qQik9v zSN^%9eFXp6g}(e-M!Ni4s;hBVj%zoS!-A!X3RkdKQGNt=6c*$i1%C&-tDG}$yDJKG znn=6usCoBY_wpjX2}G9&3q+>Ibpn|!owHXYJohqsAHEEQ#u{;`a*|%e$XNR{-Zx00I0Sn$N&HU literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BAH.webp b/public/images/fide-fed-webp/img/BAH.webp new file mode 100644 index 0000000000000000000000000000000000000000..8412b2f9555ef467162c39b35255558aa7d3738c GIT binary patch literal 1204 zcmV;l1WWr;Nk&Gj1ONb6MM6+kP&iDW1ONapg}@jPVo=bwjg;_*z57}nfQXm?3T?1K z8??a&1q_SyX+t%+)SywOynaX06c*V$7S+?7jy~)Lqi>C04vxWH&beF z|3v_J0XgMNp{4SM4LkxuqKVEl?5+rKGmZ8$g-`K7q`;L5ro=N503p#-7aDPwKC%JV zAe2rAn9Qd{0C)v?l}(xD@`*UA1cX6z-D#W*a5IArGL6qsM)v@(prD$m^h*Rlc(l@! zCask}SD7x{fJhb{W(Hpo0pJ}K)v~o#$q$m)IuKFW=tDCo;udf^hmJCfuZaNgi7M*Z zCM)F&HM|`ls&X_utIVd>aV|(=h@9t>Si`_qA_&b`t4D0S- zDAa6+iNx?_7#g*^o}5sl8#_K>_&b_9AC87h-QwXMQ*bi;xs3>c z)+JvguX&rEUFUlCUF#v%uyH!84);^Z-3W`8de8(V*jV=jGAfx;%jJ{u=L!T;DsPkd zgwky421Nr;?kayCKuQslZn3;jvdujU1mY?eBYBe&ZmIc3H4Sa6)$(ht{NwL*9vyGK zJW$%Loyf{wf10P%SG=L3nzq&o`J&|8@~;_mphwDJ9s-SZreVsWJ@g3D%9wo1<%9Bf zGl_CDj`t~-jwB%JXl~nGR{q?9g#0GW0)C>5I>*tKv!S#~S)E>LU|U>PUR|Tp*>r^2 zd_%c)PpH{&Z;BYBJR z?R)!04UKG@%gW#BygI>rexR)TA5oOOfwV}OKg2sKsb%Y|lyAzt1w6iH)WN3n1?B&G SC^XfDMyLey>C{^$?^J|&14WDg literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BAN.webp b/public/images/fide-fed-webp/img/BAN.webp new file mode 100644 index 0000000000000000000000000000000000000000..819df659c41fdb38a7c13e9d65d15543e1290203 GIT binary patch literal 624 zcmV-$0+0PtNk&F!0ssJ4MM6+kP&iCm0ssIng}@j9H^iWA8$r(9qj~-azYhXp+eVV4 z%0J!x@2W(CY?}`4{!pKPAwg12c;kI8KmdS-Uneb4%pvY4jsl<~0JIrLOjWc%1#Pd>dn$w2V`T785R*I5yHh z4WdH?la4(BU`vv0+M1(l+qP}nwr$(q>&vh9nqG6?ZbbCojoV0$#EN#$gyU*np#CSx z+s*F$^yJjs*2S~2ZpLe~!#wmkuAunp-op>$Tz6!7)6a3nH1Am^Su6FW-^P(O`fiHV ze6pA5!4DH$mb=Jy(l+2(gQ27&-i*Z+-SG@Vjto(xKYmMiUUP{f;b(9fh$q>vV3u7>s0GVY3~}*4fYL^MDX@?hQbCLy zvq0*JGpQDgyI@w1MHrpLn_?IV%zSQ8CN2jv>ITtD-10ycms#urA23#zzU*io!V2+g zgU|z@3_=}%BnU+S!rl>N00?+M5C_10g&+!m<4g)dJX|Blg!qaSe(QT#jHf3xEEq)sv20OSvYQmII&Rej0!CwPO@Y;)oWE? zX=FR$l;O1Z9Iz*3Ir(0ep#>O`p%EDnp&jxbQm{GI+LSFqw}w>?T~dxkXi%G;@!RAI zmwoA*X0-dZoAsd&Wk}X--7*+^H~+>(Z1cWl-tCi#+MI81pCs1w9eo&l6K7#&a%yh- K;#vKV5(NMWI3!pA literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BAR.webp b/public/images/fide-fed-webp/img/BAR.webp new file mode 100644 index 0000000000000000000000000000000000000000..137e37cfdef04ab01a05ebab432fb6c491abb065 GIT binary patch literal 650 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 UPf5td6C-l*^o&eANmLAS0G|fvQ2+n{ literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BEL.webp b/public/images/fide-fed-webp/img/BEL.webp new file mode 100644 index 0000000000000000000000000000000000000000..37249b03a174ec21388b651959ed55449fead162 GIT binary patch literal 90 zcmV-g0Hyy@Nk&Fe00012MM6+kP&iCR0000lg}@j9CqR&GGqV}Y{}{JX+qMnkdas|) w9)fI}0SsgQR2R6x{0HD(Ug~`V1CeBWg?|!gpnt(jKt%s1KyaJgf!}|Z9AwzH0Q$4T38WhGpnF8m<;Yi+=I&H%+)1iaJ%Q>Ep!H{!XoYEQxWBOdD_B=z}6m(-d7 z08h~^2ROlbC7xF_omFAjf#cZE0Hic#q!;Sou`Dp6J>g%g{U@;c7>tG*V5*qT_#mDc zEAPa!N-bwrGHm||+#7pfPn75CkTL8o$_SC4tI}!{_Jn(_;X@U&)ml#ZB%T_Z-H)wc zIF`50TpK!?-9;%gEQ9>e(M;553U7pcqxGG{VM7hFhQnCw-tc?BiEOyn>K>3*8&RLB z*rF=|#|WMXm(tA_mP3B{Nai&F2=i8b6}u|xkf~uhwOeG~i05CaGVGPGZ&Uy&jq%#> zQ7pw)+2(Ve2^U7-I1dI_+2#w&Xny1fCgx*RT5SM?daw4L%wh-7f^<#ONuR_skvw0` zbXuKZdQav;z1INt#CW3a!q#%Y%Qc_(q<7&shTu4l2G>%}7Z(Fz^e`s&Lxp!TA>V7g zrf_-~L3yb|_JpsRr$T%4c@>2H`1d_)_oeMhk^3a08Gu+Q@)8OLh(gBt!_GXzu_VFz@4w)Ybh=K=GoxF zag2f;phVNfLt}^1@$SoK0D^zix=rWwaDwvEfJ|-EN#Dd%fqtpcdJ0=-;yh5t3}YyE z2-&6!yhAV$$Gud%>EaR~j2}$LyRYm42>My;I)l^42+B(n(sf!-M6AEVSA_aIwM-{} z>@|h^0$@+v2g$nFM#`34t0?)pu#4Qh%rKv zTZ)J|5*wJ0MZIuvvq;w!uT$3}V*GoPf7wXK>3zyKMh>)_%Wnfp@-LYdw#FtvDg}gQkGyCKm!2HUQth^%jeG4Hnh9{ZO#l2OLx1%LCUwY}I~9 zn;|K$7vJ;qO9zlqn`tjg@}BgjoDJ7q>)i$XT=QFY@&-N>+^IBIWLqi&;Hl<|1udLv z({U(h?E^*%TKDi5U52E*wAn<my!%+1F5$JAMTr z$s4~3`Sb3<EBpR*|c+0-b$a+TleFmjuHafb}dl=*23Jzu< zou9);wlmT-5GrrSL@flOH6DkUpDu(CKQmg{PfK$|)XY9PqtR)%`24*4;ss$Ymi=>QqTR55iS>f0^iUL84yiC8DNqKitI%jP1Yu;NYCHkvg5dI- z&E`)y{$P{Vz~OypqafUB3_V<7CLJgjC(P&kkh$R8*XC<`bVmb4h?0kSP;LnZ?6zmJOXFp>iOK=iH9M?oqB1d4W;5G2S;pp+HeUDo98mZwX3OarEoPq?0VMV(U z=2mj_?NM%DHCfdyN=8lwJ(ZPcx4-v?U4bs4+)}g}48Oa@pero_Hj64a$fMLL$QA7< z*uYA@6inyXe7`6u-~Z?4W!>dFQ);=ts4aNCuItMcgm2d=8Ex7XnSR4R;__*vL$uMB z5;g0sEB6{8Adea(TIkFwrkXf&a*B9`G^=jyAl=m^dT+D*sj3xY9VNS)$B1=m8`~+Y zhg-(+^*fW3%}mJST-qRaX-I`c;z9b9ONTp&_cTvsTQs&cD_(9JCmt@JY;CF9b$FdR z$o9-NQv@1iWLv7OE#u^tR>{Lee{~ahH{yr2wTWw`GE-OE=gHMNiubIegJe&$bXgM; zUQ87rqFd*aZOxbQ%0A` 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 OaWaE1tVQy%(;@`dk6fDo literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BIH.webp b/public/images/fide-fed-webp/img/BIH.webp new file mode 100644 index 0000000000000000000000000000000000000000..fac8601e6d3fce84fb16c26c787d0330eb7527a6 GIT binary patch literal 2296 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 GLID7%yVTnN literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BLR.webp b/public/images/fide-fed-webp/img/BLR.webp new file mode 100644 index 0000000000000000000000000000000000000000..c5bd46bcd301d18587213dbef151a093524a01bf GIT binary patch literal 3012 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 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BOT.webp b/public/images/fide-fed-webp/img/BOT.webp new file mode 100644 index 0000000000000000000000000000000000000000..3033f76dfa20e845ecc7eeb00849a70a2fa57448 GIT binary patch literal 96 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 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BRN.webp b/public/images/fide-fed-webp/img/BRN.webp new file mode 100644 index 0000000000000000000000000000000000000000..27872ee0d264d92cbc5f16be7b1b9d38a0fb6289 GIT binary patch literal 282 zcmV+#0pg9!kDmgn7<$a%o5HWipY0ePsCh(VPEb-15V{%;>Z?gUjbs1uL}kt+DE zPa=I`^r2HkJGCv#ne&+yDP@#y+_s`me}sBc+*TI1YS) zor>U8`kO5f>aM_a`g0>~&p~uPT3pN!bP<%WIlXyZ3dySvDG*~uHi8#7^Ue}| zA=>5M8vP1)YXkU?RU`wFebwom1YM*si- literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BRU.webp b/public/images/fide-fed-webp/img/BRU.webp new file mode 100644 index 0000000000000000000000000000000000000000..a95e3bb1e0f09d79761ce523dc582152e6850acd GIT binary patch literal 4758 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 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BUL.webp b/public/images/fide-fed-webp/img/BUL.webp new file mode 100644 index 0000000000000000000000000000000000000000..f815b92d3a2e862b85e31dc64d7c81caf669c45b GIT binary patch literal 90 zcmV-g0Hyy@Nk&Fe00012MM6+kP&iCR0000lg}@j9CqR&GgEN)k%=a+YAj~#07|2BC w|2mu_$hLtP*aRkjlFxtq&yZOo0-*+m3M#0eg8s?8ZxQ`Z5y~Ed7kx0H0LPgl{{R30 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/BUR.webp b/public/images/fide-fed-webp/img/BUR.webp new file mode 100644 index 0000000000000000000000000000000000000000..f229e6e21cdd6ea56fb0c95f05f9eca4b11551dc GIT binary patch literal 792 zcmV+z1LyowNk&Ex0{{S5MM6+kP&iBj0{{Rog}@j9ALg)a8%a|C<=&snjD z36gS9oo@B7&VLfEGnIJ+|BBBAS`yleshU*p+)^HVx6@gXzRt#&Qy1`7|gzCSU ze?YzLHq(s?yH|x3)s-4G*&1!qnl##)Y|^@znYMK`Y1D)jq=_`zgqmz3jd<7BTCcxn z3Ve61)z^q#{Pn#*&)ZelcJ+;K=__sRihTOpmwr8IS7+1Z*S_-VQe(SPAOG}?ACKBq z+jOzZdYu;<+bzp2d}@)^7M|p4cJ3TzrJ>uMsO;nOtuyZ^SGi;B5NizH;^2xuJj)6* z4{`N7!UoC05C;eGfR-~onM0YsP{x9M1k*8A##n?Snn{g;W38NZU}TSwGcpH?2qrla zisiCa0+BXM*6>Ui_A=@FU|3>m&|p(bK{z|m%*_1LgOJ}@|+V_whzG1?8m z9I>g1+-t%lu>}B}V4?#8^U*M8Q-BDaQD2zIZl1K+mz>;Vl-fLHkwRdEil`y zx@2ZJF`AqAgpV8>KpT3}ZxrO3NKZ0jpBE^doZ_jd!Rll17JnxCIMC22h;JRxD597EPMA WQDFt)Zf@D!5Qn-fuKk35Mgjn82z)jG literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CAF.webp b/public/images/fide-fed-webp/img/CAF.webp new file mode 100644 index 0000000000000000000000000000000000000000..f8569f6e4d31417f3cdbf610a5ad8bbcef077932 GIT binary patch literal 398 zcmV;90df9PNk&G70RRA3MM6+kP&iC_0RR9mg}@j9m%<>DBq!?&1xP{^TA~XCeBK=! zjvGl*r1syOC6o5Wymwt)>7b1yN2==Hy$IkS9NokAbmII6{9hpfLISa50YIq`zyhTN z0?coS!m4DXqF)mMtocprSL2<=J75V}frS-?70z1!D(eO`zX8zBmH!1=zl!B7EN561 zDT+8!TE8I*fU~R+umUR;SXcld0$8aK0AL9b0152l>5s=bUAE!vTW&}50$7q{o3?IW z+qP{#+kH9z*;s48&lA!A3E+jU7Dr!E)ay4^gycjC-drUmXd$cwDHv}R;N1gM6rc?t zssL#KmV2>&%2pgP{wNMP3>;*u{!$>mq>cLpM?CHI;$OqPhavMysmPni4tt#^ziQ0w zaK4E4>D_^*XgvUM7yu+i%L9nr)trFqL$EI&%%yK~8U{Lo_4WP%H$RJ}tYC%26L)q) sUvhPSx#z>PT<85?(Ou~5cr%@-S{Bw9x;)-;Evl9UT{dk~Tg3&uXX1bTVlZxw37Ww$z}_iyua&N=jR}x z!tJ51Rasidq!c;nNYcW6J!+_Q58|xz6YtLoI4FO6f7sbkDV=k9A_l$wj_y+L$Al3r zCiXL^&w=;)L+tD;v%PZqaOerj+rW0gzJ4p!Olwy`MH`{p$2E@)IOda06R|Avxp&z4 zwuud)?y2po@K!F|+XIdF=kL)L#Yj@=Q8}Ht@V|+FM5KsW817qqgR)lw(APg< ztxQOqA+Mj_0t_nIKWtu1B%ew~kdhV8+1m#`5W{_1l~)cwDXXMCOkgdIOy(f6s_B{` zr|&vefuPd;?EQU8xj38(3YZW+YFdPW#hg34{dUO7j2svjhD2vTO-}`^3RVrv#&w7}an0k4Hf4Yd4-cO7SQ?Tct6&S# zV`AfiN_h1F^C{}(@z)-$OGSD>LGYl)go|bZ4J)6lxbfkjf}`xiiyelPgwI-*ftqk( zMvVsqQjs3NZBxE7wgK`b{*JjFzf#J;j1!cuCPGOxbJ5QJgzGZ}Wv^J!x8Lyc5kW#d z#klanI4NNXQp)(eS;65!f7cVP&lm1|HIam!qjXi^z)V`;S4wxz?LhSS%r+9PfYh^) zu$D+OS!r=hVi;2{PA(VON##>iST0To2;_VwV8zPvu7$DsG?oD&7GPx9Sj#rp zP&^+aX82ga3wLKTkwWNgETMY>V}gY6eX}|cLD^fcZk3l-3Yd<9`EZHU;X}$?{L--w z2BnS>(4>gvkUko);eTGrVZw<_hgQPn(TbPeT`S)IwG+fn-}b8F2qW z!HNqzP8^i6iZ-GLNu-^9iCnRMSX$%8J!Wd@KmBuww8xUQ$ z;rYs#YoGLJf=WS15(>sKijajI^jN`*(p_@K!ADAmfa%D{f=% zm0Y-iDdCk7mm60Ch-*q-aCTFD)0% zY@^`NXGI@O;6Xh<=VAdFGa^uafdTOFzWyEi^pl+t8VRTtR!`JQDUA?kpsNNiVmOMp zP76^TavGol%1MviaWK3z@wz#}mavt8HlV`84xFgj3UO{UY-crM>ggtqiIQ_ru$jPf zu_eNm@XGiG3~x=i`d|nKU?ltk0}S)d_y!EGOlWpN&^E+Wu@gNy7~(1k?O+WVtR%=; z(LpgDir5K5&}-uwFdXyYd*YpisN=8BCtR6NyfVj*zqL@rop5W3a3@}#BPZTof}9mP S#>FBOQB3Ebvi_&&pL-#*I+H#C literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CAN.webp b/public/images/fide-fed-webp/img/CAN.webp new file mode 100644 index 0000000000000000000000000000000000000000..4fe53cd2bc10bda441b1f1a603ddf010ed2787f2 GIT binary patch literal 702 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 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CHI.webp b/public/images/fide-fed-webp/img/CHI.webp new file mode 100644 index 0000000000000000000000000000000000000000..8cdfe00c54a22cb718846553ad2e7b6a140afba6 GIT binary patch literal 394 zcmV;50d@XTNk&G30RRA3MM6+kP&iC>0RR9mg}@j92jifPBu8rga4&wCY13fPHj<;` z&+n1+GCOA2wrv>o>-|2&od3Xx6@>tS2!RbGAR4ejg3onezL_7`Kw!T4y#qw)@c(9i zc7`Z~C>u8O|3~wC&hI@W^8e=9e;r6mWHJp_Hlvw;I(+Wa;d`GBlZkAmjY7Wnfeu8O ze|CtpkVwmB+JFWk#3GXQz_EP*OSWy(&U%V%+qUiG*?uei@5W`Y&Q}o8{|Vq1oWyth zlU+G$22TfOus3Z6T>0!P523Csc=1%26805|$B0boN_z3RMT87NjA8(Pxy zy*>6}3%YykN1wH@xD|q*GYN_zue!X2c1qO4*D)`B*YvD``SqZyi6}*}e%9&~+$>NQ z3;ix0DC`a{ca?3s8BsQBX&a*nJWw*gbS7SM87r}c3N oO(|8S&cS;+=2mg8>UJ(km-Ul1Rj~@)N9&?K;co@+|Nj45G17~@S^xk5 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CHN.webp b/public/images/fide-fed-webp/img/CHN.webp new file mode 100644 index 0000000000000000000000000000000000000000..1c33718f950a5a733e128f0dca45c6af1dce6911 GIT binary patch literal 664 zcmV;J0%!eFNk&GH0ssJ4MM6+kP&iD30ssIng}@j9-{hceBuT2_&t?G~kFOJHx{d=u zwoQ+6f5-_0lJ=J!Vg3muZFqpY8m|;0A%qZ-J*XK%0Yn{$DJ_{$CctGB?|@jy5{~>r z5JCWp0KX98T@oUL5P~9vAO-@Qh=5K2BB5MxM*(AG^}jL@hWH@?A~)tQbYacgAkYWT z2MM=rn|iZj+qP}ijcwI!?9`u)*m>{d=YF~`88IzUWgQMhP z5~n>3>r7nVGzeq?=wv3n5J(jeea_1Bo&fB@0M?XhSS31t&$oF1=uqlO#O7?;GT$m) zVowzshad7Kt~r8Su&T)AWHNv`;_qgEUw?mpUw?mpe;eEu^}Fxu@1MQ#MO}Ie0I4Sa zTn&VPxnGN&e3lM&gOL-LW9JUhhg??iFJ)qyo_~F=(Qt?^x&xWin22%pB5`{!!?(z3 znOM(X^NUU%`}t6!CH69LeIv=6;L#frc9}PkrzC7kus2u|*A%>NSLT{)rEUTv-9#NL zaXP~@>#a-Lw!Yj2i%M+e$sC&m;Q!!&=w>_;K#LMj1HN*s6i8Ynw_l2Y=p#nv$>E-4 z6g5>XaLN*d78`lI8VJHWM)G0;0NjqroSKMxOZDvGdD+Vx6ydE);k7t9Ytf(G- z=;xM9clJD@?sILn%&R-R)pbSEv|e~l61~>wBJ@ilIw~*-Z?Ey~QERAEcyu38h&mPD yeiDGpKAq@PF#sYP<}bx|n1e_Zo{-?>q27;%_$K-$eE#s;K-&E_`0xLJ`UL=iNi=W( literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CIV.webp b/public/images/fide-fed-webp/img/CIV.webp new file mode 100644 index 0000000000000000000000000000000000000000..b1129610baf4023ecceab7dc2ca3ba42f5829147 GIT binary patch literal 82 zcmWIYbaV4!U|x0$%Sw m@aOpd5ND@`Mh~NZ@l2vB7wvDVDlGahY*5g7x9xuYbU6T#vLJT= literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CMR.webp b/public/images/fide-fed-webp/img/CMR.webp new file mode 100644 index 0000000000000000000000000000000000000000..b5c5f4026a1e3a541ca12b51cb2f78b23a3175a3 GIT binary patch literal 334 zcmV-U0kQs4Nk&FS0RRA3MM6+kP&iCF0RR9mg}@jP2f`?lBq@tr@1d+B)`Ta{Beq7%k5)c$g03={8U%*^oE{VQ;0Z`(g zkBP4U^hNA|uZX%N;0ayC*nt zc^CG-t+5+i-a$xEF6uQC72(gVK*r&Omq|uUHxR4(>|`2 g1RizfQ&3vCGR3jZwNeJw&=}#QLnCp~I29+d0Zib|ubzw-NdN$rk!0JpZQHhOoo(B;ZQC|FX~(vW zcD@oNNj7ckHk7tep&Q*(v^GDyi zTQxckTMnf(cf8^pi<8>j>|$X4$5ro|m`rnc8c;(@qslWm8e_X}QGm0N-8WXTlYBYM z>j=1!(NSDCmmk479>}8)} z4NLBC{T-~==ooC-me5=g#W@wews#64d~WSx3qycGhWWY7Ed3sKa zwctlu0|jXH)N0UU7O?F7GQi0Sjh+cJ;$z6FnB|Np&Z+S*J4e8m`R*5 zEuSh<3|VqcPnefc685oh?B||}_`?UzAK8FwVDpS|z-e&NwkfVeN8n#^#JVn8HyBnS8h!|dF*5yX{gJ**@CSn+!n_(CDv?syn77BPG)e}Zx$r~3-?(d#crqnId= zi>>%;#L3X|m!}0YBtP9=l%#NyM5inPG{I-FQ6z*cdP^Q}LOqRDMv}l6ij3{Q5Puw% z9*X?m70w$@kE>#ebl7xeg$xl|hv9@#@%B#ZcFFz5^|7gUeg(u+YPg$RsH06*1D^!B zk_$I7E`|(*EL&KiPYWbUHwp?`BA#5++nV82^20l8*zvzCQSlCT(=N~^Bb)D@mrRK( z)rODt9+adol0>Jh0W>XOu`vYqE!gdJ>tPQR&2K&Y-o!G5dKSAL?M6DT*e_{?)#J*U zB4Y^98(9fMNLo>0Cnq(#bqb#`hnC?w+E&mTSxMkVHYa4+06?D>M3n9n1l}s1Lc{Bd zaUw6qaL;t;)|>CZ2`}nGhqy(A@4mA5J6ubI^|1TFZ>PhJJn53GfkK}y^Ecec4(ECw za}DdE59XKfi-Z_dD?_Va6tuhY%y1)JE9e#I)bhgZz>VxOE$$+T1tjFd#6%$CJ@zK40ekIL5%{bdp$zd>r)0#c8d4^_00nRCL7(0CNzF{Dq5@5@P zoZf{_Il$^dxRJkH_mv*~ax=JGBqa3nXz6$zh5r&DgxJ7V{B;Z|oi}ZZMzj^+HR4<7 z*7eo0_%Lw7<0jPU@dUq{D#S0Ho3{t4{2#4OB1C5hY)0K4Fo`hZ-bVQ>D*))z%Rhi= zpv1@O30@|SpT7{X`36pE_Q*`)W^hG(C5Q-L{S;$t|JCQ_p7<&SuXN5d=(Nrl@i7E9 zGT_+~D?TsuBroSJTg3Xa%8p_?`ASs8@fT}BkI|Bpqgyqw`JIx7Rr|T8^hB>f=Za4= zwEm$)xCFbE;bCSjT9RU!WHXrlpR-rGr&NW%SMBGW#7a^mIU~xdn8DWk(_8j_$+jd# zl77ei;Dm>@!MG$va-(lGk+d!ziET-Wq`L<+Mg&_eUCFj2Mbg8IEx-xGeG2N9Wl4%| zojIr$7I@V*p{S7az)fau+{&zS28V0(Hog8ngPQJ*YAUENs48hVc~@DKAcj| zv?N8c{J9zo2{XFhbiIU$VM&VQh%E<$f6b=u3bq)Pr09*jA%F(M37`1$R!NIVNs4cc z4j=1JIjuKy5|fe?N#+2aJxF5VJ~Y3@oFqlJx>*}enC5u7jbu)eBKc-k*y_EX6J?W% zBq?8gkr*g~8yV_pTp|T66-m-^XyQFd>meOJF)c|2Z28#S^D04NT9U$6$cIULQ2Y-9 zlA_4~vncEMg&&lu0Z=k}?XtBxMz9Ny;v?l9XjAB`Mnw zN>aullcdZ;BuP~OjU-hA6p~aO;3cVAKuc29fRv;v0wqaR1xAvp3+0kjZ77wb>O-L< cRUwKbsVY$*NmYuxBvmVNl2pBzFG*F59!pXMMgRZ+ literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/COL.webp b/public/images/fide-fed-webp/img/COL.webp new file mode 100644 index 0000000000000000000000000000000000000000..f8d2c198b3bf4f0aa8470adf6548a1f62944a136 GIT binary patch literal 80 zcmWIYbaV4yU|E;4KBhTf{#PwO z4gqF`02UxhHudLCg#d8C{;OVj5Za#+0;C4fvTHv2{ci{Xu>J;OfT?n5KeYSb5(2;x z_qRs%-aA5opL6Kme=h`pBmQsAlRIL7sdDPy`PDas0C2+pUPKJ=b1vhX8-xIGCj6>( zdg~n_z|Xmjul<{ALI9j!`|PF|;OE??SN`>NApl&6KWd-f5Ci<2*Zll-AppLwb8%e^ z@N-_v^MK~65CATuA9XLUiUBOa&>Z%yv=lr%OfvsgB09?uJdRK)| z0N}lez!FT)Z?^`tN6M5MM7KpE-b_JOl{%l*T-aqV~n-jEO>elgfp-JB1ComS9E!hc&P@QWjeTT*zf>`OzZXrZ070o*4SNQ8^86OA2BM zVdS$}{Qmo-8`1~LB!X5@5H@f)x6!BvEWq@FPFrAmq!exxPJ_ELNd|Ssx%7H7%oTId z=I>3j9)LTQ+u)|C44LIh|N4L=1KZ<_GKCESu3Ab|Eyk;slcD`-NN?)H7EGlNx<{;{ z0Ivl1CL|f$on(?Lfm{Xy5m9h&+TfkQvxI_=RLaLH zW+R3IJQ@6Xd6h|~3;_T}z3ak`61w4T6t>}D1z{BNI-lp#j?G@{#7r-g!c^C6{8;5t zHkF!~O`d9I8CztO$c=;UMSZT0+zGFLQ)K10njy1T!2Ow#051mrGu~Ws9%C*?93gdP zUb88$)m+r;?AFDZ$TAkbD&}_ubtZf%;&u?T(R~@x;Z+JTBBFMGy^7gr28sL+;{e_) z!IE6rhgCA-W56Dbw*BoA5p~LIG4E(Bd{sQ)?#7QZ16m{2Zmca@e|Lze*<0gUn4%X; za4t8zn0#Vy$U27R>O_$+O)D5wJm`6z6WKIcR!2KD%IZ9yBNlTZvi30*z=thp`ds5f z0jG`S*BGq8(p@1fUu-h4hJqzR-nn>iIIHbn5AClnN7(G8&Vj>NFYDoe!AvSS5*%tg z7tM9jK1;pGYF8ipAuGK|R->9Sr77Lg{FY{P-Z17EI)b(=GuU|4_|wa>FeM3oD%bV8{m1T>8)yt4jwHnjF#>Wozw zbOHlTc*3vVC*8NYn?P~|IP^&F5RDV4e_LYx&%#|q6x1FUbXa$U@hA7m`#IdwILP>o zRjra@*`v^PDT*rPqA-3kG&Iy$E|%#~}m}F z6!ADn_rUyi%T$KgcCfipOv{nRG3>aR1o<}xZe%uqHJZORbn0H@_Jsi_N~rsQ?P~m$ zhw!3aXK;V2L(O07b|@4$VqGGteV$zd`X|97gDjO}T8=c{0iE0a_H^i!GmulK^Q#Z; zn&-qw=s#gf(+7N4 zm)tjn@0%B)A&IIi^$ssO~}`a7$NEhlVj_r~y-Bvk<7 z@dBfkAF4{u2pikIIo#EyvP;F~heoYDQUxF>k~5Zfd$_9$RRB(oP?aCQkLla(pbB6d ML1dKbV^s(N09LN1NB{r; literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CPV.webp b/public/images/fide-fed-webp/img/CPV.webp new file mode 100644 index 0000000000000000000000000000000000000000..230eeeec506e8c69891414670d9023eb3c6f6941 GIT binary patch literal 1908 zcmV-)2aEVpNk&F&2LJ$9MM6+kP&iCr2LJ#sg}@jPDoXkPueX#KV6?(UAeySux) zyW6PXF1mF|n7GQOWL4qm3Ljm??Dp$WdT6Nd5DWkfexB9DGs!}NF(^+NfNWcE;T}11gAhpeB=WFIPkf! zkQSkY)}l40_z}r9K>2Byf9+^On|FnHIe)PLIOMe;T@Map8!T@NgI75OH`d&)1sO8! z=n&L6T!mQ(p2sWGbXab=p(+9p)zc3TyvQQ57h73+iIJJhEHP5BlM08v5ioP+%;d4o zJW65|i&mR?e(O{6!q^1c=b@-?Vh4Ir%nYa-C7@oU=>hek9P^b2R@Q4K@tBu9n1s4C1srUI1~K~pQv zK^}?|?1lX+UgZ!gtjz7(4 zJly>G3E$WNY<^gY-jgQJKZX$={X_5|vb(>^i=c}0kQ2VMp-3-r77Hv2QxL>ZT)za zMflTL}A@b;{6M=+*2hup>?N~TCOX5E9d21ROP(irbvsX@s#DfyrX!Js1tAZ z7*E_#{(C6@sA@xwYLE=zoFuFdd#V6wO(sbkiJ|-%!lx0{LlZjEWC&l(KM&y>g=>EP z+1!R)sEv%lyfgp&^E|c;;X_Lj)P$cyP54v+glbUKfZxcvsO!TH3O$)q2YC)7t3rf{ zHQ?n?6Cv#=F@zs%kwf{_o@$Q(02*Lw0H-8L{Ww$)4FG_e2#yoOln#t10~@t`@OI?;|wTk^Cb$za~ed7bIf1b4J{8Z7E{dJ!b8 z(;H)rK6k2DTC>l|O+>BP=RozmHT#^c)0^NX%CfZEcBFrjOhc!g#cUDBu2?PNXl*;n za67d{yF5C6i#oEl9^pvXs%i{jNm`YaT7<0BCu$6F{l!Q36>pUKig!**1`UE!AMvOf zT%E)?okM2uAhZ*`P+vIGYtWqx8D6?iSG`y^@oGs_PZqVOjGJ41bm6CV6mfIwL&}=jzGzN3)I?BsMt$)`PiDPE@hPYk$?Q;74=w#TCK)q;3yp99b+wRigCwad zL#o3DU}6j64CWnsd(pA&sd6y@G{y!50-z=W%#z4po>hm%-UKg~ zpa+v!^j1A|pf1WToY!Qg4wu@xo3YxPJ*v$3ITB>w$cZj*k26A9m<=fD};F% zjfgG*w7e@MSY?AQo9)17!lojBJIzzJ-ET>V;_i?6E7R84s-@Bb2mr9>9dSVnBWV8z z*zd83`8qZtOVpbvJ&p$eIN}4p@Q#6axH(g{EdW?;lMZL0ks{Vv#d%0DlW;;u4;SvC z0I=;DIo{+G2&0JRP*l`1W!VCN_l4Frr{p0=u@zk=Oa-vZRVl(aJV{|mZQIlGp5OGK zvX$5CntIqfeku!;TG-~aJlAbc%XtDP{bF%--TIWgl<`i~a+FxY?l&bZTxqW42+`=r zjKhNj8pLc*ACD3H84qB}WJVTp36|l6K0de)P7*4e?|w#>`frg9gBZ;$-8`C=_U? uxv}^V$!NbCF}SzoF-4ExAwpY+`1A+fxu2)}jqF1yUh)_hjGQpg8D#{=W|Xo3 literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CRC.webp b/public/images/fide-fed-webp/img/CRC.webp new file mode 100644 index 0000000000000000000000000000000000000000..362b753a3e3f6a18f354df6a7120ca0e5bc62cf3 GIT binary patch literal 108 zcmV-y0F(bxNk&Fw00012MM6+kP&iCi0000lg}@j9H$V_TQWEpczr-2}BH5tcuK;aT zRX_}6A{h6L1(QS@qsjco|6Qzxt|WTK2vkG1LS2OvQb-|%6!Hf-e?2Cm|CzJi1g(o8 O*n3d~tqUjQ#sL8Lmnj+m literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CRO.webp b/public/images/fide-fed-webp/img/CRO.webp new file mode 100644 index 0000000000000000000000000000000000000000..1fb109098805f13c27a0f3b7012a84fef3f82004 GIT binary patch literal 2312 zcmV+j3HSC=Nk&Eh2><|BMM6+kP&iEV2mk;tg}@j9HBr(3f1TXSa+sIH%*@Qp%*@Qp z48yY%X3k{7%*@P*Ei*HU{e~vLf683d14Q?Ee!8Hz^~^rH4Bzq<>UxO!pW6eJ9Qv(} z$^nuq)U`gYYE?Be+x7sf`aeV!yPhJd>`1NNdOkp-qKgs$05IF=irHwp_HEn#pKaT& zX504G*|u%lwr#&8Z`*##&2vtiVeFaMPR0`_lbjRVY;4>AK)dU<>+ZVbsw>;JZMXju zAo$NA4(tAA4VSsx#l;@;akWF!2inHBeeRr(^L;+$9LL9${~B8yk)JNyP45y*eun70 z6IPd4rX))0HNBr9!P1&kQLaUh`K7-kI6j7B)|8YA@d}oW!B$`}UFLaOlyXt)A1rRR z*sVIz0w*c3GAeL#=dzTznIdE1>co<7Qr1yVV6~{E?sRVOJBad&I&QAu@D#?FeSV^M z05D4_rO~1NC4|GvVqMh{Mg%*Am`h^aib{vYg7r~KsUI+(o8W8D7&AC0MzJ7aSNR@> zXgYsrit@L>OD!GqJNLwvmsJMp5w!o3KEN|9WQ-b7t+{?W;zF#+iFvWZaD&7A*kV&A zk$;r3`k5m4m(Vp+WN%hvpsaZ+42-OlP;CY_C>R1Vk=9SK!hb(yRXo)rF|A#4*Ed20 z98I#+Bi|S1I^C~ZEbSrG?{B^bBBUd5zYj2vqjhTI7E@16%pkG z*{Dgy;O~;5QycW28;PzRgQ=2Lz7gmB8I7qPj;?Dqc06NIw>!vG?EC+{_VsF?|+k^cwqY}h0%He{4 zg3hAapg6{{yWP2bovZi#hKL0t%Jn48{WZeEJ2OnGY36IYWY=*px2D|e#oS*j-aAD@ zpHFCOUsP`~`qL)lGfvqZE}pa+!B%Pf_8~-xNlAx|13gjQ-46E3i4G+}s>!7xRdsF@T`_gz7qAJJ|q7_nkn5SE62BOqIs&(Iq zroAUmLabv~VfufQQff@TW{943^|i;jd|k+A#fWwMW9xQZQTAM{6QW0qJUM0p)>O#F zi5O`TrfdSHd;nW-3aY=RV6$_!p^0^o1y(|^b5fSOMM%ZOpR@{`jEFM4geW6O=%2FR zxk9a@5QAQ`PJ73lG3KsBZHK~wKWfCF3OOvQe1{lpX_l5_JT?|x`Q|%)Py?orB`;Tp zGR4qFN|cT|E|4 zsqDChc7FF3%$P=#Ail?=)a0eRT7>>=6~@EVovK67gg_g;Iigq4M2*>dUW3w78kjoT z``UtbK`z#eHW0<84n#buN3%|jld>Eb7}MH!*Xsyzn2_qky1=2}4GpZ&ib9UUvzs(^F)VFV})+7Q;1PDw8(bm9e9vK1| z^4wK@U&RQXAX9AVn5XcyHjm1ZnUpHbi+h&F4sO+94S$C#?K0Od2aRY}sAYwvgeWy~ zNKJ|mC8p&jV3Sg63|%*2oTP65u8$gwnv8Z8YY7pu@feCjJOV5Ne>`;vaS9=s{spR~ z2<(uYI%!@zXG<}(QKv8|MGUe&ODUx$V9PyN^92@~k@7kOSk)wBrx?Q^?QfY<7crC0y|yX7($G31ON4Mb$yg3Imxksg2q$S8@CW8HLYuNb z$jvGlm)_bhd9+)Masu_@Wg4>;jMq8Qe3|zH_Ykv;lu>ROt$cGx#OA$k%K~j!m!zQ| z5mAYkx`r9&4F&c4?vyrOU_`&VOGBcidd8)lW3n6m(G}5GM6JTv0c;VT6s?j%28u?P z`YzGguOcFLZ;f}c2iaH|RfUout?o!NDrrN~2fCQ9qV*59$n7snAK+p^AEJsfu3lY6 zMZpN~X_j6ap@no5o~N;Ai~F&nT8ds9VXtbON(xO+lT5-qVwa$iw&@bF(e!-*n%+#6 zp+CqS3RuE}y`k`618q(MFXh3#U=;V{B=ED=3h;zqr7(nnMjI@HY#C?^?M{w013%}E zJ>e`J7;duv!X9KS9a!%_F!2pFEC8$6@Igs;z{<8P2Os_sEagUZOO}I=kdKEqWrM+8 zMBzaz2EMx`D?H2{_6Iy{hC=%<2Ovy(%{SokqTUqq0({{c@Zrnhn&x~1{zbme8EAbM z4<^rmfpLoA!Mm&(`1yf%EDX?$`-s<6jm8>i##-XFRATH0vP1)BCsALAwcw98f^V+{ z8)}gwf*Zl{?`SIr=>~AJ!8LgBeg<3dU{3)Uc=YB-cyJRmgV-V6#u)nWG9UZJbLO|C zTeeCw+Q{=H>G(#P>;pj~S}DR4f9eaa1^!&ISf;#W`ZLJK*V9E4S}4PF;IQv}xcKHi zVAN-pfbJks^SeQk^6L3-!$e0(Y;4XyCRrw+gn$kB`ARTFI`7%ooV6_@#Z&{1dsOr3 z5@>jJMlPpVDfkb2d>IegGSHTXFJtV9#zIQNE3=dv&Dh)eaEd{?SsYId{wlir+D^IB ztCT$Chv0vJMfdfnPl7L@a>||FWJ?GB5`J1#nPM67N$@QqQ!aJSTi;gD?Se(rh27l~ zdlThW!-u0;bi(dm6kD;7PhMwycZ_na5&4Ek@yhDTnx_|LI|d};T5o(c#_$cw!FRY7 zt;wPh-d#Z4kru0*;rtw-p4;OV@xRrsl=Nd4^GQZ}kadxAy)k5y9=1gH-hX}o literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CUB.webp b/public/images/fide-fed-webp/img/CUB.webp new file mode 100644 index 0000000000000000000000000000000000000000..309cad6122386de453392d5deadc7d0287889f76 GIT binary patch literal 1472 zcmV;x1wZ;yNk&Gv1pok7MM6+kP&iDh1pojqg}@j9HPNyE@7U(pW81cE+qP9rX~(v0 z+qP}nww(v}b=}u>Eg`N4T`E<+yL5BXK4q4WHq}+7b!XR;-rE>0C~dNWoL`krrBSAv zb~X^S|JgyrV6A&Y=uJG}*3Jw32(Bqc(aYz#Vu~Oq-lmG~ri_1WFpj`VOB>*DS7UcQA zUZL@y62S8+Aa+n|v5nVC0C*pUCRdy*Gw@vrfS~cDECk2OxBOKCc-#g=E-KCca#sle z&x@e=E zKPds=zZ8>>b*Eg%ZzTZ2wdCXiyP^g-E@pH?k-Zm60C*pTB-NZMJ@QovfWWDQj8uop zxBgKAAYx@v-mhCBN`OD&`gD|BdtIgJH{&Wze|~lFlwZwy%CGEz;A34~?GNcl0OIEX zNH}L^1&0As0(jmi&}3BxN&xs?XclKDR7wCu+A+G7gTW{PkbKg-;*J2M1h7g~SdW4d z00C!OhuRH^5&+RROl05?P)Yz~?6)KjHGoyQz~%&$00=tK!OPyTlmLjgXc{$#f{=&T zH5Ndwb}KQHMx6|P=a|6zN`n;JW01tkOzvOH& zw?42azooeB1H%TbMPpeG_Lt&Tx*R(k7stP?*!mkGAnmYqsF3lypeS1kT>9*VrI1@F z)Bjxr7&Odf)QT(;%>u7MBPm&NkM|P*ta@p_FyzT`O$-LV$3@96EAVhn06?lSYg04e z#v0kcx94SG0*AhmvmXS2+aGZ`)8|6)9=1CpH^>zcz^avLFE|dlhTRU%{nnz=@U35< zg#cvj(Zi8tI9cG^>ntdNU4M!B588xAl`BDxelduvBEsyYX0*zX=z|MJ_7I|9VH8*%+To8xtcUcSld5z`d6qYfK9~{Bun|Eu3^iTtqvf zDOwB1zI`$sE}~6{gfjC!3`?OfSEm0*g@*qoH|7nZXFq`5I_dU;LzI3Hqap9Cj~=

_t%^l9B|@S!Rfa)}@gZ@V=!FRlxk-M5e|V6DY7(nV znf1w$V9oLB{Gv#>W_WEZb8eE~w?AG?BIeCHy$^|*vt(1gev;%D?m+JY!I7{z3T>R| zED|_B=UhfY=Vjv%ty3%p^zp zX(=-D*$+#mI#YV+o0cS#KVk>B6y15LrO6_EW8RrsqQ<@STR$zohm-0|lpg(}}46|G>Zi literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CYP.webp b/public/images/fide-fed-webp/img/CYP.webp new file mode 100644 index 0000000000000000000000000000000000000000..beabd29902351fb7e42a744a7642b17b78de324c GIT binary patch literal 2032 zcmV8Uw(T{x zZEM*o{(tFR?>FUCQ$_zVdk~wg)#jLXm2oPYt4=#sJsU7bs-(5kCeuYNO53TOZq&J( zeTdyp`$Q$nsj>k!-fRI!Z|bRHqe^L`gDpw2X=`2Ewr$(Ceb@f~=Vc5e2mn|{Qr|yX z+qP}nceTw?t+eU?1f&Y284(l8LDN8dIVj&NN7#VV zh?)?XJh=oGA0o^336{Gj5-;Q2vPvmeQ7t(BADBG3q%=J^q-wJujtVHN!xa9zC(t@D7n8#Q#j z7oTMxW+u_nPy3Djdr7KAHU5gtDO_MhuLc>Ta}x|28|uScize0 zH7j*1sRCwRl`d8NYK2=?XnO6oF8Tn*NBz$uYnm6U-;^3;N)6D?Yd1wl@T#3!kx{&H zeK%ck6>0HdD$mqUzR5qwjcdNYI#*Fix6aw-0f2SUuR)qNx2%eM^^3obt6ncTY+mK$ zpZHg3?EhOwnH(P6%Oh)CMJ3}a1K!oHmeY}yR=X#~hRLNmCY0rvlfR!uLGN_ybHIK| z2^9M2LqP0vFuc|W{MT=4UW-@r_Se~h$o-vgvyLC`F4pZKX zFBW@8J5ovoej7hTR!0DRuJ|7Xm$e%_EyW{iTt$WblQ!Gue)Dg=D3Sudy7aajvH5H`nl2roaV(k&8`afb78dsE)vQ?FPgn|&Ngx}0folUY(|gAMPzk&Epq1j zM^8MliRj~i-D>xw1tzL>Xxy@j+UqGL2mnAr88AHF-8Z%} z1J>xO7#FDm8l3E)b`RjW&yI+7Z_w1n6qN1bx}zoZ-J6T6mL&%nrQ3O=ycVAT-v!41 zp|jxYsL|1$=EYhcj19RKl^yG}*nsutq@E^_Si@%fEbruRQfUd8D=_|F=%+91cw}wB zJ-~pc8XWIr$^Tjx>#Enw{&VkPwH`2IZk0}@;5cfxb3Ax z8Uj#c6z7%|O2uEsMg#NPZCz68uyF-Vfl*bF=;t8SKiOfP8kEdvm=YLf2(-^P7Sg;} zD>(iijc^8%PBw`aK59}rrb5S6n1AjZ;Ile-qtj^F~FB!T1uPdR8XFp*)t>@}pkjd`@2W26-sOQ9M;PZo%J&;xR} z7Nz5AYz9q5a)FF?Fa}vgrv{}1YG7Iff{8UjW;ArXfEekh>NRf5^E;se#zP0`2h%z_ zL@$`ARKj>{jm>4b;t))z@hLR9k(5_>EGOc`_NfBF?65_rH}n_^yGg;T6KK2%<%ozo zd0InNp=4T3jis@m><)_;5b%36zvaUi44uPraRQ#>5Sy;4)e(Wf?0zof#O9{a=5s=6 z2t9IVDno6Kq4$Hcdwvn{8!@;9qPbA z77#XX9{_HPU1PY!kh<47giLLy!r+&}@N{V>m&d3m1mh`;$aytcz)ahET#b_r4mJta ztd`XbdJ_g>P8?HVgv?;*P|7isB9I3>Q`oIv4L(cbS|GQFm1Q~LRyOWUVrQSf8A1Z?XCqa=i-Fw_eA5!yk&WFha| zZ9Au7dss%>F}3=pCzW9#@YRFSn1QGhD?n5cW3SW+<)SbIvs-o%@7!6L$MOkW0^S=_ zUW3vz_6Y*F0!E1fo?oByVZXp&vhIaxT_Wif(k+UM8|zUv>{_TxS$^=^9QaE)i~#qG zPp2tD$efnld=gD^e(UhcG=?UV8S*uDZKa${##X3PYMDfPN=@#yu}5m}KbFD>`AsJn z2?Amd9x92UQ))WJ=8DUIaEFXnUNs8l*;>Jv+>nA+NEVQdXYOoy!4+@HdsW=a4;F$T zmW$2X*hD8JyP*VtDQjUmhhdlh(k?Y+y`mY6eFk0_E6N;zw&z#D5 z7>*qbjG7`~aR_r>98cqfkS;6c=mq0e!(cAxq+yrL=Vd|&5p?3pl`sw`z$~oyE##Rx zd9xeJ0IFg#i(wu)VoR6Y?*C&+2u=$G_iSM9?+@d+=XQ^)IfnqlCkbSgJI;p+7=O`- Oa;Agj0RWbVW}^f_$l#Fx literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/CZE.webp b/public/images/fide-fed-webp/img/CZE.webp new file mode 100644 index 0000000000000000000000000000000000000000..4aaaad63e0af0d6ceb673607b042c6821cdde3ff GIT binary patch literal 784 zcmV+r1MmD&Nk&Ep0{{S5MM6+kP&iEc0ssIng}@j9=LIQ}BuA2G4ueG@Uy463y?50h z95<3ADP6rDtQEV!7yk|7dox{GZrVr^q;hX|1n#3J@cilh&c6b;ZIm$_8?2!KQY3@{@Bg2c>Fm;uW<9>y9TzeDgp0Kx+p>i~dZ%wQP6m;q)0V9Z#9 z0oDLUV0eH*@dv%I00~9{%t&~EghwI(L?IC*5=APCC=qY}?e<4Rl!%BZQ565(07SGo z-#!#k+C;R8h!PPc%C?PS+i26KO?%qh?_X`&EFgn3onpDSKVA`02B$qy21#*QKab}H zY1_7)jkHbgvAs5DZQJIoG4@O{_u95?j&0AsTQ_g+&k_BffH%E^B;?I{4OsTNM*{L@ zg9db7_enrruhW3et1b!18?`Y4hhH$KYS9< zdD1QcdGVVi0qw_a5|9_ZYd}6~(}3r{S`yHH&?*6W?u#V>?T2j=kY_&oB%po2MFR5d zN52HL@3lxkp8jM>K;CQ7fTutBC7^w`SpxF(d%pza?G_Dq^1WXI+IN~HAWyyXOF-Ug z)PN`7`Xne`KhW=Da~zu%1UH+aXk8NAZHS{&;dUdGtWAUfM^a%x_Z6;5fB=V5gW!FI ztK(rvcO9MrW4ftuRU8C3I2k5&O~J}I2ykE$4C{`<6|oRt|3sMA1^LTkAwb#$7&*}L zmc>ATwDB-?K;>UfU2T1PXNC>cJG>jhzIg277z^*ay!vB`D zFcJdn9tDs5KiLbyAi&O%@Xr5`H9s5z>=*%0{a0D@!XUu*Ves02k~udN0&E)&5B|H% zIiV0>>ri;}Uu4Vf8&NC*HF*=5`S literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/DEN.webp b/public/images/fide-fed-webp/img/DEN.webp new file mode 100644 index 0000000000000000000000000000000000000000..9e780b090db25f78a8f0e465bae519bf69e767eb GIT binary patch literal 152 zcmV;J0B8SFNk&GH00012MM6+kP&iD30000lg}@j9M?fS1;ecj{5&oa>gBxnvHiG)? z<K!0Hr|-7)6rR3KbYY!qb3*H#p#q1ia^T z`=KKGueNO)Mp~UR`3RZQnaU)a{B?y!g#cAfu{9Y2tsWv&IbU*0Y<@8hs#lcE6}A88 GiU0u2gh6Nk literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/DJI.webp b/public/images/fide-fed-webp/img/DJI.webp new file mode 100644 index 0000000000000000000000000000000000000000..46180f8cc20285386b755a450def64c4d11fac91 GIT binary patch literal 1128 zcmV-u1eg0#Nk&Fs1ONb6MM6+kP&iCf1ONapg}@jP{|6zGB*j+s%wsn2{HuGP8MYpY zfE7uytf~$I5P*Lb$l-s7x1Q-PhymEPZ2*$ltL+K>|B@awNdgMmwvo(Y4}Wai9f;GZ zZQF)f-IFsAzX*W>1-jvZnzZ0-LMcKKCX_&PP6ACim~ph{CD4qcKod$40v&kMqy=Y9 zT5%O<%R`_*6Uv0rq$W){m~s%P2!Wb3p%h`tK@kE?C`FiYRD>x9O$rof!(E^`CxHSr zX+jB9geFZWO$t;67O`jy2p|X`Al&PE?JfF&0XmB~1QxM~MdSM$8Wpq9(5R>}!wMC5 zLsKIQ!QE8IqBeeiSfOTyV3KWTSfS=LH2)hJ*64DU(}|xm{6zslK>^|FyG{6h?|r#u04XSdSpZT{Lr?%xLsGDCH|KPL+otPF zF237Nh0hn&zI)H_;Kbk89nt>@ zIQ8xu2`g8+|AhoDIQfZ` z^pXY$zW$j6z`>U^fbTUU34r}CXn-eWTgUnJeb1E@_U5_PXmoHE59JX0AMrY<&8Gh?$r!Tmk zeJ>q{v=RAVqve8tJ0HjfC=mM}5)^}wZl~YN26oBK|H3kj14P~RP&Po$sDFr&*G1r< zGr?M_q7$V5Lna8_VaIk2SJh3tKO`2Z&M41qTGmaNl?k&oGe;^ZPRGUDw5=N(6E;g$ zG^r_b7EwY+dv23ZT$3o-0c4BJi3I7iWSi!7Qp7r8as0~hBa{-M?ilZFQp#-Oh~GP; zvlXE8QkJ1k?D4n%^;U1J7t2ay=dR0GlG^ee=gkD@wu0rUq59*E+tg?1zI>ZhwbEdM zkqOXaCCgS54JWdEHDKtuiV4tYk~gc*&}%izS+K^FeOP^l-fLOfA~l)fvrTHTlUW}&GSo$K=?zfH!&}_O7tIw&wft9GQ@ENQ~{R9ozzyxSMlhvt* zS_9WJ0b0yrrRu8opp8s`ma|#4I;lB$6BD4-99HnZ)f}>!3D9~jtN9;l4Bf&6XfuzM u{WsNz`7#08&S#bX!7zL)6QJD!R{Ss3Mg%Yc+An1F`vr~+U;=how2g#vlMOKd literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/DMA.webp b/public/images/fide-fed-webp/img/DMA.webp new file mode 100644 index 0000000000000000000000000000000000000000..236123cc3de119917f66692fa9961bad444299e4 GIT binary patch literal 1738 zcmV;*1~vIoNk&G(1^@t8MM6+kP&iDs1^@sr$G{i>8p_)KDUK>`!ji6J6dR49a1F3@KQ8ODM=oHv5}v11U6nbz?*H(NBBQb(Nj7b(uWj45 zZQHh<^=Dq&wr$%s)_t~ZQ?j*fh9qTsjN+Kd$cXsE#jKoJ+DqHEZQHhOduHFKFQ87} zNB7@>+enI(9OLpf%nMc_7S*kn(BVHB+I_o;QLuC#Bh4rNx6yug`KlqR|NGD19sKyM z*XFkaLf7okRra_Mq^wf1$4;dmomq8#?e=$1+kaNU=BMvH*S#1#{T3#KajdvKcFW5% z$A7j$%-%1(eGh#rVW?ACqjylJm5BO>%a43(ftGrnsJf0@2t$TBS?C%vv=Bb8e%LUm zEOjYnEpcR8<_Kqy>Fs_vX{C)zVhyr1jUk7=>*kX6RHeawhn_ovEHAzVk|ySgtx6#( z+n{l(6XPoDbfzsajMph@5;{*IHA!!KVZ0VLOGHfNyE@7uQRYaVi>+({QkJ+=mCYEB zk>YG;YADaui7(3TUI^dS9wTD8Ew}}gmsgj#QlwXYk)=b%@zWwprxPhJczN{DdujsS z0{ABVjn3&#*f3n4A=v>6WfR^YzIjOT#^n_n#;s2J3-J9B#xac`r-l=xR81&1qIBM_ z%?f*x6Cuq?978Qn)Az6KSduJbu#FG)diSWkZZ;g{_SIC-)^EM@0gTQs!8uk zO4gDUj(o2G#!ugSQX#2nI%JZufOqVtw(X>&m!<_{Uj*V_`cL0+UwjbF`Z@RN@$BYU z4`b4dUbq-Q4W%0u9zw`8cQPf?U7-EFgo9 z&&nEo+85`{HJ}_ff~as55g)RsD&3{w4&5DqeA@ri%PK7kl!7y9kDx+XrI?7-C3`fM zB%k+FNvH=M|b{V9& z8s|zWWm(k35KIuN1<|{w1?i9okUq&CjN{BJJhFmAG$X1<@u><`ZU>1xf%GF}k1ff% zq7lpe?F=tABl>!`5v9fKK=zo}9})hCaB}CE+Pr^KhGJh;+vxei(1>zZ6uB-kipBn+ zW29LmS6yGrIRCP(DB31vDCAfxD#g)Zn9|&P7l6#J$Ncl}s_Sdth~$a?Z6dk--BU(9 z#D=W%#g|S=HRNb53L)NtEf6)Jbn~vc)#t}UJKjD00+j7PtIYV6X{iZ#gZ2kqx4FTB zP^wtLY3;WldSvax{P?u}XB8^GRNNlR$QRgD`pOWD$}%(z(|`Bo-6oW?%R+9xaPJFP zYp~X@%5<(JP4J3bh98GxcS>KTpa(|Y9)f3PiKufrTI;^vhIjj5rD&@ z$VVY!ysT>#;+xBPh2tXQ<c|#`iIMrqjl7+EN)m>Zp|;T^6RsOP1(8a*@M@U z-`z^?+DL3_?J_&8^OB&{9H*q~Y@dwg5IJ^z0gNNxS}cTf>P=(|N($SJXs#dW@ayB$ zFAq~!7v$88j8vsq(+WHC>P;PKaiII1f;q2#7_a_EmT}ggozp)kw{Ku>?*LohfNfjp zgZs$?B=POtMAW`-ghTk~SZ*2S)&J(z4-;*Ue+TtgM9VtOpY#f*{DMiZ)HP^DWw8)f zHi27@g}OezOiAa~5^jAQ?0yAVrrdr7nEj)28%Vr=l+yK&l14u-Y4lf;M1& literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/DOM.webp b/public/images/fide-fed-webp/img/DOM.webp new file mode 100644 index 0000000000000000000000000000000000000000..d0bffb749befbeef22fdf21bb49e48057129611a GIT binary patch literal 1264 zcmVwr$(C zZN|2(Yuk*u+bTQGPPHuu0Kh_$a<*;TsBF74-&SW;HY(e;{lB(t4%Xh4AW61qTkF}j zZQHi(A-u`hwr$(C&CknYsc9QY;?HJ?Y_*5vu6xbMZ6rm>GUl}K1qV_wbe>iF&I$ls zZ3TcqTIxzjOIbQo)DwPMs3-r^LRwm=$Nxh;=7*4)f|`Vuw$9oKq@|72?yA+%S-Xq0 zbk=ksyLJ-14Uv`Z^- z0lhy3EONK30r*UVsj=?E+QLn0Vo`kpr#y@cEEa^X{nSzQLfbIMM zcU1PGQA1LtU8vn!bQNwfRbX=(+{6T?vWLR z7zxDY8qfDMf)Q#6DUAt$m(3*mS3IMRUh}yBZQx}gWfA1&DMV#n%xJElai#w#Tb(Pi>UfQj5L@Rl|1 z3896;g&D|-v085D6r$>~mBWl*5Lc>iMDCb58n`SUf&7*M4kaW%#vGFgU z+{M(m_PyuFx3x0o@nwiKC;HWq;xBV9M_!lzK>L@;u^_|M@T0A9;qI z7mc~lCJ?SRRIxIGSKVtJ{l-UpH z136FHNXLi%IoZn-S53n`vkxPNUJ#ji1d&`pGXwyb(9&4D)?xOp#)x8A#sE+OKn38? zG!JxM64UgFXZ;1^|B;Qfb=wfv#|Xv%fRa_)5a^7lq2Wfzbt+pgiLpT(t*c4?smc1& a$TozZ>o*5+jiJb<1>ujxZ~ysrO%DKCXK*+G literal 0 HcmV?d00001 diff --git a/public/images/fide-fed-webp/img/ECU.webp b/public/images/fide-fed-webp/img/ECU.webp new file mode 100644 index 0000000000000000000000000000000000000000..b727882b693504be7070adbc468211baea7b14c4 GIT binary patch literal 7118 zcmV;<8!_ZkNk&G-8vp=TMM6+kP&iDw8vp<=g}@j9B7D&PuXf|+du6s`h9z&9$t;T{ zGl|S>Cni~IW@ctvF)o^!Wm{knS-N6Ii_8$_#5}q8=qgFi{#ObtGkgnS)|@bDROVX< zGjqNfmGLiTW@d0bv%KCpW#+2P%&n~P2Fr8`r{e(tfMsd6Z98DSvAnvwyE}B(b>Hjm z?li8YiGVF7f`ou5Z5QecR3uKNQ_}A47LWq9ZO7c`{{G=VlR=CkMm06UDz<&PN!Pn& zHg?LSwr$(Cy|!&D>DPY=eGpQ6>!8B(s1bSd zGjwSb!n*#9DW>G|giq3<5VJQy8MPA<5)yu)P9YO)gv`M@p$m*qQzC-`SafJ8qbdFu zlzR&j`1&`i;k1=eW9p#_x}#gGBt|Ng@%#73E2Bw^Lc-S-gMH#hEDv0MdW1jIN1f z9%jwNHI`5+gEznVH~*mkj*Fl1=4k#!V)kAfqtBv>h}S*iH&5-WV4auyZ}1_ovyf4@ zh-v#KAA+pY7qxRh5QLM0X0h&JoPoAgR1)yIm{Z^U=2N3An#xbw`wzxkx=MNYNe}pU zpDC7f@?(!tv|bILwuX$ku}kP!PiOTRsb)vWNI=NA#buQ7P6S2$(*3?MS)#;xr;sYcU|uwsR2ldW$_UtxC@1#OBl$vDXMr%+$L)lx75GCtoqWFV8Y-fF1;A2;++k*x}|4?9C zVUwy~SCoHGRQuA@^sm2IKXee&1}}mTHiaMv4-f>wqyS|RI`6)Ag-U$xp-=`7X9}Oj zN{*wR$T?QeA$L~#S6^&Xn*7CL=%gyJF|!&`^=VY&D6Dia*eDUKt8lX;2phdPX_2w) zpdgl>^$0>ADY7rCp39mQmBd^)4}>>JjPH>LOO)-o)uVVlTbdQX*s7exU~^HM9U*s zR$wV(c@rCb*jQ-zl+b02AH+b)ZSX{{JSq9%>fe`5c)tD4aIPiaVfJ3MfKj>oBbA{xNC?5_;5b>QiwT_8=qBy1e-HV$+%awLcGJdTwR zI7g@#44lzPJN(_-9q!$M{*wmJ88E`nk;OQ9klW~E%>omdbUs7>do=t3)#pvu16d~5 zeM1%qSt9MN@cAmeOvF6qZt=aY<{2ljMdYku^}J!cWUhoRn${v?#`io3(`Qj93o9rO zS2Kc@@Y>viPl