/* Metro module 4096; source: modules/coded_links/findCodedLinks.tsx; dependencies: [4097, 661, 663, 4100, 1473, 3855, 44, 4101, 1471, 4102, 4105, 4098, 4116, 4120, 4122, 4126, 4123, 2] */ function _fun33548(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#33548, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:6, offset: 0x01033a19, size: 1253 bytes, params: 8, frame: 36 var RegExp; const env0_0 = require; const _arrayLikeToArray_33551 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; let closure = getHost; const isHostMatch = function(a0, {host}) { return host?.replace(RegExp('^www[.]', 'i'), '') === a0.host; }; const closure2 = getPathsFromURL; const closure3 = findCodedLinks; const closure4 = parseQuestsEmbedCode; const closure5 = parseURLSafely; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = undefined; const inviteStore = importDefault(4097) /* metro dependency 4097: InviteStore */; const PRIMARY_DOMAIN = (require(661) /* metro dependency 661: Constants */).PRIMARY_DOMAIN; const env0_4 = (require(663) /* metro dependency 663: CollectiblesShopConstants */).CollectibleShopTab; const env0_5 = RegExp('^\\/([a-zA-Z0-9-]+)$', ''); const env0_6 = RegExp('^\\/channels\\/([0-9]+|@me)\\/([0-9]+)$', ''); const env0_7 = RegExp('^\\/(invite|template)\\/([a-zA-Z0-9-]+)\\/?\\.?$', ''); RegExp = global.RegExp; let regExp = new RegExp('^/events/(\\d+)(?:/)(\\d+)?((?:/)(\\d+))?'); const env0_9 = RegExp('^\\/(application-directory|discovery\\/applications)\\/([0-9-]+)\\/?((about|images|privacy)\\/?)?$', ''); const env0_10 = RegExp('^\\/(application-directory|discovery\\/applications)\\/([0-9-]+)\\/store\\/?([0-9-]+)?\\/?$', ''); const env0_11 = RegExp('^\\/activities\\/([0-9-]+)\\/?$', ''); const env0_12 = RegExp('^\\/channels\\/([0-9]+)\\/shop\\/([0-9]+)$', ''); const env0_13 = RegExp('^(?:\\/game-shop\\/([0-9]+)|\\/channels\\/([0-9]+)\\/game-shop\\/(?:[0-9]+))\\/([0-9]+)(?:\\/([^\\/]+))?$', ''); const env0_14 = RegExp('^\\/channels\\/([0-9]+)\\/shop$', ''); const env0_15 = RegExp('^\\/quests\\/([0-9-]+)\\/?$', ''); const env0_16 = RegExp('^\\/oauth2\\/authorize', ''); const env0_17 = RegExp('^#itemSkuId=([0-9]+)$', ''); const regexp = RegExp("dev:\\/\\/[\\w-.~:\\/?#\\[\\]@!$&'()*+,;=%]+", 'i'); let GLOBAL_ENV = global.window.GLOBAL_ENV; const INVITE_HOST = GLOBAL_ENV.INVITE_HOST; let value4 = closure(INVITE_HOST); GLOBAL_ENV = global.window.GLOBAL_ENV; const GUILD_TEMPLATE_HOST = GLOBAL_ENV.GUILD_TEMPLATE_HOST; let value5 = closure(GUILD_TEMPLATE_HOST); GLOBAL_ENV = global.window.GLOBAL_ENV; const WEBAPP_ENDPOINT = GLOBAL_ENV.WEBAPP_ENDPOINT; const value7 = closure(WEBAPP_ENDPOINT ?? '//canary.' + PRIMARY_DOMAIN); const env0_22 = closure('//canary.' + PRIMARY_DOMAIN); const env0_23 = closure('//ptb.' + PRIMARY_DOMAIN); const value8 = closure('discordapp.com'); const value9 = closure('discord.com'); const regexUtils = importDefault(4100) /* metro dependency 4100: RegexUtils */; let escape = regexUtils.escape; const host = value4.host; const value11 = ''; items = [Reflect.apply(escape, regexUtils, [host ?? value11])]; const value13 = regexUtils; items[1] = value13.escape(value5.host ?? value11); const value14 = regexUtils; items[2] = value14.escape(value7.host ?? value11); const value15 = regexUtils; escape = value15.escape; let r13 = value8.host ?? value11; items[3] = Reflect.apply(escape, value15, [r13]); const value16 = regexUtils; items[4] = value16.escape(value9.host ?? value11); const filter = items.filter; const Boolean = global.Boolean; const value17 = Reflect.apply(filter, items, [Boolean]); RegExp = global.RegExp; regExp = new RegExp('((https?://[^ ]*)|^|[^/][^/.])(' + value17.join('|') + ')', 'g'); closure = stripMarkdownLinkSyntax; const link = (importDefault(3855) /* metro dependency 3855 */).defaultRules.link; const source = link == null || link.match == null || link.match.regex == null ? value : link.match.regex.source; (importDefault(44) /* metro dependency 44 */)(source, 'SimpleMarkdown link regex is not set.'); r13 = source[0] !== '^' ? source : source.substring(1); RegExp = global.RegExp; regExp = new RegExp(r13, 'g'); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/coded_links/findCodedLinks.tsx'); exports.default = closure3; exports.DEVLINK_REGEX = regexp; exports.stripMarkdownLinkSyntax = closure; exports.remainingPathFromDiscordHostMatch = remainingPathFromDiscordHostMatch; exports.getPathsFromURL = closure2; exports.isSuspiciousCodedLink = isSuspiciousCodedLink; exports.parseQuestsEmbedCode = closure4; exports.parseURLSafely = closure5; exports.findCodedLink = findCodedLink; return value; } function _createForOfIteratorHelperLoose_33549(a0, a1) { // fn#33549, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:184, offset: 0x01033efe, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun33550; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_33551(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_33551(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_33551(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun33550; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); } function getHost(a0) { // fn#33552, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2336, offset: 0x01034070, size: 126 bytes, params: 2, frame: 15 if (a0 == null) { return {'host': null, 'pathPrefix': null}; } let value = a0.indexOf('/'); if (value >= 0) { value = require(1473) /* metro dependency 1473 */; value = value.parse(a0, undefined, true); return {host: value.host, pathPrefix: value.pathname}; } return {host: a0, pathPrefix: null}; } function remainingPathFromHostMatch(a0, a1) { // fn#33554, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2880, offset: 0x0103412e, size: 113 bytes, params: 3, frame: 15 var r4; var r1; var pathname; var pathPrefix; var value3; let value = isHostMatch(a0, a1); const value2 = null; if (value) { pathname = a1.pathname; value = ''; r4 = value2 != pathname ? pathname : value; pathPrefix = a0.pathPrefix; r1 = value2 != pathPrefix ? pathPrefix : value; if (r4.startsWith(r1)) { value3 = r4.substring(r1.length); return value === value3 ? value2 : value3; } } return value2; } function getPathsFromURL(a0) { // fn#33555, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3104, offset: 0x0103419f, size: 180 bytes, params: 2, frame: 17 var r1; var r0; var object2; var remainingPathFromHostMatchBinding; const uRLSafely = parseURLSafely(a0); if (uRLSafely == null) { r0 = {'url': null, 'inviteHostRemainingPath': null, 'templateHostRemainingPath': null, 'primaryHostRemainingPath': null}; } else if (uRLSafely.pathname == null) { r0 = {'url': null, 'inviteHostRemainingPath': null, 'templateHostRemainingPath': null, 'primaryHostRemainingPath': null}; } else { object2 = {url: uRLSafely}; remainingPathFromHostMatchBinding = remainingPathFromHostMatch; object2.inviteHostRemainingPath = remainingPathFromHostMatchBinding(env0_19, uRLSafely); object2.templateHostRemainingPath = remainingPathFromHostMatchBinding(env0_20, uRLSafely); r1 = remainingPathFromHostMatchBinding(env0_21, uRLSafely) ?? remainingPathFromHostMatch(env0_22, uRLSafely); r1 = r1 ?? remainingPathFromHostMatch(env0_23, uRLSafely); r1 = r1 ?? remainingPathFromHostMatch(env0_24, uRLSafely); r1 = r1 ?? remainingPathFromHostMatch(env0_25, uRLSafely); object2.primaryHostRemainingPath = r1; r0 = object2; } return r0; } function findCodedLinks(a0) { // fn#33556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3653, offset: 0x01034253, size: 253 bytes, params: 2, frame: 20 var value8; var value9; if (a0 != null) { var Set = global.Set; var set = new Set(); var value2 = a0.replace(env0_26, function(a0, a1, a2, a3) { return a2 != null ? a0 : '' + a1 + 'http://' + a3; }); var value3 = stripMarkdownLinkSyntax(value2); var match = value3.match; var URL_REGEX = (importDefault(1471) /* metro dependency 1471: URLUtils */).URL_REGEX; var value4 = Reflect.apply(match, value3, [URL_REGEX]); var value5 = value2.match(env0_18); var r7 = value4 ?? []; var concat = r7.concat; var r2 = value5 ?? []; var value6 = Reflect.apply(concat, r7, [r2]); if (value6 == null) { return []; } if (value6.length === 0) { return []; } var closure = findCodedLinks_loop; set = _createForOfIteratorHelperLoose_33549(value6); var value7 = set(); var done = value7.done; if (!done) { r2 = value7; while (true) { value8 = r2.value; if (closure(value8) === 0) { break; } value9 = set(); done = value9.done; if (done) { break; } r2 = value9; continue; } } } return []; } function parseQuestsEmbedCode(a0) { // fn#33561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7226, offset: 0x01034d30, size: 88 bytes, params: 2, frame: 14 const getPathsFromURLBinding = getPathsFromURL; const value2 = undefined; const pathsFromURLBinding = getPathsFromURLBinding(a0); const value4 = null; const r3 = value4 == pathsFromURLBinding || value4 == pathsFromURLBinding.primaryHostRemainingPath ? value2 : pathsFromURLBinding.primaryHostRemainingPath.match(env0_15); const r1 = value4 == r3 ? value2 : r3[1]; return value4 != r1 ? r1 : value4; } function parseURLSafely(a0) { // fn#33562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7398, offset: 0x01034d88, size: 47 bytes, params: 2, frame: 12 var value; var property; var error; try { value = environment; property = dependencyMap[4]; value = require(property); value = value.parse(a0); } catch (error) { return null; } return value; } function stripMarkdownLinkSyntax(a0) { // fn#33563, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2558, offset: 0x01034db7, size: 30 bytes, params: 2, frame: 13 return a0.replaceAll(env0_28, ' $2 '); } function remainingPathFromDiscordHostMatch(a0) { // fn#33564, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7683, offset: 0x01034dd5, size: 98 bytes, params: 2, frame: 16 let r0 = remainingPathFromHostMatch(env0_21, a0) ?? remainingPathFromHostMatch(env0_22, a0); r0 = r0 ?? remainingPathFromHostMatch(env0_23, a0); r0 = r0 ?? remainingPathFromHostMatch(env0_24, a0); r0 = r0 ?? remainingPathFromHostMatch(env0_25, a0); return r0; } function isSuspiciousCodedLink(a0) { // fn#33565, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8017, offset: 0x01034e37, size: 223 bytes, params: 2, frame: 17 var r1; var parseURLSafelyBinding; var value2; var uRLSafely; var items2; var pathname; var value3; if (a0.includes('\\')) { parseURLSafelyBinding = parseURLSafely; value2 = undefined; uRLSafely = parseURLSafelyBinding(a0); if (uRLSafely == null) { return false; } if (isHostMatch(env0_19, uRLSafely)) { return true; } items2 = [env0_21, env0_22, env0_23, env0_24, env0_25]; if (items2.some(_fun33566)) { pathname = uRLSafely.pathname; if (pathname == null) { r1 = value2; } else { value3 = pathname.toUpperCase(); r1 = value3.includes((require(4101) /* metro dependency 4101: CodedLink */).CodedLinkType.INVITE); } return r1 != null && r1; } } return false; } function findCodedLink(a0) { // fn#33567, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8401, offset: 0x01034f31, size: 25 bytes, params: 2, frame: 11 return findCodedLinks(a0)[0]; } function findCodedLinks_loop(a0) { // fn#33558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3934, owner: findCodedLinks._loop, offset: 0x01034382, size: 2353 bytes, params: 2, frame: 27 var environment; var r0; var r13; var r3; var r10; var r9; var r12; var tab; var applicationId; var skuId; var r11; var r5; var r8; var pathname; var closure; var moduleValue; var isBuildOverrideLink; const CodedLinkType = (require(4101) /* metro dependency 4101: CodedLink */).CodedLinkType; var BUILD_OVERRIDE; var moduleValue2; var isManualBuildOverrideLink; var MANUAL_BUILD_OVERRIDE; var moduleValue3; var isExperimentEmbedURL; var EXPERIMENT; var match; var value5; var protocol; var moduleValue4; var generateInviteKeyFromUrlParams; var substring; var value6; var search; var value7; var getInvite; var value8; var moduleValue5; var isEmbeddedApplicationInvite; var includes; var INVITE; var EMBEDDED_ACTIVITY_INVITE; var value9; var TEMPLATE; var value10; var property; var toUpperCase; var value11; var moduleValue6; var value12; var value13; var CHANNEL_LINK; var replace; var value14; var EVENT; var guildId; var guildEventId; var HermesInternal; var concat; var value15; var value16; var recurrenceId; var value17; var value18; var query; var moduleValue7; var parseOAuth2AuthorizeProps; var oAuth2AuthorizeProps; var clientId; var value19; var value20; var scopes; var value21; var some; var value22; var APP_OAUTH2_LINK; var value23; var APP_DIRECTORY_PROFILE; var value24; var property2; var APP_DIRECTORY_STOREFRONT; var moduleValue8; var makeStorefrontSKUCodedLink; var storefrontSKUCodedLink; var APP_DIRECTORY_STOREFRONT_SKU; var value25; var ACTIVITY_BOOKMARK; var value26; var GUILD_PRODUCT; var property3; var value27; var SERVER_SHOP; var value28; var SOCIAL_LAYER_STOREFRONT; var property4; var property5; var questsEmbedCode; var QUESTS_EMBED; var moduleValue9; var parse; var value29; var GAME_SHOPS; var hash; var value30; var COLLECTIBLES_SHOP; var value31; var value32; var SOCIAL_LAYER_STOREFRONT_APP; const env0_0 = a0; let length = env0_1.length; if (length >= 10) { return 0; } let value = environment.__proto__; const getPathsFromURLBinding = getPathsFromURL; const value2 = undefined; const {url, inviteHostRemainingPath, templateHostRemainingPath, primaryHostRemainingPath} = getPathsFromURLBinding(a0); const value4 = null; if (value4 != url) { pathname = url.pathname; reducibleJoin111: while (true) { if (value4 != pathname) { closure = _loopAdd; moduleValue = require(4102) /* metro dependency 4102: BuildOverrideUtils */; isBuildOverrideLink = moduleValue.isBuildOverrideLink; reducibleJoin5: while (true) { if (Reflect.apply(isBuildOverrideLink, moduleValue, [a0])) { BUILD_OVERRIDE = CodedLinkType.BUILD_OVERRIDE; closure(BUILD_OVERRIDE, a0); break reducibleJoin5; } break reducibleJoin5; } moduleValue2 = require(4102) /* metro dependency 4102: BuildOverrideUtils */; isManualBuildOverrideLink = moduleValue2.isManualBuildOverrideLink; reducibleJoin7: while (true) { if (Reflect.apply(isManualBuildOverrideLink, moduleValue2, [a0])) { MANUAL_BUILD_OVERRIDE = CodedLinkType.MANUAL_BUILD_OVERRIDE; closure(MANUAL_BUILD_OVERRIDE, a0); break reducibleJoin7; } break reducibleJoin7; } moduleValue3 = require(4105) /* metro dependency 4105: ExperimentEmbedUtils */; isExperimentEmbedURL = moduleValue3.isExperimentEmbedURL; reducibleJoin9: while (true) { if (Reflect.apply(isExperimentEmbedURL, moduleValue3, [a0])) { EXPERIMENT = CodedLinkType.EXPERIMENT; closure(EXPERIMENT, a0); break reducibleJoin9; } break reducibleJoin9; } reducibleJoin11: while (true) { if (value4 == inviteHostRemainingPath) { r0 = value2; break reducibleJoin11; } match = inviteHostRemainingPath.match; value5 = Reflect.apply(match, inviteHostRemainingPath, [env1_5]); r0 = value5; break reducibleJoin11; } if (value4 != r0) { protocol = url.protocol; reducibleJoin20: while (true) { reducibleJoin16: while (true) { if (protocol === 'https:') { moduleValue4 = require(4098) /* metro dependency 4098: InviteCodeUtils */; value7 = moduleValue4.generateInviteKeyFromUrlParams(inviteHostRemainingPath.substring(1), url.search); value8 = InviteStore.getInvite(value7); if (value4 == value8) { break reducibleJoin16; } moduleValue5 = require(4116) /* metro dependency 4116: InviteTypeUtils */; if (moduleValue5.isEmbeddedApplicationInvite(value8)) { EMBEDDED_ACTIVITY_INVITE = CodedLinkType.EMBEDDED_ACTIVITY_INVITE; closure(EMBEDDED_ACTIVITY_INVITE, value7); break reducibleJoin20; } break reducibleJoin16; } protocol = url.protocol; if (protocol !== 'http:') { break reducibleJoin20; } moduleValue4 = require(4098) /* metro dependency 4098: InviteCodeUtils */; generateInviteKeyFromUrlParams = moduleValue4.generateInviteKeyFromUrlParams; substring = inviteHostRemainingPath.substring; value6 = Reflect.apply(substring, inviteHostRemainingPath, [1]); search = url.search; value7 = Reflect.apply(generateInviteKeyFromUrlParams, moduleValue4, [value6, search]); getInvite = InviteStore.getInvite; value8 = Reflect.apply(getInvite, InviteStore, [value7]); if (value4 == value8) { break reducibleJoin16; } moduleValue5 = require(4116) /* metro dependency 4116: InviteTypeUtils */; isEmbeddedApplicationInvite = moduleValue5.isEmbeddedApplicationInvite; if (Reflect.apply(isEmbeddedApplicationInvite, moduleValue5, [value8])) { EMBEDDED_ACTIVITY_INVITE = CodedLinkType.EMBEDDED_ACTIVITY_INVITE; closure(EMBEDDED_ACTIVITY_INVITE, value7); break reducibleJoin20; } break reducibleJoin16; } includes = a0.includes; if (Reflect.apply(includes, a0, ['\\'])) { return 1; } INVITE = CodedLinkType.INVITE; closure(INVITE, value7); break reducibleJoin20; } } reducibleJoin22: while (true) { if (value4 == templateHostRemainingPath) { r0 = value2; break reducibleJoin22; } match = templateHostRemainingPath.match; value9 = Reflect.apply(match, templateHostRemainingPath, [env1_5]); r0 = value9; break reducibleJoin22; } reducibleJoin24: while (true) { if (value4 == r0) { break reducibleJoin24; } TEMPLATE = CodedLinkType.TEMPLATE; substring = templateHostRemainingPath.substring; closure(TEMPLATE, Reflect.apply(substring, templateHostRemainingPath, [1])); break reducibleJoin24; } reducibleJoin26: while (true) { if (value4 == primaryHostRemainingPath) { r13 = value2; break reducibleJoin26; } match = primaryHostRemainingPath.match; value10 = Reflect.apply(match, primaryHostRemainingPath, [env1_7]); r13 = value10; break reducibleJoin26; } if (value4 != r13) { property = r13[1]; toUpperCase = property.toUpperCase; value11 = Reflect.apply(toUpperCase, property, []); INVITE = CodedLinkType.INVITE; if (value11 === INVITE) { includes = a0.includes; if (Reflect.apply(includes, a0, ['\\'])) { return 1; } moduleValue6 = require(4098) /* metro dependency 4098: InviteCodeUtils */; generateInviteKeyFromUrlParams = moduleValue6.generateInviteKeyFromUrlParams; property = r13[2]; search = url.search; value12 = Reflect.apply(generateInviteKeyFromUrlParams, moduleValue6, [property, search]); INVITE = CodedLinkType.INVITE; closure(INVITE, value12); } else { closure(value11, r13[2]); } } reducibleJoin33: while (true) { if (value4 == primaryHostRemainingPath) { r3 = value2; break reducibleJoin33; } match = primaryHostRemainingPath.match; value13 = Reflect.apply(match, primaryHostRemainingPath, [env1_6]); r3 = value13; break reducibleJoin33; } reducibleJoin35: while (true) { if (value4 == r3) { break reducibleJoin35; } CHANNEL_LINK = CodedLinkType.CHANNEL_LINK; replace = primaryHostRemainingPath.replace; closure(CHANNEL_LINK, Reflect.apply(replace, primaryHostRemainingPath, ['/channels/', ''])); break reducibleJoin35; } pathname = url.pathname; reducibleJoin40: while (true) { if (value4 == pathname) { r13 = value4; break reducibleJoin40; } match = pathname.match; value14 = Reflect.apply(match, pathname, [env1_8]); reducibleJoin39: while (true) { if (value4 != value14) { length = value14.length; if (length >= 4) { r3 = {guildId: value14[1], guildEventId: value14[2], recurrenceId: value14[4]}; break reducibleJoin39; } r3 = value4; break reducibleJoin39; } r3 = value4; break reducibleJoin39; } r13 = r3; break reducibleJoin40; } reducibleJoin44: while (true) { if (value4 == r13) { break reducibleJoin44; } EVENT = CodedLinkType.EVENT; guildId = r13.guildId; guildEventId = r13.guildEventId; HermesInternal = global.HermesInternal; concat = HermesInternal.concat; value15 = ''; value16 = value15 + guildId + '-' + guildEventId; recurrenceId = r13.recurrenceId; reducibleJoin43: while (true) { if (value4 != recurrenceId) { recurrenceId = r13.recurrenceId; HermesInternal = global.HermesInternal; concat = HermesInternal.concat; value17 = '-' + recurrenceId; r3 = value17; break reducibleJoin43; } r3 = value15; break reducibleJoin43; } closure(EVENT, value16 + r3); break reducibleJoin44; } reducibleJoin46: while (true) { if (value4 == primaryHostRemainingPath) { r3 = value2; break reducibleJoin46; } match = primaryHostRemainingPath.match; value18 = Reflect.apply(match, primaryHostRemainingPath, [env1_16]); r3 = value18; break reducibleJoin46; } reducibleJoin56: while (true) { if (value4 == r3) { break reducibleJoin56; } query = url.query; if (value4 == query) { break reducibleJoin56; } moduleValue7 = require(4120) /* metro dependency 4120: Authorize */; parseOAuth2AuthorizeProps = moduleValue7.parseOAuth2AuthorizeProps; query = url.query; oAuth2AuthorizeProps = Reflect.apply(parseOAuth2AuthorizeProps, moduleValue7, [query]); clientId = oAuth2AuthorizeProps.clientId; value19 = value4 == clientId; reducibleJoin50: while (true) { if (value19) { r3 = value19; break reducibleJoin50; } value20 = clientId === ''; r3 = value20; break reducibleJoin50; } reducibleJoin54: while (true) { if (r3) { break reducibleJoin54; } scopes = oAuth2AuthorizeProps.scopes; value21 = value4 != scopes; reducibleJoin53: while (true) { if (value21) { some = scopes.some; value22 = Reflect.apply(some, scopes, [function(a0) { var APPLICATIONS_COMMANDS = require(dependencyMap[14]).OAuth2Scopes.APPLICATIONS_COMMANDS; return a0 !== APPLICATIONS_COMMANDS; }]); r10 = value22; break reducibleJoin53; } r10 = value21; break reducibleJoin53; } r3 = r10; break reducibleJoin54; } if (r3) { break reducibleJoin56; } APP_OAUTH2_LINK = CodedLinkType.APP_OAUTH2_LINK; closure(APP_OAUTH2_LINK, clientId); break reducibleJoin56; } reducibleJoin58: while (true) { if (value4 == primaryHostRemainingPath) { r9 = value2; break reducibleJoin58; } match = primaryHostRemainingPath.match; value23 = Reflect.apply(match, primaryHostRemainingPath, [env1_9]); r9 = value23; break reducibleJoin58; } reducibleJoin60: while (true) { if (value4 == r9) { break reducibleJoin60; } property = r9[2]; APP_DIRECTORY_PROFILE = CodedLinkType.APP_DIRECTORY_PROFILE; closure(APP_DIRECTORY_PROFILE, property); break reducibleJoin60; } reducibleJoin62: while (true) { if (value4 == primaryHostRemainingPath) { r9 = value2; break reducibleJoin62; } match = primaryHostRemainingPath.match; value24 = Reflect.apply(match, primaryHostRemainingPath, [env1_10]); r9 = value24; break reducibleJoin62; } reducibleJoin66: while (true) { if (value4 == r9) { break reducibleJoin66; } property = r9[2]; property2 = r9[3]; if (value4 != property2) { moduleValue8 = require(4126) /* metro dependency 4126: storefrontMessageEmbedCodedLink */; makeStorefrontSKUCodedLink = moduleValue8.makeStorefrontSKUCodedLink; storefrontSKUCodedLink = Reflect.apply(makeStorefrontSKUCodedLink, moduleValue8, [property, property2]); APP_DIRECTORY_STOREFRONT_SKU = CodedLinkType.APP_DIRECTORY_STOREFRONT_SKU; closure(APP_DIRECTORY_STOREFRONT_SKU, storefrontSKUCodedLink); break reducibleJoin66; } APP_DIRECTORY_STOREFRONT = CodedLinkType.APP_DIRECTORY_STOREFRONT; closure(APP_DIRECTORY_STOREFRONT, property); break reducibleJoin66; } reducibleJoin68: while (true) { if (value4 == primaryHostRemainingPath) { r9 = value2; break reducibleJoin68; } match = primaryHostRemainingPath.match; value25 = Reflect.apply(match, primaryHostRemainingPath, [env1_11]); r9 = value25; break reducibleJoin68; } reducibleJoin70: while (true) { if (value4 == r9) { break reducibleJoin70; } property = r9[1]; ACTIVITY_BOOKMARK = CodedLinkType.ACTIVITY_BOOKMARK; closure(ACTIVITY_BOOKMARK, property); break reducibleJoin70; } reducibleJoin72: while (true) { if (value4 == primaryHostRemainingPath) { r10 = value2; break reducibleJoin72; } match = primaryHostRemainingPath.match; value26 = Reflect.apply(match, primaryHostRemainingPath, [env1_12]); r10 = value26; break reducibleJoin72; } reducibleJoin74: while (true) { if (value4 == r10) { break reducibleJoin74; } GUILD_PRODUCT = CodedLinkType.GUILD_PRODUCT; property = r10[1]; property3 = r10[2]; HermesInternal = global.HermesInternal; concat = HermesInternal.concat; closure(GUILD_PRODUCT, '' + property + '-' + property3); break reducibleJoin74; } reducibleJoin76: while (true) { if (value4 == primaryHostRemainingPath) { r10 = value2; break reducibleJoin76; } match = primaryHostRemainingPath.match; value27 = Reflect.apply(match, primaryHostRemainingPath, [env1_14]); r10 = value27; break reducibleJoin76; } reducibleJoin78: while (true) { if (value4 == r10) { break reducibleJoin78; } SERVER_SHOP = CodedLinkType.SERVER_SHOP; closure(SERVER_SHOP, r10[1]); break reducibleJoin78; } reducibleJoin80: while (true) { if (value4 == primaryHostRemainingPath) { r10 = value2; break reducibleJoin80; } match = primaryHostRemainingPath.match; value28 = Reflect.apply(match, primaryHostRemainingPath, [env1_13]); r10 = value28; break reducibleJoin80; } reducibleJoin84: while (true) { if (value4 == r10) { break reducibleJoin84; } SOCIAL_LAYER_STOREFRONT = CodedLinkType.SOCIAL_LAYER_STOREFRONT; property = r10[3]; property4 = r10[1]; reducibleJoin83: while (true) { if (value4 != property4) { r12 = property4; break reducibleJoin83; } property5 = r10[2]; r12 = property5; break reducibleJoin83; } HermesInternal = global.HermesInternal; concat = HermesInternal.concat; closure(SOCIAL_LAYER_STOREFRONT, '' + property + '-' + r12); break reducibleJoin84; } questsEmbedCode = parseQuestsEmbedCode(a0); reducibleJoin86: while (true) { if (value4 == questsEmbedCode) { break reducibleJoin86; } QUESTS_EMBED = CodedLinkType.QUESTS_EMBED; closure(QUESTS_EMBED, questsEmbedCode); break reducibleJoin86; } reducibleJoin109: while (true) { if (primaryHostRemainingPath !== '/shop') { break reducibleJoin109; } query = url.query; reducibleJoin89: while (true) { if (value4 != query) { moduleValue9 = require(4123) /* metro dependency 4123 */; parse = moduleValue9.parse; query = url.query; value29 = Reflect.apply(parse, moduleValue9, [query]); r3 = value29; break reducibleJoin89; } r3 = value4; break reducibleJoin89; } reducibleJoin91: while (true) { if (value4 == r3) { tab = value2; break reducibleJoin91; } tab = r3.tab; break reducibleJoin91; } GAME_SHOPS = CollectibleShopTab.GAME_SHOPS; if (tab === GAME_SHOPS) { reducibleJoin94: while (true) { if (value4 == r3) { applicationId = value2; break reducibleJoin94; } applicationId = r3.applicationId; break reducibleJoin94; } if (value4 != applicationId) { reducibleJoin97: while (true) { if (value4 == r3) { skuId = value2; break reducibleJoin97; } skuId = r3.skuId; break reducibleJoin97; } if (value4 != skuId) { applicationId = r3.applicationId; skuId = r3.skuId; value31 = typeof applicationId === 'string'; reducibleJoin107: while (true) { if (value31) { value32 = typeof skuId === 'string'; r3 = value32; break reducibleJoin107; } r3 = value31; break reducibleJoin107; } if (r3) { SOCIAL_LAYER_STOREFRONT_APP = CodedLinkType.SOCIAL_LAYER_STOREFRONT_APP; concat = global.HermesInternal.concat; closure(SOCIAL_LAYER_STOREFRONT_APP, '' + skuId + '-' + applicationId); break reducibleJoin109; } break reducibleJoin109; } } } hash = url.hash; reducibleJoin100: while (true) { if (value4 == hash) { r11 = value2; break reducibleJoin100; } match = hash.match; value30 = Reflect.apply(match, hash, [env1_17]); r11 = value30; break reducibleJoin100; } COLLECTIBLES_SHOP = CodedLinkType.COLLECTIBLES_SHOP; value = ''; r9 = value4 != tab ? tab : value; reducibleJoin103: while (true) { if (value4 == r11) { r5 = value2; break reducibleJoin103; } property = r11[1]; r5 = property; break reducibleJoin103; } r8 = value4 != r5 ? r5 : value; HermesInternal = global.HermesInternal; concat = HermesInternal.concat; closure(COLLECTIBLES_SHOP, value + r9 + '-' + r8); break reducibleJoin109; } return value2; } break reducibleJoin111; } } return 1; } function _fun33566(a0) { // fn#33566, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8170, offset: 0x01034f16, size: 27 bytes, params: 2, frame: 13 return isHostMatch(a0, env0_0); } function _loopAdd(a0, a1) { // fn#33559, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:4137, owner: findCodedLinks._loop.add, offset: 0x01034cb3, size: 79 bytes, params: 3, frame: 13 let binding = env1_0; if (!binding.has(a1)) { binding = env1_0; binding.add(a1); binding = env1_1; binding.push({type: a0, code: a1, url: env0_0}); } }