/* Metro module 304; source: unknown; dependencies: [57, 79] */ function _fun4599(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#4599, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:345:6, offset: 0x00cc6bb2, size: 125 bytes, params: 8, frame: 19 const closure = elementsThatOverlapOffsets; const closure2 = function(a0, a1) { var property = a1.last; var value = property - a1.first + 1; property = global.Math; var Math = global.Math; var value2 = 1 + Math.min(a1.last, a0.last); var Math2 = global.Math; return value - property.max(0, value2 - Math2.max(a1.first, a0.first)); }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_2 = importDefault(57) /* metro dependency 57 */; exports.elementsThatOverlapOffsets = closure; exports.newRangeCount = closure2; exports.computeWindowedRenderLimits = computeWindowedRenderLimits; exports.keyExtractor = function(a0, a1) { var r0; var value = typeof a0 === 'object'; if (value) { if (a0?.key != null) { r0 = a0.key; } else if (value) { r0 = a0?.id; r0 = r0 != null ? a0.id : (0, global.String)(a1); } else { r0 = (0, global.String)(a1); } } else if (value) { r0 = a0?.id; r0 = r0 != null ? a0.id : (0, global.String)(a1); } else { r0 = (0, global.String)(a1); } return r0; }; } function elementsThatOverlapOffsets(a0, a1, a2) { // fn#4600, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:345:106, offset: 0x00cc6c2f, size: 268 bytes, params: 4, frame: 31 var r10; var r5; var r1; var r15; var r17; var value2; var property; var value5; var Math; var floor; var value6; var getCellMetricsApprox; var value7; var offset; var value8; var value9; var value10; var value11; var value12; const value = 1; reducibleJoin3: while (true) { if (arguments.length > 3) { if (arguments[3] === undefined) { r10 = value; break reducibleJoin3; } value2 = arguments[3]; r10 = value2; break reducibleJoin3; } r10 = value; break reducibleJoin3; } const itemCount = a1.getItemCount(a1.data); const items2 = []; let length = a0.length; const value4 = 0; if (value4 < length) { r5 = value4; reducibleLoop4: while (true) { property = a0[r5]; value5 = itemCount - value; if (value4 <= value5) { r1 = value4; r15 = value5; reducibleLoop5: while (true) { Math = global.Math; floor = Math.floor; value6 = r1 + Reflect.apply(floor, Math, [(r15 - r1) / 2]); getCellMetricsApprox = a2.getCellMetricsApprox; value7 = Reflect.apply(getCellMetricsApprox, a2, [value6, a1]); offset = value7.offset; value8 = offset * r10; offset = value7.offset; length = value7.length; value9 = (offset + length) * r10; if (value4 === value6) { reducibleJoin7: while (true) { if (property < value8) { value11 = value6 - value; r15 = value11; r17 = r1; if (r17 <= r15) { r1 = r17; continue reducibleLoop5; } break reducibleLoop5; } break reducibleJoin7; } } if (value4 !== value6) { reducibleJoin9: while (true) { if (property <= value8) { value11 = value6 - value; r15 = value11; r17 = r1; if (r17 <= r15) { r1 = r17; continue reducibleLoop5; } break reducibleLoop5; } break reducibleJoin9; } } if (property > value9) { value10 = value6 + value; r17 = value10; if (r17 <= r15) { r1 = r17; continue reducibleLoop5; } break reducibleLoop5; } items2[r5] = value6; break reducibleLoop5; } } value12 = typeof r5 === 'bigint' ? r5 + 1n : +r5 + 1; length = a0.length; if (value12 < length) { r5 = value12; continue reducibleLoop4; } break reducibleLoop4; } } return items2; } function computeWindowedRenderLimits(a0, a1, a2, a3, a4, {offset, velocity, visibleLength, zoomScale}) { // fn#4602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:345:702, offset: 0x00cc6db5, size: 945 bytes, params: 7, frame: 37 var r4; var r0; var r12; var r5; var r8; var r20; var r23; var r18; var r24; var r21; var r19; var r22; var value8; var value9; var object2; var value16; var value17; var min; var value18; var value22; var moduleValue; var fixVirtualizeListCollapseWindowSize; var value23; var first; var value24; var last; var value25; var value26; var value27; var value28; var value29; var value30; var value31; var value32; var value33; var value34; var value35; var value36; var value37; var value38; var value39; var value40; let value = a0.getItemCount(a0.data); if (value === 0) { return {'first': 0, 'last': -1}; } let r9 = zoomScale === undefined ? 1 : zoomScale; let Math = global.Math; let max = Math.max; const value4 = Reflect.apply(max, Math, [0, offset]); const value5 = value4 + visibleLength; const value6 = (a2 - 1) * visibleLength; const value7 = 'after'; reducibleJoin6: while (true) { if (velocity > 1) { r0 = value7; break reducibleJoin6; } value8 = 'none'; reducibleJoin5: while (true) { if (velocity < -1) { value9 = 'before'; r4 = value9; break reducibleJoin5; } r4 = value8; break reducibleJoin5; } r0 = r4; break reducibleJoin6; } Math = global.Math; max = Math.max; const value10 = 0.5 * value6; const value11 = Reflect.apply(max, Math, [0, value4 - value10]); Math = global.Math; const value12 = Math.max(0, value5 + value10); const getCellMetricsApprox = a4.getCellMetricsApprox; if (Reflect.apply(getCellMetricsApprox, a4, [value - 1, a0]).offset * r9 < value11) { object2 = {}; object2.first = global.Math.max(0, value - 1 - a1); object2.last = value - 1; return object2; } const value15 = env0_2(elementsThatOverlapOffsets([value11, value4, value5, value12], a0, a4, r9), 4); const property = value15[0]; const property2 = value15[1]; const property3 = value15[2]; const property4 = value15[3]; const r13 = property ?? 0; reducibleJoin10: while (true) { if (property4 != null) { r12 = property4; break reducibleJoin10; } value16 = value - 1; r12 = value16; break reducibleJoin10; } object2 = {}; reducibleJoin12: while (true) { if (property2 != null) { r5 = property2; break reducibleJoin12; } Math = global.Math; max = Math.max; value17 = Reflect.apply(max, Math, [0, r13]); r5 = value17; break reducibleJoin12; } object2.first = r5; reducibleJoin14: while (true) { if (property3 != null) { r4 = property3; break reducibleJoin14; } Math = global.Math; min = Math.min; value18 = Reflect.apply(min, Math, [r12, r5 + a1 - 1]); r4 = value18; break reducibleJoin14; } object2.last = r4; const value19 = newRangeCount(a3, object2); const value20 = r0 === 'before'; const value21 = value7 === r0; if (r5 <= r13) { if (!(r4 >= r12)) { r0 = value19; r8 = r4; r9 = r5; reducibleLoop16: while (true) { value22 = r0 >= a1; moduleValue = importAll(79) /* metro dependency 79 */; fixVirtualizeListCollapseWindowSize = moduleValue.fixVirtualizeListCollapseWindowSize; value23 = Reflect.apply(fixVirtualizeListCollapseWindowSize, moduleValue, []); first = a3.first; value24 = r9 <= first; if (value23) { last = a3.last; value28 = r8 >= last; r20 = value24; r23 = value28; } else { reducibleJoin19: while (true) { if (value24) { r20 = value24; break reducibleJoin19; } last = a3.last; value25 = r9 > last; r20 = value25; break reducibleJoin19; } last = a3.last; value26 = r8 >= last; reducibleJoin21: while (true) { if (value26) { r23 = value26; break reducibleJoin21; } first = a3.first; value27 = r8 < first; r23 = value27; break reducibleJoin21; } } value29 = r9 > r13; reducibleJoin27: while (true) { if (value29) { value30 = !value22; reducibleJoin26: while (true) { if (value22) { value31 = !r20; r18 = value31; break reducibleJoin26; } r18 = value30; break reducibleJoin26; } r24 = r18; break reducibleJoin27; } r24 = value29; break reducibleJoin27; } value32 = r8 < r12; reducibleJoin31: while (true) { if (value32) { value33 = !value22; reducibleJoin30: while (true) { if (value22) { value34 = !r23; r21 = value34; break reducibleJoin30; } r21 = value33; break reducibleJoin30; } r18 = r21; break reducibleJoin31; } r18 = value32; break reducibleJoin31; } if (value22) { reducibleJoin34: while (true) { if (r24) { break reducibleJoin34; } if (r18) { break reducibleJoin34; } r4 = r8; r5 = r9; break reducibleLoop16; } } value35 = !r24; reducibleJoin38: while (true) { if (r24) { r19 = value21 && r18; if (r19) { r19 = r23; } r21 = r19; break reducibleJoin38; } r21 = value35; break reducibleJoin38; } reducibleJoin42: while (true) { if (r21) { r19 = r9; r22 = r0; break reducibleJoin42; } reducibleJoin41: while (true) { if (r20) { value36 = typeof r0 === 'bigint' ? r0 + 1n : +r0 + 1; r21 = value36; break reducibleJoin41; } r21 = r0; break reducibleJoin41; } value37 = typeof r9 === 'bigint' ? r9 - 1n : +r9 - 1; r19 = value37; r22 = r21; break reducibleJoin42; } value38 = !r18; reducibleJoin46: while (true) { if (r18) { r18 = value20 && r24; if (r18) { r18 = r20; } r21 = r18; break reducibleJoin46; } r21 = value38; break reducibleJoin46; } reducibleJoin50: while (true) { if (r21) { r18 = r8; r20 = r22; break reducibleJoin50; } reducibleJoin49: while (true) { if (r23) { value39 = typeof r22 === 'bigint' ? r22 + 1n : +r22 + 1; r21 = value39; break reducibleJoin49; } r21 = r22; break reducibleJoin49; } value40 = typeof r8 === 'bigint' ? r8 + 1n : +r8 + 1; r18 = value40; r20 = r21; break reducibleJoin50; } if (r19 <= r13) { if (r18 >= r12) { r4 = r18; r5 = r19; break reducibleLoop16; } r0 = r20; r8 = r18; r9 = r19; continue reducibleLoop16; } r0 = r20; r8 = r18; r9 = r19; continue reducibleLoop16; } } } else { r0 = value19; r8 = r4; r9 = r5; reducibleLoop16: while (true) { value22 = r0 >= a1; moduleValue = importAll(79) /* metro dependency 79 */; fixVirtualizeListCollapseWindowSize = moduleValue.fixVirtualizeListCollapseWindowSize; value23 = Reflect.apply(fixVirtualizeListCollapseWindowSize, moduleValue, []); first = a3.first; value24 = r9 <= first; if (value23) { last = a3.last; value28 = r8 >= last; r20 = value24; r23 = value28; } else { reducibleJoin19: while (true) { if (value24) { r20 = value24; break reducibleJoin19; } last = a3.last; value25 = r9 > last; r20 = value25; break reducibleJoin19; } last = a3.last; value26 = r8 >= last; reducibleJoin21: while (true) { if (value26) { r23 = value26; break reducibleJoin21; } first = a3.first; value27 = r8 < first; r23 = value27; break reducibleJoin21; } } value29 = r9 > r13; reducibleJoin27: while (true) { if (value29) { value30 = !value22; reducibleJoin26: while (true) { if (value22) { value31 = !r20; r18 = value31; break reducibleJoin26; } r18 = value30; break reducibleJoin26; } r24 = r18; break reducibleJoin27; } r24 = value29; break reducibleJoin27; } value32 = r8 < r12; reducibleJoin31: while (true) { if (value32) { value33 = !value22; reducibleJoin30: while (true) { if (value22) { value34 = !r23; r21 = value34; break reducibleJoin30; } r21 = value33; break reducibleJoin30; } r18 = r21; break reducibleJoin31; } r18 = value32; break reducibleJoin31; } if (value22) { reducibleJoin34: while (true) { if (r24) { break reducibleJoin34; } if (r18) { break reducibleJoin34; } r4 = r8; r5 = r9; break reducibleLoop16; } } value35 = !r24; reducibleJoin38: while (true) { if (r24) { r19 = value21 && r18; if (r19) { r19 = r23; } r21 = r19; break reducibleJoin38; } r21 = value35; break reducibleJoin38; } reducibleJoin42: while (true) { if (r21) { r19 = r9; r22 = r0; break reducibleJoin42; } reducibleJoin41: while (true) { if (r20) { value36 = typeof r0 === 'bigint' ? r0 + 1n : +r0 + 1; r21 = value36; break reducibleJoin41; } r21 = r0; break reducibleJoin41; } value37 = typeof r9 === 'bigint' ? r9 - 1n : +r9 - 1; r19 = value37; r22 = r21; break reducibleJoin42; } value38 = !r18; reducibleJoin46: while (true) { if (r18) { r18 = value20 && r24; if (r18) { r18 = r20; } r21 = r18; break reducibleJoin46; } r21 = value38; break reducibleJoin46; } reducibleJoin50: while (true) { if (r21) { r18 = r8; r20 = r22; break reducibleJoin50; } reducibleJoin49: while (true) { if (r23) { value39 = typeof r22 === 'bigint' ? r22 + 1n : +r22 + 1; r21 = value39; break reducibleJoin49; } r21 = r22; break reducibleJoin49; } value40 = typeof r8 === 'bigint' ? r8 + 1n : +r8 + 1; r18 = value40; r20 = r21; break reducibleJoin50; } if (r19 <= r13) { if (r18 >= r12) { r4 = r18; r5 = r19; break reducibleLoop16; } r0 = r20; r8 = r18; r9 = r19; continue reducibleLoop16; } r0 = r20; r8 = r18; r9 = r19; continue reducibleLoop16; } } if (r4 >= r5) { reducibleJoin59: while (true) { if (r5 >= 0) { if (r4 < value) { if (r5 >= r13) { if (r4 <= r12) { first = object2.first; if (r5 <= first) { last = object2.last; if (r4 >= last) { return {first: r5, last: r4}; } break reducibleJoin59; } break reducibleJoin59; } break reducibleJoin59; } break reducibleJoin59; } break reducibleJoin59; } break reducibleJoin59; } } const Error = global.Error; const JSON = global.JSON; value = JSON.stringify({first: r5, last: r4, itemCount: value, overscanFirst: r13, overscanLast: r12, visible: object2}); value = 'Bad window calculation ' + value; const value41 = Object.create(Error.prototype, {constructor: {value: Error}}); const error = new Error(value); throw error instanceof Object ? error : value41; }