/* Metro module 4751; source: unknown; dependencies: [4748, 4752, 4734] */ function _fun40984(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#40984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:6, offset: 0x0111202a, size: 294 bytes, params: 8, frame: 18 var object2; const env0_0 = require; const getDescriptionFromTagValue = function(a0) { var r0; var value = a0; if (value instanceof global.Array) { value = value.join(', '); r0 = value; } else { r0 = value; } return r0; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); object2 = {}; const getByteAt = (importDefault(4748) /* metro dependency 4748 */).getByteAt; object2[1] = getByteAt; const getAsciiAt = (importDefault(4748) /* metro dependency 4748 */).getAsciiAt; object2[2] = getAsciiAt; const getShortAt = (importDefault(4748) /* metro dependency 4748 */).getShortAt; object2[3] = getShortAt; const getLongAt = (importDefault(4748) /* metro dependency 4748 */).getLongAt; object2[4] = getLongAt; const getRationalAt = (importDefault(4748) /* metro dependency 4748 */).getRationalAt; object2[5] = getRationalAt; const getUndefinedAt = (importDefault(4748) /* metro dependency 4748 */).getUndefinedAt; object2[7] = getUndefinedAt; const getSlongAt = (importDefault(4748) /* metro dependency 4748 */).getSlongAt; object2[9] = getSlongAt; const getSrationalAt = (importDefault(4748) /* metro dependency 4748 */).getSrationalAt; object2[10] = getSrationalAt; const getIfdPointerAt = (importDefault(4748) /* metro dependency 4748 */).getIfdPointerAt; object2[13] = getIfdPointerAt; exports.get0thIfdOffset = get0thIfdOffset; exports.readIfd = readIfd; } function readTag(a0, a1, a2, a3, a4, a5) { // fn#40985, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:315, offset: 0x01112150, size: 1051 bytes, params: 7, frame: 33 var environment; var r1; var r3; var r12; var r13; var r17; var r2; var r4; var value9; var defaultImport7; var defaultImport8; var value10; var value11; var value12; var byteLength; var value13; var getTagValueBinding; var tagValue; var value15; var tagValueBinding; var tagTypes; var ASCII; var items; var length; var value17; var property; var value18; var value19; var HermesInternal; var concat; var value20; var name; var description; var RATIONAL; var SRATIONAL; var property2; var defaultImport9; var value21; var error; let value = environment; const value2 = 0; const defaultImport = importDefault(dependencyMap[value2]); let getTypeSize = defaultImport.getTypeSize; const value3 = Reflect.apply(getTypeSize, defaultImport, ['SHORT']); const defaultImport2 = importDefault(dependencyMap[value2]); getTypeSize = defaultImport2.getTypeSize; const value4 = value3 + Reflect.apply(getTypeSize, defaultImport2, ['SHORT']); const defaultImport3 = importDefault(dependencyMap[value2]); getTypeSize = defaultImport3.getTypeSize; const value5 = value4 + Reflect.apply(getTypeSize, defaultImport3, ['LONG']); const shortAt = importDefault(dependencyMap[value2]).getShortAt(a0, a3, a4); const shortAt2 = importDefault(dependencyMap[value2]).getShortAt(a0, a3 + value3, a4); const longAt = importDefault(dependencyMap[value2]).getLongAt(a0, a3 + value4, a4); let typeSizes = importDefault(dependencyMap[value2]).typeSizes; if (typeSizes[shortAt2] !== undefined) { reducibleJoin3: while (true) { reducibleJoin4: while (true) { if (a5) { break reducibleJoin4; } if (importDefault(dependencyMap[1])[a1][shortAt] !== undefined) { break reducibleJoin4; } break reducibleJoin3; } typeSizes = importDefault(dependencyMap[value2]).typeSizes; value9 = typeSizes[shortAt2] * longAt; defaultImport7 = importDefault(dependencyMap[value2]); getTypeSize = defaultImport7.getTypeSize; if (value9 <= Reflect.apply(getTypeSize, defaultImport7, ['LONG'])) { getTagValueBinding = getTagValue; value15 = a3 + value5; tagValueBinding = getTagValueBinding(a0, value15, shortAt2, longAt, a4); r1 = value15; r3 = tagValueBinding; } else { defaultImport8 = importDefault(dependencyMap[value2]); getLongAt = defaultImport8.getLongAt; value10 = Reflect.apply(getLongAt, defaultImport8, [a0, a3 + value5, a4]); value11 = a2 + value10; typeSizes = importDefault(dependencyMap[value2]).typeSizes; value12 = value11 + typeSizes[shortAt2] * longAt; byteLength = a0.byteLength; if (value12 <= byteLength) { tagValue = getTagValue(a0, a2 + value10, shortAt2, longAt, a4, shortAt === 33723); r1 = value10; r3 = tagValue; } else { value13 = ''; r1 = value10; r3 = value13; } } tagTypes = importDefault(dependencyMap[value2]).tagTypes; ASCII = tagTypes.ASCII; reducibleJoin18: while (true) { if (shortAt2 !== ASCII) { break reducibleJoin18; } items = []; length = r3.length; if (value2 < length) { r12 = value2; r13 = value2; reducibleLoop11: while (true) { if (r3[r12] !== '\x00') { reducibleJoin15: while (true) { if (items[r13] !== undefined) { break reducibleJoin15; } items[r13] = ''; break reducibleJoin15; } property = items[r13]; items[r13] = property + r3[r12]; r17 = r13; } else { value17 = typeof r13 === 'bigint' ? r13 + 1n : +r13 + 1; r17 = value17; } value18 = typeof r12 === 'bigint' ? r12 + 1n : +r12 + 1; length = r3.length; if (value18 < length) { r12 = value18; r13 = r17; continue reducibleLoop11; } break reducibleLoop11; } } value19 = ((a0) => { var closure; var value; var error; try { closure = _fun40987; value = a0.map(closure); } catch (error) { return a0; } return value; })(items); r3 = value19; break reducibleJoin18; } reduciblePort37: while (true) { exceptionLanding36: while (true) { HermesInternal = global.HermesInternal; concat = HermesInternal.concat; value20 = 'undefined-' + shortAt; if (importDefault(dependencyMap[1])[a1][shortAt] === undefined) { r2 = r3; r4 = value20; break reduciblePort37; } name = importDefault(dependencyMap[1])[a1][shortAt].name; if (name !== undefined) { description = importDefault(dependencyMap[1])[a1][shortAt].description; if (description !== undefined) { name = importDefault(dependencyMap[1])[a1][shortAt].name; try { } catch (error) { break exceptionLanding36; } try { } catch (error) { break exceptionLanding36; } try { property = dependencyMap[1]; } catch (error) { break exceptionLanding36; } try { defaultImport9 = importDefault(property); } catch (error) { break exceptionLanding36; } try { property = defaultImport9[a1]; } catch (error) { break exceptionLanding36; } try { property = property[shortAt]; } catch (error) { break exceptionLanding36; } try { description = property.description; } catch (error) { break exceptionLanding36; } try { value21 = Reflect.apply(description, property, [r3]); } catch (error) { break exceptionLanding36; } r2 = value21; r4 = name; break reduciblePort37; } } tagTypes = importDefault(dependencyMap[value2]).tagTypes; RATIONAL = tagTypes.RATIONAL; if (shortAt2 !== RATIONAL) { tagTypes = importDefault(dependencyMap[value2]).tagTypes; SRATIONAL = tagTypes.SRATIONAL; if (shortAt2 !== SRATIONAL) { property = importDefault(dependencyMap[1])[a1][shortAt]; r2 = getDescriptionFromTagValue(r3); r4 = property; break reduciblePort37; } } property = importDefault(dependencyMap[1])[a1][shortAt]; property2 = r3[value2]; value = String(property2 / r3[1]); r2 = value; r4 = property; break reduciblePort37; } value = getDescriptionFromTagValue(r3); r2 = value; r4 = name; break reduciblePort37; } return {id: shortAt, name: r4, value: r3, description: r2, __offset: r1}; } } } function getTagValue(a0, a1, a2, a3, a4) { // fn#40988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:1678, offset: 0x011125a7, size: 278 bytes, params: 6, frame: 23 var r0; var r2; var r6; var r8; var value5; var value6; var value7; var typeSizes; var value8; var tagTypes; var BYTE; var push; var binding; var value11; var property; let value = a1; const value2 = a2; const value3 = a3; const items2 = []; const value4 = arguments.length > 5; reducibleJoin2: while (true) { if (value4) { value5 = arguments[5] !== undefined; r0 = value5; break reducibleJoin2; } r0 = value4; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { value6 = arguments[5]; r0 = value6; break reducibleJoin4; } break reducibleJoin4; } reducibleJoin6: while (true) { if (r0) { value7 = environment; typeSizes = (importDefault(4748) /* metro dependency 4748 */).typeSizes; value8 = value3 * typeSizes[value2]; tagTypes = (importDefault(4748) /* metro dependency 4748 */).tagTypes; BYTE = tagTypes.BYTE; r2 = BYTE; r6 = value8; break reducibleJoin6; } r2 = value2; r6 = value3; break reducibleJoin6; } const value9 = 0; if (value9 < r6) { r0 = value9; r8 = value; reducibleLoop7: while (true) { push = items2.push; binding = env0_3; Reflect.apply(push, items2, [binding[r2](a0, r8, a4)]); typeSizes = importDefault(dependencyMap[value9]).typeSizes; value = r8 + typeSizes[r2]; value11 = typeof r0 === 'bigint' ? r0 + 1n : +r0 + 1; if (value11 < r6) { r0 = value11; r8 = value; continue reducibleLoop7; } break reducibleLoop7; } } const ASCII = importDefault(dependencyMap[value9]).tagTypes.ASCII; if (r2 === ASCII) { value = importDefault(dependencyMap[value9]); value = value.getAsciiValue(items2); r0 = value; } else { reducibleJoin12: while (true) { if (items2.length !== 1) { r0 = items2; break reducibleJoin12; } property = items2[value9]; r0 = property; break reducibleJoin12; } } return r0; } function get0thIfdOffset(a0, a1, a2) { // fn#40990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:2079, offset: 0x011126e4, size: 59 bytes, params: 4, frame: 16 const value = importDefault(4748) /* metro dependency 4748 */; const getLongAt = value.getLongAt; return a1 + Reflect.apply(getLongAt, value, [a0, a1 + 4, a2]); } function readIfd(a0, a1, a2, a3, a4, a5) { // fn#40991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:2159, offset: 0x0111271f, size: 583 bytes, params: 7, frame: 35 var r12; var r13; var r20; var r19; var r11; var value7; var value8; var name; var id; var value9; var description; var value10; var IFD_TYPE_PENTAX; var value11; var value12; var property; var __offset; var value13; var value14; var defaultImport4; var longAt; const value2 = 0; const defaultImport = importDefault(dependencyMap[value2]); let getTypeSize = defaultImport.getTypeSize; const value3 = Reflect.apply(getTypeSize, defaultImport, ['SHORT']); const object2 = {}; const defaultImport2 = importDefault(dependencyMap[value2]); getTypeSize = defaultImport2.getTypeSize; const value4 = a3 + Reflect.apply(getTypeSize, defaultImport2, ['SHORT']); let byteLength = a0.byteLength; const r18 = value4 <= byteLength ? importDefault(dependencyMap[value2]).getShortAt(a0, a3, a4) : value2; const value6 = a3 + value3; if (value2 < r18) { value7 = value6 + 12; byteLength = a0.byteLength; if (value7 > byteLength) { r11 = value6; } else { r12 = value2; r13 = value6; while (true) { value8 = readTag(a0, a1, a2, r13, a4, a5); if (value8 !== undefined) { name = value8.name; id = value8.id; value9 = value8.value; description = value8.description; object2[name] = {id: id, value: value9, description: description}; name = value8.name; value10 = name === 'MakerNote'; if (value10) { r19 = value10; continue; } IFD_TYPE_PENTAX = (require(4752) /* metro dependency 4752 */).IFD_TYPE_PENTAX; value11 = a1 === IFD_TYPE_PENTAX; if (!value11) { r20 = value11; continue; } name = value8.name; value12 = name === 'LevelInfo'; r20 = value12; r19 = r20; if (r19) { name = value8.name; property = object2[name]; __offset = value8.__offset; property.__offset = __offset; break; } break; } value13 = r13 + 12; value14 = typeof r12 === 'bigint' ? r12 + 1n : +r12 + 1; if (value14 < r18) { byteLength = a0.byteLength; if (value13 + 12 > byteLength) { r11 = value13; break; } r12 = value14; r13 = value13; continue; } r11 = value13; break; } } } else { r11 = value6; } if ((importDefault(4734) /* metro dependency 4734 */).USE_THUMBNAIL) { byteLength = a0.byteLength; defaultImport4 = importDefault(dependencyMap[value2]); if (r11 < byteLength - defaultImport4.getTypeSize('LONG')) { longAt = importDefault(dependencyMap[value2]).getLongAt(a0, r11, a4); if (value2 !== longAt && a1 === (require(4752) /* metro dependency 4752 */).IFD_TYPE_0TH) { object2.Thumbnail = readIfd(a0, (require(4752) /* metro dependency 4752 */).IFD_TYPE_1ST, a2, a2 + longAt, a4, a5); } } } return object2; } function decodeAsciiValue(a0) { // fn#40986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4929:978, owner: readTag.decodeAsciiValue, offset: 0x0111256b, size: 29 bytes, params: 2, frame: 12 var closure; var value; var error; try { closure = function(a0) { return global.decodeURIComponent((0, global.escape)(a0)); }; value = a0.map(closure); } catch (error) { return a0; } return value; }