/* Metro module 3801; source: utils/EmojiUtils.tsx; dependencies: [5, 1383, 3784, 1878, 661, 1881, 3800, 3802, 6545, 3777, 7171, 1475, 1423, 2] */ import Module00005 from '../by-id/module-00005.js'; /* Metro dependency 5 */ import UserStore from '../stores/UserStore.tsx'; /* Metro dependency 1878 */ import PermissionStore from '../stores/PermissionStore.tsx'; /* Metro dependency 3784 */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ import * as ChannelRecordModule from '../records/ChannelRecord.tsx'; /* Metro dependency 1383 */ import * as EmojiTypesModule from '../modules/emojis/EmojiTypes.tsx'; /* Metro dependency 3800 */ function _fun29006(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#29006, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:6, offset: 0x00fb41c4, size: 738 bytes, params: 8, frame: 26 const env0_0 = require; const _arrayLikeToArray_29009 = 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; }; const isCustomEmoji2 = isCustomEmoji; const isInternalEmojiForGuildId2 = isInternalEmojiForGuildId; const getEmojiUnavailableReason2 = getEmojiUnavailableReason; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ChannelRecordModule; const env0_4 = value.isGuildTextChannelType; const env0_5 = value.isGuildVocalChannelType; value = require(1881) /* metro dependency 1881: EmojiConstants */; const env0_9 = value.EMOJI_MAX_FILESIZE; const env0_10 = value.EMOJI_MAX_LENGTH; const env0_11 = value.EMOJI_RE; const EmojiDisabledReasons = value.EmojiDisabledReasons; const env0_13 = value.EmojiIntention; const env0_14 = value.isExternalEmojiAllowedForIntention; let Set = global.Set; const PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED; const ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED; let set = new Set([PREMIUM_LOCKED, ROLE_SUBSCRIPTION_LOCKED]); Set = global.Set; object = []; set = arraySpread(object, set, 0, 0); let GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE; object[set] = GUILD_SUBSCRIPTION_UNAVAILABLE; set += 1; const ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE; object[set] = ROLE_SUBSCRIPTION_UNAVAILABLE; set = new Set(object); Set = global.Set; const DISALLOW_CUSTOM = EmojiDisabledReasons.DISALLOW_CUSTOM; const DISALLOW_EXTERNAL = EmojiDisabledReasons.DISALLOW_EXTERNAL; GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE; const ONLY_GUILD_EMOJIS_ALLOWED = EmojiDisabledReasons.ONLY_GUILD_EMOJIS_ALLOWED; set = new Set([DISALLOW_CUSTOM, DISALLOW_EXTERNAL, GUILD_SUBSCRIPTION_UNAVAILABLE, ONLY_GUILD_EMOJIS_ALLOWED]); object = {sanitizeEmojiName: sanitizeEmojiName}; object.filterUnsupportedEmojis = (importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */).filterUnsupportedEmojis; const getURL = (importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */).getURL; object.getURL = getURL; object.isInternalEmojiForGuildId = isInternalEmojiForGuildId2; object.getEmojiUnavailableReason = getEmojiUnavailableReason2; object.isCustomEmoji = isCustomEmoji2; object.getEmojiUnavailableReasons = getEmojiUnavailableReasons; object.isEmojiFiltered = isEmojiFiltered; object.isEmojiPremiumLocked = isEmojiPremiumLocked; object.isEmojiCategoryNitroLocked = isEmojiCategoryNitroLocked; object.isEmojiFilteredOrLocked = function(a0) { return this.isEmojiFiltered(a0) || this.isEmojiPremiumLocked(a0); }; object.isEmojiDisabled = isEmojiDisabled; object.isFileTooBig = function(a0) { return a0.size > 2097152; }; object.isDataTooBig = function(a0) { return require(dependencyMap[11]).dataUriFileSize(a0) > EMOJI_MAX_FILESIZE; }; (FileImportTrackerModule).fileFinishedImporting('utils/EmojiUtils.tsx'); exports.default = object; exports.countEmoji = countEmoji; exports.getEmojiColors = function() { return _getEmojiColors.apply(this, arguments); }; exports.getEmojiUrl = getEmojiUrl; exports.getAllEmojiNamesString = function(a0) { return 'allNamesString' in a0 ? a0.allNamesString : ':' + a0.name + ':'; }; function _createForOfIteratorHelperLoose_29007(a0, a1) { // fn#29007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:370, offset: 0x00fb44a6, 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 _fun29008; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_29009(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_29009(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_29009(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun29008; } 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 _fun29008() { // fn#29008, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:941, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5 return env0_1 >= env0_0.length ? {done: true} : {done: false, value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]}; } } function isCustomEmoji(a0) { // fn#29010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1536, offset: 0x00fb4618, size: 65 bytes, params: 2, frame: 13 const type = a0.type; const EmojiTypes = (EmojiTypesModule).EmojiTypes; const GUILD = EmojiTypes.GUILD; return type === GUILD || a0.guildId != null; } function isInternalEmojiForGuildId(a0, a1) { // fn#29011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1621, offset: 0x00fb4659, size: 56 bytes, params: 3, frame: 13 let value = a0 != null; let r0 = value && a1 != null; if (r0) { value = isCustomEmoji(a0); r0 = value ? a1 === a0.guildId : !value; } return r0; } function getEmojiUnavailableReason({emoji, channel, guildId, intention, forceIncludeExternalGuilds}) { // fn#29012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1721, offset: 0x00fb4691, size: 647 bytes, params: 2, frame: 23 var r1; var r11; var r8; var r6; var r4; var PREMIUM_LOCKED; var r5; var DISALLOW_EXTERNAL; var getGuildId; var value2; var value4; var value5; var isGuildTextChannelTypeBinding; var type; var isGuildTextChannelType2; var value6; var isGuildVocalChannelTypeBinding; var isGuildVocalChannelType2; var isInternalEmojiForGuildId2; var permissionStoreBinding; var can; var USE_EXTERNAL_EMOJIS; var value7; var COMMUNITY_CONTENT; var id; var available; var userStoreBinding; var getCurrentUser; var value8; var defaultImport; var canUseEmojisEverywhere; var STATUS; var managed; var moduleValue; var isUnusableRoleSubscriptionEmoji; var animated; var defaultImport2; var canUseAnimatedEmojis; var isPurchasableRoleSubscriptionEmoji; var shouldHideGuildPurchaseEntryPoints; var ROLE_SUBSCRIPTION_LOCKED; var ROLE_SUBSCRIPTION_UNAVAILABLE; let value = undefined; reducibleJoin4: while (true) { if (guildId !== value) { r11 = guildId; break reducibleJoin4; } reducibleJoin3: while (true) { if (channel == null) { r1 = value; break reducibleJoin3; } getGuildId = channel.getGuildId; value2 = Reflect.apply(getGuildId, channel, []); r1 = value2; break reducibleJoin3; } r11 = r1; break reducibleJoin4; } if (isCustomEmoji(emoji)) { if (intention !== EmojiIntention.GUILD_PROFILE) { reducibleJoin48: while (true) { if (intention !== EmojiIntention.NO_CUSTOM_EMOJI) { value4 = null; value5 = value4 != channel; reducibleJoin10: while (true) { if (value5) { isGuildTextChannelTypeBinding = isGuildTextChannelType; type = channel.type; isGuildTextChannelType2 = isGuildTextChannelTypeBinding(type); r8 = isGuildTextChannelType2; break reducibleJoin10; } r8 = value5; break reducibleJoin10; } value6 = value4 != channel; reducibleJoin12: while (true) { if (value6) { isGuildVocalChannelTypeBinding = isGuildVocalChannelType; type = channel.type; isGuildVocalChannelType2 = isGuildVocalChannelTypeBinding(type); r6 = isGuildVocalChannelType2; break reducibleJoin12; } r6 = value6; break reducibleJoin12; } isInternalEmojiForGuildId2 = isInternalEmojiForGuildId(emoji, r11); permissionStoreBinding = PermissionStore; can = permissionStoreBinding.can; USE_EXTERNAL_EMOJIS = Permissions.USE_EXTERNAL_EMOJIS; value7 = Reflect.apply(can, permissionStoreBinding, [USE_EXTERNAL_EMOJIS, channel]); COMMUNITY_CONTENT = EmojiIntention.COMMUNITY_CONTENT; if (intention === COMMUNITY_CONTENT) { reducibleJoin47: while (true) { reducibleJoin46: while (true) { if (isInternalEmojiForGuildId2) { guildId = emoji.guildId; if (value4 == guildId) { break reducibleJoin46; } available = emoji.available; if (available) { DISALLOW_EXTERNAL = value4; break reducibleJoin47; } break reducibleJoin46; } break reducibleJoin46; } DISALLOW_EXTERNAL = EmojiDisabledReasons.DISALLOW_EXTERNAL; break reducibleJoin47; } return DISALLOW_EXTERNAL; } if (!isExternalEmojiAllowedForIntention(intention)) { reducibleJoin17: while (true) { if (isInternalEmojiForGuildId(emoji, r11)) { break reducibleJoin17; } if (!forceIncludeExternalGuilds) { return EmojiDisabledReasons.DISALLOW_EXTERNAL; } break reducibleJoin17; } } if (!r8) { reducibleJoin19: while (true) { if (!r6) { id = emoji.id; if (value4 != id) { available = emoji.available; reducibleJoin25: while (true) { if (!available) { return EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE; } break reducibleJoin25; } } userStoreBinding = UserStore; getCurrentUser = userStoreBinding.getCurrentUser; value8 = Reflect.apply(getCurrentUser, userStoreBinding, []); defaultImport = importDefault(3802) /* metro dependency 3802: PremiumUtils */; canUseEmojisEverywhere = defaultImport.canUseEmojisEverywhere; if (!Reflect.apply(canUseEmojisEverywhere, defaultImport, [value8])) { reducibleJoin31: while (true) { if (isInternalEmojiForGuildId2) { break reducibleJoin31; } STATUS = EmojiIntention.STATUS; if (intention === STATUS) { return EmojiDisabledReasons.PREMIUM_LOCKED; } managed = emoji.managed; if (!managed) { return EmojiDisabledReasons.PREMIUM_LOCKED; } break reducibleJoin31; } } moduleValue = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */; isUnusableRoleSubscriptionEmoji = moduleValue.isUnusableRoleSubscriptionEmoji; r4 = value4 != r11 ? r11 : value; if (Reflect.apply(isUnusableRoleSubscriptionEmoji, moduleValue, [emoji, r4])) { value = require(3777) /* metro dependency 3777: CreatorMonetizationRestrictionsUtils */; shouldHideGuildPurchaseEntryPoints = value.shouldHideGuildPurchaseEntryPoints; guildId = emoji.guildId; value = Reflect.apply(shouldHideGuildPurchaseEntryPoints, value, [guildId]); if (value) { ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE; r5 = ROLE_SUBSCRIPTION_UNAVAILABLE; } else { ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED; r5 = ROLE_SUBSCRIPTION_LOCKED; } r4 = r5; } else { animated = emoji.animated; reducibleJoin37: while (true) { if (animated) { defaultImport2 = importDefault(3802) /* metro dependency 3802: PremiumUtils */; canUseAnimatedEmojis = defaultImport2.canUseAnimatedEmojis; if (Reflect.apply(canUseAnimatedEmojis, defaultImport2, [value8])) { PREMIUM_LOCKED = value4; break reducibleJoin37; } value = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */; isPurchasableRoleSubscriptionEmoji = value.isPurchasableRoleSubscriptionEmoji; if (Reflect.apply(isPurchasableRoleSubscriptionEmoji, value, [emoji])) { PREMIUM_LOCKED = value4; break reducibleJoin37; } PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED; break reducibleJoin37; } PREMIUM_LOCKED = value4; break reducibleJoin37; } r4 = PREMIUM_LOCKED; } return r4; } break reducibleJoin19; } } if (!isInternalEmojiForGuildId2) { reducibleJoin22: while (true) { if (!value7) { return EmojiDisabledReasons.DISALLOW_EXTERNAL; } break reducibleJoin22; } } id = emoji.id; if (value4 != id) { available = emoji.available; reducibleJoin25: while (true) { if (!available) { return EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE; } break reducibleJoin25; } } userStoreBinding = UserStore; getCurrentUser = userStoreBinding.getCurrentUser; value8 = Reflect.apply(getCurrentUser, userStoreBinding, []); defaultImport = importDefault(3802) /* metro dependency 3802: PremiumUtils */; canUseEmojisEverywhere = defaultImport.canUseEmojisEverywhere; if (!Reflect.apply(canUseEmojisEverywhere, defaultImport, [value8])) { reducibleJoin31: while (true) { if (isInternalEmojiForGuildId2) { break reducibleJoin31; } STATUS = EmojiIntention.STATUS; if (intention === STATUS) { return EmojiDisabledReasons.PREMIUM_LOCKED; } managed = emoji.managed; if (!managed) { return EmojiDisabledReasons.PREMIUM_LOCKED; } break reducibleJoin31; } } moduleValue = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */; isUnusableRoleSubscriptionEmoji = moduleValue.isUnusableRoleSubscriptionEmoji; r4 = value4 != r11 ? r11 : value; if (Reflect.apply(isUnusableRoleSubscriptionEmoji, moduleValue, [emoji, r4])) { value = require(3777) /* metro dependency 3777: CreatorMonetizationRestrictionsUtils */; shouldHideGuildPurchaseEntryPoints = value.shouldHideGuildPurchaseEntryPoints; guildId = emoji.guildId; value = Reflect.apply(shouldHideGuildPurchaseEntryPoints, value, [guildId]); if (value) { ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE; r5 = ROLE_SUBSCRIPTION_UNAVAILABLE; } else { ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED; r5 = ROLE_SUBSCRIPTION_LOCKED; } r4 = r5; } else { animated = emoji.animated; reducibleJoin37: while (true) { if (animated) { defaultImport2 = importDefault(3802) /* metro dependency 3802: PremiumUtils */; canUseAnimatedEmojis = defaultImport2.canUseAnimatedEmojis; if (Reflect.apply(canUseAnimatedEmojis, defaultImport2, [value8])) { PREMIUM_LOCKED = value4; break reducibleJoin37; } value = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */; isPurchasableRoleSubscriptionEmoji = value.isPurchasableRoleSubscriptionEmoji; if (Reflect.apply(isPurchasableRoleSubscriptionEmoji, value, [emoji])) { PREMIUM_LOCKED = value4; break reducibleJoin37; } PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED; break reducibleJoin37; } PREMIUM_LOCKED = value4; break reducibleJoin37; } r4 = PREMIUM_LOCKED; } return r4; } break reducibleJoin48; } } return EmojiDisabledReasons.DISALLOW_CUSTOM; } return null; } function _getEmojiColors() { // fn#29013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4286, offset: 0x00fb4918, size: 48 bytes, params: 1, frame: 14 return Module00005(_fun29015).apply(this, arguments); function* _fun29015(a0) { // fn#29015, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4339, offset: 0x00fb4951, size: 65 bytes, params: 2, frame: 12 if (true) { value = environment.__proto__.__proto__; value = env2_1(env2_2[10]); var getEmojiColors = value.getEmojiColors; yield Reflect.apply(getEmojiColors, value, [a0]); } } } function sanitizeEmojiName(a0) { // fn#29016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:2803, offset: 0x00fb4992, size: 85 bytes, params: 2, frame: 15 var r2; var r0; var value; let length = a0.replace(EMOJI_RE, '').slice(0, EMOJI_MAX_LENGTH).length; if (length < 2) { for (r2 = value; true; r2 = value) { value = r2 + '_'; length = value.length; if (!(length < 2)) { r0 = value; break; } } } else { r0 = value; } return r0; } function getEmojiUnavailableReasons({categoryEmojis, channel, guildId, intention}) { // fn#29017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3098, offset: 0x00fb49e7, size: 346 bytes, params: 2, frame: 30 var r5; var r6; var r7; var r19; var r0; var r18; var r16; var r17; var r1; var r2; var value7; var emojiUnavailableReason; var binding; var has; var id; var add; var PREMIUM_LOCKED; var value9; var value10; var value11; var value12; const Set = global.Set; const set = new Set(); const items2 = []; const value3 = _createForOfIteratorHelperLoose_29007(categoryEmojis); const value4 = value3(); let done = value4.done; if (done) { r1 = false; r2 = 0; } else { r5 = false; r6 = 0; r7 = value4; while (true) { value7 = r7.value; emojiUnavailableReason = getEmojiUnavailableReason({emoji: value7, channel: channel, guildId: guildId, intention: intention}); if (emojiUnavailableReason != null) { binding = env0_17; has = binding.has; if (Reflect.apply(has, binding, [emojiUnavailableReason])) { continue; } items2.push(value7); binding = env0_16; has = binding.has; if (Reflect.apply(has, binding, [emojiUnavailableReason])) { id = value7.id; if (id == null) { continue; } add = set.add; id = value7.id; Reflect.apply(add, set, [id]); binding = env0_15; has = binding.has; if (!Reflect.apply(has, binding, [emojiUnavailableReason])) { r0 = r5; r18 = r6; continue; } if (r5) { r19 = r5; continue; } PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED; value9 = emojiUnavailableReason !== PREMIUM_LOCKED; r19 = value9; if (r19) { continue; } value10 = true; r5 = value10; value11 = typeof r6 === 'bigint' ? r6 + 1n : +r6 + 1; r0 = r5; r18 = value11; r16 = r0; r17 = r18; break; } r16 = r5; r17 = r6; break; } items2.push(value7); r16 = r5; r17 = r6; value12 = value3(); done = value12.done; if (done) { r1 = r16; r2 = r17; break; } r5 = r16; r6 = r17; r7 = value12; continue; } } return {emojisDisabled: set, emojisUnfiltered: items2, emojisPremiumLockedCount: r2, emojiNitroLocked: r1}; } function isEmojiFiltered(a0) { // fn#29018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3570, offset: 0x00fb4b41, size: 33 bytes, params: 2, frame: 12 return env0_17.has(getEmojiUnavailableReason(a0)); } function isEmojiPremiumLocked(a0) { // fn#29019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3641, offset: 0x00fb4b62, size: 33 bytes, params: 2, frame: 12 return env0_15.has(getEmojiUnavailableReason(a0)); } function isEmojiCategoryNitroLocked({categoryEmojis, channel, guildId, intention}) { // fn#29020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3717, offset: 0x00fb4b83, size: 184 bytes, params: 2, frame: 25 var r4; var r5; var r6; var r14; var r15; var r0; var r2; var getEmojiUnavailableReasonBinding; var value6; var emojiUnavailableReasonBinding; var PREMIUM_LOCKED; var GUILD_SUBSCRIPTION_UNAVAILABLE; var value8; var value9; var value10; var value11; const value2 = _createForOfIteratorHelperLoose_29007(categoryEmojis); const value3 = value2(); let done = value3.done; if (done) { r0 = false; r2 = 0; } else { r4 = 0; r5 = false; r6 = value3; while (true) { getEmojiUnavailableReasonBinding = getEmojiUnavailableReason; value6 = r6.value; emojiUnavailableReasonBinding = getEmojiUnavailableReasonBinding({emoji: value6, channel: channel, intention: intention, guildId: guildId}); PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED; if (emojiUnavailableReasonBinding !== PREMIUM_LOCKED) { GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE; if (emojiUnavailableReasonBinding !== GUILD_SUBSCRIPTION_UNAVAILABLE) { r14 = r4; r15 = r5; break; } value8 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; r14 = value8; r15 = r5; break; } value9 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; value10 = true; r14 = value9; r15 = value10; value11 = value2(); done = value11.done; if (done) { r0 = r15; r2 = r14; break; } r4 = r14; r5 = r15; r6 = value11; continue; } } r0 = r0 && r2 === categoryEmojis.length; return r0; } function isEmojiDisabled(a0) { // fn#29022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4136, offset: 0x00fb4c5c, size: 33 bytes, params: 2, frame: 12 return env0_16.has(getEmojiUnavailableReason(a0)); } function countEmoji(a0, a1) { // fn#29025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4501, offset: 0x00fb4cc2, size: 117 bytes, params: 3, frame: 12 const env0_0 = a1; const env0_1 = 0; const env0_2 = 0; const env0_3 = 0; const env0_4 = 0; const env0_5 = 0; const env0_6 = 0; a0.forEach(_fun29026); return {unicode: env0_1, custom: env0_2, customExternal: env0_3, managed: env0_4, managedExternal: env0_5, animated: env0_6}; function _fun29026(a0) { // fn#29026, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4572, offset: 0x00fb4d37, size: 190 bytes, params: 2, frame: 13 var value; var binding; var type; if (a0.id != null) { type = a0.type; value = environment.__proto__; binding = type === (require(3800) /* metro dependency 3800: EmojiTypes */).EmojiTypes.GUILD ? a0.guildId === require ? a0.managed ? env0_4 : env0_2 : a0.managed ? env0_5 : env0_3 : binding; if (a0.animated) { binding = env0_6; env0_6 = typeof binding === 'bigint' ? binding + 1n : +binding + 1; } } else { binding = env0_1; env0_1 = typeof binding === 'bigint' ? binding + 1n : +binding + 1; } } } function getEmojiUrl({id, name, animated}) { // fn#29028, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4890, offset: 0x00fb4df5, size: 134 bytes, params: 2, frame: 17 var r0; let value = a1; if (id != null) { value = importDefault(1423) /* metro dependency 1423: AvatarUtils */; value = value.getEmojiURL({id: id, size: value !== undefined ? value : 32, animated: animated != null && animated}); r0 = value; } else { value = importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */; value = value.getURL(name); r0 = value; } return r0; } } global.__d(_fun29006, 3801, [5, 1383, 3784, 1878, 661, 1881, 3800, 3802, 6545, 3777, 7171, 1475, 1423, 2]) /* metro module 3801, dependencies: [5, 1383, 3784, 1878, 661, 1881, 3800, 3802, 6545, 3777, 7171, 1475, 1423, 2] */;