discord.js/discord.reply-prefix.min.js

1 line
No EOL
202 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Discord=t():e.Discord=t()}(window,function(){return function(e){var t={};function s(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,s),n.l=!0,n.exports}return s.m=e,s.c=t,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)s.d(i,n,function(t){return e[t]}.bind(null,n));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s=80)}([function(e,t,s){(function(e){const i=t.Package=s(46),{Error:n,RangeError:r}=s(4),a=t.browser="undefined"!=typeof window;t.DefaultOptions={shardId:0,shardCount:0,internalSharding:!1,messageCacheMaxSize:200,messageCacheLifetime:0,messageSweepInterval:0,fetchAllMembers:!1,disableEveryone:!1,replyPrefixer:null,restWsBridgeTimeout:5e3,disabledEvents:[],retryLimit:1,restTimeOffset:500,restSweepInterval:60,presence:{},ws:{large_threshold:250,compress:!1,properties:{$os:a?"browser":e.platform,$browser:"discord.js",$device:"discord.js"},version:6},http:{version:7,api:"https://discordapp.com/api",cdn:"https://cdn.discordapp.com",invite:"https://discord.gg"}},t.UserAgent=a?null:`DiscordBot (${i.homepage.split("#")[0]}, ${i.version}) Node.js/${e.version}`,t.WSCodes={1000:"Connection gracefully closed",4004:"Tried to identify with an invalid token",4010:"Sharding data provided was invalid",4011:"Shard would be on too many guilds if connected"};const o=["webp","png","jpg","gif"],l=Array.from({length:8},(e,t)=>2**(t+4));function h(e,{format:t="webp",size:s}={}){if(t&&!o.includes(t))throw new n("IMAGE_FORMAT",t);if(s&&!l.includes(s))throw new r("IMAGE_SIZE",s);return`${e}.${t}${s?`?size=${s}`:""}`}t.Endpoints={CDN:e=>({Emoji:(t,s="png")=>`${e}/emojis/${t}.${s}`,Asset:t=>`${e}/assets/${t}`,DefaultAvatar:t=>`${e}/embed/avatars/${t}.png`,Avatar:(t,s,i="default",n)=>("default"===i&&(i=s.startsWith("a_")?"gif":"webp"),h(`${e}/avatars/${t}/${s}`,{format:i,size:n})),Icon:(t,s,i="webp",n)=>h(`${e}/icons/${t}/${s}`,{format:i,size:n}),AppIcon:(t,s,{format:i="webp",size:n}={})=>h(`${e}/app-icons/${t}/${s}`,{size:n,format:i}),AppAsset:(t,s,{format:i="webp",size:n}={})=>h(`${e}/app-assets/${t}/${s}`,{size:n,format:i}),GDMIcon:(t,s,i="webp",n)=>h(`${e}/channel-icons/${t}/${s}`,{size:n,format:i}),Splash:(t,s,i="webp",n)=>h(`${e}/splashes/${t}/${s}`,{size:n,format:i})}),invite:(e,t)=>`${e}/${t}`,botGateway:"/gateway/bot"},t.Status={READY:0,CONNECTING:1,RECONNECTING:2,IDLE:3,NEARLY:4,DISCONNECTED:5},t.VoiceStatus={CONNECTED:0,CONNECTING:1,AUTHENTICATING:2,RECONNECTING:3,DISCONNECTED:4},t.OPCodes={DISPATCH:0,HEARTBEAT:1,IDENTIFY:2,STATUS_UPDATE:3,VOICE_STATE_UPDATE:4,VOICE_GUILD_PING:5,RESUME:6,RECONNECT:7,REQUEST_GUILD_MEMBERS:8,INVALID_SESSION:9,HELLO:10,HEARTBEAT_ACK:11},t.VoiceOPCodes={IDENTIFY:0,SELECT_PROTOCOL:1,READY:2,HEARTBEAT:3,SESSION_DESCRIPTION:4,SPEAKING:5,HELLO:8,CLIENT_CONNECT:12,CLIENT_DISCONNECT:13},t.Events={RATE_LIMIT:"rateLimit",READY:"ready",RESUMED:"resumed",GUILD_CREATE:"guildCreate",GUILD_DELETE:"guildDelete",GUILD_UPDATE:"guildUpdate",GUILD_UNAVAILABLE:"guildUnavailable",GUILD_AVAILABLE:"guildAvailable",GUILD_MEMBER_ADD:"guildMemberAdd",GUILD_MEMBER_REMOVE:"guildMemberRemove",GUILD_MEMBER_UPDATE:"guildMemberUpdate",GUILD_MEMBER_AVAILABLE:"guildMemberAvailable",GUILD_MEMBER_SPEAKING:"guildMemberSpeaking",GUILD_MEMBERS_CHUNK:"guildMembersChunk",GUILD_INTEGRATIONS_UPDATE:"guildIntegrationsUpdate",GUILD_ROLE_CREATE:"roleCreate",GUILD_ROLE_DELETE:"roleDelete",GUILD_ROLE_UPDATE:"roleUpdate",GUILD_EMOJI_CREATE:"emojiCreate",GUILD_EMOJI_DELETE:"emojiDelete",GUILD_EMOJI_UPDATE:"emojiUpdate",GUILD_BAN_ADD:"guildBanAdd",GUILD_BAN_REMOVE:"guildBanRemove",CHANNEL_CREATE:"channelCreate",CHANNEL_DELETE:"channelDelete",CHANNEL_UPDATE:"channelUpdate",CHANNEL_PINS_UPDATE:"channelPinsUpdate",MESSAGE_CREATE:"message",MESSAGE_DELETE:"messageDelete",MESSAGE_UPDATE:"messageUpdate",MESSAGE_BULK_DELETE:"messageDeleteBulk",MESSAGE_REACTION_ADD:"messageReactionAdd",MESSAGE_REACTION_REMOVE:"messageReactionRemove",MESSAGE_REACTION_REMOVE_ALL:"messageReactionRemoveAll",USER_UPDATE:"userUpdate",USER_NOTE_UPDATE:"userNoteUpdate",USER_SETTINGS_UPDATE:"clientUserSettingsUpdate",PRESENCE_UPDATE:"presenceUpdate",VOICE_STATE_UPDATE:"voiceStateUpdate",VOICE_BROADCAST_SUBSCRIBE:"subscribe",VOICE_BROADCAST_UNSUBSCRIBE:"unsubscribe",TYPING_START:"typingStart",TYPING_STOP:"typingStop",WEBHOOKS_UPDATE:"webhookUpdate",DISCONNECT:"disconnect",RECONNECTING:"reconnecting",ERROR:"error",WARN:"warn",DEBUG:"debug"},t.WSEvents=function(e){let t=Object.create(null);for(const s of e)t[s]=s;return t}(["READY","RESUMED","GUILD_CREATE","GUILD_DELETE","GUILD_UPDATE","GUILD_MEMBER_ADD","GUILD_MEMBER_REMOVE","GUILD_MEMBER_UPDATE","GUILD_MEMBERS_CHUNK","GUILD_INTEGRATIONS_UPDATE","GUILD_ROLE_CREATE","GUILD_ROLE_DELETE","GUILD_ROLE_UPDATE","GUILD_BAN_ADD","GUILD_BAN_REMOVE","GUILD_EMOJIS_UPDATE","CHANNEL_CREATE","CHANNEL_DELETE","CHANNEL_UPDATE","CHANNEL_PINS_UPDATE","MESSAGE_CREATE","MESSAGE_DELETE","MESSAGE_UPDATE","MESSAGE_DELETE_BULK","MESSAGE_REACTION_ADD","MESSAGE_REACTION_REMOVE","MESSAGE_REACTION_REMOVE_ALL","USER_UPDATE","PRESENCE_UPDATE","VOICE_STATE_UPDATE","TYPING_START","VOICE_SERVER_UPDATE","WEBHOOKS_UPDATE"]),t.MessageTypes=["DEFAULT","RECIPIENT_ADD","RECIPIENT_REMOVE","CALL","CHANNEL_NAME_CHANGE","CHANNEL_ICON_CHANGE","PINS_ADD","GUILD_MEMBER_JOIN"],t.ActivityTypes=["PLAYING","STREAMING","LISTENING","WATCHING"],t.ChannelTypes={TEXT:0,DM:1,VOICE:2,GROUP:3,CATEGORY:4},t.ClientApplicationAssetTypes={SMALL:1,BIG:2},t.Colors={DEFAULT:0,WHITE:16777215,AQUA:1752220,GREEN:3066993,BLUE:3447003,PURPLE:10181046,LUMINOUS_VIVID_PINK:15277667,GOLD:15844367,ORANGE:15105570,RED:15158332,GREY:9807270,NAVY:3426654,DARK_AQUA:1146986,DARK_GREEN:2067276,DARK_BLUE:2123412,DARK_PURPLE:7419530,DARK_VIVID_PINK:11342935,DARK_GOLD:12745742,DARK_ORANGE:11027200,DARK_RED:10038562,DARK_GREY:9936031,DARKER_GREY:8359053,LIGHT_GREY:12370112,DARK_NAVY:2899536,BLURPLE:7506394,GREYPLE:10070709,DARK_BUT_NOT_BLACK:2895667,NOT_QUITE_BLACK:2303786},t.APIErrors={UNKNOWN_ACCOUNT:10001,UNKNOWN_APPLICATION:10002,UNKNOWN_CHANNEL:10003,UNKNOWN_GUILD:10004,UNKNOWN_INTEGRATION:10005,UNKNOWN_INVITE:10006,UNKNOWN_MEMBER:10007,UNKNOWN_MESSAGE:10008,UNKNOWN_OVERWRITE:10009,UNKNOWN_PROVIDER:10010,UNKNOWN_ROLE:10011,UNKNOWN_TOKEN:10012,UNKNOWN_USER:10013,UNKNOWN_EMOJI:10014,UNKNOWN_WEBHOOK:10015,BOT_PROHIBITED_ENDPOINT:20001,BOT_ONLY_ENDPOINT:20002,MAXIMUM_GUILDS:30001,MAXIMUM_FRIENDS:30002,MAXIMUM_PINS:30003,MAXIMUM_ROLES:30005,MAXIMUM_REACTIONS:30010,UNAUTHORIZED:40001,MISSING_ACCESS:50001,INVALID_ACCOUNT_TYPE:50002,CANNOT_EXECUTE_ON_DM:50003,EMBED_DISABLED:50004,CANNOT_EDIT_MESSAGE_BY_OTHER:50005,CANNOT_SEND_EMPTY_MESSAGE:50006,CANNOT_MESSAGE_USER:50007,CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL:50008,CHANNEL_VERIFICATION_LEVEL_TOO_HIGH:50009,OAUTH2_APPLICATION_BOT_ABSENT:50010,MAXIMUM_OAUTH2_APPLICATIONS:50011,INVALID_OAUTH_STATE:50012,MISSING_PERMISSIONS:50013,INVALID_AUTHENTICATION_TOKEN:50014,NOTE_TOO_LONG:50015,INVALID_BULK_DELETE_QUANTITY:50016,CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL:50019,CANNOT_EXECUTE_ON_SYSTEM_MESSAGE:50021,BULK_DELETE_MESSAGE_TOO_OLD:50034,INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT:50036,REACTION_BLOCKED:90001},t.DefaultMessageNotifications=["ALL","MENTIONS"]}).call(this,s(45))},function(e,t){e.exports=class AbstractHandler{constructor(e){this.packetManager=e}handle(e){return e}}},function(e,t,s){const i=s(3);e.exports=class Collection extends Map{constructor(e){super(e),Object.defineProperty(this,"_array",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"_keyArray",{value:null,writable:!0,configurable:!0})}set(e,t){return this._array=null,this._keyArray=null,super.set(e,t)}delete(e){return this._array=null,this._keyArray=null,super.delete(e)}array(){return this._array&&this._array.length===this.size||(this._array=[...this.values()]),this._array}keyArray(){return this._keyArray&&this._keyArray.length===this.size||(this._keyArray=[...this.keys()]),this._keyArray}first(e){if(void 0===e)return this.values().next().value;if(e<0)return this.last(-1*e);e=Math.min(this.size,e);const t=new Array(e),s=this.values();for(let i=0;i<e;i++)t[i]=s.next().value;return t}firstKey(e){if(void 0===e)return this.keys().next().value;if(e<0)return this.lastKey(-1*e);e=Math.min(this.size,e);const t=new Array(e),s=this.keys();for(let i=0;i<e;i++)t[i]=s.next().value;return t}last(e){const t=this.array();return void 0===e?t[t.length-1]:e<0?this.first(-1*e):e?t.slice(-e):[]}lastKey(e){const t=this.keyArray();return void 0===e?t[t.length-1]:e<0?this.firstKey(-1*e):e?t.slice(-e):[]}random(e){let t=this.array();if(void 0===e)return t[Math.floor(Math.random()*t.length)];if(0===t.length||!e)return[];const s=new Array(e);t=t.slice();for(let i=0;i<e;i++)s[i]=t.splice(Math.floor(Math.random()*t.length),1)[0];return s}randomKey(e){let t=this.keyArray();if(void 0===e)return t[Math.floor(Math.random()*t.length)];if(0===t.length||!e)return[];const s=new Array(e);t=t.slice();for(let i=0;i<e;i++)s[i]=t.splice(Math.floor(Math.random()*t.length),1)[0];return s}find(e,t){void 0!==t&&(e=e.bind(t));for(const[t,s]of this)if(e(s,t,this))return s}findKey(e,t){void 0!==t&&(e=e.bind(t));for(const[t,s]of this)if(e(s,t,this))return t}sweep(e,t){void 0!==t&&(e=e.bind(t));const s=this.size;for(const[t,s]of this)e(s,t,this)&&this.delete(t);return s-this.size}filter(e,t){void 0!==t&&(e=e.bind(t));const s=new this.constructor[Symbol.species];for(const[t,i]of this)e(i,t,this)&&s.set(t,i);return s}partition(e,t){void 0!==t&&(e=e.bind(t));const s=[new this.constructor[Symbol.species],new this.constructor[Symbol.species]];for(const[t,i]of this)e(i,t,this)?s[0].set(t,i):s[1].set(t,i);return s}map(e,t){void 0!==t&&(e=e.bind(t));const s=new Array(this.size);let i=0;for(const[t,n]of this)s[i++]=e(n,t,this);return s}some(e,t){void 0!==t&&(e=e.bind(t));for(const[t,s]of this)if(e(s,t,this))return!0;return!1}every(e,t){void 0!==t&&(e=e.bind(t));for(const[t,s]of this)if(!e(s,t,this))return!1;return!0}reduce(e,t){let s;if(void 0!==t){s=t;for(const[t,i]of this)s=e(s,i,t,this)}else{let t=!0;for(const[i,n]of this)t?(s=n,t=!1):s=e(s,n,i,this)}return s}each(e,t){return this.forEach(e,t),this}tap(e,t){return void 0!==t&&(e=e.bind(t)),e(this),this}clone(){return new this.constructor[Symbol.species](this)}concat(...e){const t=this.clone();for(const s of e)for(const[e,i]of s)t.set(e,i);return t}equals(e){return!!e&&(this===e||this.size===e.size&&!this.find((t,s)=>{const i=e.get(s);return i!==t||void 0===i&&!e.has(s)}))}sort(e=((e,t)=>+(e>t)||+(e===t)-1)){return new this.constructor[Symbol.species]([...this.entries()].sort((t,s)=>e(t[1],s[1],t[0],s[0])))}toJSON(){return this.map(e=>"function"==typeof e.toJSON?e.toJSON():i.flatten(e))}}},function(e,t,s){const{Colors:i,DefaultOptions:n,Endpoints:r}=s(0),a=s(29),{Error:o,RangeError:l,TypeError:h}=s(4),c=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),d=e=>"object"==typeof e&&null!==e,{parse:u}=s(30);class Util{constructor(){throw new Error(`The ${this.constructor.name} class may not be instantiated.`)}static flatten(e,...t){if(!d(e))return e;t=Object.assign(...Object.keys(e).filter(e=>!e.startsWith("_")).map(e=>({[e]:!0})),...t);const i={};for(let[n,r]of Object.entries(t)){if(!r)continue;r=!0===r?n:r;const t=e[n],a=d(t),o=a&&"function"==typeof t.valueOf?t.valueOf():null;t instanceof s(2)?i[r]=Array.from(t.keys()):Array.isArray(t)?i[r]=t.map(e=>Util.flatten(e)):"object"!=typeof o?i[r]=o:a||(i[r]=t)}return i}static splitMessage(e,{maxLength:t=2e3,char:s="\n",prepend:i="",append:n=""}={}){if(e.length<=t)return e;const r=e.split(s);if(1===r.length)throw new l("SPLIT_MAX_LEN");const a=[];let o="";for(const e of r)o&&(o+s+e+n).length>t&&(a.push(o+n),o=i),o+=(o&&o!==i?s:"")+e;return a.concat(o).filter(e=>e)}static escapeMarkdown(e,t=!1,s=!1){return t?e.replace(/```/g,"```"):s?e.replace(/\\(`|\\)/g,"$1").replace(/(`|\\)/g,"\\$1"):e.replace(/\\(\*|_|`|~|\\)/g,"$1").replace(/(\*|_|`|~|\\)/g,"\\$1")}static fetchRecommendedShards(e,t=1e3){if(!e)throw new o("TOKEN_MISSING");return a(`${n.http.api}/v${n.http.version}${r.botGateway}`,{method:"GET",headers:{Authorization:`Bot ${e.replace(/^Bot\s*/i,"")}`}}).then(e=>{if(e.ok)return e.json();throw e}).then(e=>e.shards*(1e3/t))}static parseEmoji(e){if(e.includes("%")&&(e=decodeURIComponent(e)),!e.includes(":"))return{animated:!1,name:e,id:null};const t=e.match(/<?(a)?:?(\w{2,32}):(\d{17,19})>?/);return t?{animated:Boolean(t[1]),name:t[2],id:t[3]}:null}static cloneObject(e){return Object.assign(Object.create(e),e)}static mergeDefault(e,t){if(!t)return e;for(const s in e)c(t,s)&&void 0!==t[s]?t[s]===Object(t[s])&&(t[s]=Util.mergeDefault(e[s],t[s])):t[s]=e[s];return t}static convertToBuffer(e){return"string"==typeof e&&(e=Util.str2ab(e)),Buffer.from(e)}static str2ab(e){const t=new ArrayBuffer(2*e.length),s=new Uint16Array(t);for(var i=0,n=e.length;i<n;i++)s[i]=e.charCodeAt(i);return t}static makeError(e){const t=new Error(e.message);return t.name=e.name,t.stack=e.stack,t}static makePlainError(e){return{name:e.name,message:e.message,stack:e.stack}}static moveElementInArray(e,t,s,i=!1){const n=e.indexOf(t);if((s=(i?n:0)+s)>-1&&s<e.length){const t=e.splice(n,1)[0];e.splice(s,0,t)}return e.indexOf(t)}static resolveString(e){return"string"==typeof e?e:e instanceof Array?e.join("\n"):String(e)}static resolveColor(e){if("string"==typeof e){if("RANDOM"===e)return Math.floor(16777216*Math.random());if("DEFAULT"===e)return 0;e=i[e]||parseInt(e.replace("#",""),16)}else e instanceof Array&&(e=(e[0]<<16)+(e[1]<<8)+e[2]);if(e<0||e>16777215)throw new l("COLOR_RANGE");if(e&&isNaN(e))throw new h("COLOR_CONVERT");return e}static discordSort(e){return e.sort((e,t)=>e.rawPosition-t.rawPosition||parseInt(t.id.slice(0,-10))-parseInt(e.id.slice(0,-10))||parseInt(t.id.slice(10))-parseInt(e.id.slice(10)))}static setPosition(e,t,s,i,n,r){let a=i.array();return Util.moveElementInArray(a,e,t,s),a=a.map((e,t)=>({id:e.id,position:t})),n.patch({data:a,reason:r}).then(()=>a)}static basename(e,t){let s=u(e);return t&&s.ext.startsWith(t)?s.name:s.base.split("?")[0]}static idToBinary(e){let t="",s=parseInt(e.slice(0,-10))||0,i=parseInt(e.slice(-10));for(;i>0||s>0;)t=String(1&i)+t,i=Math.floor(i/2),s>0&&(i+=s%2*5e9,s=Math.floor(s/2));return t}static binaryToID(e){let t="";for(;e.length>50;){const s=parseInt(e.slice(0,-32),2),i=parseInt((s%10).toString(2)+e.slice(-32),2);t=(i%10).toString()+t,e=Math.floor(s/10).toString(2)+Math.floor(i/10).toString(2).padStart(32,"0")}for(e=parseInt(e,2);e>0;)t=(e%10).toString()+t,e=Math.floor(e/10);return t}static cleanContent(e,t){return e.replace(/@(everyone|here)/g,"@$1").replace(/<@!?[0-9]+>/g,e=>{const s=e.replace(/<|!|>|@/g,"");if("dm"===t.channel.type||"group"===t.channel.type){const i=t.client.users.get(s);return i?`@${i.username}`:e}const i=t.channel.guild.members.get(s);if(i)return`@${i.displayName}`;{const i=t.client.users.get(s);return i?`@${i.username}`:e}}).replace(/<#[0-9]+>/g,e=>{const s=t.client.channels.get(e.replace(/<|#|>/g,""));return s?`#${s.name}`:e}).replace(/<@&[0-9]+>/g,e=>{if("dm"===t.channel.type||"group"===t.channel.type)return e;const s=t.guild.roles.get(e.replace(/<|@|>|&/g,""));return s?`@${s.name}`:e})}static delayFor(e){return new Promise(t=>{setTimeout(t,e)})}static mixin(e,t){const i=s(2);Object.getOwnPropertyNames(i.prototype).concat(Object.getOwnPropertyNames(Map.prototype)).forEach(s=>{if(t.includes(s))return;if("size"===s)return void Object.defineProperty(e.prototype,s,{get:function(){return this._filtered[s]}});const n=i.prototype[s];"constructor"!==s&&"function"==typeof n&&(e.prototype[s]=function(...e){return n.apply(this._filtered,e)})})}}e.exports=Util},function(e,t,s){e.exports=s(47),e.exports.Messages=s(81)},function(e,t){e.exports=class GenericAction{constructor(e){this.client=e}handle(e){return e}}},function(e,t,s){const i=s(2);let n;e.exports=class DataStore extends i{constructor(e,t,i){if(super(),n||(n=s(19)),Object.defineProperty(this,"client",{value:e}),Object.defineProperty(this,"holds",{value:n.get(i.name)||i}),t)for(const e of t)this.add(e)}add(e,t=!0,{id:s,extras:i=[]}={}){const n=this.get(s||e.id);if(n)return n;const r=this.holds?new this.holds(this.client,e,...i):e;return t&&this.set(s||r.id,r),r}remove(e){return this.delete(e)}resolve(e){return e instanceof this.holds?e:"string"==typeof e&&this.get(e)||null}resolveID(e){return e instanceof this.holds?e.id:"string"==typeof e?e:null}static get[Symbol.species](){return i}}},function(e,t,s){const i=s(3);e.exports=class Base{constructor(e){Object.defineProperty(this,"client",{value:e})}_clone(){return Object.assign(Object.create(this),this)}_patch(e){return e}_update(e){const t=this._clone();return this._patch(e),t}toJSON(...e){return i.flatten(this,...e)}valueOf(){return this.id}}},function(e,t,s){const i=s(24);class Permissions extends i{has(e,t=!0){return!(!t||!super.has(this.constructor.FLAGS.ADMINISTRATOR))||super.has(e)}}Permissions.FLAGS={CREATE_INSTANT_INVITE:1,KICK_MEMBERS:2,BAN_MEMBERS:4,ADMINISTRATOR:8,MANAGE_CHANNELS:16,MANAGE_GUILD:32,ADD_REACTIONS:64,VIEW_AUDIT_LOG:128,PRIORITY_SPEAKER:256,VIEW_CHANNEL:1024,SEND_MESSAGES:2048,SEND_TTS_MESSAGES:4096,MANAGE_MESSAGES:8192,EMBED_LINKS:16384,ATTACH_FILES:32768,READ_MESSAGE_HISTORY:65536,MENTION_EVERYONE:1<<17,USE_EXTERNAL_EMOJIS:1<<18,CONNECT:1<<20,SPEAK:1<<21,MUTE_MEMBERS:1<<22,DEAFEN_MEMBERS:1<<23,MOVE_MEMBERS:1<<24,USE_VAD:1<<25,CHANGE_NICKNAME:1<<26,MANAGE_NICKNAMES:1<<27,MANAGE_ROLES:1<<28,MANAGE_WEBHOOKS:1<<29,MANAGE_EMOJIS:1<<30},Permissions.ALL=Object.values(Permissions.FLAGS).reduce((e,t)=>e|t,0),Permissions.DEFAULT=104324097,e.exports=Permissions},function(e,t,s){const i=s(3),n=14200704e5;let r=0;e.exports=class SnowflakeUtil{constructor(){throw new Error(`The ${this.constructor.name} class may not be instantiated.`)}static generate(e=Date.now()){if(e instanceof Date&&(e=e.getTime()),"number"!=typeof e||isNaN(e))throw new TypeError(`"timestamp" argument must be a number (received ${isNaN(e)?"NaN":typeof e})`);r>=4095&&(r=0);const t=`${(e-n).toString(2).padStart(42,"0")}0000100000${(r++).toString(2).padStart(12,"0")}`;return i.binaryToID(t)}static deconstruct(e){const t=i.idToBinary(e).toString(2).padStart(64,"0"),s={timestamp:parseInt(t.substring(0,42),2)+n,workerID:parseInt(t.substring(42,47),2),processID:parseInt(t.substring(47,52),2),increment:parseInt(t.substring(52,64),2),binary:t};return Object.defineProperty(s,"date",{get:function(){return new Date(this.timestamp)},enumerable:!0}),s}}},function(e,t,s){const i=s(30),n=s(30),r=s(29),a=s(3),{Error:o,TypeError:l}=s(4),{browser:h}=s(0);class DataResolver{constructor(){throw new Error(`The ${this.constructor.name} class may not be instantiated.`)}static resolveInviteCode(e){const t=/discord(?:app\.com\/invite|\.gg(?:\/invite)?)\/([\w-]{2,255})/i.exec(e);return t&&t[1]?t[1]:e}static async resolveImage(e){if(!e)return null;if("string"==typeof e&&e.startsWith("data:"))return e;const t=await this.resolveFile(e);return DataResolver.resolveBase64(t)}static resolveBase64(e){return e instanceof Buffer?`data:image/jpg;base64,${e.toString("base64")}`:e}static resolveFile(e){if(!h&&e instanceof Buffer)return Promise.resolve(e);if(h&&e instanceof ArrayBuffer)return Promise.resolve(a.convertToBuffer(e));if("string"==typeof e){if(/^https?:\/\//.test(e))return r(e).then(e=>h?e.blob():e.buffer());if(!h)return new Promise((t,s)=>{const r=h?e:i.resolve(e);n.stat(r,(e,i)=>e?s(e):i&&i.isFile()?(n.readFile(r,(e,i)=>{e?s(e):t(i)}),null):s(new o("FILE_NOT_FOUND",r)))})}else if("function"==typeof e.pipe)return new Promise((t,s)=>{const i=[];e.once("error",s),e.on("data",e=>i.push(e)),e.once("end",()=>t(Buffer.concat(i)))});return Promise.reject(new l("REQ_RESOURCE_TYPE"))}}e.exports=DataResolver},function(e,t,s){const i=s(10),n=s(15),r=s(26);class Webhook{constructor(e,t){Object.defineProperty(this,"client",{value:e}),t&&this._patch(t)}_patch(e){this.name=e.name,Object.defineProperty(this,"token",{value:e.token,writable:!0,configurable:!0}),this.avatar=e.avatar,this.id=e.id,this.guildID=e.guild_id,this.channelID=e.channel_id,e.user?this.owner=this.client.users?this.client.users.get(e.user.id):e.user:this.owner=null}async send(e,t){let s;if(e instanceof r)s=e.resolveData();else if((s=r.create(this,e,t).resolveData()).data.content instanceof Array)return Promise.all(s.split().map(this.send.bind(this)));const{data:i,files:n}=await s.resolveFiles();return this.client.api.webhooks(this.id,this.token).post({data:i,files:n,query:{wait:!0},auth:!1}).then(e=>this.client.channels?this.client.channels.get(e.channel_id).messages.add(e,!1):e)}sendSlackMessage(e){return this.client.api.webhooks(this.id,this.token).slack.post({query:{wait:!0},auth:!1,data:e}).then(e=>this.client.channels?this.client.channels.get(e.channel_id).messages.add(e,!1):e)}edit({name:e=this.name,avatar:t,channel:s},r){return t&&"string"==typeof t&&!t.startsWith("data:")?i.resolveImage(t).then(t=>this.edit({name:e,avatar:t},r)):(s&&(s=s instanceof n?s.id:s),this.client.api.webhooks(this.id,s?void 0:this.token).patch({data:{name:e,avatar:t,channel_id:s},reason:r}).then(e=>(this.name=e.name,this.avatar=e.avatar,this.channelID=e.channel_id,this)))}delete(e){return this.client.api.webhooks(this.id,this.token).delete({reason:e})}static applyToClass(e){for(const t of["send","sendSlackMessage","edit","delete"])Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(Webhook.prototype,t))}}e.exports=Webhook},function(e,t,s){const i=s(3),n=s(54),{ActivityTypes:r}=s(0);class Activity{constructor(e,t){Object.defineProperty(this,"presence",{value:e}),this.name=t.name,this.type=r[t.type],this.url=t.url||null,this.details=t.details||null,this.state=t.state||null,this.applicationID=t.application_id||null,this.timestamps=t.timestamps?{start:t.timestamps.start?new Date(Number(t.timestamps.start)):null,end:t.timestamps.end?new Date(Number(t.timestamps.end)):null}:null,this.party=t.party||null,this.assets=t.assets?new RichPresenceAssets(this,t.assets):null,this.syncID=t.sync_id,this.flags=new n(t.flags).freeze()}equals(e){return this===e||e&&this.name===e.name&&this.type===e.type&&this.url===e.url}toString(){return this.name}_clone(){return Object.assign(Object.create(this),this)}}class RichPresenceAssets{constructor(e,t){Object.defineProperty(this,"activity",{value:e}),this.largeText=t.large_text||null,this.smallText=t.small_text||null,this.largeImage=t.large_image||null,this.smallImage=t.small_image||null}smallImageURL({format:e,size:t}={}){return this.smallImage?this.activity.presence.client.rest.cdn.AppAsset(this.activity.applicationID,this.smallImage,{format:e,size:t}):null}largeImageURL({format:e,size:t}={}){return this.largeImage?/^spotify:/.test(this.largeImage)?`https://i.scdn.co/image/${this.largeImage.slice(8)}`:this.activity.presence.client.rest.cdn.AppAsset(this.activity.applicationID,this.largeImage,{format:e,size:t}):null}}t.Presence=class Presence{constructor(e,t={}){Object.defineProperty(this,"client",{value:e}),this.userID=t.user.id,this.guild=t.guild,this.patch(t)}get user(){return this.client.users.get(this.userID)||null}get member(){return this.guild.members.get(this.userID)||null}patch(e){this.status=e.status||this.status||"offline";const t=e.game||e.activity;return this.activity=t?new Activity(this,t):null,this}_clone(){const e=Object.assign(Object.create(this),this);return this.activity&&(e.activity=this.activity._clone()),e}equals(e){return this===e||(e&&this.status===e.status&&this.activity?this.activity.equals(e.activity):!e.activity)}toJSON(){return i.flatten(this)}},t.Activity=Activity,t.RichPresenceAssets=RichPresenceAssets},function(e,t,s){const i=s(20),n=s(17),r=s(8),a=s(55),o=s(7),l=s(21),{Presence:h}=s(12),{Error:c}=s(4);class GuildMember extends o{constructor(e,t,s){super(e),this.guild=s,this.user={},this.joinedTimestamp=null,this.lastMessageID=null,this.lastMessageChannelID=null,this.deleted=!1,this._roles=[],t&&this._patch(t)}_patch(e){void 0!==e.nick&&(this.nickname=e.nick),e.joined_at&&(this.joinedTimestamp=new Date(e.joined_at).getTime()),e.user&&(this.user=this.guild.client.users.add(e.user)),e.roles&&this.roles._patch(e.roles)}_clone(){const e=super._clone();return e._roles=this._roles.slice(),e}get roles(){return new a(this)}get lastMessage(){const e=this.guild.channels.get(this.lastMessageChannelID);return e&&e.messages.get(this.lastMessageID)||null}get voice(){return this.guild.voiceStates.get(this.id)||new l(this.guild,{user_id:this.id})}get joinedAt(){return this.joinedTimestamp?new Date(this.joinedTimestamp):null}get presence(){return this.guild.presences.get(this.id)||new h(this.client,{user:{id:this.id},guild:this.guild})}get displayColor(){const e=this.roles.color;return e&&e.color||0}get displayHexColor(){const e=this.roles.color;return e&&e.hexColor||"#000000"}get id(){return this.user.id}get displayName(){return this.nickname||this.user.username}get permissions(){return this.user.id===this.guild.ownerID?new r(r.ALL).freeze():new r(this.roles.map(e=>e.permissions)).freeze()}get manageable(){return this.user.id!==this.guild.ownerID&&(this.user.id!==this.client.user.id&&this.guild.me.roles.highest.comparePositionTo(this.roles.highest)>0)}get kickable(){return this.manageable&&this.guild.me.permissions.has(r.FLAGS.KICK_MEMBERS)}get bannable(){return this.manageable&&this.guild.me.permissions.has(r.FLAGS.BAN_MEMBERS)}permissionsIn(e){if(!(e=this.guild.channels.resolve(e)))throw new c("GUILD_CHANNEL_RESOLVE");return e.memberPermissions(this)}hasPermission(e,{checkAdmin:t=!0,checkOwner:s=!0}={}){return!(!s||this.user.id!==this.guild.ownerID)||this.roles.some(s=>s.permissions.has(e,t))}edit(e,t){e.channel&&(e.channel_id=this.client.channels.resolve(e.channel).id,e.channel=null),e.roles&&(e.roles=e.roles.map(e=>e instanceof n?e.id:e));let s=this.client.api.guilds(this.guild.id);if(this.user.id===this.client.user.id){const t=Object.keys(e);s=1===t.length&&"nick"===t[0]?s.members("@me").nick:s.members(this.id)}else s=s.members(this.id);return s.patch({data:e,reason:t}).then(()=>{const t=this._clone();return e.user=this.user,t._patch(e),t})}setMute(e,t){return this.edit({mute:e},t)}setDeaf(e,t){return this.edit({deaf:e},t)}setVoiceChannel(e){return this.edit({channel:e})}setNickname(e,t){return this.edit({nick:e},t)}createDM(){return this.user.createDM()}deleteDM(){return this.user.deleteDM()}kick(e){return this.client.api.guilds(this.guild.id).members(this.user.id).delete({reason:e}).then(()=>this)}ban(e){return this.guild.members.ban(this,e)}toString(){return`<@${this.nickname?"!":""}${this.user.id}>`}toJSON(){return super.toJSON({guild:"guildID",user:"userID",displayName:!0,speaking:!1,lastMessage:!1,lastMessageID:!1,roles:!0})}send(){}}i.applyToClass(GuildMember),e.exports=GuildMember},function(e,t,s){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var s=t.shift();if(s){if("object"!=typeof s)throw new TypeError(s+"must be non-object");for(var i in s)n(s,i)&&(e[i]=s[i])}}return e},t.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var r={arraySet:function(e,t,s,i,n){if(t.subarray&&e.subarray)e.set(t.subarray(s,s+i),n);else for(var r=0;r<i;r++)e[n+r]=t[s+r]},flattenChunks:function(e){var t,s,i,n,r,a;for(i=0,t=0,s=e.length;t<s;t++)i+=e[t].length;for(a=new Uint8Array(i),n=0,t=0,s=e.length;t<s;t++)r=e[t],a.set(r,n),n+=r.length;return a}},a={arraySet:function(e,t,s,i,n){for(var r=0;r<i;r++)e[n+r]=t[s+r]},flattenChunks:function(e){return[].concat.apply([],e)}};t.setTyped=function(e){e?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,r)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,a))},t.setTyped(i)},function(e,t,s){const i=s(9),n=s(7),{ChannelTypes:r}=s(0);e.exports=class Channel extends n{constructor(e,t){super(e);const s=Object.keys(r)[t.type];this.type=s?s.toLowerCase():"unknown",this.deleted=!1,t&&this._patch(t)}_patch(e){this.id=e.id}get createdTimestamp(){return i.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}toString(){return`<#${this.id}>`}delete(){return this.client.api.channels(this.id).delete().then(()=>this)}static create(e,t,i){const n=s(19);let a;if(t.type===r.DM)a=new(n.get("DMChannel"))(e,t);else if(t.type===r.GROUP)a=new(n.get("GroupDMChannel"))(e,t);else if(i=i||e.guilds.get(t.guild_id)){switch(t.type){case r.TEXT:a=new(n.get("TextChannel"))(i,t);break;case r.VOICE:a=new(n.get("VoiceChannel"))(i,t);break;case r.CATEGORY:a=new(n.get("CategoryChannel"))(i,t);break;default:a=new(n.get("GuildChannel"))(i,t)}i.channels.set(a.id,a)}return a}toJSON(...e){return super.toJSON({createdTimestamp:!0},...e)}}},function(e,t,s){const i=s(20),{Presence:n}=s(12),r=s(9),a=s(7),{Error:o}=s(4);class User extends a{constructor(e,t){super(e),this.id=t.id,this.bot=Boolean(t.bot),this._patch(t)}_patch(e){e.username&&(this.username=e.username),e.discriminator&&(this.discriminator=e.discriminator),void 0!==e.avatar&&(this.avatar=e.avatar),e.locale&&(this.locale=e.locale),this.lastMessageID=null,this.lastMessageChannelID=null}get createdTimestamp(){return r.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}get lastMessage(){const e=this.client.channels.get(this.lastMessageChannelID);return e&&e.messages.get(this.lastMessageID)||null}get presence(){for(const e of this.client.guilds.values())if(e.presences.has(this.id))return e.presences.get(this.id);return new n(this.client,{user:{id:this.id}})}avatarURL({format:e,size:t}={}){return this.avatar?this.client.rest.cdn.Avatar(this.id,this.avatar,e,t):null}get defaultAvatarURL(){return this.client.rest.cdn.DefaultAvatar(this.discriminator%5)}displayAvatarURL(e){return this.avatarURL(e)||this.defaultAvatarURL}get tag(){return`${this.username}#${this.discriminator}`}typingIn(e){return(e=this.client.channels.resolve(e))._typing.has(this.id)}typingSinceIn(e){return(e=this.client.channels.resolve(e))._typing.has(this.id)?new Date(e._typing.get(this.id).since):null}typingDurationIn(e){return(e=this.client.channels.resolve(e))._typing.has(this.id)?e._typing.get(this.id).elapsedTime:-1}get dmChannel(){return this.client.channels.find(e=>"dm"===e.type&&e.recipient.id===this.id)||null}createDM(){return this.dmChannel?Promise.resolve(this.dmChannel):this.client.api.users(this.client.user.id).channels.post({data:{recipient_id:this.id}}).then(e=>this.client.actions.ChannelCreate.handle(e).channel)}deleteDM(){return this.dmChannel?this.client.api.channels(this.dmChannel.id).delete().then(e=>this.client.actions.ChannelDelete.handle(e).channel):Promise.reject(new o("USER_NO_DMCHANNEL"))}equals(e){return e&&this.id===e.id&&this.username===e.username&&this.discriminator===e.discriminator&&this.avatar===e.avatar}toString(){return`<@${this.id}>`}toJSON(...e){const t=super.toJSON({createdTimestamp:!0,defaultAvatarURL:!0,tag:!0,lastMessage:!1,lastMessageID:!1},...e);return t.avatarURL=this.avatarURL(),t.displayAvatarURL=this.displayAvatarURL(),t}send(){}}i.applyToClass(User),e.exports=User},function(e,t,s){const i=s(9),n=s(8),r=s(3),a=s(7),{Error:o,TypeError:l}=s(4);e.exports=class Role extends a{constructor(e,t,s){super(e),this.guild=s,t&&this._patch(t)}_patch(e){this.id=e.id,this.name=e.name,this.color=e.color,this.hoist=e.hoist,this.rawPosition=e.position,this.permissions=new n(e.permissions).freeze(),this.managed=e.managed,this.mentionable=e.mentionable,this.deleted=!1}get createdTimestamp(){return i.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}get hexColor(){return`#${this.color.toString(16).padStart(6,"0")}`}get members(){return this.guild.members.filter(e=>e.roles.has(this.id))}get editable(){if(this.managed)return!1;const e=this.guild.member(this.client.user);return!!e.permissions.has(n.FLAGS.MANAGE_ROLES)&&e.roles.highest.comparePositionTo(this)>0}get position(){const e=this.guild._sortedRoles();return e.array().indexOf(e.get(this.id))}comparePositionTo(e){return(e=this.guild.roles.resolve(e))?this.constructor.comparePositions(this,e):Promise.reject(new l("INVALID_TYPE","role","Role nor a Snowflake"))}async edit(e,t){return e.permissions?e.permissions=n.resolve(e.permissions):e.permissions=this.permissions.bitfield,void 0!==e.position&&await r.setPosition(this,e.position,!1,this.guild._sortedRoles(),this.client.api.guilds(this.guild.id).roles,t).then(e=>{this.client.actions.GuildRolesPositionUpdate.handle({guild_id:this.guild.id,roles:e})}),this.client.api.guilds[this.guild.id].roles[this.id].patch({data:{name:e.name||this.name,color:null!==e.color?r.resolveColor(e.color||this.color):null,hoist:void 0!==e.hoist?e.hoist:this.hoist,permissions:e.permissions,mentionable:void 0!==e.mentionable?e.mentionable:this.mentionable},reason:t}).then(e=>{const t=this._clone();return t._patch(e),t})}permissionsIn(e){if(!(e=this.guild.channels.resolve(e)))throw new o("GUILD_CHANNEL_RESOLVE");return e.rolePermissions(this)}setName(e,t){return this.edit({name:e},t)}setColor(e,t){return this.edit({color:e},t)}setHoist(e,t){return this.edit({hoist:e},t)}setPermissions(e,t){return this.edit({permissions:e},t)}setMentionable(e,t){return this.edit({mentionable:e},t)}setPosition(e,{relative:t,reason:s}={}){return r.setPosition(this,e,t,this.guild._sortedRoles(),this.client.api.guilds(this.guild.id).roles,s).then(e=>(this.client.actions.GuildRolesPositionUpdate.handle({guild_id:this.guild.id,roles:e}),this))}delete(e){return this.client.api.guilds[this.guild.id].roles[this.id].delete({reason:e}).then(()=>(this.client.actions.GuildRoleDelete.handle({guild_id:this.guild.id,role_id:this.id}),this))}equals(e){return e&&this.id===e.id&&this.name===e.name&&this.color===e.color&&this.hoist===e.hoist&&this.position===e.position&&this.permissions.bitfield===e.permissions.bitfield&&this.managed===e.managed}toString(){return this.id===this.guild.id?"@everyone":`<@&${this.id}>`}toJSON(){return super.toJSON({createdTimestamp:!0})}static comparePositions(e,t){return e.position===t.position?t.id-e.id:e.position-t.position}}},function(e,t,s){const i=s(15),n=s(17),r=s(28),a=s(40),o=s(3),l=s(8),h=s(2),{Error:c,TypeError:d}=s(4);e.exports=class GuildChannel extends i{constructor(e,t){super(e.client,t),this.guild=e}_patch(e){if(super._patch(e),this.name=e.name,this.rawPosition=e.position,this.parentID=e.parent_id,this.permissionOverwrites=new h,e.permission_overwrites)for(const t of e.permission_overwrites)this.permissionOverwrites.set(t.id,new a(this,t))}get parent(){return this.guild.channels.get(this.parentID)||null}get permissionsLocked(){return this.parent?this.permissionOverwrites.size===this.parent.permissionOverwrites.size&&this.permissionOverwrites.every((e,t)=>{const s=this.parent.permissionOverwrites.get(t);return void 0!==s&&s.deny.bitfield===e.deny.bitfield&&s.allow.bitfield===e.allow.bitfield}):null}get position(){const e=this.guild._sortedChannels(this);return e.array().indexOf(e.get(this.id))}permissionsFor(e){const t=this.guild.members.resolve(e);if(t)return this.memberPermissions(t);const s=this.guild.roles.resolve(e);return s?this.rolePermissions(s):null}overwritesFor(e,t=!1,s=null){if(t||(e=this.guild.members.resolve(e)),!e)return[];s=s||e.roles;const i=[];let n,r;for(const t of this.permissionOverwrites.values())t.id===this.guild.id?r=t:s.has(t.id)?i.push(t):t.id===e.id&&(n=t);return{everyone:r,roles:i,member:n}}memberPermissions(e){if(e.id===this.guild.ownerID)return new l(l.ALL).freeze();const t=e.roles,s=new l(t.map(e=>e.permissions));if(s.has(l.FLAGS.ADMINISTRATOR))return new l(l.ALL).freeze();const i=this.overwritesFor(e,!0,t);return s.remove(i.everyone?i.everyone.deny:0).add(i.everyone?i.everyone.allow:0).remove(i.roles.length>0?i.roles.map(e=>e.deny):0).add(i.roles.length>0?i.roles.map(e=>e.allow):0).remove(i.member?i.member.deny:0).add(i.member?i.member.allow:0).freeze()}rolePermissions(e){if(e.permissions.has(l.FLAGS.ADMINISTRATOR))return new l(l.ALL).freeze();const t=this.permissionOverwrites.get(this.guild.id),s=this.permissionOverwrites.get(e.id);return e.permissions.remove(t?t.deny:0).add(t?t.allow:0).remove(s?s.deny:0).add(s?s.allow:0).freeze()}overwritePermissions(e={}){return this.edit(e).then(()=>this)}updateOverwrite(e,t,s){if(!(e=this.guild.roles.resolve(e)||this.client.users.resolve(e)))return Promise.reject(new d("INVALID_TYPE","parameter","User nor a Role",!0));const i=this.permissionOverwrites.get(e.id);return i?i.update(t,s).then(()=>this):this.createOverwrite(e,t,s)}createOverwrite(e,t,s){if(!(e=this.guild.roles.resolve(e)||this.client.users.resolve(e)))return Promise.reject(new d("INVALID_TYPE","parameter","User nor a Role",!0));const i=e instanceof n?"role":"member",{allow:r,deny:o}=a.resolveOverwriteOptions(t);return this.client.api.channels(this.id).permissions[e.id].put({data:{id:e.id,type:i,allow:r.bitfield,deny:o.bitfield},reason:s}).then(()=>this)}lockPermissions(){if(!this.parent)return Promise.reject(new c("GUILD_CHANNEL_ORPHAN"));const e=this.parent.permissionOverwrites.map(e=>e.toJSON());return this.edit({permissionOverwrites:e})}get members(){const e=new h;for(const t of this.guild.members.values())this.permissionsFor(t).has("VIEW_CHANNEL",!1)&&e.set(t.id,t);return e}async edit(e,t){void 0!==e.position&&await o.setPosition(this,e.position,!1,this.guild._sortedChannels(this),this.client.api.guilds(this.guild.id).channels,t).then(e=>{this.client.actions.GuildChannelsPositionUpdate.handle({guild_id:this.guild.id,channels:e})});const s=e.permissionOverwrites&&e.permissionOverwrites.map(e=>a.resolve(e,this.guild)),i=await this.client.api.channels(this.id).patch({data:{name:(e.name||this.name).trim(),topic:e.topic,nsfw:e.nsfw,bitrate:e.bitrate||this.bitrate,user_limit:void 0!==e.userLimit?e.userLimit:this.userLimit,parent_id:e.parentID,lock_permissions:e.lockPermissions,rate_limit_per_user:e.rateLimitPerUser,permission_overwrites:s},reason:t}),n=this._clone();return n._patch(i),n}setName(e,t){return this.edit({name:e},t)}setParent(e,{lockPermissions:t=!0,reason:s}={}){return this.edit({parentID:null!==e?e.hasOwnProperty("id")?e.id:e:null,lockPermissions:t},s)}setTopic(e,t){return this.edit({topic:e},t)}setPosition(e,{relative:t,reason:s}={}){return o.setPosition(this,e,t,this.guild._sortedChannels(this),this.client.api.guilds(this.guild.id).channels,s).then(e=>(this.client.actions.GuildChannelsPositionUpdate.handle({guild_id:this.guild.id,channels:e}),this))}createInvite({temporary:e=!1,maxAge:t=86400,maxUses:s=0,unique:i,reason:n}={}){return this.client.api.channels(this.id).invites.post({data:{temporary:e,max_age:t,max_uses:s,unique:i},reason:n}).then(e=>new r(this.client,e))}async fetchInvites(){const e=await this.client.api.channels(this.id).invites.get(),t=new h;for(const s of e){const e=new r(this.client,s);t.set(e.code,e)}return t}clone(e={}){return void 0===e.withPermissions&&(e.withPermissions=!0),void 0===e.withTopic&&(e.withTopic=!0),o.mergeDefault({name:this.name,permissionOverwrites:e.withPermissions?this.permissionOverwrites:[],topic:e.withTopic?this.topic:void 0,nsfw:this.nsfw,parent:this.parent,bitrate:this.bitrate,userLimit:this.userLimit,reason:null},e),e.type=this.type,this.guild.channels.create(e.name,e)}equals(e){let t=e&&this.id===e.id&&this.type===e.type&&this.topic===e.topic&&this.position===e.position&&this.name===e.name;return t&&(t=this.permissionOverwrites&&e.permissionOverwrites?this.permissionOverwrites.equals(e.permissionOverwrites):!this.permissionOverwrites&&!e.permissionOverwrites),t}get deletable(){return this.permissionsFor(this.client.user).has(l.FLAGS.MANAGE_CHANNELS,!1)}get manageable(){if(this.client.user.id===this.guild.ownerID)return!0;const e=this.permissionsFor(this.client.user);return!!e&&e.has([l.FLAGS.MANAGE_CHANNELS,l.FLAGS.VIEW_CHANNEL],!1)}delete(e){return this.client.api.channels(this.id).delete({reason:e}).then(()=>this)}}},function(e,t,s){const i={GuildEmoji:s(25),DMChannel:s(52),GroupDMChannel:s(59),TextChannel:s(60),VoiceChannel:s(61),CategoryChannel:s(62),GuildChannel:s(18),GuildMember:s(13),Guild:s(41),Message:s(27),MessageReaction:s(38),Presence:s(12).Presence,ClientPresence:s(69),VoiceState:s(21),Role:s(17),User:s(16)};e.exports=class Structures{constructor(){throw new Error(`The ${this.constructor.name} class may not be instantiated.`)}static get(e){if("string"==typeof e)return i[e];throw new TypeError(`"structure" argument must be a string (received ${typeof e})`)}static extend(e,t){if(!i[e])throw new RangeError(`"${e}" is not a valid extensible structure.`);if("function"!=typeof t)throw new TypeError(`"extender" argument must be a function that returns the extended structure class/prototype ${`(received ${typeof t})`}`);const s=t(i[e]);if("function"!=typeof s)throw new TypeError("The extender function must return the extended structure class/prototype.");if(Object.getPrototypeOf(s)!==i[e])throw new Error("The class/prototype returned from the extender function must extend the existing structure class/prototype.");return i[e]=s,s}}},function(e,t,s){const i=s(53),n=s(9),r=s(2),{RangeError:a,TypeError:o}=s(4),l=s(26);class TextBasedChannel{constructor(){this.messages=new h(this),this.lastMessageID=null,this.lastPinTimestamp=null}get lastMessage(){return this.messages.get(this.lastMessageID)||null}get lastPinAt(){return this.lastPinTimestamp?new Date(this.lastPinTimestamp):null}async send(e,t){const i=s(16),n=s(13);if(this instanceof i||this instanceof n)return this.createDM().then(s=>s.send(e,t));let r;if(e instanceof l)r=e.resolveData();else if((r=l.create(this,e,t).resolveData()).data.content instanceof Array)return Promise.all(r.split().map(this.send.bind(this)));const{data:a,files:o}=await r.resolveFiles();return this.client.api.channels[this.id].messages.post({data:a,files:o}).then(e=>this.client.actions.MessageCreate.handle(e).message)}startTyping(e){if(void 0!==e&&e<1)throw new a("TYPING_COUNT");if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);return t.count=e||t.count+1,t.promise}const t={};return t.promise=new Promise((s,i)=>{const n=this.client.api.channels[this.id].typing;Object.assign(t,{count:e||1,interval:this.client.setInterval(()=>{n.post().catch(e=>{this.client.clearInterval(t.interval),this.client.user._typing.delete(this.id),i(e)})},9e3),resolve:s}),n.post().catch(e=>{this.client.clearInterval(t.interval),this.client.user._typing.delete(this.id),i(e)}),this.client.user._typing.set(this.id,t)}),t.promise}stopTyping(e=!1){if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);t.count--,(t.count<=0||e)&&(this.client.clearInterval(t.interval),this.client.user._typing.delete(this.id),t.resolve())}}get typing(){return this.client.user._typing.has(this.id)}get typingCount(){return this.client.user._typing.has(this.id)?this.client.user._typing.get(this.id).count:0}createMessageCollector(e,t={}){return new i(this,e,t)}awaitMessages(e,t={}){return new Promise((s,i)=>{this.createMessageCollector(e,t).once("end",(e,n)=>{t.errors&&t.errors.includes(n)?i(e):s(e)})})}async bulkDelete(e,t=!1){if(e instanceof Array||e instanceof r){let s=e instanceof r?e.keyArray():e.map(e=>e.id||e);if(t&&(s=s.filter(e=>Date.now()-n.deconstruct(e).date.getTime()<12096e5)),0===s.length)return new r;if(1===s.length){await this.client.api.channels(this.id).messages(s[0]).delete();const e=this.client.actions.MessageDelete.handle({channel_id:this.id,id:s[0]}).message;return e?new r([[e.id,e]]):new r}return await this.client.api.channels[this.id].messages["bulk-delete"].post({data:{messages:s}}),this.client.actions.MessageDeleteBulk.handle({channel_id:this.id,ids:s}).messages}if(!isNaN(e)){const s=await this.messages.fetch({limit:e});return this.bulkDelete(s,t)}throw new o("MESSAGE_BULK_DELETE_TYPE")}static applyToClass(e,t=!1,s=[]){const i=["send"];t&&i.push("lastMessage","lastPinAt","bulkDelete","startTyping","stopTyping","typing","typingCount","createMessageCollector","awaitMessages");for(const t of i)s.includes(t)||Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(TextBasedChannel.prototype,t))}}e.exports=TextBasedChannel;const h=s(22)},function(e,t,s){const i=s(7);e.exports=class VoiceState extends i{constructor(e,t){super(e.client),this.guild=e,this.id=t.user_id,this._patch(t)}_patch(e){return this.serverDeaf=e.deaf,this.serverMute=e.mute,this.selfDeaf=e.self_deaf,this.selfMute=e.self_mute,this.sessionID=e.session_id,this.channelID=e.channel_id,this}get member(){return this.guild.members.get(this.id)||null}get channel(){return this.guild.channels.get(this.channelID)||null}get deaf(){return this.serverDeaf||this.selfDeaf}get mute(){return this.serverMute||this.selfMute}get speaking(){return this.channel&&this.channel.connection?Boolean(this.channel.connection._speaking.get(this.id)):null}setMute(e,t){return this.member?this.member.edit({mute:e},t):Promise.reject(new Error("VOICE_STATE_UNCACHED_MEMBER"))}setDeaf(e,t){return this.member?this.member.edit({deaf:e},t):Promise.reject(new Error("VOICE_STATE_UNCACHED_MEMBER"))}toJSON(){return super.toJSON({id:!0,serverDeaf:!0,serverMute:!0,selfDeaf:!0,selfMute:!0,sessionID:!0,channelID:"channel"})}}},function(e,t,s){const i=s(6),n=s(2),r=s(27);e.exports=class MessageStore extends i{constructor(e,t){super(e.client,t,r),this.channel=e}add(e,t){return super.add(e,t,{extras:[this.channel]})}set(e,t){const s=this.client.options.messageCacheMaxSize;0!==s&&(this.size>=s&&s>0&&this.delete(this.firstKey()),super.set(e,t))}fetch(e){return"string"==typeof e?this._fetchId(e):this._fetchMany(e)}fetchPinned(){return this.client.api.channels[this.channel.id].pins.get().then(e=>{const t=new n;for(const s of e)t.set(s.id,this.add(s));return t})}async _fetchId(e){const t=await this.client.api.channels[this.channel.id].messages[e].get();return this.add(t)}async _fetchMany(e={}){const t=await this.client.api.channels[this.channel.id].messages.get({query:e}),s=new n;for(const e of t)s.set(e.id,this.add(e));return s}}},function(e,t){function s(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function r(e){return void 0===e}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._maxListeners=void 0,s.defaultMaxListeners=10,s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},s.prototype.emit=function(e){var t,s,a,o,l,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(r(s=this._events[e]))return!1;if(i(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),s.apply(this,o)}else if(n(s))for(o=Array.prototype.slice.call(arguments,1),a=(h=s.slice()).length,l=0;l<a;l++)h[l].apply(this,o);return!0},s.prototype.addListener=function(e,t){var a;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?n(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,n(this._events[e])&&!this._events[e].warned&&(a=r(this._maxListeners)?s.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},s.prototype.on=s.prototype.addListener,s.prototype.once=function(e,t){if(!i(t))throw TypeError("listener must be a function");var s=!1;function n(){this.removeListener(e,n),s||(s=!0,t.apply(this,arguments))}return n.listener=t,this.on(e,n),this},s.prototype.removeListener=function(e,t){var s,r,a,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(s=this._events[e]).length,r=-1,s===t||i(s.listener)&&s.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(s)){for(o=a;o-- >0;)if(s[o]===t||s[o].listener&&s[o].listener===t){r=o;break}if(r<0)return this;1===s.length?(s.length=0,delete this._events[e]):s.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},s.prototype.removeAllListeners=function(e){var t,s;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i(s=this._events[e]))this.removeListener(e,s);else if(s)for(;s.length;)this.removeListener(e,s[s.length-1]);return delete this._events[e],this},s.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},s.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},s.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,s){const{RangeError:i}=s(4);class BitField{constructor(e){this.bitfield=this.constructor.resolve(e)}equals(e){return this.bitfield===this.constructor.resolve(e)}has(e){return e instanceof Array?e.every(e=>this.has(e)):(e=this.constructor.resolve(e),(this.bitfield&e)===e)}missing(e,...t){return e instanceof Array||(e=new this.constructor(e).toArray(!1)),e.filter(e=>!this.has(e,...t))}freeze(){return Object.freeze(this)}add(...e){let t=0;for(const s of e)t|=this.constructor.resolve(s);return Object.isFrozen(this)?new this.constructor(this.bitfield|t):(this.bitfield|=t,this)}remove(...e){let t=0;for(const s of e)t|=this.constructor.resolve(s);return Object.isFrozen(this)?new this.constructor(this.bitfield&~t):(this.bitfield&=~t,this)}serialize(...e){const t={};for(const s in this.constructor.FLAGS)t[s]=this.has(s,...e);return t}toArray(...e){return Object.keys(this.constructor.FLAGS).filter(t=>this.has(t,...e))}toJSON(){return this.bitfield}valueOf(){return this.bitfield}*[Symbol.iterator](){yield*this.toArray()}static resolve(e=0){if("number"==typeof e&&e>=0)return e;if(e instanceof BitField)return e.bitfield;if(e instanceof Array)return e.map(e=>this.resolve(e)).reduce((e,t)=>e|t,0);if("string"==typeof e)return this.FLAGS[e];throw new i("BITFIELD_INVALID")}}BitField.FLAGS={},e.exports=BitField},function(e,t,s){const i=s(51),n=s(8),{Error:r}=s(4),a=s(32);class GuildEmoji extends a{constructor(e,t,s){super(e,t),this.guild=s,this._roles=[],this._patch(t)}_patch(e){e.name&&(this.name=e.name),void 0!==e.require_colons&&(this.requiresColons=e.require_colons),void 0!==e.managed&&(this.managed=e.managed),e.roles&&(this._roles=e.roles)}_clone(){const e=super._clone();return e._roles=this._roles.slice(),e}get deletable(){return!this.managed&&this.guild.me.hasPermission(n.FLAGS.MANAGE_EMOJIS)}get roles(){return new i(this)}fetchAuthor(){return this.managed?Promise.reject(new r("EMOJI_MANAGED")):this.guild.me.permissions.has(n.FLAGS.MANAGE_EMOJIS)?this.client.api.guilds(this.guild.id).emojis(this.id).get().then(e=>this.client.users.add(e.user)):Promise.reject(new r("MISSING_MANAGE_EMOJIS_PERMISSION",this.guild))}edit(e,t){const s=e.roles?e.roles.map(e=>e.id||e):void 0;return this.client.api.guilds(this.guild.id).emojis(this.id).patch({data:{name:e.name,roles:s},reason:t}).then(e=>{const t=this._clone();return t._patch(e),t})}setName(e,t){return this.edit({name:e},t)}delete(e){return this.client.api.guilds(this.guild.id).emojis(this.id).delete({reason:e}).then(()=>this)}equals(e){return e instanceof GuildEmoji?e.id===this.id&&e.name===this.name&&e.managed===this.managed&&e.requiresColons===this.requiresColons&&e.roles.size===this.roles.size&&e.roles.every(e=>this.roles.has(e.id)):e.id===this.id&&e.name===this.name&&e.roles.length===this.roles.size&&e.roles.every(e=>this.roles.has(e))}}e.exports=GuildEmoji},function(e,t,s){const i=s(10),n=s(34),r=s(35),{browser:a}=s(0),o=s(3),{RangeError:l}=s(4);class APIMessage{constructor(e,t){this.target=e,this.options=t,this.data=null,this.files=null}get isWebhook(){const e=s(11),t=s(36);return this.target instanceof e||this.target instanceof t}get isUser(){const e=s(16),t=s(13);return this.target instanceof e||this.target instanceof t}makeContent(){const e=s(13);let t=o.resolveString(null==this.options.content?"":this.options.content);const i=void 0!==this.options.split&&!1!==this.options.split,n=void 0!==this.options.code&&!1!==this.options.code,r=i?{...this.options.split}:void 0;let a="";if(this.options.reply&&!this.isUser&&"dm"!==this.target.type){const t=this.target.client.users.resolveID(this.options.reply);a=this.options.replyPrefixer?this.options.replyPrefixer(this.options.reply):this.target.client.options.replyPrefixer?this.target.client.options.replyPrefixer(this.options.reply):`<@${this.options.reply instanceof e&&this.options.reply.nickname?"!":""}${t}>, `,i&&(r.prepend=`${a}${r.prepend||""}`)}if(t||a){if(n){const e="string"==typeof this.options.code?this.options.code:"";t=`${a}\`\`\`${e}\n${o.escapeMarkdown(t,!0)}\n\`\`\``,i&&(r.prepend=`${r.prepend||""}\`\`\`${e}\n`,r.append=`\n\`\`\`${r.append||""}`)}else a&&(t=`${a}${t}`);(void 0===this.options.disableEveryone?this.target.client.options.disableEveryone:this.options.disableEveryone)&&(t=t.replace(/@(everyone|here)/g,"@$1")),i&&(t=o.splitMessage(t,r))}return t}resolveData(){if(this.data)return this;const e=this.makeContent(),t=Boolean(this.options.tts);let s;if(void 0!==this.options.nonce&&(s=parseInt(this.options.nonce),isNaN(s)||s<0))throw new l("MESSAGE_NONCE_TYPE");const i=[];this.isWebhook?this.options.embeds&&i.push(...this.options.embeds):this.options.embed&&i.push(this.options.embed);const r=i.map(e=>new n(e)._apiTransform());let a,o;return this.isWebhook&&(a=this.options.username||this.target.name,this.options.avatarURL&&(o=this.options.avatarURL)),this.data={content:e,tts:t,nonce:s,embed:null===this.options.embed?null:r[0],embeds:r,username:a,avatar_url:o},this}async resolveFiles(){if(this.files)return this;const e=[];this.isWebhook?this.options.embeds&&e.push(...this.options.embeds):this.options.embed&&e.push(this.options.embed);const t=[];this.options.files&&t.push(...this.options.files);for(const s of e)s.files&&t.push(...s.files);return this.files=await Promise.all(t.map(e=>this.constructor.resolveFile(e))),this}split(){if(this.data||this.resolveData(),!(this.data.content instanceof Array))return[this];const e=[];for(let t=0;t<this.data.content.length;t++){let s,i;t===this.data.content.length-1?(s={...this.data,content:this.data.content[t]},i={...this.options,content:this.data.content[t]}):(s={content:this.data.content[t],tts:this.data.tts},i={content:this.data.content[t],tts:this.data.tts});const n=new APIMessage(this.target,i);n.data=s,e.push(n)}return e}static async resolveFile(e){let t,s;const n=e=>"string"==typeof e?o.basename(e):e.path?o.basename(e.path):"file.jpg";return"string"==typeof e||e instanceof(a?ArrayBuffer:Buffer)||"function"==typeof e.pipe?s=n(t=e):(t=e.attachment,s=e.name||n(t)),{attachment:t,name:s,file:await i.resolveFile(t)}}static partitionMessageAdditions(e){const t=[],s=[];for(const i of e)i instanceof n?t.push(i):i instanceof r&&s.push(i);return[t,s]}static transformOptions(e,t,s={},i=!1){if(t||"object"!=typeof e||e instanceof Array||(t=e,e=""),t){if(t instanceof n)return i?{content:e,embeds:[t],...s}:{content:e,embed:t,...s};if(t instanceof r)return{content:e,files:[t],...s}}else t={};if(t instanceof Array){const[n,r]=this.partitionMessageAdditions(t);return i?{content:e,embeds:n,files:r,...s}:{content:e,embed:n[0],files:r,...s}}if(e instanceof Array){const[t,n]=this.partitionMessageAdditions(e);if(t.length||n.length)return i?{embeds:t,files:n,...s}:{embed:t[0],files:n,...s}}return{content:e,...t,...s}}static create(e,t,i,n={}){const r=s(11),a=s(36),o=e instanceof r||e instanceof a;return new this(e,this.transformOptions(t,i,n,o))}}e.exports=APIMessage},function(e,t,s){const i=s(56),n=s(35),r=s(34),a=s(57),o=s(37),l=s(3),h=s(2),c=s(98),{MessageTypes:d}=s(0),u=s(8),p=s(7),{Error:m,TypeError:f}=s(4),_=s(26);e.exports=class Message extends p{constructor(e,t,s){super(e),this.channel=s,this.deleted=!1,t&&this._patch(t)}_patch(e){this.id=e.id,this.type=d[e.type],this.content=e.content,this.author=this.client.users.add(e.author,!e.webhook_id),this.pinned=e.pinned,this.tts=e.tts,this.nonce=e.nonce,this.system=6===e.type,this.embeds=e.embeds.map(e=>new r(e)),this.attachments=new h;for(const t of e.attachments)this.attachments.set(t.id,new n(t.url,t.filename,t));if(this.createdTimestamp=new Date(e.timestamp).getTime(),this.editedTimestamp=e.edited_timestamp?new Date(e.edited_timestamp).getTime():null,this.reactions=new c(this),e.reactions&&e.reactions.length>0)for(const t of e.reactions)this.reactions.add(t);this.mentions=new i(this,e.mentions,e.mention_roles,e.mention_everyone),this.webhookID=e.webhook_id||null,this.application=e.application?new o(this.client,e.application):null,this.activity=e.activity?{partyID:e.activity.party_id,type:e.activity.type}:null,this.hit="boolean"==typeof e.hit?e.hit:null,this._edits=[],this.member&&e.member?this.member._patch(e.member):e.member&&this.guild&&this.author&&this.guild.members.add(Object.assign(e.member,{user:this.author}))}patch(e){const t=this._clone();if(this._edits.unshift(t),this.editedTimestamp=new Date(e.edited_timestamp).getTime(),"content"in e&&(this.content=e.content),"pinned"in e&&(this.pinned=e.pinned),"tts"in e&&(this.tts=e.tts),this.embeds="embeds"in e?e.embeds.map(e=>new r(e)):this.embeds.slice(),"attachments"in e){this.attachments=new h;for(const t of e.attachments)this.attachments.set(t.id,new n(t.url,t.filename,t))}else this.attachments=new h(this.attachments);this.mentions=new i(this,"mentions"in e?e.mentions:this.mentions.users,"mentions_roles"in e?e.mentions_roles:this.mentions.roles,"mention_everyone"in e?e.mention_everyone:this.mentions.everyone)}get member(){return this.guild&&this.guild.member(this.author)||null}get createdAt(){return new Date(this.createdTimestamp)}get editedAt(){return this.editedTimestamp?new Date(this.editedTimestamp):null}get guild(){return this.channel.guild||null}get url(){return`https://discordapp.com/channels/${this.guild?this.guild.id:"@me"}/${this.channel.id}/${this.id}`}get cleanContent(){return l.cleanContent(this.content,this)}createReactionCollector(e,t={}){return new a(this,e,t)}awaitReactions(e,t={}){return new Promise((s,i)=>{this.createReactionCollector(e,t).once("end",(e,n)=>{t.errors&&t.errors.includes(n)?i(e):s(e)})})}get edits(){const e=this._edits.slice();return e.unshift(this),e}get editable(){return this.author.id===this.client.user.id}get deletable(){return!this.deleted&&(this.author.id===this.client.user.id||this.guild&&this.channel.permissionsFor(this.client.user).has(u.FLAGS.MANAGE_MESSAGES,!1))}get pinnable(){return!this.guild||this.channel.permissionsFor(this.client.user).has(u.FLAGS.MANAGE_MESSAGES,!1)}edit(e,t){const{data:s}=e instanceof _?e.resolveData():_.create(this,e,t).resolveData();return this.client.api.channels[this.channel.id].messages[this.id].patch({data:s}).then(e=>{const t=this._clone();return t._patch(e),t})}pin(){return this.client.api.channels(this.channel.id).pins(this.id).put().then(()=>this)}unpin(){return this.client.api.channels(this.channel.id).pins(this.id).delete().then(()=>this)}react(e){if(!(e=this.client.emojis.resolveIdentifier(e)))throw new f("EMOJI_TYPE");return this.client.api.channels(this.channel.id).messages(this.id).reactions(e,"@me").put().then(()=>this.client.actions.MessageReactionAdd.handle({user:this.client.user,channel:this.channel,message:this,emoji:l.parseEmoji(e)}).reaction)}delete({timeout:e=0,reason:t}={}){return e<=0?this.client.api.channels(this.channel.id).messages(this.id).delete({reason:t}).then(()=>this.client.actions.MessageDelete.handle({id:this.id,channel_id:this.channel.id}).message):new Promise(s=>{this.client.setTimeout(()=>{s(this.delete({reason:t}))},e)})}reply(e,t){return this.channel.send(e instanceof _?e:_.transformOptions(e,t,{reply:this.member||this.author}))}fetchWebhook(){return this.webhookID?this.client.fetchWebhook(this.webhookID):Promise.reject(new m("WEBHOOK_MESSAGE"))}equals(e,t){if(!e)return!1;if(!e.author&&!e.attachments)return this.id===e.id&&this.embeds.length===e.embeds.length;let s=this.id===e.id&&this.author.id===e.author.id&&this.content===e.content&&this.tts===e.tts&&this.nonce===e.nonce&&this.embeds.length===e.embeds.length&&this.attachments.length===e.attachments.length;return s&&t&&(s=this.mentions.everyone===e.mentions.everyone&&this.createdTimestamp===new Date(t.timestamp).getTime()&&this.editedTimestamp===new Date(t.edited_timestamp).getTime()),s}toString(){return this.content}toJSON(){return super.toJSON({channel:"channelID",author:"authorID",application:"applicationID",guild:"guildID",cleanContent:!0,member:!1,reactions:!1})}}},function(e,t,s){const{Endpoints:i}=s(0),n=s(7);e.exports=class Invite extends n{constructor(e,t){super(e),this._patch(t)}_patch(e){this.guild=e.guild?this.client.guilds.add(e.guild,!1):null,this.code=e.code,this.presenceCount="approximate_presence_count"in e?e.approximate_presence_count:null,this.memberCount="approximate_member_count"in e?e.approximate_member_count:null,this.temporary="temporary"in e?e.temporary:null,this.maxAge="max_age"in e?e.max_age:null,this.uses="uses"in e?e.uses:null,this.maxUses="max_uses"in e?e.max_uses:null,this.inviter=e.inviter?this.client.users.add(e.inviter):null,this.channel=this.client.channels.add(e.channel,this.guild,!1),this.createdTimestamp="created_at"in e?new Date(e.created_at).getTime():null}get createdAt(){return this.createdTimestamp?new Date(this.createdTimestamp):null}get expiresTimestamp(){return this.createdTimestamp&&this.maxAge?this.createdTimestamp+1e3*this.maxAge:null}get expiresAt(){const{expiresTimestamp:e}=this;return e?new Date(e):null}get url(){return i.invite(this.client.options.http.invite,this.code)}delete(e){return this.client.api.invites[this.code].delete({reason:e}).then(()=>this)}toString(){return this.url}toJSON(){return super.toJSON({url:!0,expiresTimestamp:!0,presenceCount:!1,memberCount:!1,uses:!1,channel:"channelID",inviter:"inviterID",guild:"guildID"})}}},function(e,t,s){"use strict";e.exports=t=self.fetch,t.default=self.fetch.bind(self),t.Headers=self.Headers,t.Request=self.Request,t.Response=self.Response},function(e,t){},function(e,t,s){const i=s(23),n=s(82),r=s(3),{DefaultOptions:a}=s(0);e.exports=class BaseClient extends i{constructor(e={}){super(),this._timeouts=new Set,this._intervals=new Set,this.options=r.mergeDefault(a,e),this.rest=new n(this,e._tokenType)}get api(){return this.rest.api}destroy(){for(const e of this._timeouts)clearTimeout(e);for(const e of this._intervals)clearInterval(e);this._timeouts.clear(),this._intervals.clear()}setTimeout(e,t,...s){const i=setTimeout(()=>{e(...s),this._timeouts.delete(i)},t);return this._timeouts.add(i),i}clearTimeout(e){clearTimeout(e),this._timeouts.delete(e)}setInterval(e,t,...s){const i=setInterval(e,t,...s);return this._intervals.add(i),i}clearInterval(e){clearInterval(e),this._intervals.delete(e)}toJSON(...e){return r.flatten(this,{domain:!1},...e)}}},function(e,t,s){const i=s(9),n=s(7);e.exports=class Emoji extends n{constructor(e,t){super(e),this.animated=t.animated,this.name=t.name,this.id=t.id,this.deleted=!1}get identifier(){return this.id?`${this.animated?"a:":""}${this.name}:${this.id}`:encodeURIComponent(this.name)}get url(){return this.id?this.client.rest.cdn.Emoji(this.id,this.animated?"gif":"png"):null}get createdTimestamp(){return this.id?i.deconstruct(this.id).timestamp:null}get createdAt(){return this.id?new Date(this.createdTimestamp):null}toString(){return this.id?`<${this.animated?"a":""}:${this.name}:${this.id}>`:this.name}toJSON(){return super.toJSON({guild:"guildID",createdTimestamp:!0,url:!0,identifier:!0})}}},function(e,t,s){const i=s(2),n=s(3),r=s(23);e.exports=class Collector extends r{constructor(e,t,s={}){super(),Object.defineProperty(this,"client",{value:e}),this.filter=t,this.options=s,this.collected=new i,this.ended=!1,this._timeout=null,this.handleCollect=this.handleCollect.bind(this),this.handleDispose=this.handleDispose.bind(this),s.time&&(this._timeout=this.client.setTimeout(()=>this.stop("time"),s.time))}handleCollect(...e){const t=this.collect(...e);t&&this.filter(...e,this.collected)&&(this.collected.set(t,e[0]),this.emit("collect",...e)),this.checkEnd()}handleDispose(...e){if(!this.options.dispose)return;const t=this.dispose(...e);t&&this.filter(...e)&&this.collected.has(t)&&(this.collected.delete(t),this.emit("dispose",...e),this.checkEnd())}get next(){return new Promise((e,t)=>{if(this.ended)return void t(this.collected);const s=()=>{this.removeListener("collect",i),this.removeListener("end",n)},i=t=>{s(),e(t)},n=()=>{s(),t(this.collected)};this.on("collect",i),this.on("end",n)})}stop(e="user"){this.ended||(this._timeout&&this.client.clearTimeout(this._timeout),this.ended=!0,this.emit("end",this.collected,e))}checkEnd(){const e=this.endReason();e&&this.stop(e)}toJSON(){return n.flatten(this)}collect(){}dispose(){}endReason(){}}},function(e,t,s){const i=s(3),{RangeError:n}=s(4);e.exports=class MessageEmbed{constructor(e={}){this.setup(e)}setup(e){this.type=e.type,this.title=e.title,this.description=e.description,this.url=e.url,this.color=e.color,this.timestamp=e.timestamp?new Date(e.timestamp).getTime():null,this.fields=e.fields?e.fields.map(i.cloneObject):[],this.thumbnail=e.thumbnail?{url:e.thumbnail.url,proxyURL:e.thumbnail.proxy_url,height:e.thumbnail.height,width:e.thumbnail.width}:null,this.image=e.image?{url:e.image.url,proxyURL:e.image.proxy_url,height:e.image.height,width:e.image.width}:null,this.video=e.video,this.author=e.author?{name:e.author.name,url:e.author.url,iconURL:e.author.iconURL||e.author.icon_url,proxyIconURL:e.author.proxyIconUrl||e.author.proxy_icon_url}:null,this.provider=e.provider,this.footer=e.footer?{text:e.footer.text,iconURL:e.footer.iconURL||e.footer.icon_url,proxyIconURL:e.footer.proxyIconURL||e.footer.proxy_icon_url}:null,this.files=[],e.files&&(this.files=e.files)}get createdAt(){return this.timestamp?new Date(this.timestamp):null}get hexColor(){return this.color?`#${this.color.toString(16).padStart(6,"0")}`:null}addField(e,t,s){return this.fields.push(this.constructor.checkField(e,t,s)),this}addBlankField(e){return this.addField("","",e)}spliceField(e,t,s,i,n){return s&&i?this.fields.splice(e,t,this.constructor.checkField(s,i,n)):this.fields.splice(e,t),this}attachFiles(e){return this.files=this.files.concat(e),this}setAuthor(e,t,s){return this.author={name:i.resolveString(e),iconURL:t,url:s},this}setColor(e){return this.color=i.resolveColor(e),this}setDescription(e){return e=i.resolveString(e),this.description=e,this}setFooter(e,t){return e=i.resolveString(e),this.footer={text:e,iconURL:t},this}setImage(e){return this.image={url:e},this}setThumbnail(e){return this.thumbnail={url:e},this}setTimestamp(e=Date.now()){return e instanceof Date&&(e=e.getTime()),this.timestamp=e,this}setTitle(e){return e=i.resolveString(e),this.title=e,this}setURL(e){return this.url=e,this}toJSON(){return i.flatten(this,{hexColor:!0})}_apiTransform(){return{title:this.title,type:"rich",description:this.description,url:this.url,timestamp:this.timestamp?new Date(this.timestamp):null,color:this.color,fields:this.fields,thumbnail:this.thumbnail,image:this.image,author:this.author?{name:this.author.name,url:this.author.url,icon_url:this.author.iconURL}:null,footer:this.footer?{text:this.footer.text,icon_url:this.footer.iconURL}:null}}static checkField(e,t,s=!1){if(!(e=i.resolveString(e)))throw new n("EMBED_FIELD_NAME");if(!(t=i.resolveString(t)))throw new n("EMBED_FIELD_VALUE");return{name:e,value:t,inline:s}}}},function(e,t,s){const i=s(3);e.exports=class MessageAttachment{constructor(e,t=null,s){this.attachment=e,this.name=t,s&&this._patch(s)}setFile(e,t=null){return this.attachment=e,this.name=t,this}setName(e){return this.name=e,this}_patch(e){this.id=e.id,this.size=e.size,this.url=e.url,this.proxyURL=e.proxy_url,this.height=void 0!==e.height?e.height:null,this.width=void 0!==e.width?e.width:null}toJSON(){return i.flatten(this)}}},function(e,t,s){const i=s(11),n=s(31);class WebhookClient extends n{constructor(e,t,s){super(s),Object.defineProperty(this,"client",{value:this}),this.id=e,Object.defineProperty(this,"token",{value:t,writable:!0,configurable:!0})}}i.applyToClass(WebhookClient),e.exports=WebhookClient},function(e,t,s){const i=s(9),{ClientApplicationAssetTypes:n,Endpoints:r}=s(0),a=s(7),o=Object.keys(n);e.exports=class ClientApplication extends a{constructor(e,t){super(e),this._patch(t)}_patch(e){this.id=e.id,this.name=e.name,this.description=e.description,this.icon=e.icon,this.cover=e.cover_image||null,this.rpcOrigins=e.rpc_origins||[],this.botRequireCodeGrant=void 0!==e.bot_require_code_grant?e.bot_require_code_grant:null,this.botPublic=void 0!==e.bot_public?e.bot_public:null,this.owner=e.owner?this.client.users.add(e.owner):null}get createdTimestamp(){return i.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}iconURL({format:e,size:t}={}){return this.icon?this.client.rest.cdn.AppIcon(this.id,this.icon,{format:e,size:t}):null}coverImage({format:e,size:t}={}){return this.cover?r.CDN(this.client.options.http.cdn).AppIcon(this.id,this.cover,{format:e,size:t}):null}fetchAssets(){return this.client.api.oauth2.applications(this.id).assets.get().then(e=>e.map(e=>({id:e.id,name:e.name,type:o[e.type-1]})))}toString(){return this.name}toJSON(){return super.toJSON({createdTimestamp:!0})}}},function(e,t,s){const i=s(25),n=s(3),r=s(39),a=s(58);e.exports=class MessageReaction{constructor(e,t,s){this.message=s,this.me=t.me,this.count=t.count||0,this.users=new a(e,void 0,this),this._emoji=new r(this,t.emoji)}get emoji(){if(this._emoji instanceof i)return this._emoji;if(this._emoji.id){const e=this.message.client.emojis;if(e.has(this._emoji.id)){const t=e.get(this._emoji.id);return this._emoji=t,t}}return this._emoji}toJSON(){return n.flatten(this,{emoji:"emojiID",message:"messageID"})}_add(e){this.users.set(e.id,e),this.me&&e.id===this.message.client.user.id&&0!==this.count||this.count++,this.me||(this.me=e.id===this.message.client.user.id)}_remove(e){this.users.delete(e.id),this.me&&e.id===this.message.client.user.id||this.count--,e.id===this.message.client.user.id&&(this.me=!1),this.count<=0&&0===this.users.size&&this.message.reactions.remove(this.emoji.id||this.emoji.name)}}},function(e,t,s){const i=s(3),n=s(32);e.exports=class ReactionEmoji extends n{constructor(e,t){super(e.message.client,t),this.reaction=e}toJSON(){return i.flatten(this,{identifier:!0})}valueOf(){return this.id}}},function(e,t,s){const i=s(17),n=s(8),r=s(3),{TypeError:a}=s(4);e.exports=class PermissionOverwrites{constructor(e,t){Object.defineProperty(this,"channel",{value:e}),t&&this._patch(t)}_patch(e){this.id=e.id,this.type=e.type,this.deny=new n(e.deny).freeze(),this.allow=new n(e.allow).freeze()}update(e,t){const{allow:s,deny:i}=this.constructor.resolveOverwriteOptions(e,this);return this.channel.client.api.channels(this.channel.id).permissions[this.id].put({data:{id:this.id,type:this.type,allow:s.bitfield,deny:i.bitfield},reason:t}).then(()=>this)}delete(e){return this.channel.client.api.channels[this.channel.id].permissions[this.id].delete({reason:e}).then(()=>this)}toJSON(){return r.flatten(this)}static resolveOverwriteOptions(e,{allow:t,deny:s}={}){t=new n(t),s=new n(s);for(const[i,r]of Object.entries(e))!0===r?(t.add(n.FLAGS[i]),s.remove(n.FLAGS[i])):!1===r?(t.remove(n.FLAGS[i]),s.add(n.FLAGS[i])):null===r&&(t.remove(n.FLAGS[i]),s.remove(n.FLAGS[i]));return{allow:t,deny:s}}static resolve(e,t){if(e instanceof this)return e.toJSON();if("string"==typeof e.id&&["role","member"].includes(e.type))return{...e,allow:n.resolve(e.allow),deny:n.resolve(e.deny)};const s=t.roles.resolve(e.id)||t.client.users.resolve(e.id);if(!s)throw new a("INVALID_TYPE","parameter","User nor a Role",!0);const r=s instanceof i?"role":"member";return{id:s.id,type:r,allow:n.resolve(e.allow),deny:n.resolve(e.deny)}}}},function(e,t,s){const i=s(28),n=s(63),r=s(64),a=s(11),o=s(42),{ChannelTypes:l,DefaultMessageNotifications:h,browser:c}=s(0),d=s(2),u=s(3),p=s(10),m=s(9),f=s(65),_=s(66),g=s(43),E=s(67),v=s(68),b=s(99),w=s(7),{Error:y,TypeError:A}=s(4);e.exports=class Guild extends w{constructor(e,t){super(e),this.members=new f(this),this.channels=new E(this),this.roles=new _(this),this.presences=new v(this.client),this.deleted=!1,t&&(t.unavailable?(this.available=!1,this.id=t.id):(this._patch(t),t.channels||(this.available=!1)))}_patch(e){if(this.name=e.name,this.icon=e.icon,this.splash=e.splash,this.region=e.region,this.memberCount=e.member_count||this.memberCount,this.large=Boolean("large"in e?e.large:this.large),this.features=e.features,this.applicationID=e.application_id,this.afkTimeout=e.afk_timeout,this.afkChannelID=e.afk_channel_id,this.systemChannelID=e.system_channel_id,this.embedEnabled=e.embed_enabled,this.verificationLevel=e.verification_level,this.explicitContentFilter=e.explicit_content_filter,this.mfaLevel=e.mfa_level,this.joinedTimestamp=e.joined_at?new Date(e.joined_at).getTime():this.joinedTimestamp,this.defaultMessageNotifications=h[e.default_message_notifications]||e.default_message_notifications,this.id=e.id,this.available=!e.unavailable,this.features=e.features||this.features||[],e.channels){this.channels.clear();for(const t of e.channels)this.client.channels.add(t,this)}if(e.roles){this.roles.clear();for(const t of e.roles)this.roles.add(t)}if(e.members){this.members.clear();for(const t of e.members)this.members.add(t)}if(e.owner_id&&(this.ownerID=e.owner_id),e.presences)for(const t of e.presences)this.presences.add(Object.assign(t,{guild:this}));if(this.voiceStates||(this.voiceStates=new b(this)),e.voice_states)for(const t of e.voice_states)this.voiceStates.add(t);if(this.emojis)this.client.actions.GuildEmojisUpdate.handle({guild_id:this.id,emojis:e.emojis});else if(this.emojis=new g(this),e.emojis)for(const t of e.emojis)this.emojis.add(t)}get createdTimestamp(){return m.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}get joinedAt(){return new Date(this.joinedTimestamp)}get verified(){return this.features.includes("VERIFIED")}iconURL({format:e,size:t}={}){return this.icon?this.client.rest.cdn.Icon(this.id,this.icon,e,t):null}get nameAcronym(){return this.name.replace(/\w+/g,e=>e[0]).replace(/\s/g,"")}splashURL({format:e,size:t}={}){return this.splash?this.client.rest.cdn.Splash(this.id,this.splash,e,t):null}get owner(){return this.members.get(this.ownerID)||null}get afkChannel(){return this.client.channels.get(this.afkChannelID)||null}get systemChannel(){return this.client.channels.get(this.systemChannelID)||null}get voiceConnection(){return c?null:this.client.voice.connections.get(this.id)||null}get defaultRole(){return this.roles.get(this.id)||null}get me(){return this.members.get(this.client.user.id)||null}member(e){return this.members.resolve(e)}fetchBans(){return this.client.api.guilds(this.id).bans.get().then(e=>e.reduce((e,t)=>(e.set(t.user.id,{reason:t.reason,user:this.client.users.add(t.user)}),e),new d))}fetchIntegrations(){return this.client.api.guilds(this.id).integrations.get().then(e=>e.reduce((e,t)=>e.set(t.id,new n(this.client,t,this)),new d))}createIntegration(e,t){return this.client.api.guilds(this.id).integrations.post({data:e,reason:t}).then(()=>this)}fetchInvites(){return this.client.api.guilds(this.id).invites.get().then(e=>{const t=new d;for(const s of e){const e=new i(this.client,s);t.set(e.code,e)}return t})}fetchVanityCode(){return this.features.includes("VANITY_URL")?this.client.api.guilds(this.id,"vanity-url").get().then(e=>e.code):Promise.reject(new y("VANITY_URL"))}fetchWebhooks(){return this.client.api.guilds(this.id).webhooks.get().then(e=>{const t=new d;for(const s of e)t.set(s.id,new a(this.client,s));return t})}fetchVoiceRegions(){return this.client.api.guilds(this.id).regions.get().then(e=>{const t=new d;for(const s of e)t.set(s.id,new o(s));return t})}fetchEmbed(){return this.client.api.guilds(this.id).embed.get().then(e=>({enabled:e.enabled,channel:e.channel_id?this.channels.get(e.channel_id):null}))}fetchAuditLogs(e={}){return e.before&&e.before instanceof r.Entry&&(e.before=e.before.id),e.after&&e.after instanceof r.Entry&&(e.after=e.after.id),"string"==typeof e.type&&(e.type=r.Actions[e.type]),this.client.api.guilds(this.id)["audit-logs"].get({query:{before:e.before,after:e.after,limit:e.limit,user_id:this.client.users.resolveID(e.user),action_type:e.type}}).then(e=>r.build(this,e))}addMember(e,t){if(!(e=this.client.users.resolveID(e)))return Promise.reject(new A("INVALID_TYPE","user","UserResolvable"));if(this.members.has(e))return Promise.resolve(this.members.get(e));if(t.access_token=t.accessToken,t.roles){const e=[];for(let s of t.roles instanceof d?t.roles.values():t.roles){if(!(s=this.roles.resolve(s)))return Promise.reject(new A("INVALID_TYPE","options.roles","Array or Collection of Roles or Snowflakes",!0));e.push(s.id)}}return this.client.api.guilds(this.id).members(e).put({data:t}).then(e=>this.members.add(e))}edit(e,t){const s={};return e.name&&(s.name=e.name),e.region&&(s.region=e.region),void 0!==e.verificationLevel&&(s.verification_level=Number(e.verificationLevel)),void 0!==e.afkChannel&&(s.afk_channel_id=this.client.channels.resolveID(e.afkChannel)),void 0!==e.systemChannel&&(s.system_channel_id=this.client.channels.resolveID(e.systemChannel)),e.afkTimeout&&(s.afk_timeout=Number(e.afkTimeout)),void 0!==e.icon&&(s.icon=e.icon),e.owner&&(s.owner_id=this.client.users.resolve(e.owner).id),e.splash&&(s.splash=e.splash),void 0!==e.explicitContentFilter&&(s.explicit_content_filter=Number(e.explicitContentFilter)),void 0!==e.defaultMessageNotifications&&(s.default_message_notifications="string"==typeof e.defaultMessageNotifications?h.indexOf(e.defaultMessageNotifications):Number(e.defaultMessageNotifications)),this.client.api.guilds(this.id).patch({data:s,reason:t}).then(e=>this.client.actions.GuildUpdate.handle(e).updated)}setExplicitContentFilter(e,t){return this.edit({explicitContentFilter:e},t)}setDefaultMessageNotifications(e,t){return this.edit({defaultMessageNotifications:e},t)}setName(e,t){return this.edit({name:e},t)}setRegion(e,t){return this.edit({region:e},t)}setVerificationLevel(e,t){return this.edit({verificationLevel:e},t)}setAFKChannel(e,t){return this.edit({afkChannel:e},t)}setSystemChannel(e,t){return this.edit({systemChannel:e},t)}setAFKTimeout(e,t){return this.edit({afkTimeout:e},t)}async setIcon(e,t){return this.edit({icon:await p.resolveImage(e),reason:t})}setOwner(e,t){return this.edit({owner:e},t)}async setSplash(e,t){return this.edit({splash:await p.resolveImage(e),reason:t})}setChannelPositions(e){const t=e.map(e=>({id:this.client.channels.resolveID(e.channel),position:e.position}));return this.client.api.guilds(this.id).channels.patch({data:t}).then(()=>this.client.actions.GuildChannelsPositionUpdate.handle({guild_id:this.id,channels:t}).guild)}setEmbed(e,t){return this.client.api.guilds(this.id).embed.patch({data:{enabled:e.enabled,channel_id:this.channels.resolveID(e.channel)},reason:t}).then(()=>this)}leave(){return this.ownerID===this.client.user.id?Promise.reject(new y("GUILD_OWNED")):this.client.api.users("@me").guilds(this.id).delete().then(()=>this.client.actions.GuildDelete.handle({id:this.id}).guild)}delete(){return this.client.api.guilds(this.id).delete().then(()=>this.client.actions.GuildDelete.handle({id:this.id}).guild)}equals(e){let t=e&&e instanceof this.constructor&&this.id===e.id&&this.available===e.available&&this.splash===e.splash&&this.region===e.region&&this.name===e.name&&this.memberCount===e.memberCount&&this.large===e.large&&this.icon===e.icon&&this.ownerID===e.ownerID&&this.verificationLevel===e.verificationLevel&&this.embedEnabled===e.embedEnabled&&(this.features===e.features||this.features.length===e.features.length&&this.features.every((t,s)=>t===e.features[s]));return t&&(this.embedChannel?e.embedChannel&&this.embedChannel.id===e.embedChannel.id||(t=!1):e.embedChannel&&(t=!1)),t}toString(){return this.name}toJSON(){const e=super.toJSON({available:!1,createdTimestamp:!0,nameAcronym:!0,presences:!1,voiceStates:!1});return e.iconURL=this.iconURL(),e.splashURL=this.splashURL(),e}_sortedRoles(){return u.discordSort(this.roles)}_sortedChannels(e){const t=e.type===l.CATEGORY;return u.discordSort(this.channels.filter(s=>s.type===e.type&&(t||s.parent===e.parent)))}}},function(e,t,s){const i=s(3);e.exports=class VoiceRegion{constructor(e){this.id=e.id,this.name=e.name,this.vip=e.vip,this.deprecated=e.deprecated,this.optimal=e.optimal,this.custom=e.custom}toJSON(){return i.flatten(this)}}},function(e,t,s){const i=s(2),n=s(6),r=s(25),a=s(39),o=s(10),{TypeError:l}=s(4);e.exports=class GuildEmojiStore extends n{constructor(e,t){super(e.client,t,r),this.guild=e}add(e,t){return super.add(e,t,{extras:[this.guild]})}create(e,t,{roles:s,reason:n}={}){if("string"==typeof e&&e.startsWith("data:")){const r={image:e,name:t};if(s){r.roles=[];for(let e of s instanceof i?s.values():s){if(!(e=this.guild.roles.resolve(e)))return Promise.reject(new l("INVALID_TYPE","options.roles","Array or Collection of Roles or Snowflakes",!0));r.roles.push(e.id)}}return this.client.api.guilds(this.guild.id).emojis.post({data:r,reason:n}).then(e=>this.client.actions.GuildEmojiCreate.handle(this.guild,e).emoji)}return o.resolveImage(e).then(e=>this.create(e,t,{roles:s,reason:n}))}resolve(e){return e instanceof a?super.resolve(e.id):super.resolve(e)}resolveID(e){return e instanceof a?e.id:super.resolveID(e)}resolveIdentifier(e){const t=this.resolve(e);return t?t.identifier:e instanceof a?e.identifier:"string"==typeof e?e.includes("%")?e:encodeURIComponent(e):null}}},function(e,t,s){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(e,t){var s,i,n=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(s===setTimeout)return setTimeout(e,0);if((s===r||!s)&&setTimeout)return s=setTimeout,setTimeout(e,0);try{return s(e,0)}catch(t){try{return s.call(null,e,0)}catch(t){return s.call(this,e,0)}}}!function(){try{s="function"==typeof setTimeout?setTimeout:r}catch(e){s=r}try{i="function"==typeof clearTimeout?clearTimeout:a}catch(e){i=a}}();var l,h=[],c=!1,d=-1;function u(){c&&l&&(c=!1,l.length?h=l.concat(h):d=-1,h.length&&p())}function p(){if(!c){var e=o(u);c=!0;for(var t=h.length;t;){for(l=h,h=[];++d<t;)l&&l[d].run();d=-1,t=h.length}l=null,c=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===a||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function f(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var s=1;s<arguments.length;s++)t[s-1]=arguments[s];h.push(new m(e,t)),1!==h.length||c||o(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=f,n.addListener=f,n.once=f,n.off=f,n.removeListener=f,n.removeAllListeners=f,n.emit=f,n.prependListener=f,n.prependOnceListener=f,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},function(e,t){e.exports={version:"12.0.0-dev",homepage:"https://github.com/discordjs/discord.js#readme"}},function(e,t){const s=Symbol("code"),i=new Map;function n(e){return class DiscordjsError extends e{constructor(e,...t){super(function(e,t){if("string"!=typeof e)throw new Error("Error message key must be a string");const s=i.get(e);if(!s)throw new Error(`An invalid error message key was used: ${e}.`);return"function"==typeof s?s(...t):void 0===t||0===t.length?s:(t.unshift(s),String(...t))}(e,t)),this[s]=e,Error.captureStackTrace&&Error.captureStackTrace(this,DiscordjsError)}get name(){return`${super.name} [${this[s]}]`}get code(){return this[s]}}}e.exports={register:function(e,t){i.set(e,"function"==typeof t?t:String(t))},Error:n(Error),TypeError:n(TypeError),RangeError:n(RangeError)}},function(e,t){e.exports=class DiscordAPIError extends Error{constructor(e,t,s){super();const i=this.constructor.flattenErrors(t.errors||t).join("\n");this.name="DiscordAPIError",this.message=t.message&&i?`${t.message}\n${i}`:t.message||i,this.method=s,this.path=e,this.code=t.code}static flattenErrors(e,t=""){let s=[];for(const[i,n]of Object.entries(e)){if("message"===i)continue;const e=t?isNaN(i)?`${t}.${i}`:`${t}[${i}]`:i;n._errors?s.push(`${e}: ${n._errors.map(e=>e.message).join(" ")}`):n.code||n.message?s.push(`${n.code?`${n.code}: `:""}${n.message}`.trim()):"string"==typeof n?s.push(n):s=s.concat(this.flattenErrors(n,e))}return s}}},function(e,t,s){"use strict";t.decode=t.parse=s(86),t.encode=t.stringify=s(87)},function(e,t,s){const i=s(19),n=s(10);e.exports=class ClientUser extends(i.get("User")){_patch(e){super._patch(e),this.verified=e.verified,this._typing=new Map,this.mfaEnabled="boolean"==typeof e.mfa_enabled?e.mfa_enabled:null,e.token&&(this.client.token=e.token)}get presence(){return this.client.presence}edit(e){return this.client.api.users("@me").patch({data:e}).then(e=>(this.client.token=e.token,this.client.actions.UserUpdate.handle(e).updated))}setUsername(e){return this.edit({username:e})}async setAvatar(e){return this.edit({avatar:await n.resolveImage(e)})}setPresence(e){return this.client.presence.set(e)}setStatus(e){return this.setPresence({status:e})}setActivity(e,t={}){if(!e)return this.setPresence({activity:null});const s=Object.assign({},t,"object"==typeof e?e:{name:e});return this.setPresence({activity:s})}setAFK(e){return this.setPresence({afk:e})}createGroupDM(e){const t=this.bot?{access_tokens:e.map(e=>e.accessToken),nicks:e.reduce((e,t)=>(t.nick&&(e[t.user?t.user.id:t.id]=t.nick),e),{})}:{recipients:e.map(e=>this.client.users.resolveID(e.user||e.id))};return this.client.api.users("@me").channels.post({data:t}).then(e=>this.client.channels.add(e))}}},function(e,t,s){const i=s(2),n=s(3),{TypeError:r}=s(4);class GuildEmojiRoleStore extends i{constructor(e){super(),this.emoji=e,this.guild=e.guild,Object.defineProperty(this,"client",{value:e.client})}get _filtered(){return this.guild.roles.filter(e=>this.emoji._roles.includes(e.id))}add(e){if(e instanceof i)return this.add(e.keyArray());if(!(e instanceof Array))return this.add([e]);if((e=e.map(e=>this.guild.roles.resolve(e))).includes(null))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));const t=[...new Set(e.concat(...this.values()))];return this.set(t)}remove(e){if(e instanceof i)return this.remove(e.keyArray());if(!(e instanceof Array))return this.remove([e]);if((e=e.map(e=>this.guild.roles.resolveID(e))).includes(null))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));const t=this.keyArray().filter(t=>!e.includes(t));return this.set(t)}set(e){return this.emoji.edit({roles:e})}clone(){const e=new this.constructor(this.emoji);return e._patch(this.keyArray().slice()),e}_patch(e){this.emoji._roles=e}*[Symbol.iterator](){yield*this._filtered.entries()}valueOf(){return this._filtered}}n.mixin(GuildEmojiRoleStore,["set"]),e.exports=GuildEmojiRoleStore},function(e,t,s){const i=s(15),n=s(20),r=s(22);class DMChannel extends i{constructor(e,t){super(e,t),this.messages=new r(this),this._typing=new Map}_patch(e){super._patch(e),this.recipient=this.client.users.add(e.recipients[0]),this.lastMessageID=e.last_message_id,this.lastPinTimestamp=e.last_pin_timestamp?new Date(e.last_pin_timestamp).getTime():null}toString(){return this.recipient.toString()}get lastMessage(){}get lastPinAt(){}send(){}search(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createMessageCollector(){}awaitMessages(){}acknowledge(){}_cacheMessage(){}}n.applyToClass(DMChannel,!0,["bulkDelete"]),e.exports=DMChannel},function(e,t,s){const i=s(33),{Events:n}=s(0);e.exports=class MessageCollector extends i{constructor(e,t,s={}){super(e.client,t,s),this.channel=e,this.received=0;const i=(e=>{for(const t of e.values())this.handleDispose(t)}).bind(this);this.client.setMaxListeners(this.client.getMaxListeners()+1),this.client.on(n.MESSAGE_CREATE,this.handleCollect),this.client.on(n.MESSAGE_DELETE,this.handleDispose),this.client.on(n.MESSAGE_BULK_DELETE,i),this.once("end",()=>{this.client.removeListener(n.MESSAGE_CREATE,this.handleCollect),this.client.removeListener(n.MESSAGE_DELETE,this.handleDispose),this.client.removeListener(n.MESSAGE_BULK_DELETE,i),this.client.setMaxListeners(this.client.getMaxListeners()-1)})}collect(e){return e.channel.id!==this.channel.id?null:(this.received++,e.id)}dispose(e){return e.channel.id===this.channel.id?e.id:null}endReason(){return this.options.max&&this.collected.size>=this.options.max?"limit":this.options.maxProcessed&&this.received===this.options.maxProcessed?"processedLimit":null}}},function(e,t,s){const i=s(24);class ActivityFlags extends i{}ActivityFlags.FLAGS={INSTANCE:1,JOIN:2,SPECTATE:4,JOIN_REQUEST:8,SYNC:16,PLAY:32},e.exports=ActivityFlags},function(e,t,s){const i=s(2),n=s(3),{TypeError:r}=s(4);class GuildMemberRoleStore extends i{constructor(e){super(),this.member=e,this.guild=e.guild,Object.defineProperty(this,"client",{value:e.client})}get _filtered(){const e=this.guild.defaultRole;return this.guild.roles.filter(e=>this.member._roles.includes(e.id)).set(e.id,e)}get hoist(){const e=this._filtered.filter(e=>e.hoist);return e.size?e.reduce((e,t)=>!e||t.comparePositionTo(e)>0?t:e):null}get color(){const e=this._filtered.filter(e=>e.color);return e.size?e.reduce((e,t)=>!e||t.comparePositionTo(e)>0?t:e):null}get highest(){return this._filtered.reduce((e,t)=>t.comparePositionTo(e)>0?t:e,this.first())}async add(e,t){if(e instanceof i||e instanceof Array){if((e=e.map(e=>this.guild.roles.resolve(e))).includes(null))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));const s=[...new Set(e.concat(...this.values()))];return this.set(s,t)}{if(null===(e=this.guild.roles.resolve(e)))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));await this.client.api.guilds[this.guild.id].members[this.member.id].roles[e.id].put({reason:t});const s=this.member._clone();return s.roles._patch([...this.keys(),e.id]),s}}async remove(e,t){if(e instanceof i||e instanceof Array){if((e=e.map(e=>this.guild.roles.resolve(e))).includes(null))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));const s=this.filter(t=>!e.includes(t));return this.set(s,t)}{if(null===(e=this.guild.roles.resolve(e)))return Promise.reject(new r("INVALID_TYPE","roles","Array or Collection of Roles or Snowflakes",!0));await this.client.api.guilds[this.guild.id].members[this.member.id].roles[e.id].delete({reason:t});const s=this.member._clone(),i=this.filter(t=>t.id!==e.id);return s.roles._patch([...i.keys()]),s}}set(e,t){return this.member.edit({roles:e},t)}_patch(e){this.member._roles=e}clone(){const e=new this.constructor(this.member);return e._patch(this.keyArray()),e}*[Symbol.iterator](){yield*this._filtered.entries()}valueOf(){return this._filtered}}n.mixin(GuildMemberRoleStore,["set"]),e.exports=GuildMemberRoleStore},function(e,t,s){const i=s(2),n=s(3),r=s(13);class MessageMentions{constructor(e,t,s,n){if(Object.defineProperty(this,"client",{value:e.client}),Object.defineProperty(this,"guild",{value:e.guild}),Object.defineProperty(this,"_content",{value:e.content}),this.everyone=Boolean(n),t)if(t instanceof i)this.users=new i(t);else{this.users=new i;for(const s of t){let t=e.client.users.add(s);this.users.set(t.id,t)}}else this.users=new i;if(s)if(s instanceof i)this.roles=new i(s);else{this.roles=new i;for(const t of s){const s=e.channel.guild.roles.get(t);s&&this.roles.set(s.id,s)}}else this.roles=new i;this._members=null,this._channels=null}get members(){return this._members?this._members:this.guild?(this._members=new i,this.users.forEach(e=>{const t=this.guild.member(e);t&&this._members.set(t.user.id,t)}),this._members):null}get channels(){if(this._channels)return this._channels;let e;for(this._channels=new i;null!==(e=this.constructor.CHANNELS_PATTERN.exec(this._content));){const t=this.client.channels.get(e[1]);t&&this._channels.set(t.id,t)}return this._channels}has(e,{ignoreDirect:t=!1,ignoreRoles:s=!1,ignoreEveryone:i=!1}={}){if(!i&&this.everyone)return!0;if(!s&&e instanceof r)for(const t of this.roles.values())if(e.roles.has(t.id))return!0;if(!t){const t=e.id||e;return this.users.has(t)||this.channels.has(t)||this.roles.has(t)}return!1}toJSON(){return n.flatten(this,{members:!0,channels:!0})}}MessageMentions.EVERYONE_PATTERN=/@(everyone|here)/g,MessageMentions.USERS_PATTERN=/<@!?(\d{17,19})>/g,MessageMentions.ROLES_PATTERN=/<@&(\d{17,19})>/g,MessageMentions.CHANNELS_PATTERN=/<#(\d{17,19})>/g,e.exports=MessageMentions},function(e,t,s){const i=s(33),n=s(2),{Events:r}=s(0);class ReactionCollector extends i{constructor(e,t,s={}){super(e.client,t,s),this.message=e,this.users=new n,this.total=0,this.empty=this.empty.bind(this),this.client.setMaxListeners(this.client.getMaxListeners()+1),this.client.on(r.MESSAGE_REACTION_ADD,this.handleCollect),this.client.on(r.MESSAGE_REACTION_REMOVE,this.handleDispose),this.client.on(r.MESSAGE_REACTION_REMOVE_ALL,this.empty),this.once("end",()=>{this.client.removeListener(r.MESSAGE_REACTION_ADD,this.handleCollect),this.client.removeListener(r.MESSAGE_REACTION_REMOVE,this.handleDispose),this.client.removeListener(r.MESSAGE_REACTION_REMOVE_ALL,this.empty),this.client.setMaxListeners(this.client.getMaxListeners()-1)}),this.on("collect",(e,t)=>{this.total++,this.users.set(t.id,t)}),this.on("remove",(e,t)=>{this.total--,this.collected.some(e=>e.users.has(t.id))||this.users.delete(t.id)})}collect(e){return e.message.id!==this.message.id?null:ReactionCollector.key(e)}dispose(e,t){return e.message.id!==this.message.id?null:(this.collected.has(ReactionCollector.key(e))&&this.users.has(t.id)&&this.emit("remove",e,t),e.count?null:ReactionCollector.key(e))}empty(){this.total=0,this.collected.clear(),this.users.clear(),this.checkEnd()}endReason(){return this.options.max&&this.total>=this.options.max?"limit":this.options.maxEmojis&&this.collected.size>=this.options.maxEmojis?"emojiLimit":this.options.maxUsers&&this.users.size>=this.options.maxUsers?"userLimit":null}static key(e){return e.emoji.id||e.emoji.name}}e.exports=ReactionCollector},function(e,t,s){const i=s(2),n=s(6),{Error:r}=s(4);e.exports=class ReactionUserStore extends n{constructor(e,t,i){super(e,t,s(16)),this.reaction=i}async fetch({limit:e=100,after:t,before:s}={}){const n=this.reaction.message,r=await this.client.api.channels[n.channel.id].messages[n.id].reactions[this.reaction.emoji.identifier].get({query:{limit:e,before:s,after:t}}),a=new i;for(const e of r){const t=this.client.users.add(e);this.set(t.id,t),a.set(t.id,t)}return a}remove(e=this.reaction.message.client.user){const t=this.reaction.message,s=t.client.users.resolveID(e);return s?t.client.api.channels[t.channel.id].messages[t.id].reactions[this.reaction.emoji.identifier][s===t.client.user.id?"@me":s].delete().then(()=>t.client.actions.MessageReactionRemove.handle({user_id:s,message_id:t.id,emoji:this.reaction.emoji,channel_id:t.channel.id}).reaction):Promise.reject(new r("REACTION_RESOLVE_USER"))}}},function(e,t,s){const i=s(15),n=s(20),r=s(2),a=s(10),o=s(22);class GroupDMChannel extends i{constructor(e,t){super(e,t),this.messages=new o(this),this._typing=new Map}_patch(e){if(super._patch(e),this.name=e.name,this.icon=e.icon,this.ownerID=e.owner_id,this.managed=e.managed,this.applicationID=e.application_id,e.nicks&&(this.nicks=new r(e.nicks.map(e=>[e.id,e.nick]))),this.recipients||(this.recipients=new r),e.recipients)for(const t of e.recipients){const e=this.client.users.add(t);this.recipients.set(e.id,e)}this.lastMessageID=e.last_message_id,this.lastPinTimestamp=e.last_pin_timestamp?new Date(e.last_pin_timestamp).getTime():null}get owner(){return this.client.users.get(this.ownerID)||null}iconURL({format:e,size:t}={}){return this.icon?this.client.rest.cdn.GDMIcon(this.id,this.icon,e,t):null}equals(e){const t=e&&this.id===e.id&&this.name===e.name&&this.icon===e.icon&&this.ownerID===e.ownerID;return t?this.recipients.equals(e.recipients):t}edit(e,t){return this.client.api.channels[this.id].patch({data:{icon:e.icon,name:null===e.name?null:e.name||this.name},reason:t}).then(()=>this)}async setIcon(e){return this.edit({icon:await a.resolveImage(e)})}setName(e){return this.edit({name:e})}addUser({user:e,accessToken:t,nick:s}){const i=this.client.users.resolveID(e);return this.client.api.channels[this.id].recipients[i].put({nick:s,access_token:t}).then(()=>this)}removeUser(e){const t=this.client.users.resolveID(e);return this.client.api.channels[this.id].recipients[t].delete().then(()=>this)}toString(){return this.name}get lastMessage(){}get lastPinAt(){}send(){}search(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createMessageCollector(){}awaitMessages(){}acknowledge(){}_cacheMessage(){}}n.applyToClass(GroupDMChannel,!0,["bulkDelete"]),e.exports=GroupDMChannel},function(e,t,s){const i=s(18),n=s(11),r=s(20),a=s(2),o=s(10),l=s(22);class TextChannel extends i{constructor(e,t){super(e,t),this.messages=new l(this),this._typing=new Map}_patch(e){if(super._patch(e),this.topic=e.topic,this.nsfw=e.nsfw||/^nsfw(-|$)/.test(this.name),this.lastMessageID=e.last_message_id,this.rateLimitPerUser=e.rate_limit_per_user||0,this.lastPinTimestamp=e.last_pin_timestamp?new Date(e.last_pin_timestamp).getTime():null,e.messages)for(const t of e.messages)this.messages.add(t)}setRateLimitPerUser(e,t){return this.edit({rateLimitPerUser:e},t)}setNSFW(e,t){return this.edit({nsfw:e},t)}fetchWebhooks(){return this.client.api.channels[this.id].webhooks.get().then(e=>{const t=new a;for(const s of e)t.set(s.id,new n(this.client,s));return t})}async createWebhook(e,{avatar:t,reason:s}={}){return"string"!=typeof t||t.startsWith("data:")||(t=await o.resolveImage(t)),this.client.api.channels[this.id].webhooks.post({data:{name:e,avatar:t},reason:s}).then(e=>new n(this.client,e))}get lastMessage(){}get lastPinAt(){}send(){}search(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createMessageCollector(){}awaitMessages(){}bulkDelete(){}acknowledge(){}_cacheMessage(){}}r.applyToClass(TextChannel,!0),e.exports=TextChannel},function(e,t,s){const i=s(18),{browser:n}=s(0),r=s(8),a=s(2),{Error:o}=s(4);e.exports=class VoiceChannel extends i{_patch(e){super._patch(e),this.bitrate=e.bitrate,this.userLimit=e.user_limit}get members(){const e=new a;for(const t of this.guild.voiceStates.values())t.channelID===this.id&&t.member&&e.set(t.id,t.member);return e}get connection(){const e=this.guild.voiceConnection;return e&&e.channel.id===this.id?e:null}get full(){return this.userLimit>0&&this.members.size>=this.userLimit}get deletable(){return super.deletable&&this.permissionsFor(this.client.user).has(r.FLAGS.CONNECT,!1)}get joinable(){return!(n||!this.permissionsFor(this.client.user).has("CONNECT",!1)||this.full&&!this.permissionsFor(this.client.user).has("MOVE_MEMBERS",!1))}get speakable(){return this.permissionsFor(this.client.user).has("SPEAK",!1)}setBitrate(e,t){return this.edit({bitrate:e},t)}setUserLimit(e,t){return this.edit({userLimit:e},t)}join(){return n?Promise.reject(new o("VOICE_NO_BROWSER")):this.client.voice.joinChannel(this)}leave(){if(n)return;const e=this.client.voice.connections.get(this.guild.id);e&&e.channel.id===this.id&&e.disconnect()}}},function(e,t,s){const i=s(18);e.exports=class CategoryChannel extends i{get children(){return this.guild.channels.filter(e=>e.parentID===this.id)}}},function(e,t,s){const i=s(7);e.exports=class Integration extends i{constructor(e,t,s){super(e),this.guild=s,this.id=t.id,this.name=t.name,this.type=t.type,this.enabled=t.enabled,this.syncing=t.syncing,this.role=this.guild.roles.get(t.role_id),this.user=this.client.users.add(t.user),this.account=t.account,this.syncedAt=t.synced_at,this._patch(t)}_patch(e){this.expireBehavior=e.expire_behavior,this.expireGracePeriod=e.expire_grace_period}sync(){return this.syncing=!0,this.client.api.guilds(this.guild.id).integrations(this.id).post().then(()=>(this.syncing=!1,this.syncedAt=Date.now(),this))}edit(e,t){return"expireBehavior"in e&&(e.expire_behavior=e.expireBehavior,e.expireBehavior=null),"expireGracePeriod"in e&&(e.expire_grace_period=e.expireGracePeriod,e.expireGracePeriod=null),this.client.api.guilds(this.guild.id).integrations(this.id).patch({data:e,reason:t}).then(()=>(this._patch(e),this))}delete(e){return this.client.api.guilds(this.guild.id).integrations(this.id).delete({reason:e}).then(()=>this)}toJSON(){return super.toJSON({role:"roleID",guild:"guildID",user:"userID"})}}},function(e,t,s){const i=s(2),n=s(9),r=s(11),a=s(3),o={ALL:"ALL",GUILD:"GUILD",CHANNEL:"CHANNEL",USER:"USER",ROLE:"ROLE",INVITE:"INVITE",WEBHOOK:"WEBHOOK",EMOJI:"EMOJI",MESSAGE:"MESSAGE",UNKNOWN:"UNKNOWN"},l={ALL:null,GUILD_UPDATE:1,CHANNEL_CREATE:10,CHANNEL_UPDATE:11,CHANNEL_DELETE:12,CHANNEL_OVERWRITE_CREATE:13,CHANNEL_OVERWRITE_UPDATE:14,CHANNEL_OVERWRITE_DELETE:15,MEMBER_KICK:20,MEMBER_PRUNE:21,MEMBER_BAN_ADD:22,MEMBER_BAN_REMOVE:23,MEMBER_UPDATE:24,MEMBER_ROLE_UPDATE:25,ROLE_CREATE:30,ROLE_UPDATE:31,ROLE_DELETE:32,INVITE_CREATE:40,INVITE_UPDATE:41,INVITE_DELETE:42,WEBHOOK_CREATE:50,WEBHOOK_UPDATE:51,WEBHOOK_DELETE:52,EMOJI_CREATE:60,EMOJI_UPDATE:61,EMOJI_DELETE:62,MESSAGE_DELETE:72};class GuildAuditLogs{constructor(e,t){if(t.users)for(const s of t.users)e.client.users.add(s);if(this.webhooks=new i,t.webhooks)for(const s of t.webhooks)this.webhooks.set(s.id,new r(e.client,s));this.entries=new i;for(const s of t.audit_log_entries){const t=new GuildAuditLogsEntry(this,e,s);this.entries.set(t.id,t)}}static build(...e){const t=new GuildAuditLogs(...e);return Promise.all(t.entries.map(e=>e.target)).then(()=>t)}static targetType(e){return e<10?o.GUILD:e<20?o.CHANNEL:e<30?o.USER:e<40?o.ROLE:e<50?o.INVITE:e<60?o.WEBHOOK:e<70?o.EMOJI:e<80?o.MESSAGE:o.UNKNOWN}static actionType(e){return[l.CHANNEL_CREATE,l.CHANNEL_OVERWRITE_CREATE,l.MEMBER_BAN_REMOVE,l.ROLE_CREATE,l.INVITE_CREATE,l.WEBHOOK_CREATE,l.EMOJI_CREATE].includes(e)?"CREATE":[l.CHANNEL_DELETE,l.CHANNEL_OVERWRITE_DELETE,l.MEMBER_KICK,l.MEMBER_PRUNE,l.MEMBER_BAN_ADD,l.ROLE_DELETE,l.INVITE_DELETE,l.WEBHOOK_DELETE,l.EMOJI_DELETE,l.MESSAGE_DELETE].includes(e)?"DELETE":[l.GUILD_UPDATE,l.CHANNEL_UPDATE,l.CHANNEL_OVERWRITE_UPDATE,l.MEMBER_UPDATE,l.MEMBER_ROLE_UPDATE,l.ROLE_UPDATE,l.INVITE_UPDATE,l.WEBHOOK_UPDATE,l.EMOJI_UPDATE].includes(e)?"UPDATE":"ALL"}toJSON(){return a.flatten(this)}}class GuildAuditLogsEntry{constructor(e,t,s){const i=GuildAuditLogs.targetType(s.action_type);if(this.targetType=i,this.actionType=GuildAuditLogs.actionType(s.action_type),this.action=Object.keys(l).find(e=>l[e]===s.action_type),this.reason=s.reason||null,this.executor=t.client.users.get(s.user_id),this.changes=s.changes?s.changes.map(e=>({key:e.key,old:e.old_value,new:e.new_value})):null,this.id=s.id,this.extra=null,s.options)if(s.action_type===l.MEMBER_PRUNE)this.extra={removed:s.options.members_removed,days:s.options.delete_member_days};else if(s.action_type===l.MESSAGE_DELETE)this.extra={count:s.options.count,channel:t.channels.get(s.options.channel_id)};else switch(s.options.type){case"member":this.extra=t.members.get(s.options.id),this.extra||(this.extra={id:s.options.id});break;case"role":this.extra=t.roles.get(s.options.id),this.extra||(this.extra={id:s.options.id,name:s.options.role_name})}if(i===o.UNKNOWN)this.target=this.changes.reduce((e,t)=>(e[t.key]=t.new||t.old,e),{}),this.target.id=s.target_id;else if([o.USER,o.GUILD].includes(i))this.target=t.client[`${i.toLowerCase()}s`].get(s.target_id);else if(i===o.WEBHOOK)this.target=e.webhooks.get(s.target_id)||new r(t.client,this.changes.reduce((e,t)=>(e[t.key]=t.new||t.old,e),{id:s.target_id,guild_id:t.id}));else if(i===o.INVITE)if(t.me.permissions.has("MANAGE_GUILD")){const e=this.changes.find(e=>"code"===e.key);this.target=t.fetchInvites().then(t=>(this.target=t.find(t=>t.code===(e.new||e.old)),this.target))}else this.target=this.changes.reduce((e,t)=>(e[t.key]=t.new||t.old,e),{});else i===o.MESSAGE?this.target=t.client.users.get(s.target_id):this.target=t[`${i.toLowerCase()}s`].get(s.target_id)||{id:s.target_id}}get createdTimestamp(){return n.deconstruct(this.id).timestamp}get createdAt(){return new Date(this.createdTimestamp)}toJSON(){return a.flatten(this,{createdTimestamp:!0})}}GuildAuditLogs.Actions=l,GuildAuditLogs.Targets=o,GuildAuditLogs.Entry=GuildAuditLogsEntry,e.exports=GuildAuditLogs},function(e,t,s){const i=s(6),n=s(13),{Events:r,OPCodes:a}=s(0),o=s(2),{Error:l,TypeError:h}=s(4);e.exports=class GuildMemberStore extends i{constructor(e,t){super(e.client,t,n),this.guild=e}add(e,t=!0){return super.add(e,t,{id:e.user.id,extras:[this.guild]})}resolve(e){const t=super.resolve(e);if(t)return t;const s=this.client.users.resolveID(e);return s?super.resolve(s):null}resolveID(e){const t=super.resolveID(e);if(t)return t;const s=this.client.users.resolveID(e);return this.has(s)?s:null}fetch(e){if(!e)return this._fetchMany();const t=this.client.users.resolveID(e);return t?this._fetchSingle({user:t,cache:!0}):e.user&&(e.user=this.client.users.resolveID(e.user),e.user)?this._fetchSingle(e):this._fetchMany(e)}prune({days:e=7,dry:t=!1,reason:s}={}){if("number"!=typeof e)throw new h("PRUNE_DAYS_TYPE");return this.client.api.guilds(this.guild.id).prune[t?"get":"post"]({query:{days:e},reason:s}).then(e=>e.pruned)}ban(e,t={days:0}){t.days&&(t["delete-message-days"]=t.days);const s=this.client.users.resolveID(e);return s?this.client.api.guilds(this.guild.id).bans[s].put({query:t}).then(()=>{if(e instanceof n)return e;const t=this.client.users.resolve(s);return t?this.resolve(t)||t:s}):Promise.reject(new l("BAN_RESOLVE_ID",!0))}unban(e,t){const s=this.client.users.resolveID(e);if(!s)throw new l("BAN_RESOLVE_ID");return this.client.api.guilds(this.guild.id).bans[s].delete({reason:t}).then(()=>this.client.users.resolve(e))}_fetchSingle({user:e,cache:t}){const s=this.get(e);return s&&s.joinedTimestamp?Promise.resolve(s):this.client.api.guilds(this.guild.id).members(e).get().then(e=>this.add(e,t))}_fetchMany({query:e="",limit:t=0}={}){return new Promise((s,i)=>{if(this.guild.memberCount===this.size)return void s(e||t?new o:this);this.guild.client.ws.send({op:a.REQUEST_GUILD_MEMBERS,d:{guild_id:this.guild.id,query:e,limit:t}});const n=new o,h=(i,a)=>{if(a.id===this.guild.id){for(const s of i.values())(e||t)&&n.set(s.id,s);(this.guild.memberCount<=this.size||(e||t)&&i.size<1e3||t&&n.size>=t)&&(this.guild.client.removeListener(r.GUILD_MEMBERS_CHUNK,h),s(e||t?n:this))}};this.guild.client.on(r.GUILD_MEMBERS_CHUNK,h),this.guild.client.setTimeout(()=>{this.guild.client.removeListener(r.GUILD_MEMBERS_CHUNK,h),i(new l("GUILD_MEMBERS_TIMEOUT"))},12e4)})}}},function(e,t,s){const i=s(6),n=s(17),{resolveColor:r}=s(3),a=s(8);e.exports=class RoleStore extends i{constructor(e,t){super(e.client,t,n),this.guild=e}add(e,t){return super.add(e,t,{extras:[this.guild]})}create({data:e={},reason:t}={}){return e.color&&(e.color=r(e.color)),e.permissions&&(e.permissions=a.resolve(e.permissions)),this.guild.client.api.guilds(this.guild.id).roles.post({data:e,reason:t}).then(s=>{const{role:i}=this.client.actions.GuildRoleCreate.handle({guild_id:this.guild.id,role:s});return e.position?i.setPosition(e.position,t):i})}get highest(){return this.reduce((e,t)=>t.comparePositionTo(e)>0?t:e,this.first())}}},function(e,t,s){const i=s(15),{ChannelTypes:n}=s(0),r=s(6),a=s(18),o=s(40);e.exports=class GuildChannelStore extends r{constructor(e,t){super(e.client,t,a),this.guild=e}add(e){const t=this.get(e.id);return t||i.create(this.client,e,this.guild)}async create(e,t={}){let{type:s,topic:i,nsfw:r,bitrate:a,userLimit:l,parent:h,permissionOverwrites:c,rateLimitPerUser:d,reason:u}=t;h&&(h=this.client.channels.resolveID(h)),c&&(c=c.map(e=>o.resolve(e,this.guild)));const p=await this.client.api.guilds(this.guild.id).channels.post({data:{name:e,topic:i,type:s?n[s.toUpperCase()]:"text",nsfw:r,bitrate:a,user_limit:l,parent_id:h,permission_overwrites:c,rate_limit_per_user:d},reason:u});return this.client.actions.ChannelCreate.handle(p).channel}}},function(e,t,s){const i=s(6),{Presence:n}=s(12);e.exports=class PresenceStore extends i{constructor(e,t){super(e,t,n)}add(e,t){const s=this.get(e.user.id);return s?s.patch(e):super.add(e,t,{id:e.user.id})}resolve(e){const t=super.resolve(e);if(t)return t;const s=this.client.users.resolveID(e);return super.resolve(s)||null}resolveID(e){const t=super.resolveID(e);if(t)return t;const s=this.client.users.resolveID(e);return this.has(s)?s:null}}},function(e,t,s){const{Presence:i}=s(12),n=s(2),{ActivityTypes:r,OPCodes:a}=s(0),{TypeError:o}=s(4);e.exports=class ClientPresence extends i{constructor(e,t={}){super(e,Object.assign(t,{status:"online",user:{id:null}}))}async set(e){const t=await this._parse(e);return this.patch(t),this.client.ws.send({op:a.STATUS_UPDATE,d:t}),this}async _parse({status:e,since:t,afk:s,activity:i}){const a=i&&(i.application?i.application.id||i.application:null);let l=new n;if(i){if("string"!=typeof i.name)throw new o("INVALID_TYPE","name","string");if(i.type||(i.type=0),i.assets&&a)try{const e=await this.client.api.oauth2.applications(a).assets.get();for(const t of e)l.set(t.name,t.id)}catch(e){}}const h={afk:null!=s&&s,since:null!=t?t:null,status:e||this.status,game:i?{type:i.type,name:i.name,url:i.url,details:i.details||void 0,state:i.state||void 0,assets:i.assets?{large_text:i.assets.largeText||void 0,small_text:i.assets.smallText||void 0,large_image:l.get(i.assets.largeImage)||i.assets.largeImage,small_image:l.get(i.assets.smallImage)||i.assets.smallImage}:void 0,timestamps:i.timestamps||void 0,party:i.party||void 0,application_id:a||void 0,secrets:i.secrets||void 0,instance:i.instance||void 0}:null};return(e||s||t)&&!i&&(h.game=this.activity),h.game&&(h.game.type="number"==typeof h.game.type?h.game.type:r.indexOf(h.game.type)),h}}},function(e,t,s){const{browser:i}=s(0),n=s(49);try{var r=s(132);r.pack||(r=null)}catch(e){}if(i)t.WebSocket=window.WebSocket;else try{t.WebSocket=s(133)}catch(e){t.WebSocket=s(134)}t.encoding=r?"etf":"json",t.pack=r?r.pack:JSON.stringify,t.unpack=(e=>r&&"{"!==e[0]?(e instanceof Buffer||(e=Buffer.from(new Uint8Array(e))),r.unpack(e)):JSON.parse(e)),t.create=((e,s={},...r)=>{const[a,o]=e.split("?");s.encoding=t.encoding,o&&(s=Object.assign(n.parse(o),s));const l=new t.WebSocket(`${a}?${n.stringify(s)}`,...r);return i&&(l.binaryType="arraybuffer"),l});for(const e of["CONNECTING","OPEN","CLOSING","CLOSED"])t[e]=t.WebSocket[e]},function(e,t,s){"use strict";var i={};(0,s(14).assign)(i,s(136),s(139),s(76)),e.exports=i},function(e,t,s){"use strict";e.exports=function(e,t,s,i){for(var n=65535&e|0,r=e>>>16&65535|0,a=0;0!==s;){s-=a=s>2e3?2e3:s;do{r=r+(n=n+t[i++]|0)|0}while(--a);n%=65521,r%=65521}return n|r<<16|0}},function(e,t,s){"use strict";var i=function(){for(var e,t=[],s=0;s<256;s++){e=s;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t}();e.exports=function(e,t,s,n){var r=i,a=n+s;e^=-1;for(var o=n;o<a;o++)e=e>>>8^r[255&(e^t[o])];return-1^e}},function(e,t,s){"use strict";var i=s(14),n=!0,r=!0;try{String.fromCharCode.apply(null,[0])}catch(e){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){r=!1}for(var a=new i.Buf8(256),o=0;o<256;o++)a[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(e,t){if(t<65537&&(e.subarray&&r||!e.subarray&&n))return String.fromCharCode.apply(null,i.shrinkBuf(e,t));for(var s="",a=0;a<t;a++)s+=String.fromCharCode(e[a]);return s}a[254]=a[254]=1,t.string2buf=function(e){var t,s,n,r,a,o=e.length,l=0;for(r=0;r<o;r++)55296==(64512&(s=e.charCodeAt(r)))&&r+1<o&&56320==(64512&(n=e.charCodeAt(r+1)))&&(s=65536+(s-55296<<10)+(n-56320),r++),l+=s<128?1:s<2048?2:s<65536?3:4;for(t=new i.Buf8(l),a=0,r=0;a<l;r++)55296==(64512&(s=e.charCodeAt(r)))&&r+1<o&&56320==(64512&(n=e.charCodeAt(r+1)))&&(s=65536+(s-55296<<10)+(n-56320),r++),s<128?t[a++]=s:s<2048?(t[a++]=192|s>>>6,t[a++]=128|63&s):s<65536?(t[a++]=224|s>>>12,t[a++]=128|s>>>6&63,t[a++]=128|63&s):(t[a++]=240|s>>>18,t[a++]=128|s>>>12&63,t[a++]=128|s>>>6&63,t[a++]=128|63&s);return t},t.buf2binstring=function(e){return l(e,e.length)},t.binstring2buf=function(e){for(var t=new i.Buf8(e.length),s=0,n=t.length;s<n;s++)t[s]=e.charCodeAt(s);return t},t.buf2string=function(e,t){var s,i,n,r,o=t||e.length,h=new Array(2*o);for(i=0,s=0;s<o;)if((n=e[s++])<128)h[i++]=n;else if((r=a[n])>4)h[i++]=65533,s+=r-1;else{for(n&=2===r?31:3===r?15:7;r>1&&s<o;)n=n<<6|63&e[s++],r--;r>1?h[i++]=65533:n<65536?h[i++]=n:(n-=65536,h[i++]=55296|n>>10&1023,h[i++]=56320|1023&n)}return l(h,i)},t.utf8border=function(e,t){var s;for((t=t||e.length)>e.length&&(t=e.length),s=t-1;s>=0&&128==(192&e[s]);)s--;return s<0?t:0===s?t:s+a[e[s]]>t?s:t}},function(e,t,s){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},function(e,t,s){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(e,t,s){const i=s(6),n=s(16),r=s(13),a=s(27);e.exports=class UserStore extends i{constructor(e,t){super(e,t,n)}resolve(e){return e instanceof r?e.user:e instanceof a?e.author:super.resolve(e)}resolveID(e){return e instanceof r?e.user.id:e instanceof a?e.author.id:super.resolveID(e)}fetch(e,t=!0){const s=this.get(e);return s?Promise.resolve(s):this.client.api.users(e).get().then(e=>this.add(e,t))}}},function(e,t,s){const i=s(6),n=s(15),{Events:r}=s(0),a=Symbol("LRU"),o=["group","dm"];e.exports=class ChannelStore extends i{constructor(e,t={},s){if(s||"function"==typeof t[Symbol.iterator]||(s=t,t=void 0),super(e,t,n),s.lru){const e=this[a]=[];e.add=(t=>{for(e.remove(t),e.unshift(t);e.length>s.lru;)this.remove(e[e.length-1])}),e.remove=(t=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)})}}get(e,t=!1){const s=super.get(e);return s&&o.includes(s.type)?(!t&&this[a]&&this[a].add(e),s):s}set(e,t){return this[a]&&o.includes(t.type)&&this[a].add(e),super.set(e,t)}delete(e){const t=this.get(e,!0);return!!t&&(this[a]&&o.includes(t.type)&&this[a].remove(e),super.delete(e))}add(e,t,s=!0){const i=this.get(e.id);if(i)return i;const a=n.create(this.client,e,t);return a?(s&&this.set(a.id,a),a):(this.client.emit(r.DEBUG,`Failed to find guild for channel ${e.id} ${e.type}`),null)}remove(e){const t=this.get(e);t.guild&&t.guild.channels.remove(e),super.remove(e)}}},function(e,t,s){const i=s(6),n=s(10),{Events:r}=s(0),a=s(41);e.exports=class GuildStore extends i{constructor(e,t){super(e,t,a)}create(e,{region:t,icon:s=null}={}){return!s||"string"==typeof s&&s.startsWith("data:")?new Promise((i,n)=>this.client.api.guilds.post({data:{name:e,region:t,icon:s}}).then(e=>{if(this.client.guilds.has(e.id))return i(this.client.guilds.get(e.id));const t=n=>{n.id===e.id&&(this.client.removeListener(r.GUILD_CREATE,t),this.client.clearTimeout(s),i(n))};this.client.on(r.GUILD_CREATE,t);const s=this.client.setTimeout(()=>{this.client.removeListener(r.GUILD_CREATE,t),i(this.client.guilds.add(e))},1e4)},n)):n.resolveImage(s).then(s=>this.create(e,{region:t,icon:s||null}))}}},function(e,t,s){const i=s(3);e.exports={BaseClient:s(31),Client:s(91),Shard:s(171),ShardClientUtil:s(172),ShardingManager:s(173),WebhookClient:s(36),ActivityFlags:s(54),BitField:s(24),Collection:s(2),Constants:s(0),DataResolver:s(10),DataStore:s(6),DiscordAPIError:s(48),Permissions:s(8),Speaking:s(174),Snowflake:s(9),SnowflakeUtil:s(9),Structures:s(19),Util:i,util:i,version:s(46).version,ChannelStore:s(78),GuildChannelStore:s(67),GuildEmojiStore:s(43),GuildEmojiRoleStore:s(51),GuildMemberStore:s(65),GuildMemberRoleStore:s(55),GuildStore:s(79),ReactionUserStore:s(58),MessageStore:s(22),PresenceStore:s(68),RoleStore:s(66),UserStore:s(77),discordSort:i.discordSort,escapeMarkdown:i.escapeMarkdown,fetchRecommendedShards:i.fetchRecommendedShards,resolveColor:i.resolveColor,resolveString:i.resolveString,splitMessage:i.splitMessage,Base:s(7),Activity:s(12).Activity,APIMessage:s(26),CategoryChannel:s(62),Channel:s(15),ClientApplication:s(37),get ClientUser(){return s(50)},Collector:s(33),DMChannel:s(52),Emoji:s(32),GroupDMChannel:s(59),Guild:s(41),GuildAuditLogs:s(64),GuildChannel:s(18),GuildEmoji:s(25),GuildMember:s(13),Integration:s(63),Invite:s(28),Message:s(27),MessageAttachment:s(35),MessageCollector:s(53),MessageEmbed:s(34),MessageMentions:s(56),MessageReaction:s(38),PermissionOverwrites:s(40),Presence:s(12).Presence,ClientPresence:s(69),ReactionCollector:s(57),ReactionEmoji:s(39),RichPresenceAssets:s(12).RichPresenceAssets,Role:s(17),TextChannel:s(60),User:s(16),VoiceChannel:s(61),VoiceRegion:s(42),VoiceState:s(21),Webhook:s(11),WebSocket:s(70)}},function(e,t,s){const{register:i}=s(47),n={CLIENT_INVALID_OPTION:(e,t)=>`The ${e} option must be ${t}`,TOKEN_INVALID:"An invalid token was provided.",TOKEN_MISSING:"Request to use token, but token was unavailable to the client.",WS_CONNECTION_TIMEOUT:"The connection to the gateway timed out.",WS_CONNECTION_EXISTS:"There is already an existing WebSocket connection.",WS_NOT_OPEN:(e="data")=>`Websocket not open to send ${e}`,BITFIELD_INVALID:"Invalid bitfield flag or number.",RATELIMIT_INVALID_METHOD:"Unknown rate limiting method.",SHARDING_INVALID:"Invalid shard settings were provided.",SHARDING_REQUIRED:"This session would have handled too many guilds - Sharding is required.",SHARDING_CHILD_CONNECTION:"Failed to send message to shard's process.",SHARDING_PARENT_CONNECTION:"Failed to send message to master process.",SHARDING_NO_SHARDS:"No shards have been spawned.",SHARDING_IN_PROCESS:"Shards are still being spawned.",SHARDING_ALREADY_SPAWNED:e=>`Already spawned ${e} shards.`,SHARDING_PROCESS_EXISTS:e=>`Shard ${e} already has an active process.`,SHARDING_READY_TIMEOUT:e=>`Shard ${e}'s Client took too long to become ready.`,SHARDING_READY_DISCONNECTED:e=>`Shard ${e}'s Client disconnected before becoming ready.`,SHARDING_READY_DIED:e=>`Shard ${e}'s process exited before its Client became ready.`,COLOR_RANGE:"Color must be within the range 0 - 16777215 (0xFFFFFF).",COLOR_CONVERT:"Unable to convert color to a number.",EMBED_FIELD_NAME:"MessageEmbed field names may not be empty.",EMBED_FIELD_VALUE:"MessageEmbed field values may not be empty.",FILE_NOT_FOUND:e=>`File could not be found: ${e}`,USER_NO_DMCHANNEL:"No DM Channel exists!",VOICE_INVALID_HEARTBEAT:"Tried to set voice heartbeat but no valid interval was specified.",VOICE_USER_MISSING:"Couldn't resolve the user to create stream.",VOICE_STREAM_EXISTS:"There is already an existing stream for that user.",VOICE_JOIN_CHANNEL:(e=!1)=>`You do not have permission to join this voice channel${e?"; it is full.":"."}`,VOICE_CONNECTION_TIMEOUT:"Connection not established within 15 seconds.",VOICE_TOKEN_ABSENT:"Token not provided from voice server packet.",VOICE_SESSION_ABSENT:"Session ID not supplied.",VOICE_INVALID_ENDPOINT:"Invalid endpoint received.",VOICE_NO_BROWSER:"Voice connections are not available in browsers.",VOICE_CONNECTION_ATTEMPTS_EXCEEDED:e=>`Too many connection attempts (${e}).`,VOICE_JOIN_SOCKET_CLOSED:"Tried to send join packet, but the WebSocket is not open.",VOICE_PLAY_INTERFACE_NO_BROADCAST:"A broadcast cannot be played in this context.",VOICE_PLAY_INTERFACE_BAD_TYPE:"Unknown stream type",VOICE_PRISM_DEMUXERS_NEED_STREAM:"To play a webm/ogg stream, you need to pass a ReadableStream.",VOICE_STATE_UNCACHED_MEMBER:"The member of this voice state is uncached.",OPUS_ENGINE_MISSING:"Couldn't find an Opus engine.",UDP_SEND_FAIL:"Tried to send a UDP packet, but there is no socket available.",UDP_ADDRESS_MALFORMED:"Malformed UDP address or port.",UDP_CONNECTION_EXISTS:"There is already an existing UDP connection.",REQ_BODY_TYPE:"The response body isn't a Buffer.",REQ_RESOURCE_TYPE:"The resource must be a string, Buffer or a valid file stream.",IMAGE_FORMAT:e=>`Invalid image format: ${e}`,IMAGE_SIZE:e=>`Invalid image size: ${e}`,MESSAGE_MISSING:"Message not found",MESSAGE_BULK_DELETE_TYPE:"The messages must be an Array, Collection, or number.",MESSAGE_NONCE_TYPE:"Message nonce must fit in an unsigned 64-bit integer.",TYPING_COUNT:"Count must be at least 1",SPLIT_MAX_LEN:"Message exceeds the max length and contains no split characters.",BAN_RESOLVE_ID:(e=!1)=>`Couldn't resolve the user ID to ${e?"ban":"unban"}.`,PRUNE_DAYS_TYPE:"Days must be a number",SEARCH_CHANNEL_TYPE:"Target must be a TextChannel, DMChannel, GroupDMChannel, or Guild.",MESSAGE_SPLIT_MISSING:"Message exceeds the max length and contains no split characters.",GUILD_CHANNEL_RESOLVE:"Could not resolve channel to a guild channel.",GUILD_CHANNEL_ORPHAN:"Could not find a parent to this guild channel.",GUILD_OWNED:"Guild is owned by the client.",GUILD_RESTRICTED:(e=!1)=>`Guild is ${e?"already":"not"} restricted.`,GUILD_MEMBERS_TIMEOUT:"Members didn't arrive in time.",INVALID_TYPE:(e,t,s=!1)=>`Supplied ${e} is not a${s?"n":""} ${t}.`,WEBHOOK_MESSAGE:"The message was not sent by a webhook.",EMOJI_TYPE:"Emoji must be a string or GuildEmoji/ReactionEmoji",EMOJI_MANAGED:"Emoji is managed and has no Author.",MISSING_MANAGE_EMOJIS_PERMISSION:e=>`Client must have Manage Emoji permission in guild ${e} to see emoji authors.`,REACTION_RESOLVE_USER:"Couldn't resolve the user ID to remove from the reaction.",VANITY_URL:"This guild does not have the VANITY_URL feature enabled."};for(const[e,t]of Object.entries(n))i(e,t)},function(e,t,s){const i=s(83),n=s(85),r=s(90),{Error:a}=s(4),{Endpoints:o}=s(0),l=s(2);e.exports=class RESTManager{constructor(e,t="Bot"){this.client=e,this.handlers=new l,this.tokenPrefix=t,this.versioned=!0,this.globalTimeout=null,e.options.restSweepInterval>0&&e.setInterval(()=>{this.handlers.sweep(e=>e._inactive)},1e3*e.options.restSweepInterval)}get api(){return r(this)}getAuth(){const e=this.client.token||this.client.accessToken,t=!!this.client.application||this.client.user;if(e&&t)return`${this.tokenPrefix} ${e}`;if(e)return e;throw new a("TOKEN_MISSING")}get cdn(){return o.CDN(this.client.options.http.cdn)}push(e,t){return new Promise((s,i)=>{e.push({request:t,resolve:s,reject:i,retries:0}).catch(i)})}request(e,t,s={}){const r=new n(this,e,t,s);let a=this.handlers.get(r.route);return a||(a=new i(this),this.handlers.set(r.route,a)),this.push(a,r)}set endpoint(e){this.client.options.http.api=e}}},function(e,t,s){const i=s(48),n=s(84),r=s(3),{Events:{RATE_LIMIT:a},browser:o}=s(0);function l(e){return e.headers.get("content-type").startsWith("application/json")?e.json():o?e.blob():e.buffer()}function h(e){return new Date(e).getTime()-Date.now()}e.exports=class RequestHandler{constructor(e){this.manager=e,this.busy=!1,this.queue=[],this.reset=-1,this.remaining=-1,this.limit=-1,this.retryAfter=-1}push(e){return this.busy?(this.queue.push(e),this.run()):this.execute(e)}run(){return 0===this.queue.length?Promise.resolve():this.execute(this.queue.shift())}get limited(){return(this.manager.globalTimeout||this.remaining<=0)&&Date.now()<this.reset}get _inactive(){return 0===this.queue.length&&!this.limited&&!0!==this.busy}async execute(e){if(this.busy)return this.queue.unshift(e),null;this.busy=!0;const{reject:t,request:s,resolve:o}=e;if(this.limited){const e=this.reset+this.manager.client.options.restTimeOffset-Date.now();this.manager.client.listenerCount(a)&&this.manager.client.emit(a,{timeout:e,limit:this.limit,method:s.method,path:s.path,route:s.route}),this.manager.globalTimeout?await this.manager.globalTimeout:await r.delayFor(e)}let c;try{c=await s.make()}catch(e){return this.busy=!1,t(new n(e.message,e.constructor.name,e.status,s.method,s.route))}if(c&&c.headers){const t=c.headers.get("date"),s=c.headers.get("x-ratelimit-limit"),i=c.headers.get("x-ratelimit-remaining"),n=c.headers.get("x-ratelimit-reset"),a=c.headers.get("retry-after");this.limit=s?Number(s):1/0,this.remaining=i?Number(i):1,this.reset=n?function(e,t){return new Date(1e3*Number(e)).getTime()-h(t)}(n,t):Date.now(),this.retryAfter=a?Number(a):-1,e.request.route.includes("reactions")&&(this.reset=new Date(t).getTime()-h(t)+250),c.headers.get("x-ratelimit-global")&&(this.manager.globalTimeout=r.delayFor(this.retryAfter),await this.manager.globalTimeout,this.manager.globalTimeout=null)}if(this.busy=!1,c.ok)return o(await l(c)),this.run();if(429===c.status)return this.queue.unshift(e),this.manager.client.emit("debug",`429 hit on route ${e.request.route}`),await r.delayFor(this.retryAfter),this.run();if(c.status>=500&&c.status<600)return e.retries===this.manager.client.options.retryLimit?t(new n(c.statusText,c.constructor.name,c.status,e.request.method,s.path)):(e.retries++,this.queue.unshift(e),this.run());try{const e=await l(c);return c.status>=400&&c.status<500?t(new i(s.path,e,s.method)):null}catch(e){return t(new n(e.message,e.constructor.name,e.status,s.method,s.path))}}}},function(e,t){e.exports=class HTTPError extends Error{constructor(e,t,s,i,n){super(e),this.name=t,this.code=s||500,this.method=i,this.path=n}}},function(e,t,s){const i=s(49),n=s(88),r=s(89),{browser:a,UserAgent:o}=s(0),l=s(29);if(r.Agent)var h=new r.Agent({keepAlive:!0});e.exports=class APIRequest{constructor(e,t,s,n){this.rest=e,this.client=e.client,this.method=t,this.route=n.route,this.options=n;const r=(i.stringify(n.query).match(/[^=&?]+=[^=&?]+/g)||[]).join("&");this.path=`${s}${r?`?${r}`:""}`}make(){const e=(!1===this.options.versioned?this.client.options.http.api:`${this.client.options.http.api}/v${this.client.options.http.version}`)+this.path;let t,s={};if(!1!==this.options.auth&&(s.Authorization=this.rest.getAuth()),this.options.reason&&(s["X-Audit-Log-Reason"]=encodeURIComponent(this.options.reason)),a||(s["User-Agent"]=o),this.options.headers&&(s=Object.assign(s,this.options.headers)),this.options.files){t=new n;for(const e of this.options.files)e&&e.file&&t.append(e.name,e.file,e.name);void 0!==this.options.data&&t.append("payload_json",JSON.stringify(this.options.data)),a||(s=Object.assign(s,t.getHeaders()))}else null!=this.options.data&&(t=JSON.stringify(this.options.data),s["Content-Type"]="application/json");return l(e,{method:this.method,headers:s,agent:h,body:t})}}},function(e,t,s){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,s,r){t=t||"&",s=s||"=";var a={};if("string"!=typeof e||0===e.length)return a;var o=/\+/g;e=e.split(t);var l=1e3;r&&"number"==typeof r.maxKeys&&(l=r.maxKeys);var h=e.length;l>0&&h>l&&(h=l);for(var c=0;c<h;++c){var d,u,p,m,f=e[c].replace(o,"%20"),_=f.indexOf(s);_>=0?(d=f.substr(0,_),u=f.substr(_+1)):(d=f,u=""),p=decodeURIComponent(d),m=decodeURIComponent(u),i(a,p)?n(a[p])?a[p].push(m):a[p]=[a[p],m]:a[p]=m}return a};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,s){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,s,o){return t=t||"&",s=s||"=",null===e&&(e=void 0),"object"==typeof e?r(a(e),function(a){var o=encodeURIComponent(i(a))+s;return n(e[a])?r(e[a],function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[a]))}).join(t):o?encodeURIComponent(i(o))+s+encodeURIComponent(i(e)):""};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function r(e,t){if(e.map)return e.map(t);for(var s=[],i=0;i<e.length;i++)s.push(t(e[i],i));return s}var a=Object.keys||function(e){var t=[];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.push(s);return t}},function(e,t){e.exports="object"==typeof self?self.FormData:window.FormData},function(e,t){},function(e,t){const s=()=>{},i=["get","post","delete","patch","put"],n=["toString","valueOf","inspect","constructor",Symbol.toPrimitive,Symbol.for("util.inspect.custom")];e.exports=function(e){const t=[""],r={get:(a,o)=>n.includes(o)?()=>t.join("/"):i.includes(o)?s=>e.request(o,t.join("/"),Object.assign({versioned:e.versioned,route:t.map((e,s)=>/\d{16,19}/g.test(e)?/channels|guilds/.test(t[s-1])?e:":id":"reactions"===t[s-1]?":reaction":e).join("/")},s)):(t.push(o),new Proxy(s,r)),apply:(e,i,n)=>(t.push(...n.filter(e=>null!=e)),new Proxy(s,r))};return new Proxy(s,r)}},function(module,exports,__webpack_require__){(function(process){const BaseClient=__webpack_require__(31),Permissions=__webpack_require__(8),ClientManager=__webpack_require__(92),ClientVoiceManager=__webpack_require__(93),WebSocketManager=__webpack_require__(94),ActionsManager=__webpack_require__(144),Collection=__webpack_require__(2),VoiceRegion=__webpack_require__(42),Webhook=__webpack_require__(11),Invite=__webpack_require__(28),ClientApplication=__webpack_require__(37),ShardClientUtil=__webpack_require__(169),VoiceBroadcast=__webpack_require__(170),UserStore=__webpack_require__(77),ChannelStore=__webpack_require__(78),GuildStore=__webpack_require__(79),GuildEmojiStore=__webpack_require__(43),{Events:Events,browser:browser}=__webpack_require__(0),DataResolver=__webpack_require__(10),Structures=__webpack_require__(19),{Error:Error,TypeError:TypeError,RangeError:RangeError}=__webpack_require__(4);class Client extends BaseClient{constructor(e={}){super(Object.assign({_tokenType:"Bot"},e)),!browser&&!this.options.shardId&&"SHARD_ID"in process.env&&(this.options.shardId=Number(process.env.SHARD_ID)),!browser&&!this.options.shardCount&&"SHARD_COUNT"in process.env&&(this.options.shardCount=Number(process.env.SHARD_COUNT)),this._validateOptions(),this.manager=new ClientManager(this),this.ws=new WebSocketManager(this),this.actions=new ActionsManager(this),this.voice=browser?null:new ClientVoiceManager(this),this.shard=!browser&&process.env.SHARDING_MANAGER?ShardClientUtil.singleton(this):null,this.users=new UserStore(this),this.guilds=new GuildStore(this),this.channels=new ChannelStore(this);const t=Structures.get("ClientPresence");this.presence=new t(this),Object.defineProperty(this,"token",{writable:!0}),!browser&&!this.token&&"DISCORD_TOKEN"in process.env?this.token=process.env.DISCORD_TOKEN:this.token=null,this.user=null,this.readyAt=null,this.broadcasts=[],this.pings=[],this.options.messageSweepInterval>0&&this.setInterval(this.sweepMessages.bind(this),1e3*this.options.messageSweepInterval)}get _pingTimestamp(){return this.ws.connection?this.ws.connection.lastPingTimestamp:0}get status(){return this.ws.connection?this.ws.connection.status:null}get uptime(){return this.readyAt?Date.now()-this.readyAt:null}get ping(){return this.pings.reduce((e,t)=>e+t,0)/this.pings.length}get voiceConnections(){return browser?new Collection:this.voice.connections}get emojis(){const e=new GuildEmojiStore({client:this});for(const t of this.guilds.values())if(t.available)for(const s of t.emojis.values())e.set(s.id,s);return e}get readyTimestamp(){return this.readyAt?this.readyAt.getTime():null}createVoiceBroadcast(){const e=new VoiceBroadcast(this);return this.broadcasts.push(e),e}login(e=this.token){return new Promise((t,s)=>{if(!e||"string"!=typeof e)throw new Error("TOKEN_INVALID");e=e.replace(/^Bot\s*/i,""),this.manager.connectToWebSocket(e,t,s)}).catch(e=>(this.destroy(),Promise.reject(e)))}destroy(){return super.destroy(),this.manager.destroy()}fetchInvite(e){const t=DataResolver.resolveInviteCode(e);return this.api.invites(t).get({query:{with_counts:!0}}).then(e=>new Invite(this,e))}fetchWebhook(e,t){return this.api.webhooks(e,t).get().then(e=>new Webhook(this,e))}fetchVoiceRegions(){return this.api.voice.regions.get().then(e=>{const t=new Collection;for(const s of e)t.set(s.id,new VoiceRegion(s));return t})}sweepMessages(e=this.options.messageCacheLifetime){if("number"!=typeof e||isNaN(e))throw new TypeError("CLIENT_INVALID_OPTION","Lifetime","a number");if(e<=0)return this.emit(Events.DEBUG,"Didn't sweep messages - lifetime is unlimited"),-1;const t=1e3*e,s=Date.now();let i=0,n=0;for(const e of this.channels.values())e.messages&&(i++,n+=e.messages.sweep(e=>s-(e.editedTimestamp||e.createdTimestamp)>t));return this.emit(Events.DEBUG,`Swept ${n} messages older than ${e} seconds in ${i} text-based channels`),n}fetchApplication(){return this.api.oauth2.applications("@me").get().then(e=>new ClientApplication(this,e))}generateInvite(e){return e=Permissions.resolve(e),this.fetchApplication().then(t=>`https://discordapp.com/oauth2/authorize?client_id=${t.id}&permissions=${e}&scope=bot`)}toJSON(){return super.toJSON({readyAt:!1,broadcasts:!1,pings:!1,presences:!1})}_pong(e){this.pings.unshift(Date.now()-e),this.pings.length>3&&(this.pings.length=3),this.ws.lastHeartbeatAck=!0}_eval(script){return eval(script)}_validateOptions(e=this.options){if("number"!=typeof e.shardCount||isNaN(e.shardCount))throw new TypeError("CLIENT_INVALID_OPTION","shardCount","a number");if("number"!=typeof e.shardId||isNaN(e.shardId))throw new TypeError("CLIENT_INVALID_OPTION","shardId","a number");if(e.shardCount<0)throw new RangeError("CLIENT_INVALID_OPTION","shardCount","at least 0");if(e.shardId<0)throw new RangeError("CLIENT_INVALID_OPTION","shardId","at least 0");if(0!==e.shardId&&e.shardId>=e.shardCount)throw new RangeError("CLIENT_INVALID_OPTION","shardId","less than shardCount");if("number"!=typeof e.messageCacheMaxSize||isNaN(e.messageCacheMaxSize))throw new TypeError("CLIENT_INVALID_OPTION","messageCacheMaxSize","a number");if("number"!=typeof e.messageCacheLifetime||isNaN(e.messageCacheLifetime))throw new TypeError("CLIENT_INVALID_OPTION","The messageCacheLifetime","a number");if("number"!=typeof e.messageSweepInterval||isNaN(e.messageSweepInterval))throw new TypeError("CLIENT_INVALID_OPTION","messageSweepInterval","a number");if("boolean"!=typeof e.fetchAllMembers)throw new TypeError("CLIENT_INVALID_OPTION","fetchAllMembers","a boolean");if("boolean"!=typeof e.disableEveryone)throw new TypeError("CLIENT_INVALID_OPTION","disableEveryone","a boolean");if("number"!=typeof e.restWsBridgeTimeout||isNaN(e.restWsBridgeTimeout))throw new TypeError("CLIENT_INVALID_OPTION","restWsBridgeTimeout","a number");if("number"!=typeof e.restSweepInterval||isNaN(e.restSweepInterval))throw new TypeError("CLIENT_INVALID_OPTION","restSweepInterval","a number");if("boolean"!=typeof e.internalSharding)throw new TypeError("CLIENT_INVALID_OPTION","internalSharding","a boolean");if(!(e.disabledEvents instanceof Array))throw new TypeError("CLIENT_INVALID_OPTION","disabledEvents","an Array");if("number"!=typeof e.retryLimit||isNaN(e.retryLimit))throw new TypeError("CLIENT_INVALID_OPTION","retryLimit","a number")}}module.exports=Client}).call(this,__webpack_require__(45))},function(e,t,s){const{Events:i,Status:n}=s(0),{Error:r}=s(4);e.exports=class ClientManager{constructor(e){this.client=e,this.heartbeatInterval=null}get status(){return this.connection?this.connection.status:n.IDLE}connectToWebSocket(e,t,s){this.client.emit(i.DEBUG,`Authenticated using token ${e}`),this.client.token=e;const n=this.client.setTimeout(()=>s(new r("WS_CONNECTION_TIMEOUT")),3e5);this.client.api.gateway.get().then(async a=>{if(null!=this.client.options.presence){const e=await this.client.presence._parse(this.client.options.presence);this.client.options.ws.presence=e,this.client.presence.patch(e)}const o=`${a.url}/`;this.client.emit(i.DEBUG,`Using gateway ${o}`),this.client.ws.connect(o),this.client.ws.connection.once("error",s),this.client.ws.connection.once("close",e=>{4004===e.code&&s(new r("TOKEN_INVALID")),4010===e.code&&s(new r("SHARDING_INVALID")),4011===e.code&&s(new r("SHARDING_REQUIRED"))}),this.client.once(i.READY,()=>{t(e),this.client.clearTimeout(n)})},s)}destroy(){this.client.ws.destroy(),this.client.user&&(this.client.token=null)}}},function(e,t){},function(e,t,s){const i=s(23),{Events:n,Status:r}=s(0),a=s(95);e.exports=class WebSocketManager extends i{constructor(e){super(),this.client=e,this.connection=null}heartbeat(){return this.connection?this.connection.heartbeat():this.debug("No connection to heartbeat")}debug(e){return this.client.emit(n.DEBUG,`[ws] ${e}`)}destroy(){return this.connection?this.connection.destroy():(this.debug("Attempted to destroy WebSocket but no connection exists!"),!1)}send(e){this.connection?this.connection.send(e):this.debug("No connection to websocket")}connect(e){if(!this.connection)return this.connection=new a(this,e),!0;switch(this.connection.status){case r.IDLE:case r.DISCONNECTED:return this.connection.connect(e,5500),!0;default:return this.debug(`Couldn't connect to ${e} as the websocket is at state ${this.connection.status}`),!1}}}},function(e,t,s){const i=s(23),{Events:n,OPCodes:r,Status:a,WSCodes:o}=s(0),l=s(96),h=s(70);try{var c=s(135);c.Inflate||(c=s(71))}catch(e){c=s(71)}e.exports=class WebSocketConnection extends i{constructor(e,t){super(),this.manager=e,this.client=e.client,this.ws=null,this.sequence=-1,this.sessionID=null,this.status=a.IDLE,this.packetManager=new l(this),this.lastPingTimestamp=0,this.ratelimit={queue:[],remaining:120,total:120,time:6e4,resetTimer:null},this.disabledEvents={};for(const e of this.client.options.disabledEvents)this.disabledEvents[e]=!0;this.closeSequence=0,this.expectingClose=!1,this.inflate=null,this.connect(t)}triggerReady(){this.status!==a.READY?(this.status=a.READY,this.client.emit(n.READY),this.packetManager.handleQueue()):this.debug("Tried to mark self as ready, but already ready")}checkIfReady(){if(this.status===a.READY||this.status===a.NEARLY)return!1;let e=0;for(const t of this.client.guilds.values())t.available||e++;if(0===e){if(this.status=a.NEARLY,!this.client.options.fetchAllMembers)return this.triggerReady();const e=this.client.guilds.map(e=>e.members.fetch());Promise.all(e).then(()=>this.triggerReady()).catch(e=>{this.debug(`Failed to fetch all members before ready! ${e}`),this.triggerReady()})}return!0}debug(e){return e instanceof Error&&(e=e.stack),this.manager.debug(`[connection] ${e}`)}processQueue(){if(0!==this.ratelimit.remaining&&0!==this.ratelimit.queue.length)for(this.ratelimit.remaining===this.ratelimit.total&&(this.ratelimit.resetTimer=this.client.setTimeout(()=>{this.ratelimit.remaining=this.ratelimit.total,this.processQueue()},this.ratelimit.time));this.ratelimit.remaining>0;){const e=this.ratelimit.queue.shift();if(!e)return;this._send(e),this.ratelimit.remaining--}}_send(e){this.ws&&this.ws.readyState===h.OPEN?this.ws.send(h.pack(e)):this.debug(`Tried to send packet ${e} but no WebSocket is available!`)}send(e){this.ws&&this.ws.readyState===h.OPEN?(this.ratelimit.queue.push(e),this.processQueue()):this.debug(`Tried to send packet ${e} but no WebSocket is available!`)}connect(e=this.gateway,t=0,s=!1){if(t)return this.client.setTimeout(()=>this.connect(e,0,s),t);if(this.ws&&!s)return this.debug("WebSocket connection already exists"),!1;if("string"!=typeof e)return this.debug(`Tried to connect to an invalid gateway: ${e}`),!1;this.inflate=new c.Inflate({chunkSize:65535,flush:c.Z_SYNC_FLUSH,to:"json"===h.encoding?"string":""}),this.expectingClose=!1,this.gateway=e,this.debug(`Connecting to ${e}`);const i=this.ws=h.create(e,{v:this.client.options.ws.version,compress:"zlib-stream"});return i.onmessage=this.onMessage.bind(this),i.onopen=this.onOpen.bind(this),i.onerror=this.onError.bind(this),i.onclose=this.onClose.bind(this),this.status=a.CONNECTING,!0}destroy(){const e=this.ws;return e?(this.heartbeat(-1),this.expectingClose=!0,e.close(1e3),this.packetManager.handleQueue(),this.ws=null,this.status=a.DISCONNECTED,this.ratelimit.remaining=this.ratelimit.total,!0):(this.debug("Attempted to destroy WebSocket but no connection exists!"),!1)}onMessage({data:e}){e instanceof ArrayBuffer&&(e=new Uint8Array(e));const t=e.length,s=t>=4&&0===e[t-4]&&0===e[t-3]&&255===e[t-2]&&255===e[t-1];if(this.inflate.push(e,s&&c.Z_SYNC_FLUSH),!s)return;let i;try{i=h.unpack(this.inflate.result)}catch(e){return void this.client.emit("debug",e)}this.onPacket(i),this.client.listenerCount("raw")&&this.client.emit("raw",i)}setSequence(e){this.sequence=e>this.sequence?e:this.sequence}onPacket(e){if(!e)return this.debug("Received null packet"),!1;switch(e.op){case r.HELLO:return this.heartbeat(e.d.heartbeat_interval);case r.RECONNECT:return this.reconnect();case r.INVALID_SESSION:return e.d||(this.sessionID=null),this.sequence=-1,this.debug("Session invalidated -- will identify with a new session"),this.identify(e.d?2500:0);case r.HEARTBEAT_ACK:return this.ackHeartbeat();case r.HEARTBEAT:return this.heartbeat();default:return this.packetManager.handle(e)}}onOpen(e){e&&e.target&&e.target.url&&(this.gateway=e.target.url),this.debug(`Connected to gateway ${this.gateway}`),this.identify()}reconnect(){this.debug("Attempting to reconnect in 5500ms..."),this.client.emit(n.RECONNECTING),this.connect(this.gateway,5500,!0)}onError(e){e&&"uWs client connection error"===e.message?this.reconnect():this.client.emit(n.ERROR,e)}onClose(e){if(this.debug(`${this.expectingClose?"Client":"Server"} closed the WebSocket connection: ${e.code}`),this.closeSequence=this.sequence,this.emit("close",e),this.heartbeat(-1),1e3===e.code?this.expectingClose:o[e.code])return this.expectingClose=!1,this.client.emit(n.DISCONNECT,e),this.debug(o[e.code]),void this.destroy();this.expectingClose=!1,this.reconnect()}ackHeartbeat(){this.debug(`Heartbeat acknowledged, latency of ${Date.now()-this.lastPingTimestamp}ms`),this.client._pong(this.lastPingTimestamp)}heartbeat(e){isNaN(e)?(this.debug("Sending a heartbeat"),this.lastPingTimestamp=Date.now(),this.send({op:r.HEARTBEAT,d:this.sequence})):-1===e?(this.debug("Clearing heartbeat interval"),this.client.clearInterval(this.heartbeatInterval),this.heartbeatInterval=null):(this.debug(`Setting a heartbeat interval for ${e}ms`),this.heartbeatInterval=this.client.setInterval(()=>this.heartbeat(),e))}identify(e){return e?this.client.setTimeout(this.identify.bind(this),e):this.sessionID?this.identifyResume():this.identifyNew()}identifyNew(){if(!this.client.token)return void this.debug("No token available to identify a new session with");const e=Object.assign({token:this.client.token},this.client.options.ws),{shardId:t,shardCount:s}=this.client.options;s>0&&(e.shard=[Number(t),Number(s)]),this.debug("Identifying as a new session"),this.send({op:r.IDENTIFY,d:e})}identifyResume(){if(!this.sessionID)return this.debug("Warning: wanted to resume but session ID not available; identifying as a new session instead"),this.identifyNew();this.debug(`Attempting to resume session ${this.sessionID}`);const e={token:this.client.token,session_id:this.sessionID,seq:this.sequence};return this.send({op:r.RESUME,d:e})}}},function(e,t,s){const{OPCodes:i,Status:n,WSEvents:r}=s(0),a=[r.READY,r.RESUMED,r.GUILD_CREATE,r.GUILD_DELETE,r.GUILD_MEMBERS_CHUNK,r.GUILD_MEMBER_ADD,r.GUILD_MEMBER_REMOVE];e.exports=class WebSocketPacketManager{constructor(e){this.ws=e,this.handlers={},this.queue=[],this.register(r.READY,s(97)),this.register(r.RESUMED,s(100)),this.register(r.GUILD_CREATE,s(101)),this.register(r.GUILD_DELETE,s(102)),this.register(r.GUILD_UPDATE,s(103)),this.register(r.GUILD_BAN_ADD,s(104)),this.register(r.GUILD_BAN_REMOVE,s(105)),this.register(r.GUILD_MEMBER_ADD,s(106)),this.register(r.GUILD_MEMBER_REMOVE,s(107)),this.register(r.GUILD_MEMBER_UPDATE,s(108)),this.register(r.GUILD_ROLE_CREATE,s(109)),this.register(r.GUILD_ROLE_DELETE,s(110)),this.register(r.GUILD_ROLE_UPDATE,s(111)),this.register(r.GUILD_EMOJIS_UPDATE,s(112)),this.register(r.GUILD_MEMBERS_CHUNK,s(113)),this.register(r.GUILD_INTEGRATIONS_UPDATE,s(114)),this.register(r.CHANNEL_CREATE,s(115)),this.register(r.CHANNEL_DELETE,s(116)),this.register(r.CHANNEL_UPDATE,s(117)),this.register(r.CHANNEL_PINS_UPDATE,s(118)),this.register(r.PRESENCE_UPDATE,s(119)),this.register(r.USER_UPDATE,s(120)),this.register(r.VOICE_STATE_UPDATE,s(121)),this.register(r.TYPING_START,s(122)),this.register(r.MESSAGE_CREATE,s(123)),this.register(r.MESSAGE_DELETE,s(124)),this.register(r.MESSAGE_UPDATE,s(125)),this.register(r.MESSAGE_DELETE_BULK,s(126)),this.register(r.VOICE_SERVER_UPDATE,s(127)),this.register(r.MESSAGE_REACTION_ADD,s(128)),this.register(r.MESSAGE_REACTION_REMOVE,s(129)),this.register(r.MESSAGE_REACTION_REMOVE_ALL,s(130)),this.register(r.WEBHOOKS_UPDATE,s(131))}get client(){return this.ws.client}register(e,t){this.handlers[e]=new t(this)}handleQueue(){this.queue.forEach((e,t)=>{this.handle(this.queue[t],!0),this.queue.splice(t,1)})}handle(e,t=!1){return e.op===i.HEARTBEAT_ACK?(this.ws.client._pong(this.ws.client._pingTimestamp),this.ws.lastHeartbeatAck=!0,this.ws.client.emit("debug","Heartbeat acknowledged")):e.op===i.HEARTBEAT&&(this.client.ws.send({op:i.HEARTBEAT,d:this.client.ws.sequence}),this.ws.client.emit("debug","Received gateway heartbeat")),this.ws.status===n.RECONNECTING&&(this.ws.reconnecting=!1,this.ws.checkIfReady()),this.ws.setSequence(e.s),void 0===this.ws.disabledEvents[e.t]&&(this.ws.status!==n.READY&&-1===a.indexOf(e.t)?(this.queue.push(e),!1):(!t&&this.queue.length>0&&this.handleQueue(),!!this.handlers[e.t]&&this.handlers[e.t].handle(e)))}}},function(e,t,s){const i=s(1),{Events:n}=s(0);let r;e.exports=class ReadyHandler extends i{handle(e){const t=this.packetManager.client,i=e.d;t.ws.heartbeat(),t.presence.userID=i.user.id,r||(r=s(50));const a=new r(t,i.user);t.user=a,t.readyAt=new Date,t.users.set(a.id,a);for(const e of i.guilds)t.guilds.add(e);const o=t.setTimeout(()=>{t.ws.connection.triggerReady()},1200*i.guilds.length);t.setMaxListeners(i.guilds.length+10),t.once("ready",()=>{t.setMaxListeners(10),t.clearTimeout(o)});const l=this.packetManager.ws;l.sessionID=i.session_id,l._trace=i._trace,t.emit(n.DEBUG,`READY ${l._trace.join(" -> ")} ${l.sessionID}`),l.checkIfReady()}}},function(e,t,s){const i=s(6),n=s(38);e.exports=class ReactionStore extends i{constructor(e,t){super(e.client,t,n),this.message=e}add(e,t){return super.add(e,t,{id:e.emoji.id||e.emoji.name,extras:[this.message]})}removeAll(){return this.client.api.channels(this.message.channel.id).messages(this.message.id).reactions.delete().then(()=>this.message)}}},function(e,t,s){const i=s(6),n=s(21);e.exports=class VoiceStateStore extends i{constructor(e,t){super(e.client,t,n),this.guild=e}add(e,t=!0){const s=this.get(e.user_id);if(s)return s._patch(e);const i=new n(this.guild,e);return t&&this.set(e.user_id,i),i}}},function(e,t,s){const i=s(1),{Events:n,Status:r}=s(0);e.exports=class ResumedHandler extends i{handle(e){const t=this.packetManager.client,s=t.ws.connection;s._trace=e.d._trace,s.status=r.READY,this.packetManager.handleQueue();const i=s.sequence-s.closeSequence;s.debug(`RESUMED ${s._trace.join(" -> ")} | replayed ${i} events.`),t.emit(n.RESUMED,i),s.heartbeat()}}},function(e,t,s){const i=s(1),{Events:n,Status:r}=s(0);e.exports=class GuildCreateHandler extends i{async handle(e){const t=this.packetManager.client,s=e.d;let i=t.guilds.get(s.id);i?i.available||s.unavailable||(i._patch(s),this.packetManager.ws.checkIfReady()):(i=t.guilds.add(s),t.ws.connection.status===r.READY&&(t.options.fetchAllMembers&&await i.members.fetch(),t.emit(n.GUILD_CREATE,i)))}}},function(e,t,s){const i=s(1);e.exports=class GuildDeleteHandler extends i{handle(e){this.packetManager.client.actions.GuildDelete.handle(e.d)}}},function(e,t,s){const i=s(1);e.exports=class GuildUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildUpdate.handle(s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class GuildBanAddHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id),r=t.users.add(s.user);i&&r&&t.emit(n.GUILD_BAN_ADD,i,r)}}},function(e,t,s){const i=s(1);e.exports=class GuildBanRemoveHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildBanRemove.handle(s)}}},function(e,t,s){const i=s(1),{Events:n,Status:r}=s(0);e.exports=class GuildMemberAddHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id);if(i){i.memberCount++;const e=i.members.add(s);t.ws.connection.status===r.READY&&t.emit(n.GUILD_MEMBER_ADD,e)}}}},function(e,t,s){const i=s(1);e.exports=class GuildMemberRemoveHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildMemberRemove.handle(s)}}},function(e,t,s){const i=s(1),{Events:n,Status:r}=s(0);e.exports=class GuildMemberUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id);if(i){const e=i.members.get(s.user.id);if(e){const i=e._update(s);t.ws.connection.status===r.READY&&t.emit(n.GUILD_MEMBER_UPDATE,i,e)}}}}},function(e,t,s){const i=s(1);e.exports=class GuildRoleCreateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildRoleCreate.handle(s)}}},function(e,t,s){const i=s(1);e.exports=class GuildRoleDeleteHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildRoleDelete.handle(s)}}},function(e,t,s){const i=s(1);e.exports=class GuildRoleUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildRoleUpdate.handle(s)}}},function(e,t,s){const i=s(1);e.exports=class GuildEmojisUpdate extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.GuildEmojisUpdate.handle(s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0),r=s(2);e.exports=class GuildMembersChunkHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id);if(!i)return;const a=new r;for(const e of s.members)a.set(e.user.id,i.members.add(e));t.emit(n.GUILD_MEMBERS_CHUNK,a,i),t.ws.lastHeartbeatAck=!0}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class GuildIntegrationsHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id);i&&t.emit(n.GUILD_INTEGRATIONS_UPDATE,i)}}},function(e,t,s){const i=s(1);e.exports=class ChannelCreateHandler extends i{handle(e){this.packetManager.client.actions.ChannelCreate.handle(e.d)}}},function(e,t,s){const i=s(1);e.exports=class ChannelDeleteHandler extends i{handle(e){this.packetManager.client.actions.ChannelDelete.handle(e.d)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class ChannelUpdateHandler extends i{handle(e){const{old:t,updated:s}=this.packetManager.client.actions.ChannelUpdate.handle(e.d);t&&s&&this.packetManager.client.emit(n.CHANNEL_UPDATE,t,s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class ChannelPinsUpdate extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.channels.get(s.channel_id),r=new Date(s.last_pin_timestamp);i&&r&&(i.lastPinTimestamp=r.getTime()||null,t.emit(n.CHANNEL_PINS_UPDATE,i,r))}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class PresenceUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;let i=t.users.get(s.user.id);const r=t.guilds.get(s.guild_id);if(!i){if(!s.user.username)return;i=t.users.add(s.user)}const a=i._update(s.user);if(i.equals(a)||t.emit(n.USER_UPDATE,a,i),r){let e=r.presences.get(i.id);e&&(e=e._clone());let a=r.members.get(i.id);a||"offline"===s.status||(a=r.members.add({user:i,roles:s.roles,deaf:!1,mute:!1}),t.emit(n.GUILD_MEMBER_AVAILABLE,a)),r.presences.add(Object.assign(s,{guild:r})),a&&t.listenerCount(n.PRESENCE_UPDATE)&&t.emit(n.PRESENCE_UPDATE,e,a.presence)}}}},function(e,t,s){const i=s(1);e.exports=class UserUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.UserUpdate.handle(s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0),r=s(21);e.exports=class VoiceStateUpdateHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.guilds.get(s.guild_id);if(i){const e=i.voiceStates.has(s.user_id)?i.voiceStates.get(s.user_id)._clone():new r(i,{user_id:s.user_id}),a=i.voiceStates.add(s);let o=i.members.get(s.user_id);o&&s.member?o._patch(s.member):s.member&&s.member.user&&s.member.joined_at&&(o=i.members.add(s.member)),o&&o.user.id===t.user.id&&s.channel_id&&t.emit("self.voiceStateUpdate",s),t.emit(n.VOICE_STATE_UPDATE,e,a)}}}},function(e,t,s){const i=s(1),{Events:n}=s(0);class TypingData{constructor(e,t,s,i){this.client=e,this.since=t,this.lastTimestamp=s,this._timeout=i}resetTimeout(e){this.client.clearTimeout(this._timeout),this._timeout=e}get elapsedTime(){return Date.now()-this.since}}function r(e,t){return e.client.setTimeout(()=>{e.client.emit(n.TYPING_STOP,e,t,e._typing.get(t.id)),e._typing.delete(t.id)},6e3)}e.exports=class TypingStartHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.channels.get(s.channel_id),a=t.users.get(s.user_id),o=new Date(1e3*s.timestamp);if(i&&a){if("voice"===i.type)return void t.emit(n.WARN,`Discord sent a typing packet to voice channel ${i.id}`);if(i._typing.has(a.id)){const e=i._typing.get(a.id);e.lastTimestamp=o,e.resetTimeout(r(i,a))}else i._typing.set(a.id,new TypingData(t,o,o,r(i,a))),t.emit(n.TYPING_START,i,a)}}}},function(e,t,s){const i=s(1);e.exports=class MessageCreateHandler extends i{handle(e){this.packetManager.client.actions.MessageCreate.handle(e.d)}}},function(e,t,s){const i=s(1);e.exports=class MessageDeleteHandler extends i{handle(e){this.packetManager.client.actions.MessageDelete.handle(e.d)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class MessageUpdateHandler extends i{handle(e){const{old:t,updated:s}=this.packetManager.client.actions.MessageUpdate.handle(e.d);t&&s&&this.packetManager.client.emit(n.MESSAGE_UPDATE,t,s)}}},function(e,t,s){const i=s(1);e.exports=class MessageDeleteBulkHandler extends i{handle(e){this.packetManager.client.actions.MessageDeleteBulk.handle(e.d)}}},function(e,t,s){const i=s(1);e.exports=class VoiceServerUpdate extends i{handle(e){const t=this.packetManager.client,s=e.d;t.emit("self.voiceServer",s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class MessageReactionAddHandler extends i{handle(e){const t=this.packetManager.client,s=e.d,{user:i,reaction:r}=t.actions.MessageReactionAdd.handle(s);r&&t.emit(n.MESSAGE_REACTION_ADD,r,i)}}},function(e,t,s){const i=s(1);e.exports=class MessageReactionRemove extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.MessageReactionRemove.handle(s)}}},function(e,t,s){const i=s(1);e.exports=class MessageReactionRemoveAll extends i{handle(e){const t=this.packetManager.client,s=e.d;t.actions.MessageReactionRemoveAll.handle(s)}}},function(e,t,s){const i=s(1),{Events:n}=s(0);e.exports=class WebhooksUpdate extends i{handle(e){const t=this.packetManager.client,s=e.d,i=t.channels.get(s.channel_id);i&&t.emit(n.WEBHOOKS_UPDATE,i)}}},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,s){"use strict";var i=s(137),n=s(14),r=s(74),a=s(44),o=s(75),l=Object.prototype.toString,h=0,c=-1,d=0,u=8;function p(e){if(!(this instanceof p))return new p(e);this.options=n.assign({level:c,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var s=i.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==h)throw new Error(a[s]);if(t.header&&i.deflateSetHeader(this.strm,t.header),t.dictionary){var m;if(m="string"==typeof t.dictionary?r.string2buf(t.dictionary):"[object ArrayBuffer]"===l.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(s=i.deflateSetDictionary(this.strm,m))!==h)throw new Error(a[s]);this._dict_set=!0}}function m(e,t){var s=new p(t);if(s.push(e,!0),s.err)throw s.msg||a[s.err];return s.result}p.prototype.push=function(e,t){var s,a,o=this.strm,c=this.options.chunkSize;if(this.ended)return!1;a=t===~~t?t:!0===t?4:0,"string"==typeof e?o.input=r.string2buf(e):"[object ArrayBuffer]"===l.call(e)?o.input=new Uint8Array(e):o.input=e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new n.Buf8(c),o.next_out=0,o.avail_out=c),1!==(s=i.deflate(o,a))&&s!==h)return this.onEnd(s),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==a&&2!==a)||("string"===this.options.to?this.onData(r.buf2binstring(n.shrinkBuf(o.output,o.next_out))):this.onData(n.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==s);return 4===a?(s=i.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===h):2!==a||(this.onEnd(h),o.avail_out=0,!0)},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===h&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.Deflate=p,t.deflate=m,t.deflateRaw=function(e,t){return(t=t||{}).raw=!0,m(e,t)},t.gzip=function(e,t){return(t=t||{}).gzip=!0,m(e,t)}},function(e,t,s){"use strict";var i,n=s(14),r=s(138),a=s(72),o=s(73),l=s(44),h=0,c=1,d=3,u=4,p=5,m=0,f=1,_=-2,g=-3,E=-5,v=-1,b=1,w=2,y=3,A=4,I=0,T=2,D=8,S=9,N=15,C=8,O=286,R=30,M=19,k=2*O+1,L=15,x=3,U=258,P=U+x+1,G=32,B=42,j=69,H=73,z=91,V=103,$=113,F=666,K=1,W=2,q=3,Y=4,J=3;function Z(e,t){return e.msg=l[t],t}function X(e){return(e<<1)-(e>4?9:0)}function Q(e){for(var t=e.length;--t>=0;)e[t]=0}function ee(e){var t=e.state,s=t.pending;s>e.avail_out&&(s=e.avail_out),0!==s&&(n.arraySet(e.output,t.pending_buf,t.pending_out,s,e.next_out),e.next_out+=s,t.pending_out+=s,e.total_out+=s,e.avail_out-=s,t.pending-=s,0===t.pending&&(t.pending_out=0))}function te(e,t){r._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ee(e.strm)}function se(e,t){e.pending_buf[e.pending++]=t}function ie(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function ne(e,t){var s,i,n=e.max_chain_length,r=e.strstart,a=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-P?e.strstart-(e.w_size-P):0,h=e.window,c=e.w_mask,d=e.prev,u=e.strstart+U,p=h[r+a-1],m=h[r+a];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(s=t)+a]===m&&h[s+a-1]===p&&h[s]===h[r]&&h[++s]===h[r+1]){r+=2,s++;do{}while(h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&h[++r]===h[++s]&&r<u);if(i=U-(u-r),r=u-U,i>a){if(e.match_start=t,a=i,i>=o)break;p=h[r+a-1],m=h[r+a]}}}while((t=d[t&c])>l&&0!=--n);return a<=e.lookahead?a:e.lookahead}function re(e){var t,s,i,r,l,h,c,d,u,p,m=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-P)){n.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=s=e.hash_size;do{i=e.head[--t],e.head[t]=i>=m?i-m:0}while(--s);t=s=m;do{i=e.prev[--t],e.prev[t]=i>=m?i-m:0}while(--s);r+=m}if(0===e.strm.avail_in)break;if(h=e.strm,c=e.window,d=e.strstart+e.lookahead,u=r,p=void 0,(p=h.avail_in)>u&&(p=u),s=0===p?0:(h.avail_in-=p,n.arraySet(c,h.input,h.next_in,p,d),1===h.state.wrap?h.adler=a(h.adler,c,p,d):2===h.state.wrap&&(h.adler=o(h.adler,c,p,d)),h.next_in+=p,h.total_in+=p,p),e.lookahead+=s,e.lookahead+e.insert>=x)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+x-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<P&&0!==e.strm.avail_in)}function ae(e,t){for(var s,i;;){if(e.lookahead<P){if(re(e),e.lookahead<P&&t===h)return K;if(0===e.lookahead)break}if(s=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==s&&e.strstart-s<=e.w_size-P&&(e.match_length=ne(e,s)),e.match_length>=x)if(i=r._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else i=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(te(e,!1),0===e.strm.avail_out))return K}return e.insert=e.strstart<x-1?e.strstart:x-1,t===u?(te(e,!0),0===e.strm.avail_out?q:Y):e.last_lit&&(te(e,!1),0===e.strm.avail_out)?K:W}function oe(e,t){for(var s,i,n;;){if(e.lookahead<P){if(re(e),e.lookahead<P&&t===h)return K;if(0===e.lookahead)break}if(s=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==s&&e.prev_length<e.max_lazy_match&&e.strstart-s<=e.w_size-P&&(e.match_length=ne(e,s),e.match_length<=5&&(e.strategy===b||e.match_length===x&&e.strstart-e.match_start>4096)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-x,i=r._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=x-1,e.strstart++,i&&(te(e,!1),0===e.strm.avail_out))return K}else if(e.match_available){if((i=r._tr_tally(e,0,e.window[e.strstart-1]))&&te(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return K}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=r._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===u?(te(e,!0),0===e.strm.avail_out?q:Y):e.last_lit&&(te(e,!1),0===e.strm.avail_out)?K:W}function le(e,t,s,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=i,this.func=n}function he(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=D,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new n.Buf16(2*k),this.dyn_dtree=new n.Buf16(2*(2*R+1)),this.bl_tree=new n.Buf16(2*(2*M+1)),Q(this.dyn_ltree),Q(this.dyn_dtree),Q(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new n.Buf16(L+1),this.heap=new n.Buf16(2*O+1),Q(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(2*O+1),Q(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ce(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=T,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?B:$,e.adler=2===t.wrap?0:1,t.last_flush=h,r._tr_init(t),m):Z(e,_)}function de(e){var t,s=ce(e);return s===m&&((t=e.state).window_size=2*t.w_size,Q(t.head),t.max_lazy_match=i[t.level].max_lazy,t.good_match=i[t.level].good_length,t.nice_match=i[t.level].nice_length,t.max_chain_length=i[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=x-1,t.match_available=0,t.ins_h=0),s}function ue(e,t,s,i,r,a){if(!e)return _;var o=1;if(t===v&&(t=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),r<1||r>S||s!==D||i<8||i>15||t<0||t>9||a<0||a>A)return Z(e,_);8===i&&(i=9);var l=new he;return e.state=l,l.strm=e,l.wrap=o,l.gzhead=null,l.w_bits=i,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+x-1)/x),l.window=new n.Buf8(2*l.w_size),l.head=new n.Buf16(l.hash_size),l.prev=new n.Buf16(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new n.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=a,l.method=s,de(e)}i=[new le(0,0,0,0,function(e,t){var s=65535;for(s>e.pending_buf_size-5&&(s=e.pending_buf_size-5);;){if(e.lookahead<=1){if(re(e),0===e.lookahead&&t===h)return K;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var i=e.block_start+s;if((0===e.strstart||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,te(e,!1),0===e.strm.avail_out))return K;if(e.strstart-e.block_start>=e.w_size-P&&(te(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===u?(te(e,!0),0===e.strm.avail_out?q:Y):(e.strstart>e.block_start&&(te(e,!1),e.strm.avail_out),K)}),new le(4,4,8,4,ae),new le(4,5,16,8,ae),new le(4,6,32,32,ae),new le(4,4,16,16,oe),new le(8,16,32,32,oe),new le(8,16,128,128,oe),new le(8,32,128,256,oe),new le(32,128,258,1024,oe),new le(32,258,258,4096,oe)],t.deflateInit=function(e,t){return ue(e,t,D,N,C,I)},t.deflateInit2=ue,t.deflateReset=de,t.deflateResetKeep=ce,t.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},t.deflate=function(e,t){var s,n,a,l;if(!e||!e.state||t>p||t<0)return e?Z(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===F&&t!==u)return Z(e,0===e.avail_out?E:_);if(n.strm=e,s=n.last_flush,n.last_flush=t,n.status===B)if(2===n.wrap)e.adler=0,se(n,31),se(n,139),se(n,8),n.gzhead?(se(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),se(n,255&n.gzhead.time),se(n,n.gzhead.time>>8&255),se(n,n.gzhead.time>>16&255),se(n,n.gzhead.time>>24&255),se(n,9===n.level?2:n.strategy>=w||n.level<2?4:0),se(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(se(n,255&n.gzhead.extra.length),se(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=o(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=j):(se(n,0),se(n,0),se(n,0),se(n,0),se(n,0),se(n,9===n.level?2:n.strategy>=w||n.level<2?4:0),se(n,J),n.status=$);else{var g=D+(n.w_bits-8<<4)<<8;g|=(n.strategy>=w||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(g|=G),g+=31-g%31,n.status=$,ie(n,g),0!==n.strstart&&(ie(n,e.adler>>>16),ie(n,65535&e.adler)),e.adler=1}if(n.status===j)if(n.gzhead.extra){for(a=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),ee(e),a=n.pending,n.pending!==n.pending_buf_size));)se(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=H)}else n.status=H;if(n.status===H)if(n.gzhead.name){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),ee(e),a=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,se(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),0===l&&(n.gzindex=0,n.status=z)}else n.status=z;if(n.status===z)if(n.gzhead.comment){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),ee(e),a=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,se(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>a&&(e.adler=o(e.adler,n.pending_buf,n.pending-a,a)),0===l&&(n.status=V)}else n.status=V;if(n.status===V&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&ee(e),n.pending+2<=n.pending_buf_size&&(se(n,255&e.adler),se(n,e.adler>>8&255),e.adler=0,n.status=$)):n.status=$),0!==n.pending){if(ee(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&X(t)<=X(s)&&t!==u)return Z(e,E);if(n.status===F&&0!==e.avail_in)return Z(e,E);if(0!==e.avail_in||0!==n.lookahead||t!==h&&n.status!==F){var v=n.strategy===w?function(e,t){for(var s;;){if(0===e.lookahead&&(re(e),0===e.lookahead)){if(t===h)return K;break}if(e.match_length=0,s=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,s&&(te(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===u?(te(e,!0),0===e.strm.avail_out?q:Y):e.last_lit&&(te(e,!1),0===e.strm.avail_out)?K:W}(n,t):n.strategy===y?function(e,t){for(var s,i,n,a,o=e.window;;){if(e.lookahead<=U){if(re(e),e.lookahead<=U&&t===h)return K;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&e.strstart>0&&(i=o[n=e.strstart-1])===o[++n]&&i===o[++n]&&i===o[++n]){a=e.strstart+U;do{}while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&n<a);e.match_length=U-(a-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(s=r._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(s=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),s&&(te(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===u?(te(e,!0),0===e.strm.avail_out?q:Y):e.last_lit&&(te(e,!1),0===e.strm.avail_out)?K:W}(n,t):i[n.level].func(n,t);if(v!==q&&v!==Y||(n.status=F),v===K||v===q)return 0===e.avail_out&&(n.last_flush=-1),m;if(v===W&&(t===c?r._tr_align(n):t!==p&&(r._tr_stored_block(n,0,0,!1),t===d&&(Q(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),ee(e),0===e.avail_out))return n.last_flush=-1,m}return t!==u?m:n.wrap<=0?f:(2===n.wrap?(se(n,255&e.adler),se(n,e.adler>>8&255),se(n,e.adler>>16&255),se(n,e.adler>>24&255),se(n,255&e.total_in),se(n,e.total_in>>8&255),se(n,e.total_in>>16&255),se(n,e.total_in>>24&255)):(ie(n,e.adler>>>16),ie(n,65535&e.adler)),ee(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?m:f)},t.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==B&&t!==j&&t!==H&&t!==z&&t!==V&&t!==$&&t!==F?Z(e,_):(e.state=null,t===$?Z(e,g):m):_},t.deflateSetDictionary=function(e,t){var s,i,r,o,l,h,c,d,u=t.length;if(!e||!e.state)return _;if(2===(o=(s=e.state).wrap)||1===o&&s.status!==B||s.lookahead)return _;for(1===o&&(e.adler=a(e.adler,t,u,0)),s.wrap=0,u>=s.w_size&&(0===o&&(Q(s.head),s.strstart=0,s.block_start=0,s.insert=0),d=new n.Buf8(s.w_size),n.arraySet(d,t,u-s.w_size,s.w_size,0),t=d,u=s.w_size),l=e.avail_in,h=e.next_in,c=e.input,e.avail_in=u,e.next_in=0,e.input=t,re(s);s.lookahead>=x;){i=s.strstart,r=s.lookahead-(x-1);do{s.ins_h=(s.ins_h<<s.hash_shift^s.window[i+x-1])&s.hash_mask,s.prev[i&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=i,i++}while(--r);s.strstart=i,s.lookahead=x-1,re(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=x-1,s.match_available=0,e.next_in=h,e.input=c,e.avail_in=l,s.wrap=o,m},t.deflateInfo="pako deflate (from Nodeca project)"},function(e,t,s){"use strict";var i=s(14),n=4,r=0,a=1,o=2;function l(e){for(var t=e.length;--t>=0;)e[t]=0}var h=0,c=1,d=2,u=29,p=256,m=p+1+u,f=30,_=19,g=2*m+1,E=15,v=16,b=7,w=256,y=16,A=17,I=18,T=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],D=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],C=new Array(2*(m+2));l(C);var O=new Array(2*f);l(O);var R=new Array(512);l(R);var M=new Array(256);l(M);var k=new Array(u);l(k);var L,x,U,P=new Array(f);function G(e,t,s,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}function B(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function j(e){return e<256?R[e]:R[256+(e>>>7)]}function H(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function z(e,t,s){e.bi_valid>v-s?(e.bi_buf|=t<<e.bi_valid&65535,H(e,e.bi_buf),e.bi_buf=t>>v-e.bi_valid,e.bi_valid+=s-v):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=s)}function V(e,t,s){z(e,s[2*t],s[2*t+1])}function $(e,t){var s=0;do{s|=1&e,e>>>=1,s<<=1}while(--t>0);return s>>>1}function F(e,t,s){var i,n,r=new Array(E+1),a=0;for(i=1;i<=E;i++)r[i]=a=a+s[i-1]<<1;for(n=0;n<=t;n++){var o=e[2*n+1];0!==o&&(e[2*n]=$(r[o]++,o))}}function K(e){var t;for(t=0;t<m;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<_;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*w]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function W(e){e.bi_valid>8?H(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function q(e,t,s,i){var n=2*t,r=2*s;return e[n]<e[r]||e[n]===e[r]&&i[t]<=i[s]}function Y(e,t,s){for(var i=e.heap[s],n=s<<1;n<=e.heap_len&&(n<e.heap_len&&q(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!q(t,i,e.heap[n],e.depth));)e.heap[s]=e.heap[n],s=n,n<<=1;e.heap[s]=i}function J(e,t,s){var i,n,r,a,o=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],n=e.pending_buf[e.l_buf+o],o++,0===i?V(e,n,t):(V(e,(r=M[n])+p+1,t),0!==(a=T[r])&&z(e,n-=k[r],a),V(e,r=j(--i),s),0!==(a=D[r])&&z(e,i-=P[r],a))}while(o<e.last_lit);V(e,w,t)}function Z(e,t){var s,i,n,r=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,l=t.stat_desc.elems,h=-1;for(e.heap_len=0,e.heap_max=g,s=0;s<l;s++)0!==r[2*s]?(e.heap[++e.heap_len]=h=s,e.depth[s]=0):r[2*s+1]=0;for(;e.heap_len<2;)r[2*(n=e.heap[++e.heap_len]=h<2?++h:0)]=1,e.depth[n]=0,e.opt_len--,o&&(e.static_len-=a[2*n+1]);for(t.max_code=h,s=e.heap_len>>1;s>=1;s--)Y(e,r,s);n=l;do{s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Y(e,r,1),i=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=i,r[2*n]=r[2*s]+r[2*i],e.depth[n]=(e.depth[s]>=e.depth[i]?e.depth[s]:e.depth[i])+1,r[2*s+1]=r[2*i+1]=n,e.heap[1]=n++,Y(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var s,i,n,r,a,o,l=t.dyn_tree,h=t.max_code,c=t.stat_desc.static_tree,d=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,m=t.stat_desc.max_length,f=0;for(r=0;r<=E;r++)e.bl_count[r]=0;for(l[2*e.heap[e.heap_max]+1]=0,s=e.heap_max+1;s<g;s++)(r=l[2*l[2*(i=e.heap[s])+1]+1]+1)>m&&(r=m,f++),l[2*i+1]=r,i>h||(e.bl_count[r]++,a=0,i>=p&&(a=u[i-p]),o=l[2*i],e.opt_len+=o*(r+a),d&&(e.static_len+=o*(c[2*i+1]+a)));if(0!==f){do{for(r=m-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[m]--,f-=2}while(f>0);for(r=m;0!==r;r--)for(i=e.bl_count[r];0!==i;)(n=e.heap[--s])>h||(l[2*n+1]!==r&&(e.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}(e,t),F(r,h,e.bl_count)}function X(e,t,s){var i,n,r=-1,a=t[1],o=0,l=7,h=4;for(0===a&&(l=138,h=3),t[2*(s+1)+1]=65535,i=0;i<=s;i++)n=a,a=t[2*(i+1)+1],++o<l&&n===a||(o<h?e.bl_tree[2*n]+=o:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[2*y]++):o<=10?e.bl_tree[2*A]++:e.bl_tree[2*I]++,o=0,r=n,0===a?(l=138,h=3):n===a?(l=6,h=3):(l=7,h=4))}function Q(e,t,s){var i,n,r=-1,a=t[1],o=0,l=7,h=4;for(0===a&&(l=138,h=3),i=0;i<=s;i++)if(n=a,a=t[2*(i+1)+1],!(++o<l&&n===a)){if(o<h)do{V(e,n,e.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(V(e,n,e.bl_tree),o--),V(e,y,e.bl_tree),z(e,o-3,2)):o<=10?(V(e,A,e.bl_tree),z(e,o-3,3)):(V(e,I,e.bl_tree),z(e,o-11,7));o=0,r=n,0===a?(l=138,h=3):n===a?(l=6,h=3):(l=7,h=4)}}l(P);var ee=!1;function te(e,t,s,n){z(e,(h<<1)+(n?1:0),3),function(e,t,s,n){W(e),n&&(H(e,s),H(e,~s)),i.arraySet(e.pending_buf,e.window,t,s,e.pending),e.pending+=s}(e,t,s,!0)}t._tr_init=function(e){ee||(function(){var e,t,s,i,n,r=new Array(E+1);for(s=0,i=0;i<u-1;i++)for(k[i]=s,e=0;e<1<<T[i];e++)M[s++]=i;for(M[s-1]=i,n=0,i=0;i<16;i++)for(P[i]=n,e=0;e<1<<D[i];e++)R[n++]=i;for(n>>=7;i<f;i++)for(P[i]=n<<7,e=0;e<1<<D[i]-7;e++)R[256+n++]=i;for(t=0;t<=E;t++)r[t]=0;for(e=0;e<=143;)C[2*e+1]=8,e++,r[8]++;for(;e<=255;)C[2*e+1]=9,e++,r[9]++;for(;e<=279;)C[2*e+1]=7,e++,r[7]++;for(;e<=287;)C[2*e+1]=8,e++,r[8]++;for(F(C,m+1,r),e=0;e<f;e++)O[2*e+1]=5,O[2*e]=$(e,5);L=new G(C,T,p+1,m,E),x=new G(O,D,0,f,E),U=new G(new Array(0),S,0,_,b)}(),ee=!0),e.l_desc=new B(e.dyn_ltree,L),e.d_desc=new B(e.dyn_dtree,x),e.bl_desc=new B(e.bl_tree,U),e.bi_buf=0,e.bi_valid=0,K(e)},t._tr_stored_block=te,t._tr_flush_block=function(e,t,s,i){var l,h,u=0;e.level>0?(e.strm.data_type===o&&(e.strm.data_type=function(e){var t,s=4093624447;for(t=0;t<=31;t++,s>>>=1)if(1&s&&0!==e.dyn_ltree[2*t])return r;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return a;for(t=32;t<p;t++)if(0!==e.dyn_ltree[2*t])return a;return r}(e)),Z(e,e.l_desc),Z(e,e.d_desc),u=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Z(e,e.bl_desc),t=_-1;t>=3&&0===e.bl_tree[2*N[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),l=e.opt_len+3+7>>>3,(h=e.static_len+3+7>>>3)<=l&&(l=h)):l=h=s+5,s+4<=l&&-1!==t?te(e,t,s,i):e.strategy===n||h===l?(z(e,(c<<1)+(i?1:0),3),J(e,C,O)):(z(e,(d<<1)+(i?1:0),3),function(e,t,s,i){var n;for(z(e,t-257,5),z(e,s-1,5),z(e,i-4,4),n=0;n<i;n++)z(e,e.bl_tree[2*N[n]+1],3);Q(e,e.dyn_ltree,t-1),Q(e,e.dyn_dtree,s-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,u+1),J(e,e.dyn_ltree,e.dyn_dtree)),K(e),i&&W(e)},t._tr_tally=function(e,t,s){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&s,e.last_lit++,0===t?e.dyn_ltree[2*s]++:(e.matches++,t--,e.dyn_ltree[2*(M[s]+p+1)]++,e.dyn_dtree[2*j(t)]++),e.last_lit===e.lit_bufsize-1},t._tr_align=function(e){z(e,c<<1,3),V(e,w,C),function(e){16===e.bi_valid?(H(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},function(e,t,s){"use strict";var i=s(140),n=s(14),r=s(74),a=s(76),o=s(44),l=s(75),h=s(143),c=Object.prototype.toString;function d(e){if(!(this instanceof d))return new d(e);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var s=i.inflateInit2(this.strm,t.windowBits);if(s!==a.Z_OK)throw new Error(o[s]);this.header=new h,i.inflateGetHeader(this.strm,this.header)}function u(e,t){var s=new d(t);if(s.push(e,!0),s.err)throw s.msg||o[s.err];return s.result}d.prototype.push=function(e,t){var s,o,l,h,d,u,p=this.strm,m=this.options.chunkSize,f=this.options.dictionary,_=!1;if(this.ended)return!1;o=t===~~t?t:!0===t?a.Z_FINISH:a.Z_NO_FLUSH,"string"==typeof e?p.input=r.binstring2buf(e):"[object ArrayBuffer]"===c.call(e)?p.input=new Uint8Array(e):p.input=e,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new n.Buf8(m),p.next_out=0,p.avail_out=m),(s=i.inflate(p,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&f&&(u="string"==typeof f?r.string2buf(f):"[object ArrayBuffer]"===c.call(f)?new Uint8Array(f):f,s=i.inflateSetDictionary(this.strm,u)),s===a.Z_BUF_ERROR&&!0===_&&(s=a.Z_OK,_=!1),s!==a.Z_STREAM_END&&s!==a.Z_OK)return this.onEnd(s),this.ended=!0,!1;p.next_out&&(0!==p.avail_out&&s!==a.Z_STREAM_END&&(0!==p.avail_in||o!==a.Z_FINISH&&o!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(l=r.utf8border(p.output,p.next_out),h=p.next_out-l,d=r.buf2string(p.output,l),p.next_out=h,p.avail_out=m-h,h&&n.arraySet(p.output,p.output,l,h,0),this.onData(d)):this.onData(n.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(_=!0)}while((p.avail_in>0||0===p.avail_out)&&s!==a.Z_STREAM_END);return s===a.Z_STREAM_END&&(o=a.Z_FINISH),o===a.Z_FINISH?(s=i.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===a.Z_OK):o!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),p.avail_out=0,!0)},d.prototype.onData=function(e){this.chunks.push(e)},d.prototype.onEnd=function(e){e===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.Inflate=d,t.inflate=u,t.inflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},t.ungzip=u},function(e,t,s){"use strict";var i=s(14),n=s(72),r=s(73),a=s(141),o=s(142),l=0,h=1,c=2,d=4,u=5,p=6,m=0,f=1,_=2,g=-2,E=-3,v=-4,b=-5,w=8,y=1,A=2,I=3,T=4,D=5,S=6,N=7,C=8,O=9,R=10,M=11,k=12,L=13,x=14,U=15,P=16,G=17,B=18,j=19,H=20,z=21,V=22,$=23,F=24,K=25,W=26,q=27,Y=28,J=29,Z=30,X=31,Q=32,ee=852,te=592,se=15;function ie(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function ne(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function re(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=y,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new i.Buf32(ee),t.distcode=t.distdyn=new i.Buf32(te),t.sane=1,t.back=-1,m):g}function ae(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,re(e)):g}function oe(e,t){var s,i;return e&&e.state?(i=e.state,t<0?(s=0,t=-t):(s=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?g:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=s,i.wbits=t,ae(e))):g}function le(e,t){var s,i;return e?(i=new ne,e.state=i,i.window=null,(s=oe(e,t))!==m&&(e.state=null),s):g}var he,ce,de=!0;function ue(e){if(de){var t;for(he=new i.Buf32(512),ce=new i.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(h,e.lens,0,288,he,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(c,e.lens,0,32,ce,0,e.work,{bits:5}),de=!1}e.lencode=he,e.lenbits=9,e.distcode=ce,e.distbits=5}function pe(e,t,s,n){var r,a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new i.Buf8(a.wsize)),n>=a.wsize?(i.arraySet(a.window,t,s-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((r=a.wsize-a.wnext)>n&&(r=n),i.arraySet(a.window,t,s-n,r,a.wnext),(n-=r)?(i.arraySet(a.window,t,s-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0}t.inflateReset=ae,t.inflateReset2=oe,t.inflateResetKeep=re,t.inflateInit=function(e){return le(e,se)},t.inflateInit2=le,t.inflate=function(e,t){var s,ee,te,se,ne,re,ae,oe,le,he,ce,de,me,fe,_e,ge,Ee,ve,be,we,ye,Ae,Ie,Te,De=0,Se=new i.Buf8(4),Ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return g;(s=e.state).mode===k&&(s.mode=L),ne=e.next_out,te=e.output,ae=e.avail_out,se=e.next_in,ee=e.input,re=e.avail_in,oe=s.hold,le=s.bits,he=re,ce=ae,Ae=m;e:for(;;)switch(s.mode){case y:if(0===s.wrap){s.mode=L;break}for(;le<16;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(2&s.wrap&&35615===oe){s.check=0,Se[0]=255&oe,Se[1]=oe>>>8&255,s.check=r(s.check,Se,2,0),oe=0,le=0,s.mode=A;break}if(s.flags=0,s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&oe)<<8)+(oe>>8))%31){e.msg="incorrect header check",s.mode=Z;break}if((15&oe)!==w){e.msg="unknown compression method",s.mode=Z;break}if(le-=4,ye=8+(15&(oe>>>=4)),0===s.wbits)s.wbits=ye;else if(ye>s.wbits){e.msg="invalid window size",s.mode=Z;break}s.dmax=1<<ye,e.adler=s.check=1,s.mode=512&oe?R:k,oe=0,le=0;break;case A:for(;le<16;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(s.flags=oe,(255&s.flags)!==w){e.msg="unknown compression method",s.mode=Z;break}if(57344&s.flags){e.msg="unknown header flags set",s.mode=Z;break}s.head&&(s.head.text=oe>>8&1),512&s.flags&&(Se[0]=255&oe,Se[1]=oe>>>8&255,s.check=r(s.check,Se,2,0)),oe=0,le=0,s.mode=I;case I:for(;le<32;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.head&&(s.head.time=oe),512&s.flags&&(Se[0]=255&oe,Se[1]=oe>>>8&255,Se[2]=oe>>>16&255,Se[3]=oe>>>24&255,s.check=r(s.check,Se,4,0)),oe=0,le=0,s.mode=T;case T:for(;le<16;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.head&&(s.head.xflags=255&oe,s.head.os=oe>>8),512&s.flags&&(Se[0]=255&oe,Se[1]=oe>>>8&255,s.check=r(s.check,Se,2,0)),oe=0,le=0,s.mode=D;case D:if(1024&s.flags){for(;le<16;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.length=oe,s.head&&(s.head.extra_len=oe),512&s.flags&&(Se[0]=255&oe,Se[1]=oe>>>8&255,s.check=r(s.check,Se,2,0)),oe=0,le=0}else s.head&&(s.head.extra=null);s.mode=S;case S:if(1024&s.flags&&((de=s.length)>re&&(de=re),de&&(s.head&&(ye=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Array(s.head.extra_len)),i.arraySet(s.head.extra,ee,se,de,ye)),512&s.flags&&(s.check=r(s.check,ee,de,se)),re-=de,se+=de,s.length-=de),s.length))break e;s.length=0,s.mode=N;case N:if(2048&s.flags){if(0===re)break e;de=0;do{ye=ee[se+de++],s.head&&ye&&s.length<65536&&(s.head.name+=String.fromCharCode(ye))}while(ye&&de<re);if(512&s.flags&&(s.check=r(s.check,ee,de,se)),re-=de,se+=de,ye)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=C;case C:if(4096&s.flags){if(0===re)break e;de=0;do{ye=ee[se+de++],s.head&&ye&&s.length<65536&&(s.head.comment+=String.fromCharCode(ye))}while(ye&&de<re);if(512&s.flags&&(s.check=r(s.check,ee,de,se)),re-=de,se+=de,ye)break e}else s.head&&(s.head.comment=null);s.mode=O;case O:if(512&s.flags){for(;le<16;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(oe!==(65535&s.check)){e.msg="header crc mismatch",s.mode=Z;break}oe=0,le=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=k;break;case R:for(;le<32;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}e.adler=s.check=ie(oe),oe=0,le=0,s.mode=M;case M:if(0===s.havedict)return e.next_out=ne,e.avail_out=ae,e.next_in=se,e.avail_in=re,s.hold=oe,s.bits=le,_;e.adler=s.check=1,s.mode=k;case k:if(t===u||t===p)break e;case L:if(s.last){oe>>>=7&le,le-=7&le,s.mode=q;break}for(;le<3;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}switch(s.last=1&oe,le-=1,3&(oe>>>=1)){case 0:s.mode=x;break;case 1:if(ue(s),s.mode=H,t===p){oe>>>=2,le-=2;break e}break;case 2:s.mode=G;break;case 3:e.msg="invalid block type",s.mode=Z}oe>>>=2,le-=2;break;case x:for(oe>>>=7&le,le-=7&le;le<32;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if((65535&oe)!=(oe>>>16^65535)){e.msg="invalid stored block lengths",s.mode=Z;break}if(s.length=65535&oe,oe=0,le=0,s.mode=U,t===p)break e;case U:s.mode=P;case P:if(de=s.length){if(de>re&&(de=re),de>ae&&(de=ae),0===de)break e;i.arraySet(te,ee,se,de,ne),re-=de,se+=de,ae-=de,ne+=de,s.length-=de;break}s.mode=k;break;case G:for(;le<14;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(s.nlen=257+(31&oe),oe>>>=5,le-=5,s.ndist=1+(31&oe),oe>>>=5,le-=5,s.ncode=4+(15&oe),oe>>>=4,le-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=Z;break}s.have=0,s.mode=B;case B:for(;s.have<s.ncode;){for(;le<3;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.lens[Ne[s.have++]]=7&oe,oe>>>=3,le-=3}for(;s.have<19;)s.lens[Ne[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,Ie={bits:s.lenbits},Ae=o(l,s.lens,0,19,s.lencode,0,s.work,Ie),s.lenbits=Ie.bits,Ae){e.msg="invalid code lengths set",s.mode=Z;break}s.have=0,s.mode=j;case j:for(;s.have<s.nlen+s.ndist;){for(;ge=(De=s.lencode[oe&(1<<s.lenbits)-1])>>>16&255,Ee=65535&De,!((_e=De>>>24)<=le);){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(Ee<16)oe>>>=_e,le-=_e,s.lens[s.have++]=Ee;else{if(16===Ee){for(Te=_e+2;le<Te;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(oe>>>=_e,le-=_e,0===s.have){e.msg="invalid bit length repeat",s.mode=Z;break}ye=s.lens[s.have-1],de=3+(3&oe),oe>>>=2,le-=2}else if(17===Ee){for(Te=_e+3;le<Te;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}le-=_e,ye=0,de=3+(7&(oe>>>=_e)),oe>>>=3,le-=3}else{for(Te=_e+7;le<Te;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}le-=_e,ye=0,de=11+(127&(oe>>>=_e)),oe>>>=7,le-=7}if(s.have+de>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=Z;break}for(;de--;)s.lens[s.have++]=ye}}if(s.mode===Z)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=Z;break}if(s.lenbits=9,Ie={bits:s.lenbits},Ae=o(h,s.lens,0,s.nlen,s.lencode,0,s.work,Ie),s.lenbits=Ie.bits,Ae){e.msg="invalid literal/lengths set",s.mode=Z;break}if(s.distbits=6,s.distcode=s.distdyn,Ie={bits:s.distbits},Ae=o(c,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,Ie),s.distbits=Ie.bits,Ae){e.msg="invalid distances set",s.mode=Z;break}if(s.mode=H,t===p)break e;case H:s.mode=z;case z:if(re>=6&&ae>=258){e.next_out=ne,e.avail_out=ae,e.next_in=se,e.avail_in=re,s.hold=oe,s.bits=le,a(e,ce),ne=e.next_out,te=e.output,ae=e.avail_out,se=e.next_in,ee=e.input,re=e.avail_in,oe=s.hold,le=s.bits,s.mode===k&&(s.back=-1);break}for(s.back=0;ge=(De=s.lencode[oe&(1<<s.lenbits)-1])>>>16&255,Ee=65535&De,!((_e=De>>>24)<=le);){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(ge&&0==(240&ge)){for(ve=_e,be=ge,we=Ee;ge=(De=s.lencode[we+((oe&(1<<ve+be)-1)>>ve)])>>>16&255,Ee=65535&De,!(ve+(_e=De>>>24)<=le);){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}oe>>>=ve,le-=ve,s.back+=ve}if(oe>>>=_e,le-=_e,s.back+=_e,s.length=Ee,0===ge){s.mode=W;break}if(32&ge){s.back=-1,s.mode=k;break}if(64&ge){e.msg="invalid literal/length code",s.mode=Z;break}s.extra=15&ge,s.mode=V;case V:if(s.extra){for(Te=s.extra;le<Te;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.length+=oe&(1<<s.extra)-1,oe>>>=s.extra,le-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=$;case $:for(;ge=(De=s.distcode[oe&(1<<s.distbits)-1])>>>16&255,Ee=65535&De,!((_e=De>>>24)<=le);){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(0==(240&ge)){for(ve=_e,be=ge,we=Ee;ge=(De=s.distcode[we+((oe&(1<<ve+be)-1)>>ve)])>>>16&255,Ee=65535&De,!(ve+(_e=De>>>24)<=le);){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}oe>>>=ve,le-=ve,s.back+=ve}if(oe>>>=_e,le-=_e,s.back+=_e,64&ge){e.msg="invalid distance code",s.mode=Z;break}s.offset=Ee,s.extra=15&ge,s.mode=F;case F:if(s.extra){for(Te=s.extra;le<Te;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}s.offset+=oe&(1<<s.extra)-1,oe>>>=s.extra,le-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=Z;break}s.mode=K;case K:if(0===ae)break e;if(de=ce-ae,s.offset>de){if((de=s.offset-de)>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=Z;break}de>s.wnext?(de-=s.wnext,me=s.wsize-de):me=s.wnext-de,de>s.length&&(de=s.length),fe=s.window}else fe=te,me=ne-s.offset,de=s.length;de>ae&&(de=ae),ae-=de,s.length-=de;do{te[ne++]=fe[me++]}while(--de);0===s.length&&(s.mode=z);break;case W:if(0===ae)break e;te[ne++]=s.length,ae--,s.mode=z;break;case q:if(s.wrap){for(;le<32;){if(0===re)break e;re--,oe|=ee[se++]<<le,le+=8}if(ce-=ae,e.total_out+=ce,s.total+=ce,ce&&(e.adler=s.check=s.flags?r(s.check,te,ce,ne-ce):n(s.check,te,ce,ne-ce)),ce=ae,(s.flags?oe:ie(oe))!==s.check){e.msg="incorrect data check",s.mode=Z;break}oe=0,le=0}s.mode=Y;case Y:if(s.wrap&&s.flags){for(;le<32;){if(0===re)break e;re--,oe+=ee[se++]<<le,le+=8}if(oe!==(4294967295&s.total)){e.msg="incorrect length check",s.mode=Z;break}oe=0,le=0}s.mode=J;case J:Ae=f;break e;case Z:Ae=E;break e;case X:return v;case Q:default:return g}return e.next_out=ne,e.avail_out=ae,e.next_in=se,e.avail_in=re,s.hold=oe,s.bits=le,(s.wsize||ce!==e.avail_out&&s.mode<Z&&(s.mode<q||t!==d))&&pe(e,e.output,e.next_out,ce-e.avail_out)?(s.mode=X,v):(he-=e.avail_in,ce-=e.avail_out,e.total_in+=he,e.total_out+=ce,s.total+=ce,s.wrap&&ce&&(e.adler=s.check=s.flags?r(s.check,te,ce,e.next_out-ce):n(s.check,te,ce,e.next_out-ce)),e.data_type=s.bits+(s.last?64:0)+(s.mode===k?128:0)+(s.mode===H||s.mode===U?256:0),(0===he&&0===ce||t===d)&&Ae===m&&(Ae=b),Ae)},t.inflateEnd=function(e){if(!e||!e.state)return g;var t=e.state;return t.window&&(t.window=null),e.state=null,m},t.inflateGetHeader=function(e,t){var s;return e&&e.state?0==(2&(s=e.state).wrap)?g:(s.head=t,t.done=!1,m):g},t.inflateSetDictionary=function(e,t){var s,i=t.length;return e&&e.state?0!==(s=e.state).wrap&&s.mode!==M?g:s.mode===M&&n(1,t,i,0)!==s.check?E:pe(e,t,i,i)?(s.mode=X,v):(s.havedict=1,m):g},t.inflateInfo="pako inflate (from Nodeca project)"},function(e,t,s){"use strict";e.exports=function(e,t){var s,i,n,r,a,o,l,h,c,d,u,p,m,f,_,g,E,v,b,w,y,A,I,T,D;s=e.state,i=e.next_in,T=e.input,n=i+(e.avail_in-5),r=e.next_out,D=e.output,a=r-(t-e.avail_out),o=r+(e.avail_out-257),l=s.dmax,h=s.wsize,c=s.whave,d=s.wnext,u=s.window,p=s.hold,m=s.bits,f=s.lencode,_=s.distcode,g=(1<<s.lenbits)-1,E=(1<<s.distbits)-1;e:do{m<15&&(p+=T[i++]<<m,m+=8,p+=T[i++]<<m,m+=8),v=f[p&g];t:for(;;){if(p>>>=b=v>>>24,m-=b,0===(b=v>>>16&255))D[r++]=65535&v;else{if(!(16&b)){if(0==(64&b)){v=f[(65535&v)+(p&(1<<b)-1)];continue t}if(32&b){s.mode=12;break e}e.msg="invalid literal/length code",s.mode=30;break e}w=65535&v,(b&=15)&&(m<b&&(p+=T[i++]<<m,m+=8),w+=p&(1<<b)-1,p>>>=b,m-=b),m<15&&(p+=T[i++]<<m,m+=8,p+=T[i++]<<m,m+=8),v=_[p&E];s:for(;;){if(p>>>=b=v>>>24,m-=b,!(16&(b=v>>>16&255))){if(0==(64&b)){v=_[(65535&v)+(p&(1<<b)-1)];continue s}e.msg="invalid distance code",s.mode=30;break e}if(y=65535&v,m<(b&=15)&&(p+=T[i++]<<m,(m+=8)<b&&(p+=T[i++]<<m,m+=8)),(y+=p&(1<<b)-1)>l){e.msg="invalid distance too far back",s.mode=30;break e}if(p>>>=b,m-=b,y>(b=r-a)){if((b=y-b)>c&&s.sane){e.msg="invalid distance too far back",s.mode=30;break e}if(A=0,I=u,0===d){if(A+=h-b,b<w){w-=b;do{D[r++]=u[A++]}while(--b);A=r-y,I=D}}else if(d<b){if(A+=h+d-b,(b-=d)<w){w-=b;do{D[r++]=u[A++]}while(--b);if(A=0,d<w){w-=b=d;do{D[r++]=u[A++]}while(--b);A=r-y,I=D}}}else if(A+=d-b,b<w){w-=b;do{D[r++]=u[A++]}while(--b);A=r-y,I=D}for(;w>2;)D[r++]=I[A++],D[r++]=I[A++],D[r++]=I[A++],w-=3;w&&(D[r++]=I[A++],w>1&&(D[r++]=I[A++]))}else{A=r-y;do{D[r++]=D[A++],D[r++]=D[A++],D[r++]=D[A++],w-=3}while(w>2);w&&(D[r++]=D[A++],w>1&&(D[r++]=D[A++]))}break}}break}}while(i<n&&r<o);i-=w=m>>3,p&=(1<<(m-=w<<3))-1,e.next_in=i,e.next_out=r,e.avail_in=i<n?n-i+5:5-(i-n),e.avail_out=r<o?o-r+257:257-(r-o),s.hold=p,s.bits=m}},function(e,t,s){"use strict";var i=s(14),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],r=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],o=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(e,t,s,l,h,c,d,u){var p,m,f,_,g,E,v,b,w,y=u.bits,A=0,I=0,T=0,D=0,S=0,N=0,C=0,O=0,R=0,M=0,k=null,L=0,x=new i.Buf16(16),U=new i.Buf16(16),P=null,G=0;for(A=0;A<=15;A++)x[A]=0;for(I=0;I<l;I++)x[t[s+I]]++;for(S=y,D=15;D>=1&&0===x[D];D--);if(S>D&&(S=D),0===D)return h[c++]=20971520,h[c++]=20971520,u.bits=1,0;for(T=1;T<D&&0===x[T];T++);for(S<T&&(S=T),O=1,A=1;A<=15;A++)if(O<<=1,(O-=x[A])<0)return-1;if(O>0&&(0===e||1!==D))return-1;for(U[1]=0,A=1;A<15;A++)U[A+1]=U[A]+x[A];for(I=0;I<l;I++)0!==t[s+I]&&(d[U[t[s+I]]++]=I);if(0===e?(k=P=d,E=19):1===e?(k=n,L-=257,P=r,G-=257,E=256):(k=a,P=o,E=-1),M=0,I=0,A=T,g=c,N=S,C=0,f=-1,_=(R=1<<S)-1,1===e&&R>852||2===e&&R>592)return 1;for(;;){v=A-C,d[I]<E?(b=0,w=d[I]):d[I]>E?(b=P[G+d[I]],w=k[L+d[I]]):(b=96,w=0),p=1<<A-C,T=m=1<<N;do{h[g+(M>>C)+(m-=p)]=v<<24|b<<16|w|0}while(0!==m);for(p=1<<A-1;M&p;)p>>=1;if(0!==p?(M&=p-1,M+=p):M=0,I++,0==--x[A]){if(A===D)break;A=t[s+d[I]]}if(A>S&&(M&_)!==f){for(0===C&&(C=S),g+=T,O=1<<(N=A-C);N+C<D&&!((O-=x[N+C])<=0);)N++,O<<=1;if(R+=1<<N,1===e&&R>852||2===e&&R>592)return 1;h[f=M&_]=S<<24|N<<16|g-c|0}}return 0!==M&&(h[g+M]=A-C<<24|64<<16|0),u.bits=S,0}},function(e,t,s){"use strict";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},function(e,t,s){e.exports=class ActionsManager{constructor(e){this.client=e,this.register(s(145)),this.register(s(146)),this.register(s(147)),this.register(s(148)),this.register(s(149)),this.register(s(150)),this.register(s(151)),this.register(s(152)),this.register(s(153)),this.register(s(154)),this.register(s(155)),this.register(s(156)),this.register(s(157)),this.register(s(158)),this.register(s(159)),this.register(s(160)),this.register(s(161)),this.register(s(162)),this.register(s(163)),this.register(s(164)),this.register(s(165)),this.register(s(166)),this.register(s(167)),this.register(s(168))}register(e){this[e.name.replace(/Action$/,"")]=new e(this.client)}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class MessageCreateAction extends i{handle(e){const t=this.client,s=t.channels.get(e.channel_id);if(s){const i=s.messages.get(e.id);if(i)return{message:i};const r=s.messages.add(e),a=r.author,o=s.guild?s.guild.member(a):null;return s.lastMessageID=e.id,a&&(a.lastMessageID=e.id,a.lastMessageChannelID=s.id),o&&(o.lastMessageID=e.id,o.lastMessageChannelID=s.id),t.emit(n.MESSAGE_CREATE,r),{message:r}}return{}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class MessageDeleteAction extends i{handle(e){const t=this.client,s=t.channels.get(e.channel_id);let i;return s&&(i=s.messages.get(e.id))&&(s.messages.delete(i.id),i.deleted=!0,t.emit(n.MESSAGE_DELETE,i)),{message:i}}}},function(e,t,s){const i=s(5),n=s(2),{Events:r}=s(0);e.exports=class MessageDeleteBulkAction extends i{handle(e){const t=this.client,s=t.channels.get(e.channel_id);if(s){const i=e.ids,a=new n;for(const e of i){const t=s.messages.get(e);t&&(t.deleted=!0,a.set(t.id,t),s.messages.delete(e))}return a.size>0&&t.emit(r.MESSAGE_BULK_DELETE,a),{messages:a}}return{}}}},function(e,t,s){const i=s(5);e.exports=class MessageUpdateAction extends i{handle(e){const t=this.client.channels.get(e.channel_id);if(t){const s=t.messages.get(e.id);if(s)return s.patch(e),{old:s._edits[0],updated:s}}return{}}}},function(e,t,s){const i=s(5);e.exports=class MessageReactionAdd extends i{handle(e){const t=e.user||this.client.users.get(e.user_id);if(!t)return!1;const s=e.channel||this.client.channels.get(e.channel_id);if(!s||"voice"===s.type)return!1;const i=e.message||s.messages.get(e.message_id);if(!i)return!1;if(!e.emoji)return!1;const n=i.reactions.add({emoji:e.emoji,count:0,me:t.id===this.client.user.id});return n._add(t),{message:i,reaction:n,user:t}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class MessageReactionRemove extends i{handle(e){const t=this.client.users.get(e.user_id);if(!t)return!1;const s=this.client.channels.get(e.channel_id);if(!s||"voice"===s.type)return!1;const i=s.messages.get(e.message_id);if(!i)return!1;if(!e.emoji)return!1;const r=e.emoji.id||decodeURIComponent(e.emoji.name),a=i.reactions.get(r);return!!a&&(a._remove(t),this.client.emit(n.MESSAGE_REACTION_REMOVE,a,t),{message:i,reaction:a,user:t})}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class MessageReactionRemoveAll extends i{handle(e){const t=this.client.channels.get(e.channel_id);if(!t||"voice"===t.type)return!1;const s=t.messages.get(e.message_id);return!!s&&(s.reactions.clear(),this.client.emit(n.MESSAGE_REACTION_REMOVE_ALL,s),{message:s})}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class ChannelCreateAction extends i{handle(e){const t=this.client,s=t.channels.has(e.id),i=t.channels.add(e);return!s&&i&&t.emit(n.CHANNEL_CREATE,i),{channel:i}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class ChannelDeleteAction extends i{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client;let s=t.channels.get(e.id);return s&&(t.channels.remove(s.id),s.deleted=!0,t.emit(n.CHANNEL_DELETE,s)),{channel:s}}}},function(e,t,s){const i=s(5);e.exports=class ChannelUpdateAction extends i{handle(e){const t=this.client.channels.get(e.id);return t?{old:t._update(e),updated:t}:{}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildDeleteAction extends i{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client;let s=t.guilds.get(e.id);if(s){for(const e of s.channels.values())"text"===e.type&&e.stopTyping(!0);if(s.available&&e.unavailable)return s.available=!1,t.emit(n.GUILD_UNAVAILABLE,s),{guild:null};for(const e of s.channels.values())this.client.channels.remove(e.id);s.voiceConnection&&s.voiceConnection.disconnect(),t.guilds.remove(s.id),s.deleted=!0,t.emit(n.GUILD_DELETE,s),this.deleted.set(s.id,s),this.scheduleForDeletion(s.id)}else s=this.deleted.get(e.id)||null;return{guild:s}}scheduleForDeletion(e){this.client.setTimeout(()=>this.deleted.delete(e),this.client.options.restWsBridgeTimeout)}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildUpdateAction extends i{handle(e){const t=this.client,s=t.guilds.get(e.id);if(s){const i=s._update(e);return t.emit(n.GUILD_UPDATE,i,s),{old:i,updated:s}}return{old:null,updated:null}}}},function(e,t,s){const i=s(5),{Events:n,Status:r}=s(0);e.exports=class GuildMemberRemoveAction extends i{handle(e){const t=this.client,s=t.guilds.get(e.guild_id);let i=null;return s&&(i=s.members.get(e.user.id),s.memberCount--,i&&(s.voiceStates.delete(i.id),i.deleted=!0,s.members.remove(i.id),t.status===r.READY&&t.emit(n.GUILD_MEMBER_REMOVE,i))),{guild:s,member:i}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildBanRemove extends i{handle(e){const t=this.client,s=t.guilds.get(e.guild_id),i=t.users.add(e.user);s&&i&&t.emit(n.GUILD_BAN_REMOVE,s,i)}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildRoleCreate extends i{handle(e){const t=this.client,s=t.guilds.get(e.guild_id);let i;if(s){const r=s.roles.has(e.role.id);i=s.roles.add(e.role),r||t.emit(n.GUILD_ROLE_CREATE,i)}return{role:i}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildRoleDeleteAction extends i{handle(e){const t=this.client,s=t.guilds.get(e.guild_id);let i;return s&&(i=s.roles.get(e.role_id))&&(s.roles.remove(e.role_id),i.deleted=!0,t.emit(n.GUILD_ROLE_DELETE,i)),{role:i}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildRoleUpdateAction extends i{handle(e){const t=this.client,s=t.guilds.get(e.guild_id);if(s){let i=null;const r=s.roles.get(e.role.id);return r&&(i=r._update(e.role),t.emit(n.GUILD_ROLE_UPDATE,i,r)),{old:i,updated:r}}return{old:null,updated:null}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class UserUpdateAction extends i{handle(e){const t=this.client;if(t.user){if(t.user.equals(e))return{old:t.user,updated:t.user};const s=t.user._update(e);return t.emit(n.USER_UPDATE,s,t.user),{old:s,updated:t.user}}return{old:null,updated:null}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildEmojiCreateAction extends i{handle(e,t){const s=e.emojis.add(t);return this.client.emit(n.GUILD_EMOJI_CREATE,s),{emoji:s}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildEmojiDeleteAction extends i{handle(e){return e.guild.emojis.remove(e.id),e.deleted=!0,this.client.emit(n.GUILD_EMOJI_DELETE,e),{emoji:e}}}},function(e,t,s){const i=s(5),{Events:n}=s(0);e.exports=class GuildEmojiUpdateAction extends i{handle(e,t){const s=e._update(t);return this.client.emit(n.GUILD_EMOJI_UPDATE,s,e),{emoji:e}}}},function(e,t,s){const i=s(5);e.exports=class GuildEmojisUpdateAction extends i{handle(e){const t=this.client.guilds.get(e.guild_id);if(!t||!t.emojis)return;const s=new Map(t.emojis);for(const i of e.emojis){const e=t.emojis.get(i.id);e?(s.delete(i.id),e.equals(i)||this.client.actions.GuildEmojiUpdate.handle(e,i)):this.client.actions.GuildEmojiCreate.handle(t,i)}for(const e of s.values())this.client.actions.GuildEmojiDelete.handle(e)}}},function(e,t,s){const i=s(5);e.exports=class GuildRolesPositionUpdate extends i{handle(e){const t=this.client.guilds.get(e.guild_id);if(t)for(const s of e.roles){const e=t.roles.get(s.id);e&&(e.rawPosition=s.position)}return{guild:t}}}},function(e,t,s){const i=s(5);e.exports=class GuildChannelsPositionUpdate extends i{handle(e){const t=this.client.guilds.get(e.guild_id);if(t)for(const s of e.channels){const e=t.channels.get(s.id);e&&(e.rawPosition=s.position)}return{guild:t}}}},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,s){const i=s(24);class Speaking extends i{}Speaking.FLAGS={SPEAKING:1,SOUNDSHARE:2},e.exports=Speaking}])});