/** ************************************************************************************************
*   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.                             *
*   SPDX-License-Identifier: Apache-2.0                                                            *
 ************************************************************************************************ */

!(function (e, n) { if (typeof exports === 'object' && typeof module === 'object')module.exports = n(); else if (typeof define === 'function' && define.amd)define(n); else { const t = n(); for (const a in t)(typeof exports === 'object' ? exports : e)[a] = t[a]; } }(this, () => (function (e) { function n(a) { if (t[a]) return t[a].exports; const r = t[a] = { exports: {}, id: a, loaded: !1 }; return e[a].call(r.exports, r, r.exports, n), r.loaded = !0, r.exports; } var t = {}; return n.m = e, n.c = t, n.p = 'http://localhost:8080/', n(0); }([function (e, n, t) { e.exports = t(6); }, function (e, n, t) {
    let a; a = function (e) {
        function n(e, n) { for (const t in n)!(function (t) { e[t] = function (a) { return arguments.length ? (n[t] = a, e) : n[t]; }; }(t)); } return n;
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; !(function () {
        function r(e, n) { if (e || (e = {}), !n) return e; for (const t in n) typeof e[t] === 'undefined' && (e[t] = n[t]); return e; } function i(e, n) { if (e) throw new RangeError(n); } const o = 9007199254740992; const s = -o; const l = '0123456789'; const u = 'abcdefghijklmnopqrstuvwxyz'; const c = u.toUpperCase(); const m = `${l}abcdef`; const h = function (e) { void 0 !== e && (typeof e === 'function' ? this.random = e : this.seed = e), typeof this.random === 'undefined' && (this.mt = this.mersenne_twister(e), this.random = function () { return this.mt.random(this.seed); }); }; h.prototype.bool = function (e) { return e = r(e, { likelihood: 50 }), i(e.likelihood < 0 || e.likelihood > 100, 'Chance: Likelihood accepts values from 0 to 100.'), 100 * this.random() < e.likelihood; }, h.prototype.character = function (e) { e = r(e); let n; let t; const a = '!@#$%^&*()[]'; return i(e.alpha && e.symbols, 'Chance: Cannot specify both alpha and symbols.'), n = e.casing === 'lower' ? u : e.casing === 'upper' ? c : u + c, t = e.pool ? e.pool : e.alpha ? n : e.symbols ? a : n + l + a, t.charAt(this.natural({ max: t.length - 1 })); }, h.prototype.floating = function (e) { let n; e = r(e, { fixed: 4 }); const t = 10 ** e.fixed; i(e.fixed && e.precision, 'Chance: Cannot specify both fixed and precision.'); const a = o / t; const s = -a; i(e.min && e.fixed && e.min < s, `Chance: Min specified is out of range with fixed. Min should be, at least, ${s}`), i(e.max && e.fixed && e.max > a, `Chance: Max specified is out of range with fixed. Max should be, at most, ${a}`), e = r(e, { min: s, max: a }), n = this.integer({ min: e.min * t, max: e.max * t }); const l = (n / t).toFixed(e.fixed); return parseFloat(l); }, h.prototype.integer = function (e) { let n; let t; e = r(e, { min: s, max: o }), t = Math.max(Math.abs(e.min), Math.abs(e.max)); do n = this.natural({ max: t }), n = this.bool() ? n : -1 * n; while (n < e.min || n > e.max); return n; }, h.prototype.natural = function (e) { return e = r(e, { min: 0, max: o }), i(e.min > e.max, 'Chance: Min cannot be greater than Max.'), Math.floor(this.random() * (e.max - e.min + 1) + e.min); }, h.prototype.normal = function (e) { e = r(e, { mean: 0, dev: 1 }); let n; let t; let a; let i; const o = e.mean; const s = e.dev; do t = 2 * this.random() - 1, a = 2 * this.random() - 1, n = t * t + a * a; while (n >= 1); return i = t * Math.sqrt(-2 * Math.log(n) / n), s * i + o; }, h.prototype.string = function (e) { e = r(e); for (var n = e.length || this.natural({ min: 5, max: 20 }), t = '', a = e.pool, i = 0; n > i; i++)t += this.character({ pool: a }); return t; }, h.prototype.capitalize = function (e) { return e.charAt(0).toUpperCase() + e.substr(1); }, h.prototype.mixin = function (e) { for (const n in e)h.prototype[n] = e[n]; return this; }, h.prototype.pick = function (e, n) { return n && n !== 1 ? this.shuffle(e).slice(0, n) : e[this.natural({ max: e.length - 1 })]; }, h.prototype.shuffle = function (e) { for (var n = e.slice(0), t = [], a = 0, r = Number(n.length), i = 0; r > i; i++)a = this.natural({ max: n.length - 1 }), t[i] = n[a], n.splice(a, 1); return t; }, h.prototype.paragraph = function (e) { e = r(e); for (var n = e.sentences || this.natural({ min: 3, max: 7 }), t = [], a = 0; n > a; a++)t.push(this.sentence()); return t.join(' '); }, h.prototype.sentence = function (e) { e = r(e); for (var n, t = e.words || this.natural({ min: 12, max: 18 }), a = [], i = 0; t > i; i++)a.push(this.word()); return n = a.join(' '), n = `${this.capitalize(n)}.`; }, h.prototype.syllable = function (e) { e = r(e); for (var n, t = e.length || this.natural({ min: 2, max: 3 }), a = 'bcdfghjklmnprstvwz', i = 'aeiou', o = a + i, s = '', l = 0; t > l; l++)n = this.character(l === 0 ? { pool: o } : a.indexOf(n) === -1 ? { pool: a } : { pool: i }), s += n; return s; }, h.prototype.word = function (e) { e = r(e), i(e.syllables && e.length, 'Chance: Cannot specify both syllables AND length.'); const n = e.syllables || this.natural({ min: 1, max: 3 }); let t = ''; if (e.length) { do t += this.syllable(); while (t.length < e.length); t = t.substring(0, e.length); } else for (let a = 0; n > a; a++)t += this.syllable(); return t; }, h.prototype.age = function (e) { e = r(e); let n; switch (e.type) { case 'child': n = this.natural({ min: 1, max: 12 }); break; case 'teen': n = this.natural({ min: 13, max: 19 }); break; case 'adult': n = this.natural({ min: 18, max: 120 }); break; case 'senior': n = this.natural({ min: 65, max: 120 }); break; default: n = this.natural({ min: 1, max: 120 }); } return n; }, h.prototype.birthday = function (e) { return e = r(e, { year: (new Date()).getFullYear() - this.age(e) }), this.date(e); }; const d = ['Sophia', 'Emma', 'Isabella', 'Jacob', 'Mason', 'Ethan', 'Noah', 'Olivia', 'William', 'Liam', 'Jayden', 'Michael', 'Ava', 'Alexander', 'Aiden', 'Daniel', 'Matthew', 'Elijah', 'Emily', 'James', 'Anthony', 'Benjamin', 'Abigail', 'Joshua', 'Andrew', 'David', 'Joseph', 'Logan', 'Jackson', 'Mia', 'Christopher', 'Gabriel', 'Madison', 'Samuel', 'Ryan', 'Lucas', 'John', 'Nathan', 'Isaac', 'Dylan', 'Caleb', 'Elizabeth', 'Chloe', 'Christian', 'Landon', 'Jonathan', 'Carter', 'Ella', 'Luke', 'Owen', 'Brayden', 'Avery', 'Gavin', 'Wyatt', 'Addison', 'Isaiah', 'Aubrey', 'Henry', 'Eli', 'Hunter', 'Lily', 'Jack', 'Natalie', 'Evan', 'Sofia', 'Jordan', 'Nicholas', 'Tyler', 'Aaron', 'Charlotte', 'Zoey', 'Jeremiah', 'Julian', 'Cameron', 'Grace', 'Hannah', 'Amelia', 'Harper', 'Levi', 'Lillian', 'Brandon', 'Angel', 'Austin', 'Connor', 'Adrian', 'Robert', 'Samantha', 'Charles', 'Evelyn', 'Victoria', 'Thomas', 'Brooklyn', 'Sebastian', 'Zoe', 'Colton', 'Jaxon', 'Layla', 'Kevin', 'Zachary', 'Ayden', 'Dominic', 'Blake', 'Jose', 'Hailey', 'Oliver', 'Justin', 'Bentley', 'Leah', 'Jason', 'Chase', 'Ian', 'Kaylee', 'Anna', 'Aaliyah', 'Gabriella', 'Josiah', 'Allison', 'Parker', 'Xavier', 'Nevaeh', 'Alexis', 'Adam', 'Audrey', 'Cooper', 'Savannah', 'Sarah', 'Alyssa', 'Claire', 'Taylor', 'Riley', 'Camila', 'Nathaniel', 'Arianna', 'Ashley', 'Grayson', 'Jace', 'Brianna', 'Carson', 'Sophie', 'Peyton', 'Nolan', 'Tristan', 'Luis', 'Brody', 'Bella', 'Khloe', 'Genesis', 'Alexa', 'Juan', 'Hudson', 'Serenity', 'Kylie', 'Aubree', 'Scarlett', 'Bryson', 'Carlos', 'Stella', 'Maya', 'Easton', 'Katherine', 'Julia', 'Damian', 'Alex', 'Kayden', 'Ryder', 'Lucy', 'Madelyn', 'Jesus', 'Cole', 'Autumn', 'Makayla', 'Kayla', 'Mackenzie', 'Micah', 'Vincent', 'Max', 'Lauren', 'Jaxson', 'Gianna', 'Eric', 'Ariana', 'Asher', 'Hayden', 'Faith', 'Alexandra', 'Melanie', 'Sydney', 'Bailey', 'Caroline', 'Naomi', 'Morgan', 'Kennedy', 'Ellie', 'Jasmine', 'Eva', 'Skylar', 'Diego', 'Kimberly', 'Violet', 'Molly', 'Miles', 'Steven', 'Aria', 'Ivan', 'Jocelyn', 'Trinity', 'Elias', 'Aidan', 'Maxwell', 'London', 'Bryce', 'Lydia', 'Madeline', 'Antonio', 'Giovanni', 'Reagan', 'Timothy', 'Bryan', 'Piper', 'Andrea', 'Santiago', 'Annabelle', 'Maria', 'Colin', 'Richard', 'Braxton', 'Kaleb', 'Brooke', 'Kyle', 'Kaden', 'Preston', 'Payton', 'Miguel', 'Jonah', 'Paisley', 'Paige', 'Lincoln', 'Ruby', 'Nora', 'Riley', 'Mariah', 'Leo', 'Victor', 'Brady', 'Jeremy', 'Mateo', 'Brian', 'Jaden', 'Ashton', 'Patrick', 'Rylee', 'Declan', 'Lilly', 'Brielle', 'Sean', 'Joel', 'Gael', 'Sawyer', 'Alejandro', 'Jade', 'Marcus', 'Destiny', 'Leonardo', 'Jesse', 'Caden', 'Jake', 'Kaiden', 'Nicole', 'Mila', 'Wesley', 'Kendall', 'Liliana', 'Camden', 'Kaitlyn', 'Natalia', 'Sadie', 'Edward', 'Brantley', 'Jordyn', 'Roman', 'Vanessa', 'Mary', 'Mya', 'Penelope', 'Isabelle', 'Alice', 'Axel', 'Silas', 'Jude', 'Grant', 'Reese', 'Gabrielle', 'Hadley', 'Katelyn', 'Angelina', 'Rachel', 'Isabel', 'Eleanor', 'Cayden', 'Emmanuel', 'George', 'Clara', 'Brooklynn', 'Jessica', 'Maddox', 'Malachi', 'Bradley', 'Alan', 'Weston', 'Elena', 'Gage', 'Aliyah', 'Vivian', 'Laila', 'Sara', 'Amy', 'Devin', 'Eliana', 'Greyson', 'Lyla', 'Juliana', 'Kenneth', 'Mark', 'Oscar', 'Tanner', 'Rylan', 'Valeria', 'Adriana', 'Nicolas', 'Makenzie', 'Harrison', 'Elise', 'Mckenzie', 'Derek', 'Quinn', 'Delilah', 'Peyton', 'Ezra', 'Cora', 'Kylee', 'Tucker', 'Emmett', 'Avery', 'Cody', 'Rebecca', 'Gracie', 'Izabella', 'Calvin', 'Andres', 'Jorge', 'Abel', 'Paul', 'Abraham', 'Kai', 'Josephine', 'Alaina', 'Michelle', 'Jennifer', 'Collin', 'Theodore', 'Ezekiel', 'Eden', 'Omar', 'Jayce', 'Valentina', 'Conner', 'Bennett', 'Aurora', 'Catherine', 'Stephanie', 'Trevor', 'Valerie', 'Eduardo', 'Peter', 'Maximus', 'Jayla', 'Jaiden', 'Willow', 'Jameson', 'Seth', 'Daisy', 'Alana', 'Melody', 'Hazel', 'Kingston', 'Summer', 'Melissa', 'Javier', 'Margaret', 'Travis', 'Kinsley', 'Kinley', 'Garrett', 'Everett', 'Ariel', 'Lila', 'Graham', 'Giselle', 'Ryleigh', 'Xander', 'Haley', 'Julianna', 'Ivy', 'Alivia', 'Cristian', 'Brynn', 'Damien', 'Ryker', 'Griffin', 'Keira', 'Daniela', 'Aniyah', 'Angela', 'Kate', 'Londyn', 'Corbin', 'Myles', 'Hayden', 'Harmony', 'Adalyn', 'Luca', 'Zane', 'Francisco', 'Ricardo', 'Alexis', 'Stephen', 'Zayden', 'Megan', 'Allie', 'Gabriela', 'Iker', 'Drake', 'Alayna', 'Lukas', 'Presley', 'Charlie', 'Spencer', 'Zion', 'Erick', 'Jenna', 'Josue', 'Alexandria', 'Ashlyn', 'Adrianna', 'Jada', 'Jeffrey', 'Trenton', 'Fiona', 'Chance', 'Norah', 'Paxton', 'Elliot', 'Emery', 'Fernando', 'Maci', 'Miranda', 'Keegan', 'Landen', 'Ximena', 'Amaya', 'Manuel', 'Amir', 'Shane', 'Cecilia', 'Raymond', 'Andre', 'Ana', 'Shelby', 'Katie', 'Hope', 'Callie', 'Jordan', 'Luna', 'Leilani', 'Eliza', 'Mckenna', 'Angel', 'Genevieve', 'Makenna', 'Isla', 'Lola', 'Danielle', 'Chelsea', 'Leila', 'Tessa', 'Adelyn', 'Camille', 'Mikayla', 'Adeline', 'Adalynn', 'Sienna', 'Esther', 'Jacqueline', 'Emerson', 'Arabella', 'Maggie', 'Athena', 'Lucia', 'Lexi', 'Ayla']; h.prototype.first = function () { return this.pick(d); }, h.prototype.gender = function () { return this.pick(['Male', 'Female']); }; const p = ['Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor', 'Anderson', 'Thomas', 'Jackson', 'White', 'Harris', 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson', 'Clark', 'Rodriguez', 'Lewis', 'Lee', 'Walker', 'Hall', 'Allen', 'Young', 'Hernandez', 'King', 'Wright', 'Lopez', 'Hill', 'Scott', 'Green', 'Adams', 'Baker', 'Gonzalez', 'Nelson', 'Carter', 'Mitchell', 'Perez', 'Roberts', 'Turner', 'Phillips', 'Campbell', 'Parker', 'Evans', 'Edwards', 'Collins', 'Stewart', 'Sanchez', 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Murphy', 'Bailey', 'Rivera', 'Cooper', 'Richardson', 'Cox', 'Howard', 'Ward', 'Torres', 'Peterson', 'Gray', 'Ramirez', 'James', 'Watson', 'Brooks', 'Kelly', 'Sanders', 'Price', 'Bennett', 'Wood', 'Barnes', 'Ross', 'Henderson', 'Coleman', 'Jenkins', 'Perry', 'Powell', 'Long', 'Patterson', 'Hughes', 'Flores', 'Washington', 'Butler', 'Simmons', 'Foster', 'Gonzales', 'Bryant', 'Alexander', 'Russell', 'Griffin', 'Diaz', 'Hayes', 'Myers', 'Ford', 'Hamilton', 'Graham', 'Sullivan', 'Wallace', 'Woods', 'Cole', 'West', 'Jordan', 'Owens', 'Reynolds', 'Fisher', 'Ellis', 'Harrison', 'Gibson', 'McDonald', 'Cruz', 'Marshall', 'Ortiz', 'Gomez', 'Murray', 'Freeman', 'Wells', 'Webb', 'Simpson', 'Stevens', 'Tucker', 'Porter', 'Hunter', 'Hicks', 'Crawford', 'Henry', 'Boyd', 'Mason', 'Morales', 'Kennedy', 'Warren', 'Dixon', 'Ramos', 'Reyes', 'Burns', 'Gordon', 'Shaw', 'Holmes', 'Rice', 'Robertson', 'Hunt', 'Black', 'Daniels', 'Palmer', 'Mills', 'Nichols', 'Grant', 'Knight', 'Ferguson', 'Rose', 'Stone', 'Hawkins', 'Dunn', 'Perkins', 'Hudson', 'Spencer', 'Gardner', 'Stephens', 'Payne', 'Pierce', 'Berry', 'Matthews', 'Arnold', 'Wagner', 'Willis', 'Ray', 'Watkins', 'Olson', 'Carroll', 'Duncan', 'Snyder', 'Hart', 'Cunningham', 'Bradley', 'Lane', 'Andrews', 'Ruiz', 'Harper', 'Fox', 'Riley', 'Armstrong', 'Carpenter', 'Weaver', 'Greene', 'Lawrence', 'Elliott', 'Chavez', 'Sims', 'Austin', 'Peters', 'Kelley', 'Franklin', 'Lawson', 'Fields', 'Gutierrez', 'Ryan', 'Schmidt', 'Carr', 'Vasquez', 'Castillo', 'Wheeler', 'Chapman', 'Oliver', 'Montgomery', 'Richards', 'Williamson', 'Johnston', 'Banks', 'Meyer', 'Bishop', 'McCoy', 'Howell', 'Alvarez', 'Morrison', 'Hansen', 'Fernandez', 'Garza', 'Harvey', 'Little', 'Burton', 'Stanley', 'Nguyen', 'George', 'Jacobs', 'Reid', 'Kim', 'Fuller', 'Lynch', 'Dean', 'Gilbert', 'Garrett', 'Romero', 'Welch', 'Larson', 'Frazier', 'Burke', 'Hanson', 'Day', 'Mendoza', 'Moreno', 'Bowman', 'Medina', 'Fowler', 'Brewer', 'Hoffman', 'Carlson', 'Silva', 'Pearson', 'Holland', 'Douglas', 'Fleming', 'Jensen', 'Vargas', 'Byrd', 'Davidson', 'Hopkins', 'May', 'Terry', 'Herrera', 'Wade', 'Soto', 'Walters', 'Curtis', 'Neal', 'Caldwell', 'Lowe', 'Jennings', 'Barnett', 'Graves', 'Jimenez', 'Horton', 'Shelton', 'Barrett', 'Obrien', 'Castro', 'Sutton', 'Gregory', 'McKinney', 'Lucas', 'Miles', 'Craig', 'Rodriquez', 'Chambers', 'Holt', 'Lambert', 'Fletcher', 'Watts', 'Bates', 'Hale', 'Rhodes', 'Pena', 'Beck', 'Newman', 'Haynes', 'McDaniel', 'Mendez', 'Bush', 'Vaughn', 'Parks', 'Dawson', 'Santiago', 'Norris', 'Hardy', 'Love', 'Steele', 'Curry', 'Powers', 'Schultz', 'Barker', 'Guzman', 'Page', 'Munoz', 'Ball', 'Keller', 'Chandler', 'Weber', 'Leonard', 'Walsh', 'Lyons', 'Ramsey', 'Wolfe', 'Schneider', 'Mullins', 'Benson', 'Sharp', 'Bowen', 'Daniel', 'Barber', 'Cummings', 'Hines', 'Baldwin', 'Griffith', 'Valdez', 'Hubbard', 'Salazar', 'Reeves', 'Warner', 'Stevenson', 'Burgess', 'Santos', 'Tate', 'Cross', 'Garner', 'Mann', 'Mack', 'Moss', 'Thornton', 'Dennis', 'McGee', 'Farmer', 'Delgado', 'Aguilar', 'Vega', 'Glover', 'Manning', 'Cohen', 'Harmon', 'Rodgers', 'Robbins', 'Newton', 'Todd', 'Blair', 'Higgins', 'Ingram', 'Reese', 'Cannon', 'Strickland', 'Townsend', 'Potter', 'Goodwin', 'Walton', 'Rowe', 'Hampton', 'Ortega', 'Patton', 'Swanson', 'Joseph', 'Francis', 'Goodman', 'Maldonado', 'Yates', 'Becker', 'Erickson', 'Hodges', 'Rios', 'Conner', 'Adkins', 'Webster', 'Norman', 'Malone', 'Hammond', 'Flowers', 'Cobb', 'Moody', 'Quinn', 'Blake', 'Maxwell', 'Pope', 'Floyd', 'Osborne', 'Paul', 'McCarthy', 'Guerrero', 'Lindsey', 'Estrada', 'Sandoval', 'Gibbs', 'Tyler', 'Gross', 'Fitzgerald', 'Stokes', 'Doyle', 'Sherman', 'Saunders', 'Wise', 'Colon', 'Gill', 'Alvarado', 'Greer', 'Padilla', 'Simon', 'Waters', 'Nunez', 'Ballard', 'Schwartz', 'McBride', 'Houston', 'Christensen', 'Klein', 'Pratt', 'Briggs', 'Parsons', 'McLaughlin', 'Zimmerman', 'French', 'Buchanan', 'Moran', 'Copeland', 'Roy', 'Pittman', 'Brady', 'McCormick', 'Holloway', 'Brock', 'Poole', 'Frank', 'Logan', 'Owen', 'Bass', 'Marsh', 'Drake', 'Wong', 'Jefferson', 'Park', 'Morton', 'Abbott', 'Sparks', 'Patrick', 'Norton', 'Huff', 'Clayton', 'Massey', 'Lloyd', 'Figueroa', 'Carson', 'Bowers', 'Roberson', 'Barton', 'Tran', 'Lamb', 'Harrington', 'Casey', 'Boone', 'Cortez', 'Clarke', 'Mathis', 'Singleton', 'Wilkins', 'Cain', 'Bryan', 'Underwood', 'Hogan', 'McKenzie', 'Collier', 'Luna', 'Phelps', 'McGuire', 'Allison', 'Bridges', 'Wilkerson', 'Nash', 'Summers', 'Atkins']; h.prototype.last = function () { return this.pick(p); }, h.prototype.name = function (e) { e = r(e); let n; const t = this.first(); const a = this.last(); return n = e.middle ? `${t} ${this.first()} ${a}` : e.middle_initial ? `${t} ${this.character({ alpha: !0, casing: 'upper' })}. ${a}` : `${t} ${a}`, e.prefix && (n = `${this.prefix()} ${n}`), n; }, h.prototype.name_prefixes = function () { return [{ name: 'Doctor', abbreviation: 'Dr.' }, { name: 'Miss', abbreviation: 'Miss' }, { name: 'Misses', abbreviation: 'Mrs.' }, { name: 'Mister', abbreviation: 'Mr.' }]; }, h.prototype.prefix = function (e) { return this.name_prefix(e); }, h.prototype.name_prefix = function (e) { return e = r(e), e.full ? this.pick(this.name_prefixes()).name : this.pick(this.name_prefixes()).abbreviation; }, h.prototype.color = function (e) { function n(e, n) { return [e, e, e].join(n || ''); }e = r(e, { format: this.pick(['hex', 'shorthex', 'rgb']), grayscale: !1 }); const t = e.grayscale; if (e.format === 'hex') return `#${t ? n(this.hash({ length: 2 })) : this.hash({ length: 6 })}`; if (e.format === 'shorthex') return `#${t ? n(this.hash({ length: 1 })) : this.hash({ length: 3 })}`; if (e.format === 'rgb') return t ? `rgb(${n(this.natural({ max: 255 }), ',')})` : `rgb(${this.natural({ max: 255 })},${this.natural({ max: 255 })},${this.natural({ max: 255 })})`; throw new Error('Invalid format provided. Please provide one of "hex", "shorthex", or "rgb"'); }, h.prototype.domain = function (e) { return e = r(e), `${this.word()}.${e.tld || this.tld()}`; }, h.prototype.email = function (e) { return e = r(e), `${this.word()}@${e.domain || this.domain()}`; }, h.prototype.fbid = function () { return parseInt(`10000${this.natural({ max: 1e11 })}`, 10); }, h.prototype.hashtag = function () { return `#${this.word()}`; }, h.prototype.ip = function () { return `${this.natural({ max: 255 })}.${this.natural({ max: 255 })}.${this.natural({ max: 255 })}.${this.natural({ max: 255 })}`; }, h.prototype.ipv6 = function () { for (var e = '', n = 0; n < 8; n++)e += `${this.hash({ length: 4 })}:`; return e.substr(0, e.length - 1); }, h.prototype.klout = function () { return this.natural({ min: 1, max: 99 }); }, h.prototype.tlds = function () { return ['com', 'org', 'edu', 'gov', 'co.uk', 'net', 'io']; }, h.prototype.tld = function () { return this.pick(this.tlds()); }, h.prototype.twitter = function () { return `@${this.word()}`; }, h.prototype.address = function (e) { return e = r(e), `${this.natural({ min: 5, max: 2e3 })} ${this.street(e)}`; }, h.prototype.areacode = function (e) { e = r(e, { parens: !0 }); const n = this.natural({ min: 2, max: 9 }).toString() + this.natural({ min: 0, max: 8 }).toString() + this.natural({ min: 0, max: 9 }).toString(); return e.parens ? `(${n})` : n; }, h.prototype.city = function () { return this.capitalize(this.word({ syllables: 3 })); }, h.prototype.coordinates = function (e) { return e = r(e), `${this.latitude(e)}, ${this.longitude(e)}`; }, h.prototype.latitude = function (e) { return e = r(e, { fixed: 5 }), this.floating({ min: -90, max: 90, fixed: e.fixed }); }, h.prototype.longitude = function (e) { return e = r(e, { fixed: 5 }), this.floating({ min: 0, max: 180, fixed: e.fixed }); }, h.prototype.phone = function (e) { e = r(e, { formatted: !0 }), e.formatted || (e.parens = !1); const n = this.areacode(e).toString(); const t = this.natural({ min: 2, max: 9 }).toString() + this.natural({ min: 0, max: 9 }).toString() + this.natural({ min: 0, max: 9 }).toString(); const a = this.natural({ min: 1e3, max: 9999 }).toString(); return e.formatted ? `${n} ${t}-${a}` : n + t + a; }, h.prototype.postal = function () { const e = this.character({ pool: 'XVTSRPNKLMHJGECBA' }); const n = e + this.natural({ max: 9 }) + this.character({ alpha: !0, casing: 'upper' }); const t = this.natural({ max: 9 }) + this.character({ alpha: !0, casing: 'upper' }) + this.natural({ max: 9 }); return `${n} ${t}`; }, h.prototype.provinces = function () { return [{ name: 'Alberta', abbreviation: 'AB' }, { name: 'British Columbia', abbreviation: 'BC' }, { name: 'Manitoba', abbreviation: 'MB' }, { name: 'New Brunswick', abbreviation: 'NB' }, { name: 'Newfoundland and Labrador', abbreviation: 'NL' }, { name: 'Nova Scotia', abbreviation: 'NS' }, { name: 'Ontario', abbreviation: 'ON' }, { name: 'Prince Edward Island', abbreviation: 'PE' }, { name: 'Quebec', abbreviation: 'QC' }, { name: 'Saskatchewan', abbreviation: 'SK' }, { name: 'Northwest Territories', abbreviation: 'NT' }, { name: 'Nunavut', abbreviation: 'NU' }, { name: 'Yukon', abbreviation: 'YT' }]; }, h.prototype.province = function (e) { return e && e.full ? this.pick(this.provinces()).name : this.pick(this.provinces()).abbreviation; }, h.prototype.radio = function (e) { e = r(e, { side: '?' }); let n = ''; switch (e.side.toLowerCase()) { case 'east': case 'e': n = 'W'; break; case 'west': case 'w': n = 'K'; break; default: n = this.character({ pool: 'KW' }); } return n + this.character({ alpha: !0, casing: 'upper' }) + this.character({ alpha: !0, casing: 'upper' }) + this.character({ alpha: !0, casing: 'upper' }); }, h.prototype.state = function (e) { return e && e.full ? this.pick(this.states()).name : this.pick(this.states()).abbreviation; }, h.prototype.states = function () { return [{ name: 'Alabama', abbreviation: 'AL' }, { name: 'Alaska', abbreviation: 'AK' }, { name: 'American Samoa', abbreviation: 'AS' }, { name: 'Arizona', abbreviation: 'AZ' }, { name: 'Arkansas', abbreviation: 'AR' }, { name: 'Armed Forces Europe', abbreviation: 'AE' }, { name: 'Armed Forces Pacific', abbreviation: 'AP' }, { name: 'Armed Forces the Americas', abbreviation: 'AA' }, { name: 'California', abbreviation: 'CA' }, { name: 'Colorado', abbreviation: 'CO' }, { name: 'Connecticut', abbreviation: 'CT' }, { name: 'Delaware', abbreviation: 'DE' }, { name: 'District of Columbia', abbreviation: 'DC' }, { name: 'Federated States of Micronesia', abbreviation: 'FM' }, { name: 'Florida', abbreviation: 'FL' }, { name: 'Georgia', abbreviation: 'GA' }, { name: 'Guam', abbreviation: 'GU' }, { name: 'Hawaii', abbreviation: 'HI' }, { name: 'Idaho', abbreviation: 'ID' }, { name: 'Illinois', abbreviation: 'IL' }, { name: 'Indiana', abbreviation: 'IN' }, { name: 'Iowa', abbreviation: 'IA' }, { name: 'Kansas', abbreviation: 'KS' }, { name: 'Kentucky', abbreviation: 'KY' }, { name: 'Louisiana', abbreviation: 'LA' }, { name: 'Maine', abbreviation: 'ME' }, { name: 'Marshall Islands', abbreviation: 'MH' }, { name: 'Maryland', abbreviation: 'MD' }, { name: 'Massachusetts', abbreviation: 'MA' }, { name: 'Michigan', abbreviation: 'MI' }, { name: 'Minnesota', abbreviation: 'MN' }, { name: 'Mississippi', abbreviation: 'MS' }, { name: 'Missouri', abbreviation: 'MO' }, { name: 'Montana', abbreviation: 'MT' }, { name: 'Nebraska', abbreviation: 'NE' }, { name: 'Nevada', abbreviation: 'NV' }, { name: 'New Hampshire', abbreviation: 'NH' }, { name: 'New Jersey', abbreviation: 'NJ' }, { name: 'New Mexico', abbreviation: 'NM' }, { name: 'New York', abbreviation: 'NY' }, { name: 'North Carolina', abbreviation: 'NC' }, { name: 'North Dakota', abbreviation: 'ND' }, { name: 'Northern Mariana Islands', abbreviation: 'MP' }, { name: 'Ohio', abbreviation: 'OH' }, { name: 'Oklahoma', abbreviation: 'OK' }, { name: 'Oregon', abbreviation: 'OR' }, { name: 'Pennsylvania', abbreviation: 'PA' }, { name: 'Puerto Rico', abbreviation: 'PR' }, { name: 'Rhode Island', abbreviation: 'RI' }, { name: 'South Carolina', abbreviation: 'SC' }, { name: 'South Dakota', abbreviation: 'SD' }, { name: 'Tennessee', abbreviation: 'TN' }, { name: 'Texas', abbreviation: 'TX' }, { name: 'Utah', abbreviation: 'UT' }, { name: 'Vermont', abbreviation: 'VT' }, { name: 'Virgin Islands, U.S.', abbreviation: 'VI' }, { name: 'Virginia', abbreviation: 'VA' }, { name: 'Washington', abbreviation: 'WA' }, { name: 'West Virginia', abbreviation: 'WV' }, { name: 'Wisconsin', abbreviation: 'WI' }, { name: 'Wyoming', abbreviation: 'WY' }]; }, h.prototype.street = function (e) { e = r(e); let n = this.word({ syllables: 2 }); return n = this.capitalize(n), n += ' ', n += e.short_suffix ? this.street_suffix().abbreviation : this.street_suffix().name; }, h.prototype.street_suffix = function () { return this.pick(this.street_suffixes()); }, h.prototype.street_suffixes = function () { return [{ name: 'Avenue', abbreviation: 'Ave' }, { name: 'Boulevard', abbreviation: 'Blvd' }, { name: 'Center', abbreviation: 'Ctr' }, { name: 'Circle', abbreviation: 'Cir' }, { name: 'Court', abbreviation: 'Ct' }, { name: 'Drive', abbreviation: 'Dr' }, { name: 'Extension', abbreviation: 'Ext' }, { name: 'Glen', abbreviation: 'Gln' }, { name: 'Grove', abbreviation: 'Grv' }, { name: 'Heights', abbreviation: 'Hts' }, { name: 'Highway', abbreviation: 'Hwy' }, { name: 'Junction', abbreviation: 'Jct' }, { name: 'Key', abbreviation: 'Key' }, { name: 'Lane', abbreviation: 'Ln' }, { name: 'Loop', abbreviation: 'Loop' }, { name: 'Manor', abbreviation: 'Mnr' }, { name: 'Mill', abbreviation: 'Mill' }, { name: 'Park', abbreviation: 'Park' }, { name: 'Parkway', abbreviation: 'Pkwy' }, { name: 'Pass', abbreviation: 'Pass' }, { name: 'Path', abbreviation: 'Path' }, { name: 'Pike', abbreviation: 'Pike' }, { name: 'Place', abbreviation: 'Pl' }, { name: 'Plaza', abbreviation: 'Plz' }, { name: 'Point', abbreviation: 'Pt' }, { name: 'Ridge', abbreviation: 'Rdg' }, { name: 'River', abbreviation: 'Riv' }, { name: 'Road', abbreviation: 'Rd' }, { name: 'Square', abbreviation: 'Sq' }, { name: 'Street', abbreviation: 'St' }, { name: 'Terrace', abbreviation: 'Ter' }, { name: 'Trail', abbreviation: 'Trl' }, { name: 'Turnpike', abbreviation: 'Tpke' }, { name: 'View', abbreviation: 'Vw' }, { name: 'Way', abbreviation: 'Way' }]; }, h.prototype.tv = function (e) { return this.radio(e); }, h.prototype.zip = function (e) { for (var n = '', t = 0; t < 5; t++)n += this.natural({ max: 9 }).toString(); if (e && e.plusfour === !0) for (n += '-', t = 0; t < 4; t++)n += this.natural({ max: 9 }).toString(); return n; }, h.prototype.ampm = function () { return this.bool() ? 'am' : 'pm'; }, h.prototype.date = function (e) {
            let n; const t = this.month({ raw: !0 }); e = r(e, {
                year: parseInt(this.year(), 10), month: t.numeric - 1, day: this.natural({ min: 1, max: t.days }), hour: this.hour(), minute: this.minute(), second: this.second(), millisecond: this.millisecond(), american: !0, string: !1,
            }); const a = new Date(e.year, e.month, e.day, e.hour, e.minute, e.second, e.millisecond); return n = e.american ? `${a.getMonth() + 1}/${a.getDate()}/${a.getFullYear()}` : `${a.getDate()}/${a.getMonth() + 1}/${a.getFullYear()}`, e.string ? n : a;
        }, h.prototype.hammertime = function (e) { return this.date(e).getTime(); }, h.prototype.hour = function (e) { e = r(e); const n = e.twentyfour ? 24 : 12; return this.natural({ min: 1, max: n }); }, h.prototype.millisecond = function () { return this.natural({ max: 999 }); }, h.prototype.minute = h.prototype.second = function () { return this.natural({ max: 59 }); }, h.prototype.month = function (e) { e = r(e); const n = this.pick(this.months()); return e.raw ? n : n.name; }, h.prototype.months = function () {
            return [{
                name: 'January', short_name: 'Jan', numeric: '01', days: 31,
            }, {
                name: 'February', short_name: 'Feb', numeric: '02', days: 28,
            }, {
                name: 'March', short_name: 'Mar', numeric: '03', days: 31,
            }, {
                name: 'April', short_name: 'Apr', numeric: '04', days: 30,
            }, {
                name: 'May', short_name: 'May', numeric: '05', days: 31,
            }, {
                name: 'June', short_name: 'Jun', numeric: '06', days: 30,
            }, {
                name: 'July', short_name: 'Jul', numeric: '07', days: 31,
            }, {
                name: 'August', short_name: 'Aug', numeric: '08', days: 31,
            }, {
                name: 'September', short_name: 'Sep', numeric: '09', days: 30,
            }, {
                name: 'October', short_name: 'Oct', numeric: '10', days: 31,
            }, {
                name: 'November', short_name: 'Nov', numeric: '11', days: 30,
            }, {
                name: 'December', short_name: 'Dec', numeric: '12', days: 31,
            }];
        }, h.prototype.second = function () { return this.natural({ max: 59 }); }, h.prototype.timestamp = function () { return this.natural({ min: 1, max: parseInt((new Date()).getTime() / 1e3, 10) }); }, h.prototype.year = function (e) { return e = r(e, { min: (new Date()).getFullYear() }), e.max = typeof e.max !== 'undefined' ? e.max : e.min + 100, this.natural(e).toString(); }, h.prototype.cc = function (e) { e = r(e); let n; let t; let a; n = this.cc_type(e.type ? { name: e.type, raw: !0 } : { raw: !0 }), t = n.prefix.split(''), a = n.length - n.prefix.length - 1; for (let i = 0; a > i; i++)t.push(this.integer({ min: 0, max: 9 })); return t.push(this.luhn_calculate(t.join(''))), t.join(''); }, h.prototype.cc_types = function () {
            return [{
                name: 'American Express', short_name: 'amex', prefix: '34', length: 15,
            }, {
                name: 'Bankcard', short_name: 'bankcard', prefix: '5610', length: 16,
            }, {
                name: 'China UnionPay', short_name: 'chinaunion', prefix: '62', length: 16,
            }, {
                name: 'Diners Club Carte Blanche', short_name: 'dccarte', prefix: '300', length: 14,
            }, {
                name: 'Diners Club enRoute', short_name: 'dcenroute', prefix: '2014', length: 15,
            }, {
                name: 'Diners Club International', short_name: 'dcintl', prefix: '36', length: 14,
            }, {
                name: 'Diners Club United States & Canada', short_name: 'dcusc', prefix: '54', length: 16,
            }, {
                name: 'Discover Card', short_name: 'discover', prefix: '6011', length: 16,
            }, {
                name: 'InstaPayment', short_name: 'instapay', prefix: '637', length: 16,
            }, {
                name: 'JCB', short_name: 'jcb', prefix: '3528', length: 16,
            }, {
                name: 'Laser', short_name: 'laser', prefix: '6304', length: 16,
            }, {
                name: 'Maestro', short_name: 'maestro', prefix: '5018', length: 16,
            }, {
                name: 'Mastercard', short_name: 'mc', prefix: '51', length: 16,
            }, {
                name: 'Solo', short_name: 'solo', prefix: '6334', length: 16,
            }, {
                name: 'Switch', short_name: 'switch', prefix: '4903', length: 16,
            }, {
                name: 'Visa', short_name: 'visa', prefix: '4', length: 16,
            }, {
                name: 'Visa Electron', short_name: 'electron', prefix: '4026', length: 16,
            }];
        }, h.prototype.cc_type = function (e) { e = r(e); const n = this.cc_types(); let t = null; if (e.name) { for (let a = 0; a < n.length; a++) if (n[a].name === e.name || n[a].short_name === e.name) { t = n[a]; break; } if (t === null) throw new Error(`Credit card type '${e.name}'' is not suppoted`); } else t = this.pick(n); return e.raw ? t : t.name; }, h.prototype.dollar = function (e) { e = r(e, { max: 1e4, min: 0 }); let n = this.floating({ min: e.min, max: e.max, fixed: 2 }).toString(); const t = n.split('.')[1]; return void 0 === t ? n += '.00' : t.length < 2 && (n += '0'), n < 0 ? `-$${n.replace('-', '')}` : `$${n}`; }, h.prototype.exp = function (e) { e = r(e); const n = {}; return n.year = this.exp_year(), n.year === (new Date()).getFullYear() ? n.month = this.exp_month({ future: !0 }) : n.month = this.exp_month(), e.raw ? n : `${n.month}/${n.year}`; }, h.prototype.exp_month = function (e) { e = r(e); let n; let t; if (e.future) { do n = this.month({ raw: !0 }).numeric, t = parseInt(n, 10); while (t < (new Date()).getMonth()); } else n = this.month({ raw: !0 }).numeric; return n; }, h.prototype.exp_year = function () { return this.year({ max: (new Date()).getFullYear() + 10 }); }, h.prototype.d4 = function () { return this.natural({ min: 1, max: 4 }); }, h.prototype.d6 = function () { return this.natural({ min: 1, max: 6 }); }, h.prototype.d8 = function () { return this.natural({ min: 1, max: 8 }); }, h.prototype.d10 = function () { return this.natural({ min: 1, max: 10 }); }, h.prototype.d12 = function () { return this.natural({ min: 1, max: 12 }); }, h.prototype.d20 = function () { return this.natural({ min: 1, max: 20 }); }, h.prototype.d30 = function () { return this.natural({ min: 1, max: 30 }); }, h.prototype.d100 = function () { return this.natural({ min: 1, max: 100 }); }, h.prototype.rpg = function (e, n) { if (n = r(n), e === null) throw new Error('A type of die roll must be included'); const t = e.toLowerCase().split('d'); const a = []; if (t.length !== 2 || !parseInt(t[0], 10) || !parseInt(t[1], 10)) throw new Error('Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die'); for (let i = t[0]; i > 0; i--)a[i - 1] = this.natural({ min: 1, max: t[1] }); return typeof n.sum !== 'undefined' && n.sum ? a.reduce((e, n) => e + n) : a; }, h.prototype.guid = function (e) { e = e || { version: 5 }; const n = 'ABCDEF1234567890'; const t = 'AB89'; const a = `${this.string({ pool: n, length: 8 })}-${this.string({ pool: n, length: 4 })}-${e.version}${this.string({ pool: n, length: 3 })}-${this.string({ pool: t, length: 1 })}${this.string({ pool: n, length: 3 })}-${this.string({ pool: n, length: 12 })}`; return a; }, h.prototype.hash = function (e) { e = r(e, { length: 40, casing: 'lower' }); const n = e.casing === 'upper' ? m.toUpperCase() : m; return this.string({ pool: n, length: e.length }); }, h.prototype.luhn_check = function (e) { const n = e.toString(); const t = +n.substring(n.length - 1); return t === this.luhn_calculate(+n.substring(0, n.length - 1)); }, h.prototype.luhn_calculate = function (e) { for (var n = e.toString().split('').reverse(), t = 0, a = 0, r = n.length; r > a; ++a) { let i = +n[a]; a % 2 === 0 && (i *= 2, i > 9 && (i -= 9)), t += i; } return 9 * t % 10; }, h.prototype.mersenne_twister = function (e) { return new f(e); }, h.prototype.VERSION = '0.5.4'; var f = function (e) { void 0 === e && (e = (new Date()).getTime()), this.N = 624, this.M = 397, this.MATRIX_A = 2567483615, this.UPPER_MASK = 2147483648, this.LOWER_MASK = 2147483647, this.mt = new Array(this.N), this.mti = this.N + 1, this.init_genrand(e); }; f.prototype.init_genrand = function (e) { for (this.mt[0] = e >>> 0, this.mti = 1; this.mti < this.N; this.mti++)e = this.mt[this.mti - 1] ^ this.mt[this.mti - 1] >>> 30, this.mt[this.mti] = (1812433253 * ((4294901760 & e) >>> 16) << 16) + 1812433253 * (65535 & e) + this.mti, this.mt[this.mti] >>>= 0; }, f.prototype.init_by_array = function (e, n) { let t; let a; let r = 1; let i = 0; for (this.init_genrand(19650218), t = this.N > n ? this.N : n; t; t--)a = this.mt[r - 1] ^ this.mt[r - 1] >>> 30, this.mt[r] = (this.mt[r] ^ (1664525 * ((4294901760 & a) >>> 16) << 16) + 1664525 * (65535 & a)) + e[i] + i, this.mt[r] >>>= 0, r++, i++, r >= this.N && (this.mt[0] = this.mt[this.N - 1], r = 1), i >= n && (i = 0); for (t = this.N - 1; t; t--)a = this.mt[r - 1] ^ this.mt[r - 1] >>> 30, this.mt[r] = (this.mt[r] ^ (1566083941 * ((4294901760 & a) >>> 16) << 16) + 1566083941 * (65535 & a)) - r, this.mt[r] >>>= 0, r++, r >= this.N && (this.mt[0] = this.mt[this.N - 1], r = 1); this.mt[0] = 2147483648; }, f.prototype.genrand_int32 = function () { let e; const n = new Array(0, this.MATRIX_A); if (this.mti >= this.N) { let t; for (this.mti === this.N + 1 && this.init_genrand(5489), t = 0; t < this.N - this.M; t++)e = this.mt[t] & this.UPPER_MASK | this.mt[t + 1] & this.LOWER_MASK, this.mt[t] = this.mt[t + this.M] ^ e >>> 1 ^ n[1 & e]; for (;t < this.N - 1; t++)e = this.mt[t] & this.UPPER_MASK | this.mt[t + 1] & this.LOWER_MASK, this.mt[t] = this.mt[t + (this.M - this.N)] ^ e >>> 1 ^ n[1 & e]; e = this.mt[this.N - 1] & this.UPPER_MASK | this.mt[0] & this.LOWER_MASK, this.mt[this.N - 1] = this.mt[this.M - 1] ^ e >>> 1 ^ n[1 & e], this.mti = 0; } return e = this.mt[this.mti++], e ^= e >>> 11, e ^= e << 7 & 2636928640, e ^= e << 15 & 4022730752, e ^= e >>> 18, e >>> 0; }, f.prototype.genrand_int31 = function () { return this.genrand_int32() >>> 1; }, f.prototype.genrand_real1 = function () { return this.genrand_int32() * (1 / 4294967295); }, f.prototype.random = function () { return this.genrand_int32() * (1 / 4294967296); }, f.prototype.genrand_real3 = function () { return (this.genrand_int32() + 0.5) * (1 / 4294967296); }, f.prototype.genrand_res53 = function () { const e = this.genrand_int32() >>> 5; const n = this.genrand_int32() >>> 6; return (67108864 * e + n) * (1 / 9007199254740992); }, typeof e !== 'undefined' && e.exports && (n = e.exports = h), n.Chance = h, a = function () { return h; }.call(n, t, n, e), !(void 0 !== a && (e.exports = a)), typeof window === 'object' && typeof window.document === 'object' && (window.Chance = h, window.chance = new h());
    }());
}, function (e, n, t) {
    let a; a = function (e) {
        function n() { this.message = 'This gremlin requires a randomizer to run. Please call randomizer(randomizerObject) before executing the gremlin', this.toString = function () { return this.message; }; } return n;
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        function n(e, n, t, a) { const r = n.length; e = e.slice(0); const i = function (e, n) { if (!e.length) return typeof a === 'function' ? a() : !0; const o = e.shift(); o.apply(t, n), o.length === r && i(e, n, a); }; n.push(() => { i(e, n, a); }), i(e, n, a); } return n;
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        function n() { this.message = 'This mogwai requires a logger to run. Please call logger(loggerObject) before executing the mogwai', this.toString = function () { return this.message; }; } return n;
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        function n(e, n) { for (let t = 0, a = n.length; a > t; t++) for (const r in e) typeof n[t][r] !== 'function' || n[t][r]() || n[t][r](e[r]); } const a = t(2); const r = {
            species: {
                clicker: t(10), toucher: t(13), formFiller: t(11), scroller: t(12), typer: t(14),
            },
            mogwais: { alert: t(7), fps: t(8), gizmo: t(9) },
            strategies: { allTogether: t(15), bySpecies: t(16), distribution: t(17) },
        }; const i = t(4); const o = function () {
            this._gremlins = [],
            this._mogwais = [], this._strategies = [], this._beforeCallbacks = [], this._afterCallbacks = [], this._logger = console, this._randomizer = new a();
        }; return o.prototype.gremlin = function (e) { return this._gremlins.push(e), this; }, o.prototype.allGremlins = function () { for (const e in r.species) this.gremlin(r.species[e]()); return this; }, o.prototype.mogwai = function (e) { return this._mogwais.push(e), this; }, o.prototype.allMogwais = function () { for (const e in r.mogwais) this.mogwai(r.mogwais[e]()); return this; }, o.prototype.strategy = function (e) { return this._strategies.push(e), this; }, o.prototype.before = function (e) { return this._beforeCallbacks.push(e), this; }, o.prototype.after = function (e) { return this._afterCallbacks.push(e), this; }, o.prototype.logger = function (e) { return arguments.length ? (this._logger = e, this) : this._logger; }, o.prototype.log = function (e) { this._logger.log(e); }, o.prototype.randomizer = function (e) { return arguments.length ? (this._randomizer = e, this) : this._randomizer; }, o.prototype.seed = function (e) { return this._randomizer = new a(e), this; }, o.prototype.unleash = function (e, t) { this._gremlins.length === 0 && this.allGremlins(), this._mogwais.length === 0 && this.allMogwais(), this._strategies.length === 0 && this.strategy(r.strategies.distribution()); const a = [].concat(this._gremlins, this._mogwais); const o = a.concat(this._strategies, this._beforeCallbacks, this._afterCallbacks); n({ logger: this._logger, randomizer: this._randomizer }, o); let s = this._beforeCallbacks; s = s.concat(this._mogwais); for (var l = this._afterCallbacks, u = 0, c = a.length; c > u; u++) typeof a[u].cleanUp === 'function' && l.push(a[u].cleanUp); const m = this; i(s, [], m, () => { i(m._strategies, [m._gremlins, e], m, () => { i(l, [], m, () => { typeof t === 'function' && t(); }); }); }); }, o.prototype.stop = function () { for (let e = this._strategies, n = 0, t = e.length; t > n; n++)e[n].stop(); }, r.createHorde = function () { return new o(); }, window && (window.gremlins = r), r;
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(5)); return function () {
            function e() { return o.randomizer.bool(); } function t() { return o.randomizer.sentence(); } function r() { if (!o.logger) throw new a(); o.watchEvents.indexOf('alert') !== -1 && (window.alert = function (e) { o.logger.warn('mogwai ', 'alert     ', e, 'alert'); }), o.watchEvents.indexOf('confirm') !== -1 && (window.confirm = function (e) { o.confirmResponse(), o.logger.warn('mogwai ', 'alert     ', e, 'confirm'); }), o.watchEvents.indexOf('prompt') !== -1 && (window.prompt = function (e) { o.promptResponse(), o.logger.warn('mogwai ', 'alert     ', e, 'prompt'); }); } const i = ['alert', 'confirm', 'prompt']; var o = {
                watchEvents: i, confirmResponse: e, promptResponse: t, logger: null, randomizer: null,
            }; const s = window.alert; const l = window.confirm; const u = window.prompt; return r.cleanUp = function () { return window.alert = s, window.confirm = l, window.prompt = u, r; }, n(r, o), r;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = t(5); return function () { function e(e) { return e < 10 ? 'error' : e < 20 ? 'warn' : 'log'; } function t(e) { e - l > s.delay && (r(e), l = e), o && window.requestAnimationFrame(t); } function r() { function e(e) { t = e, window.requestAnimationFrame(n); } function n(e) { const n = e - t < 16 ? 60 : 1e3 / (e - t); const a = s.levelSelector(n); s.logger[a]('mogwai ', 'fps       ', n); } let t; window.requestAnimationFrame(e); } function i() { if (!s.logger) throw new a(); o = !0, window.requestAnimationFrame(t); }window.requestAnimationFrame || (window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function (e) { window.setTimeout(e, 1e3 / 60); }); let o; var s = { delay: 500, levelSelector: e, logger: null }; var l = -(1 / 0); return i.cleanUp = function () { return o = !1, i; }, n(i, s), i; };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); return function () { function e() { function e() { if (n++, n == r.maxErrors) { if (i.stop(), !r.logger) return; window.setTimeout(() => { r.logger.warn('mogwai ', 'gizmo     ', 'stopped test execution after ', r.maxErrors, 'errors'); }, 4); } } var n = 0; var i = this; t = window.onerror, window.onerror = function (n, a, r) { return e(), t ? t(n, a, r) : !1; }, a = console.error, console.error = function () { e(), a.apply(console, arguments); }; } let t; let a; var r = { maxErrors: 10, logger: null }; return e.cleanUp = function () { return window.onerror = t, console.error = a.bind(console), e; }, n(e, r), e; };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(3)); return function () {
            function e() { return [u.randomizer.natural({ max: o.documentElement.clientWidth - 1 }), u.randomizer.natural({ max: o.documentElement.clientHeight - 1 })]; } function t(e, n) { const t = o.createElement('div'); t.style.zIndex = 2e3, t.style.border = '3px solid red', t.style['border-radius'] = '50%', t.style.borderRadius = '50%', t.style.width = '40px', t.style.height = '40px', t.style['box-sizing'] = 'border-box', t.style.position = 'absolute', t.style.webkitTransition = 'opacity 1s ease-out', t.style.mozTransition = 'opacity 1s ease-out', t.style.transition = 'opacity 1s ease-out', t.style.left = `${e - 20}px`, t.style.top = `${n - 20}px`; const a = s.appendChild(t); setTimeout(() => { s.removeChild(a); }, 1e3), setTimeout(() => { a.style.opacity = 0; }, 50); } function r() { return !0; } function i() { if (!u.randomizer) throw new a(); let e; let n; let t; let r; let i = 0; do if (e = u.positionSelector(), n = e[0], t = e[1], r = o.elementFromPoint(n, t), i++, i > u.maxNbTries) return !1; while (!r || !u.canClick(r)); const s = o.createEvent('MouseEvents'); const l = u.randomizer.pick(u.clickTypes); s.initMouseEvent(l, !0, !0, window, 0, 0, 0, n, t, !1, !1, !1, !1, 0, null), r.dispatchEvent(s), typeof u.showAction === 'function' && u.showAction(n, t, l), u.logger && typeof u.logger.log === 'function' && u.logger.log('gremlin', 'clicker   ', l, 'at', n, t); } var o = window.document; var s = o.body; const l = ['click', 'click', 'click', 'click', 'click', 'click', 'dblclick', 'dblclick', 'mousedown', 'mouseup', 'mouseover', 'mouseover', 'mouseover', 'mousemove', 'mouseout']; var u = {
                clickTypes: l, positionSelector: e, showAction: t, canClick: r, maxNbTries: 10, logger: null, randomizer: null,
            }; return n(i, u), i;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(3)); return function () {
            function e(e) { typeof e.attributes['data-old-border'] === 'undefined' && (e.attributes['data-old-border'] = e.style.border); const n = e.attributes['data-old-border']; e.style.border = '1px solid red', setTimeout(() => { e.style.border = n; }, 500); } function t() { return !0; } function r() { if (!p.randomizer) throw new a(); const e = []; for (const n in p.elementMapTypes)p.elementMapTypes.hasOwnProperty(n) && e.push(n); let t; let r = 0; do { const i = h.querySelectorAll(e.join(',')); if (i.length === 0) return !1; if (t = p.randomizer.pick(i), r++, r > p.maxNbTries) return !1; } while (!t || !p.canFillElement(t)); let o = null; for (const s in p.elementMapTypes) if (m(t, s)) { o = s; break; } const l = p.elementMapTypes[o](t); typeof p.showAction === 'function' && p.showAction(t), p.logger && typeof p.logger.log === 'function' && p.logger.log('gremlin', 'formFiller', 'input', l, 'in', t); } function i(e) { const n = p.randomizer.character(); return e.value += n, n; } function o(e) { const n = p.randomizer.character({ pool: '0123456789' }); return e.value += n, n; } function s(e) { const n = e.querySelectorAll('option'); if (n.length !== 0) { for (var t = p.randomizer.pick(n), a = 0, r = n.length; r > a; a++) { const i = n[a]; i.selected = i.value == t.value; } return t.value; } } function l(e) { const n = h.createEvent('MouseEvents'); return n.initMouseEvent('click', !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), e.dispatchEvent(n), e.value; } function u(e) { const n = h.createEvent('MouseEvents'); return n.initMouseEvent('click', !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), e.dispatchEvent(n), e.value; } function c(e) { const n = p.randomizer.email(); return e.value = n, n; } function m(e, n) { if (e.webkitMatchesSelector)m = function (e, n) { return e.webkitMatchesSelector(n); }; else if (e.mozMatchesSelector)m = function (e, n) { return e.mozMatchesSelector(n); }; else if (e.msMatchesSelector)m = function (e, n) { return e.msMatchesSelector(n); }; else { if (!e.oMatchesSelector) throw new Error('Unsupported browser'); m = function (e, n) { return e.oMatchesSelector(n); }; } return m(e, n); } var h = window.document; const d = {
                textarea: i, 'input[type="text"]': i, 'input[type="password"]': i, 'input[type="number"]': o, select: s, 'input[type="radio"]': l, 'input[type="checkbox"]': u, 'input[type="email"]': c, 'input:not([type])': i,
            }; var p = {
                elementMapTypes: d, showAction: e, canFillElement: t, maxNbTries: 10, logger: null, randomizer: null,
            }; return n(r, p), r;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(3)); return function () {
            function e() { const e = Math.max(s.scrollWidth, s.offsetWidth, o.scrollWidth, o.offsetWidth, o.clientWidth); const n = Math.max(s.scrollHeight, s.offsetHeight, o.scrollHeight, o.offsetHeight, o.clientHeight); return [l.randomizer.natural({ max: e - o.clientWidth }), l.randomizer.natural({ max: n - o.clientHeight })]; } function t(e, n) { const t = i.createElement('div'); t.style.zIndex = 2e3, t.style.border = '3px solid red', t.style.width = `${o.clientWidth - 25}px`, t.style.height = `${o.clientHeight - 25}px`, t.style.position = 'absolute', t.style.webkitTransition = 'opacity 1s ease-out', t.style.mozTransition = 'opacity 1s ease-out', t.style.transition = 'opacity 1s ease-out', t.style.left = `${e + 10}px`, t.style.top = `${n + 10}px`; const a = s.appendChild(t); setTimeout(() => { s.removeChild(a); }, 1e3), setTimeout(() => { a.style.opacity = 0; }, 50); } function r() { if (!l.randomizer) throw new a(); const e = l.positionSelector(); const n = e[0]; const t = e[1]; window.scrollTo(n, t), typeof l.showAction === 'function' && l.showAction(n, t), typeof l.logger.log === 'function' && l.logger.log('gremlin', 'scroller  ', 'scroll to', n, t); } var i = window.document; var o = i.documentElement; var s = i.body; var l = {
                positionSelector: e, showAction: t, logger: null, randomizer: null,
            }; return n(r, l), r;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(3)); return function () {
            function e() { return [h.randomizer.natural({ max: u.documentElement.clientWidth - 1 }), h.randomizer.natural({ max: u.documentElement.clientHeight - 1 })]; } function t(e) { const n = u.createDocumentFragment(); e.forEach((e) => { const t = u.createElement('div'); t.style.zIndex = 2e3, t.style.background = 'red', t.style['border-radius'] = '50%', t.style.borderRadius = '50%', t.style.width = '20px', t.style.height = '20px', t.style.position = 'absolute', t.style.webkitTransition = 'opacity .5s ease-out', t.style.mozTransition = 'opacity .5s ease-out', t.style.transition = 'opacity .5s ease-out', t.style.left = `${e.x - 10}px`, t.style.top = `${e.y - 10}px`; const a = n.appendChild(t); setTimeout(() => { c.removeChild(a); }, 500), setTimeout(() => { a.style.opacity = 0; }, 50); }), u.body.appendChild(n); } function r() { return !0; } function i(e, n, t, a) { let r; let i; let o; const s = e[0]; const l = e[1]; const u = []; if (n === 1) return [{ x: s, y: l }]; for (t = t || 100, a = a !== null ? a * Math.PI / 180 : 0, r = 2 * Math.PI / n, i = 0; n > i; i++)o = r * i + a, u.push({ x: s + t * Math.cos(o), y: l + t * Math.sin(o) }); return u; } function o(e, n, t) {
                const a = []; const r = u.createEvent('Event'); r.initEvent(`touch${t}`, !0, !0), a.identifiedTouch = a.item = function (e) { return this[e] || {}; }, e.forEach((e, t) => {
                    const r = Math.round(e.x); const i = Math.round(e.y); a.push({
                        pageX: r, pageY: i, clientX: r, clientY: i, screenX: r, screenY: i, target: n, identifier: t,
                    });
                }), r.touches = t == 'end' ? [] : a, r.targetTouches = t == 'end' ? [] : a, r.changedTouches = a, n.dispatchEvent(r), h.showAction(e);
            } function s(e, n, t, a, r) { function s() { let m = a.radius; a.scale !== 1 && (m = a.radius - a.radius * (1 - a.scale) * (1 / u) * c); const h = n[0] + a.distanceX / u * c; const d = n[1] + a.distanceY / u * c; const p = typeof a.rotation === 'number' ? a.rotation / u * c : null; const f = i([h, d], t.length, m, p); const y = c == 1; const b = c == u; if (y)o(f, e, 'start'); else { if (b) return o(f, e, 'end'), r(f); o(f, e, 'move'); }setTimeout(s, l), c++; } var l = 10; var u = Math.ceil(a.duration / l); var c = 1; s(); } function l(e) { function n(n, t) { typeof h.showAction === 'function' && h.showAction(n), h.logger && typeof h.logger.log === 'function' && h.logger.log('gremlin', 'toucher   ', l, 'at', r, i, t), e(); } if (!h.randomizer) throw new a(); let t; let r; let i; let o; let s = 0; do if (t = h.positionSelector(), r = t[0], i = t[1], o = u.elementFromPoint(r, i), s++, s > h.maxNbTries) return; while (!o || !h.canTouch(o)); var l = h.randomizer.pick(h.touchTypes); d[l](t, o, n); } var u = window.document; var c = u.body; const m = ['tap', 'tap', 'tap', 'doubletap', 'gesture', 'gesture', 'gesture', 'multitouch', 'multitouch']; var h = {
                touchTypes: m, positionSelector: e, showAction: t, canTouch: r, maxNbTries: 10, logger: null, randomizer: null, maxTouches: 2,
            }; var d = {
                tap(e, n, t) { const a = i(e, 1); const r = { duration: h.randomizer.integer({ min: 20, max: 700 }) }; o(a, n, 'start'), setTimeout(() => { o(a, n, 'end'), t(a, r); }, r.duration); },
                doubletap(e, n, t) { d.tap(e, n, () => { setTimeout(() => { d.tap(e, n, t); }, 30); }); },
                gesture: function p(e, n, t) { const p = { distanceX: h.randomizer.integer({ min: -100, max: 200 }), distanceY: h.randomizer.integer({ min: -100, max: 200 }), duration: h.randomizer.integer({ min: 20, max: 500 }) }; const a = i(e, 1, p.radius); s(n, e, a, p, (e) => { t(e, p); }); },
                multitouch(e, n, t) {
                    const a = h.randomizer.integer({ min: 2, max: h.maxTouches }); const r = {
                        scale: h.randomizer.floating({ min: 0, max: 2 }), rotation: h.randomizer.natural({ min: -100, max: 100 }), radius: h.randomizer.integer({ min: 50, max: 200 }), distanceX: h.randomizer.integer({ min: -20, max: 20 }), distanceY: h.randomizer.integer({ min: -20, max: 20 }), duration: h.randomizer.integer({ min: 100, max: 1500 }),
                    }; const o = i(e, a, r.radius); s(n, e, o, r, (e) => { t(e, r); });
                },
            }; return n(l, h), l;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(1); const a = (t(2), t(3)); return function () {
            function e() { return c.randomizer.natural({ min: 3, max: 254 }); } function t(e, n) { return o.elementFromPoint(e, n); } function r(e, n, t, a) { const r = o.createElement('div'); r.style.zIndex = 2e3, r.style.border = '3px solid orange', r.style['border-radius'] = '50%', r.style.borderRadius = '50%', r.style.width = '40px', r.style.height = '40px', r.style['box-sizing'] = 'border-box', r.style.position = 'absolute', r.style.webkitTransition = 'opacity 1s ease-out', r.style.mozTransition = 'opacity 1s ease-out', r.style.transition = 'opacity 1s ease-out', r.style.left = `${n}px`, r.style.top = `${t}px`, r.style.textAlign = 'center', r.style.paddingTop = '7px', r.innerHTML = String.fromCharCode(a); const i = l.appendChild(r); setTimeout(() => { l.removeChild(i); }, 1e3), setTimeout(() => { i.style.opacity = 0; }, 50); } function i() { if (!c.randomizer) throw new a(); const e = o.createEventObject ? o.createEventObject() : o.createEvent('Events'); const n = c.randomizer.pick(c.eventTypes); const t = c.keyGenerator(); const r = c.randomizer.natural({ max: s.clientWidth - 1 }); const i = c.randomizer.natural({ max: s.clientHeight - 1 }); const l = c.targetElement(r, i); e.initEvent && e.initEvent(n, !0, !0), e.keyCode = t, e.which = t, e.keyCodeVal = t, l.dispatchEvent ? l.dispatchEvent(e) : l.fireEvent(`on${n}`, e), typeof c.showAction === 'function' && c.showAction(l, r, i, t), c.logger && typeof c.logger.log === 'function' && c.logger.log('gremlin', 'typer       type', String.fromCharCode(t), 'at', r, i); } var o = window.document; var s = o.documentElement; var l = o.body; const u = ['keypress', 'keyup', 'keydown']; var c = {
                eventTypes: u, showAction: r, keyGenerator: e, targetElement: t, logger: null, randomizer: null,
            }; return n(i, c), i;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(4); const a = t(1); return function () { function e(e, a, s) { function l(t) { n(e, [], m, t); } function u(e) { return r ? void 0 : e >= c ? t() : void l(() => { setTimeout(() => { u(++e); }, o.delay); }); } var c = a && a.nb ? a.nb : o.nb; var m = this; r = !1, i = s, u(0); } function t() { typeof i === 'function' && i(), i = null; } let r; let i; var o = { delay: 10, nb: 100 }; return e.stop = function () { r = !0, setTimeout(t, 4); }, a(e, o), e; };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(4); const a = t(1); return function () { function e(e, a, s) { function l(e, t, a) { return r ? void 0 : t >= c ? a() : void n([e], [], m, () => { setTimeout(() => { l(e, ++t, a); }, o.delay); }); } function u() { return r ? void 0 : e.length === 0 ? t() : void l(e.shift(), 0, u); } var c = a && a.nb ? a.nb : o.nb; var e = e.slice(0); var m = this; r = !1, i = s, u(); } function t() { typeof i === 'function' && i(), i = null; } let r; let i; var o = { delay: 10, nb: 200 }; return e.stop = function () { r = !0, setTimeout(t, 4); }, a(e, o), e; };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}, function (e, n, t) {
    let a; a = function (e) {
        const n = t(4); const a = t(1); const r = t(2); return function () {
            function e(e, a, r) { function c(t, a, r) { return s ? void 0 : a >= m ? o() : void n([t], [], d, () => { setTimeout(() => { c(i(e, h), ++a, r); }, u.delay); }); } var m = a && a.nb ? a.nb : u.nb; var e = e.slice(0); var h = u.distribution.length === 0 ? t(e) : u.distribution; var d = this; return m === 0 ? r() : (s = !1, l = r, void c(i(e, h), 0, c)); } function t(e) { const n = e.length; if (n === 0) return []; for (var t = [], a = 1 / n, r = 0; n > r; r++)t.push(a); return t; } function i(e, n) { for (let t = 0, a = u.randomizer.floating({ min: 0, max: 1 }), r = 0, i = e.length; i > r; r++) if (t += n[r], t >= a) return e[r]; return function () {}; } function o() { typeof l === 'function' && l(), l = null; } let s; let l; var u = {
                distribution: [], delay: 10, nb: 1e3, randomizer: new r(),
            }; return e.stop = function () { s = !0, setTimeout(o, 4); }, a(e, u), e;
        };
    }.call(n, t, n, e), !(void 0 !== a && (e.exports = a));
}]))));
