valtech-components 4.0.611 → 4.0.612

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,69 @@
1
+ import { canPlayCard, cleanupDestroyed, playCardFromHand as playChristianityCardFromHand, } from './christianity-rules';
2
+ export function resolveBotPlays(game, log, nameResolver = c => c.name, cardById = id => ({
3
+ id,
4
+ name: id,
5
+ type: 'character',
6
+ cost: 0,
7
+ life: 0,
8
+ attack: 0,
9
+ })) {
10
+ const hand = [...(game.players.P2.hand ?? [])];
11
+ const offeringId = hand.find(cardId => {
12
+ const card = cardById(cardId);
13
+ return card.type === 'offering' && canPlayCard(game, 'P2', card);
14
+ });
15
+ if (offeringId) {
16
+ const card = cardById(offeringId);
17
+ const result = playChristianityCardFromHand(game, 'P2', card, {
18
+ displayName: nameResolver(card),
19
+ });
20
+ if (result.played) {
21
+ Object.assign(game, result.game);
22
+ log.push(...result.log);
23
+ }
24
+ }
25
+ const playableCharacters = [...(game.players.P2.hand ?? [])]
26
+ .map(cardId => cardById(cardId))
27
+ .filter(card => card.type === 'character' && canPlayCard(game, 'P2', card))
28
+ .sort((l, r) => (r.attack ?? 0) - (l.attack ?? 0) || (r.life ?? 0) - (l.life ?? 0));
29
+ const character = playableCharacters[0];
30
+ if (character) {
31
+ const result = playChristianityCardFromHand(game, 'P2', character, {
32
+ displayName: nameResolver(character),
33
+ });
34
+ if (result.played) {
35
+ Object.assign(game, result.game);
36
+ log.push(...result.log);
37
+ }
38
+ }
39
+ }
40
+ export function resolveBotAttack(game, log, impacts, messages) {
41
+ const bot = game.players.P2;
42
+ const player = game.players.P1;
43
+ const attacker = bot.battleZone
44
+ .filter(card => card.canAttack && card.attack > 0)
45
+ .sort((l, r) => (l.slot ?? 0) - (r.slot ?? 0))[0];
46
+ if (!attacker) {
47
+ log.push(messages.botNoAttackers);
48
+ return;
49
+ }
50
+ const target = player.battleZone
51
+ .filter(card => card.currentHp > 0)
52
+ .sort((l, r) => l.currentHp - r.currentHp || (l.slot ?? 0) - (r.slot ?? 0))[0];
53
+ if (target) {
54
+ impacts.push({ text: `-${attacker.attack}`, tone: 'damage', seat: 'P1', target: 'battle' });
55
+ impacts.push({ text: `-${target.attack}`, tone: 'damage', seat: 'P2', target: 'battle' });
56
+ target.currentHp -= attacker.attack;
57
+ attacker.currentHp -= target.attack;
58
+ attacker.canAttack = false;
59
+ log.push(`${attacker.name} ${messages.combatsAgainst} ${target.name}.`);
60
+ cleanupDestroyed(player, game);
61
+ cleanupDestroyed(bot, game);
62
+ return;
63
+ }
64
+ impacts.push({ text: `-${attacker.attack}`, tone: 'damage', seat: 'P1', target: 'leader' });
65
+ player.leaderHp = Math.max(0, player.leaderHp - attacker.attack);
66
+ attacker.canAttack = false;
67
+ log.push(`${attacker.name} ${messages.attacksYourLeader}`);
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9jaHJpc3RpYW5pdHktYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGdCQUFnQixJQUFJLDRCQUE0QixHQUNqRCxNQUFNLHNCQUFzQixDQUFDO0FBZ0I5QixNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUEyQixFQUMzQixHQUFhLEVBQ2IsZUFBNkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUN4RSxXQUF1RCxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsRUFBRTtJQUNGLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLENBQUM7SUFDUCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0NBQ1YsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDcEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFH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QUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUYsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgQ2hyaXN0aWFuaXR5R2FtZVN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBjYW5QbGF5Q2FyZCxcbiAgY2xlYW51cERlc3Ryb3llZCxcbiAgcGxheUNhcmRGcm9tSGFuZCBhcyBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kLFxufSBmcm9tICcuL2NocmlzdGlhbml0eS1ydWxlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hyaXN0aWFuaXR5Qm90TWVzc2FnZXMge1xuICBib3ROb0F0dGFja2Vyczogc3RyaW5nO1xuICBjb21iYXRzQWdhaW5zdDogc3RyaW5nO1xuICBhdHRhY2tzWW91ckxlYWRlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENocmlzdGlhbml0eUltcGFjdEV2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICB0b25lOiAnZGFtYWdlJyB8ICdoZWFsJyB8ICdyZXNvdXJjZSc7XG4gIHNlYXQ6ICdQMScgfCAnUDInO1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2JhdHRsZScgfCAnb2ZmZXJpbmdzJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCb3RQbGF5cyhcbiAgZ2FtZTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlLFxuICBsb2c6IHN0cmluZ1tdLFxuICBuYW1lUmVzb2x2ZXI6IChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbikgPT4gc3RyaW5nID0gYyA9PiBjLm5hbWUsXG4gIGNhcmRCeUlkOiAoaWQ6IHN0cmluZykgPT4gQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gPSBpZCA9PiAoe1xuICAgIGlkLFxuICAgIG5hbWU6IGlkLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDAsXG4gICAgbGlmZTogMCxcbiAgICBhdHRhY2s6IDAsXG4gIH0pXG4pOiB2b2lkIHtcbiAgY29uc3QgaGFuZCA9IFsuLi4oZ2FtZS5wbGF5ZXJzLlAyLmhhbmQgPz8gW10pXTtcblxuICBjb25zdCBvZmZlcmluZ0lkID0gaGFuZC5maW5kKGNhcmRJZCA9PiB7XG4gICAgY29uc3QgY2FyZCA9IGNhcmRCeUlkKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCBjYXJkKTtcbiAgfSk7XG4gIGlmIChvZmZlcmluZ0lkKSB7XG4gICAgY29uc3QgY2FyZCA9IGNhcmRCeUlkKG9mZmVyaW5nSWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AyJywgY2FyZCwge1xuICAgICAgZGlzcGxheU5hbWU6IG5hbWVSZXNvbHZlcihjYXJkKSxcbiAgICB9KTtcbiAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihnYW1lLCByZXN1bHQuZ2FtZSk7XG4gICAgICBsb2cucHVzaCguLi5yZXN1bHQubG9nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBwbGF5YWJsZUNoYXJhY3RlcnMgPSBbLi4uKGdhbWUucGxheWVycy5QMi5oYW5kID8/IFtdKV1cbiAgICAubWFwKGNhcmRJZCA9PiBjYXJkQnlJZChjYXJkSWQpKVxuICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIGNhblBsYXlDYXJkKGdhbWUsICdQMicsIGNhcmQpKVxuICAgIC5zb3J0KChsLCByKSA9PiAoci5hdHRhY2sgPz8gMCkgLSAobC5hdHRhY2sgPz8gMCkgfHwgKHIubGlmZSA/PyAwKSAtIChsLmxpZmUgPz8gMCkpO1xuXG4gIGNvbnN0IGNoYXJhY3RlciA9IHBsYXlhYmxlQ2hhcmFjdGVyc1swXTtcbiAgaWYgKGNoYXJhY3Rlcikge1xuICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AyJywgY2hhcmFjdGVyLCB7XG4gICAgICBkaXNwbGF5TmFtZTogbmFtZVJlc29sdmVyKGNoYXJhY3RlciksXG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5wbGF5ZWQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZ2FtZSwgcmVzdWx0LmdhbWUpO1xuICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQm90QXR0YWNrKFxuICBnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gIGxvZzogc3RyaW5nW10sXG4gIGltcGFjdHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+PixcbiAgbWVzc2FnZXM6IENocmlzdGlhbml0eUJvdE1lc3NhZ2VzXG4pOiB2b2lkIHtcbiAgY29uc3QgYm90ID0gZ2FtZS5wbGF5ZXJzLlAyO1xuICBjb25zdCBwbGF5ZXIgPSBnYW1lLnBsYXllcnMuUDE7XG5cbiAgY29uc3QgYXR0YWNrZXIgPSBib3QuYmF0dGxlWm9uZVxuICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLmNhbkF0dGFjayAmJiBjYXJkLmF0dGFjayA+IDApXG4gICAgLnNvcnQoKGwsIHIpID0+IChsLnNsb3QgPz8gMCkgLSAoci5zbG90ID8/IDApKVswXTtcblxuICBpZiAoIWF0dGFja2VyKSB7XG4gICAgbG9nLnB1c2gobWVzc2FnZXMuYm90Tm9BdHRhY2tlcnMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHRhcmdldCA9IHBsYXllci5iYXR0bGVab25lXG4gICAgLmZpbHRlcihjYXJkID0+IGNhcmQuY3VycmVudEhwID4gMClcbiAgICAuc29ydCgobCwgcikgPT4gbC5jdXJyZW50SHAgLSByLmN1cnJlbnRIcCB8fCAobC5zbG90ID8/IDApIC0gKHIuc2xvdCA/PyAwKSlbMF07XG5cbiAgaWYgKHRhcmdldCkge1xuICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke3RhcmdldC5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMicsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgdGFyZ2V0LmN1cnJlbnRIcCAtPSBhdHRhY2tlci5hdHRhY2s7XG4gICAgYXR0YWNrZXIuY3VycmVudEhwIC09IHRhcmdldC5hdHRhY2s7XG4gICAgYXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHttZXNzYWdlcy5jb21iYXRzQWdhaW5zdH0gJHt0YXJnZXQubmFtZX0uYCk7XG4gICAgY2xlYW51cERlc3Ryb3llZChwbGF5ZXIsIGdhbWUpO1xuICAgIGNsZWFudXBEZXN0cm95ZWQoYm90LCBnYW1lKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7YXR0YWNrZXIuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICBwbGF5ZXIubGVhZGVySHAgPSBNYXRoLm1heCgwLCBwbGF5ZXIubGVhZGVySHAgLSBhdHRhY2tlci5hdHRhY2spO1xuICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHttZXNzYWdlcy5hdHRhY2tzWW91ckxlYWRlcn1gKTtcbn1cbiJdfQ==
@@ -0,0 +1,247 @@
1
+ export const GENESIS_CATALOG_URL = 'assets/games/christianity/data/01-genesis.cards.json';
2
+ export const GENESIS_ICON_URL = 'assets/games/christianity/icons/1-icon.png';
3
+ export const SPLASH_MIN_DURATION_MS = 720;
4
+ export const STARTER_CARDS = {
5
+ o_simple: {
6
+ id: 'o_simple',
7
+ name: 'Ofrenda simple',
8
+ type: 'offering',
9
+ cost: 0,
10
+ attack: 0,
11
+ life: 1,
12
+ verseText: 'Una ofrenda sencilla queda lista para sostener tus siguientes jugadas.',
13
+ scripture: 'Genesis 4:4',
14
+ edition: 'GEN',
15
+ collectorNumber: '001/020',
16
+ year: '2026',
17
+ author: 'MVP',
18
+ rarity: 'normal',
19
+ },
20
+ o_forbidden: {
21
+ id: 'o_forbidden',
22
+ name: 'El fruto prohibido',
23
+ type: 'offering',
24
+ cost: 0,
25
+ attack: 0,
26
+ life: 2,
27
+ abilityName: 'Conocimiento del bien y del mal',
28
+ abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al líder.',
29
+ abilityCost: 0,
30
+ verseText: 'Dios el Señor puso al hombre en el jardín de Edén para que lo labrara y lo cuidara.',
31
+ scripture: 'Genesis 2:17 NBV',
32
+ edition: 'GEN',
33
+ collectorNumber: '012/180',
34
+ year: '2026',
35
+ author: 'MVP',
36
+ rarity: 'uncommon',
37
+ },
38
+ p_scout: {
39
+ id: 'p_scout',
40
+ name: 'Scout',
41
+ type: 'character',
42
+ cost: 1,
43
+ attack: 1,
44
+ life: 1,
45
+ verseText: 'Un explorador humilde abre camino antes de que llegue la batalla.',
46
+ scripture: 'Genesis 13:17',
47
+ edition: 'GEN',
48
+ collectorNumber: '002/020',
49
+ year: '2026',
50
+ author: 'MVP',
51
+ rarity: 'normal',
52
+ },
53
+ p_guard: {
54
+ id: 'p_guard',
55
+ name: 'Guard',
56
+ type: 'character',
57
+ cost: 2,
58
+ attack: 1,
59
+ life: 3,
60
+ edition: 'GEN',
61
+ collectorNumber: '003/020',
62
+ year: '2026',
63
+ author: 'MVP',
64
+ rarity: 'normal',
65
+ },
66
+ p_warrior: {
67
+ id: 'p_warrior',
68
+ name: 'Warrior',
69
+ type: 'character',
70
+ cost: 2,
71
+ attack: 2,
72
+ life: 2,
73
+ edition: 'GEN',
74
+ collectorNumber: '004/020',
75
+ year: '2026',
76
+ author: 'MVP',
77
+ rarity: 'normal',
78
+ },
79
+ p_elder: {
80
+ id: 'p_elder',
81
+ name: 'Elder',
82
+ type: 'character',
83
+ cost: 3,
84
+ attack: 2,
85
+ life: 4,
86
+ edition: 'GEN',
87
+ collectorNumber: '005/020',
88
+ year: '2026',
89
+ author: 'MVP',
90
+ rarity: 'uncommon',
91
+ },
92
+ p_champion: {
93
+ id: 'p_champion',
94
+ name: 'Champion',
95
+ type: 'character',
96
+ cost: 4,
97
+ attack: 4,
98
+ life: 4,
99
+ edition: 'GEN',
100
+ collectorNumber: '006/020',
101
+ year: '2026',
102
+ author: 'MVP',
103
+ rarity: 'rare',
104
+ },
105
+ };
106
+ const STARTING_SHARED_DECK = [
107
+ 'o_simple',
108
+ 'p_scout',
109
+ 'o_forbidden',
110
+ 'o_simple',
111
+ 'p_guard',
112
+ 'p_warrior',
113
+ 'o_simple',
114
+ 'p_elder',
115
+ 'p_scout',
116
+ 'o_simple',
117
+ 'p_champion',
118
+ 'p_guard',
119
+ 'o_simple',
120
+ 'p_warrior',
121
+ 'p_scout',
122
+ 'o_simple',
123
+ 'p_elder',
124
+ 'p_guard',
125
+ 'o_simple',
126
+ ];
127
+ export const STARTING_GAME = {
128
+ gameId: 'mock-christianity',
129
+ status: 'in_progress',
130
+ mode: 'local_pass',
131
+ turnOwner: 'P1',
132
+ revision: 0,
133
+ turnCount: 1,
134
+ matchScore: { P1: 0, P2: 0 },
135
+ sharedDeck: STARTING_SHARED_DECK,
136
+ placeZone: [],
137
+ historyZone: [],
138
+ players: {
139
+ P1: {
140
+ seat: 'P1',
141
+ displayName: 'Jugador',
142
+ avatar: 'J',
143
+ avatarColor: '#2563eb',
144
+ leaderName: 'Adam',
145
+ leaderHp: 15,
146
+ leaderMaxHp: 15,
147
+ offerings: [
148
+ {
149
+ instanceId: 'p1_offering_001',
150
+ cardId: 'o_simple',
151
+ name: 'Ofrenda simple',
152
+ owner: 'P1',
153
+ ready: true,
154
+ value: 1,
155
+ },
156
+ {
157
+ instanceId: 'p1_offering_002',
158
+ cardId: 'o_forbidden',
159
+ name: 'El fruto prohibido',
160
+ owner: 'P1',
161
+ ready: true,
162
+ value: 2,
163
+ abilityName: 'Conocimiento del bien y del mal',
164
+ abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al lider.',
165
+ abilityCost: 0,
166
+ },
167
+ ],
168
+ offeringPlayedThisTurn: false,
169
+ hand: ['o_simple', 'p_scout', 'p_warrior', 'p_guard'],
170
+ battleZone: [],
171
+ },
172
+ P2: {
173
+ seat: 'P2',
174
+ displayName: 'Rival',
175
+ avatar: 'R',
176
+ avatarColor: '#b45309',
177
+ leaderName: 'Noah',
178
+ leaderHp: 15,
179
+ leaderMaxHp: 15,
180
+ offerings: [
181
+ {
182
+ instanceId: 'p2_offering_001',
183
+ cardId: 'o_simple',
184
+ name: 'Ofrenda simple',
185
+ owner: 'P2',
186
+ ready: true,
187
+ value: 1,
188
+ },
189
+ ],
190
+ offeringPlayedThisTurn: false,
191
+ handCount: 4,
192
+ battleZone: [
193
+ {
194
+ instanceId: 'opp_001',
195
+ cardId: 'p_scout',
196
+ name: 'Scout',
197
+ owner: 'P2',
198
+ controller: 'P2',
199
+ slot: 0,
200
+ attack: 1,
201
+ currentHp: 1,
202
+ maxHp: 1,
203
+ canAttack: false,
204
+ },
205
+ ],
206
+ },
207
+ },
208
+ log: ['Partida iniciada.'],
209
+ };
210
+ export function formatScripture(bible) {
211
+ if (!bible?.book || !bible.reference)
212
+ return undefined;
213
+ return `${bible.book} ${bible.reference}${bible.version ? ` ${bible.version}` : ''}`;
214
+ }
215
+ export function normalizeCatalogCard(card, catalog) {
216
+ const editionIcon = card.editionIcon ?? catalog.edition?.icon ?? GENESIS_ICON_URL;
217
+ const verseText = card.verseText ?? card.bible?.text;
218
+ const scripture = card.scripture ?? formatScripture(card.bible);
219
+ const offeringValue = card.type === 'offering'
220
+ ? (card.offeringValue ?? card.life ?? card.cost ?? 1)
221
+ : card.offeringValue;
222
+ const life = card.type === 'leader'
223
+ ? (card.leaderLife ?? card.life ?? 10)
224
+ : card.type === 'offering'
225
+ ? offeringValue
226
+ : (card.life ?? 0);
227
+ return {
228
+ ...card,
229
+ cost: card.type === 'offering' ? 0 : (card.cost ?? 0),
230
+ offeringValue,
231
+ life,
232
+ leaderLife: card.type === 'leader' ? (card.leaderLife ?? life) : card.leaderLife,
233
+ attack: card.type === 'character' ? (card.attack ?? 0) : card.attack,
234
+ abilityName: card.abilityName ?? card.abilities?.[0]?.name,
235
+ abilityText: card.abilityText ?? card.abilities?.[0]?.text,
236
+ verseText,
237
+ scripture,
238
+ edition: card.edition ?? catalog.edition?.id ?? 'GEN',
239
+ editionNumber: card.editionNumber ?? catalog.edition?.number,
240
+ editionIcon,
241
+ imageUrl: card.imageUrl ?? card.art?.imageUrl,
242
+ author: card.author ?? card.art?.artistCredit,
243
+ year: card.year ?? '2026',
244
+ frontTemplate: card.frontTemplate ?? 'genesis-classic',
245
+ };
246
+ }
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvY2hyaXN0aWFuaXR5LWNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNEQUFzRCxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLDRDQUE0QyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStDO0lBQ3ZFLFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxVQUFVO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxTQUFTLEVBQUUsd0VBQXdFO1FBQ25GLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsS0FBSztRQUNiLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsV0FBVyxFQUFFLENBQUM7UUFDZCxTQUFTLEVBQ1AscUZBQXFGO1FBQ3ZGLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsT0FB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ3BFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFNBQVM7UUFDVCxTQUFTO1FBQ1QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksS0FBSztRQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDNUQsV0FBVztRQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUTtRQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVk7UUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTTtRQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQkFBaUI7S0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEdFTkVTSVNfQ0FUQUxPR19VUkwgPSAnYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9kYXRhLzAxLWdlbmVzaXMuY2FyZHMuanNvbic7XG5leHBvcnQgY29uc3QgR0VORVNJU19JQ09OX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLzEtaWNvbi5wbmcnO1xuZXhwb3J0IGNvbnN0IFNQTEFTSF9NSU5fRFVSQVRJT05fTVMgPSA3MjA7XG5cbmV4cG9ydCBjb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7XG4gICAgaWQ6ICdvX3NpbXBsZScsXG4gICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW5hIG9mcmVuZGEgc2VuY2lsbGEgcXVlZGEgbGlzdGEgcGFyYSBzb3N0ZW5lciB0dXMgc2lndWllbnRlcyBqdWdhZGFzLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyA0OjQnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMS8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIG9fZm9yYmlkZGVuOiB7XG4gICAgaWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICBjb3N0OiAwLFxuICAgIGF0dGFjazogMCxcbiAgICBsaWZlOiAyLFxuICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgYWJpbGl0eVRleHQ6ICdHZW5lcmEgZWwgdmFsb3IgZGUgMiBvZnJlbmRhcy4gQWwgdXNhcmxhLCBpbmZsaWdlIDEgcHVudG8gZGUgZGHDsW8gYWwgbMOtZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgdmVyc2VUZXh0OlxuICAgICAgJ0Rpb3MgZWwgU2XDsW9yIHB1c28gYWwgaG9tYnJlIGVuIGVsIGphcmTDrW4gZGUgRWTDqW4gcGFyYSBxdWUgbG8gbGFicmFyYSB5IGxvIGN1aWRhcmEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDI6MTcgTkJWJyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMTIvMTgwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICd1bmNvbW1vbicsXG4gIH0sXG4gIHBfc2NvdXQ6IHtcbiAgICBpZDogJ3Bfc2NvdXQnLFxuICAgIG5hbWU6ICdTY291dCcsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMSxcbiAgICBhdHRhY2s6IDEsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbiBleHBsb3JhZG9yIGh1bWlsZGUgYWJyZSBjYW1pbm8gYW50ZXMgZGUgcXVlIGxsZWd1ZSBsYSBiYXRhbGxhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAxMzoxNycsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAyLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgcF9ndWFyZDoge1xuICAgIGlkOiAncF9ndWFyZCcsXG4gICAgbmFtZTogJ0d1YXJkJyxcbiAgICB0eXBlOiAnY2hhcmFjdGVyJyxcbiAgICBjb3N0OiAyLFxuICAgIGF0dGFjazogMSxcbiAgICBsaWZlOiAzLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMy8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIHBfd2Fycmlvcjoge1xuICAgIGlkOiAncF93YXJyaW9yJyxcbiAgICBuYW1lOiAnV2FycmlvcicsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMixcbiAgICBhdHRhY2s6IDIsXG4gICAgbGlmZTogMixcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMDQvMDIwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICdub3JtYWwnLFxuICB9LFxuICBwX2VsZGVyOiB7XG4gICAgaWQ6ICdwX2VsZGVyJyxcbiAgICBuYW1lOiAnRWxkZXInLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDMsXG4gICAgYXR0YWNrOiAyLFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA1LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAndW5jb21tb24nLFxuICB9LFxuICBwX2NoYW1waW9uOiB7XG4gICAgaWQ6ICdwX2NoYW1waW9uJyxcbiAgICBuYW1lOiAnQ2hhbXBpb24nLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDQsXG4gICAgYXR0YWNrOiA0LFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA2LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAncmFyZScsXG4gIH0sXG59O1xuXG5jb25zdCBTVEFSVElOR19TSEFSRURfREVDSyA9IFtcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19mb3JiaWRkZW4nLFxuICAnb19zaW1wbGUnLFxuICAncF9ndWFyZCcsXG4gICdwX3dhcnJpb3InLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfY2hhbXBpb24nLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG4gICdwX3dhcnJpb3InLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuXTtcblxuZXhwb3J0IGNvbnN0IFNUQVJUSU5HX0dBTUU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSA9IHtcbiAgZ2FtZUlkOiAnbW9jay1jaHJpc3RpYW5pdHknLFxuICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gIG1vZGU6ICdsb2NhbF9wYXNzJyxcbiAgdHVybk93bmVyOiAnUDEnLFxuICByZXZpc2lvbjogMCxcbiAgdHVybkNvdW50OiAxLFxuICBtYXRjaFNjb3JlOiB7IFAxOiAwLCBQMjogMCB9LFxuICBzaGFyZWREZWNrOiBTVEFSVElOR19TSEFSRURfREVDSyxcbiAgcGxhY2Vab25lOiBbXSxcbiAgaGlzdG9yeVpvbmU6IFtdLFxuICBwbGF5ZXJzOiB7XG4gICAgUDE6IHtcbiAgICAgIHNlYXQ6ICdQMScsXG4gICAgICBkaXNwbGF5TmFtZTogJ0p1Z2Fkb3InLFxuICAgICAgYXZhdGFyOiAnSicsXG4gICAgICBhdmF0YXJDb2xvcjogJyMyNTYzZWInLFxuICAgICAgbGVhZGVyTmFtZTogJ0FkYW0nLFxuICAgICAgbGVhZGVySHA6IDE1LFxuICAgICAgbGVhZGVyTWF4SHA6IDE1LFxuICAgICAgb2ZmZXJpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdvX3NpbXBsZScsXG4gICAgICAgICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OlxuICAgICAgICAgICAgJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ29fc2ltcGxlJyxcbiAgICAgICAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIHJlYWR5OiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZENvdW50OiA0LFxuICAgICAgYmF0dGxlWm9uZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ29wcF8wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ3Bfc2NvdXQnLFxuICAgICAgICAgIG5hbWU6ICdTY291dCcsXG4gICAgICAgICAgb3duZXI6ICdQMicsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AyJyxcbiAgICAgICAgICBzbG90OiAwLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFiaWJsZT8uYm9vayB8fCAhYmlibGUucmVmZXJlbmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gYCR7YmlibGUuYm9va30gJHtiaWJsZS5yZWZlcmVuY2V9JHtiaWJsZS52ZXJzaW9uID8gYCAke2JpYmxlLnZlcnNpb259YCA6ICcnfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVDYXRhbG9nQ2FyZChcbiAgY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIGNhdGFsb2c6IENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nXG4pOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gIGNvbnN0IGVkaXRpb25JY29uID0gY2FyZC5lZGl0aW9uSWNvbiA/PyBjYXRhbG9nLmVkaXRpb24/Lmljb24gPz8gR0VORVNJU19JQ09OX1VSTDtcbiAgY29uc3QgdmVyc2VUZXh0ID0gY2FyZC52ZXJzZVRleHQgPz8gY2FyZC5iaWJsZT8udGV4dDtcbiAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gZm9ybWF0U2NyaXB0dXJlKGNhcmQuYmlibGUpO1xuICBjb25zdCBvZmZlcmluZ1ZhbHVlID1cbiAgICBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgID8gKGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEpXG4gICAgICA6IGNhcmQub2ZmZXJpbmdWYWx1ZTtcbiAgY29uc3QgbGlmZSA9XG4gICAgY2FyZC50eXBlID09PSAnbGVhZGVyJ1xuICAgICAgPyAoY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMClcbiAgICAgIDogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnXG4gICAgICAgID8gb2ZmZXJpbmdWYWx1ZVxuICAgICAgICA6IChjYXJkLmxpZmUgPz8gMCk7XG4gIHJldHVybiB7XG4gICAgLi4uY2FyZCxcbiAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogKGNhcmQuY29zdCA/PyAwKSxcbiAgICBvZmZlcmluZ1ZhbHVlLFxuICAgIGxpZmUsXG4gICAgbGVhZGVyTGlmZTogY2FyZC50eXBlID09PSAnbGVhZGVyJyA/IChjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSkgOiBjYXJkLmxlYWRlckxpZmUsXG4gICAgYXR0YWNrOiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInID8gKGNhcmQuYXR0YWNrID8/IDApIDogY2FyZC5hdHRhY2ssXG4gICAgYWJpbGl0eU5hbWU6IGNhcmQuYWJpbGl0eU5hbWUgPz8gY2FyZC5hYmlsaXRpZXM/LlswXT8ubmFtZSxcbiAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgIHZlcnNlVGV4dCxcbiAgICBzY3JpcHR1cmUsXG4gICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgZWRpdGlvbk51bWJlcjogY2FyZC5lZGl0aW9uTnVtYmVyID8/IGNhdGFsb2cuZWRpdGlvbj8ubnVtYmVyLFxuICAgIGVkaXRpb25JY29uLFxuICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICBhdXRob3I6IGNhcmQuYXV0aG9yID8/IGNhcmQuYXJ0Py5hcnRpc3RDcmVkaXQsXG4gICAgeWVhcjogY2FyZC55ZWFyID8/ICcyMDI2JyxcbiAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gIH07XG59XG4iXX0=