(function (_, $module$_js_joda_core_gcv2k, kotlin_kotlin, kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var Instant = $module$_js_joda_core_gcv2k.Instant;
  var Clock = $module$_js_joda_core_gcv2k.Clock;
  var OffsetDateTime = $module$_js_joda_core_gcv2k.OffsetDateTime;
  var ChronoUnit = $module$_js_joda_core_gcv2k.ChronoUnit;
  var LocalDate = $module$_js_joda_core_gcv2k.LocalDate;
  var LocalDateTime = $module$_js_joda_core_gcv2k.LocalDateTime;
  var LocalTime = $module$_js_joda_core_gcv2k.LocalTime;
  var ZoneOffset = $module$_js_joda_core_gcv2k.ZoneOffset;
  var ZoneId = $module$_js_joda_core_gcv2k.ZoneId;
  var protoOf = kotlin_kotlin.$_$.wc;
  var objectMeta = kotlin_kotlin.$_$.vc;
  var setMetadataFor = kotlin_kotlin.$_$.xc;
  var toString = kotlin_kotlin.$_$.c3;
  var IntCompanionObject_instance = kotlin_kotlin.$_$.y4;
  var toLong = kotlin_kotlin.$_$.zc;
  var Long = kotlin_kotlin.$_$.ai;
  var numberRangeToNumber = kotlin_kotlin.$_$.oc;
  var THROW_CCE = kotlin_kotlin.$_$.hi;
  var ClosedRange = kotlin_kotlin.$_$.gd;
  var isInterface = kotlin_kotlin.$_$.gc;
  var contains = kotlin_kotlin.$_$.nd;
  var charSequenceGet = kotlin_kotlin.$_$.ib;
  var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.u2;
  var Char__minus_impl_a2frrh = kotlin_kotlin.$_$.x2;
  var ArithmeticException = kotlin_kotlin.$_$.nh;
  var uppercaseChar = kotlin_kotlin.$_$.kh;
  var repeat = kotlin_kotlin.$_$.tf;
  var toInt = kotlin_kotlin.$_$.vg;
  var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.f1;
  var Unit_instance = kotlin_kotlin.$_$.m5;
  var abs = kotlin_kotlin.$_$.cd;
  var padStart = kotlin_kotlin.$_$.qf;
  var classMeta = kotlin_kotlin.$_$.lb;
  var VOID = kotlin_kotlin.$_$.f;
  var objectCreate = kotlin_kotlin.$_$.uc;
  var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.u1;
  var toString_0 = kotlin_kotlin.$_$.bd;
  var asList = kotlin_kotlin.$_$.g6;
  var IllegalArgumentException_init_$Init$ = kotlin_kotlin.$_$.r1;
  var captureStack = kotlin_kotlin.$_$.fb;
  var IllegalArgumentException_init_$Init$_0 = kotlin_kotlin.$_$.t1;
  var IllegalArgumentException_init_$Init$_1 = kotlin_kotlin.$_$.p1;
  var IllegalArgumentException = kotlin_kotlin.$_$.xh;
  var RuntimeException_init_$Init$ = kotlin_kotlin.$_$.l2;
  var RuntimeException_init_$Init$_0 = kotlin_kotlin.$_$.k2;
  var RuntimeException = kotlin_kotlin.$_$.gi;
  var Companion_getInstance = kotlin_kotlin.$_$.g5;
  var ArithmeticException_init_$Create$ = kotlin_kotlin.$_$.g1;
  var numberToLong = kotlin_kotlin.$_$.tc;
  var STRING_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j;
  var PrimitiveSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l1;
  var KSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i3;
  var SerializationException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d;
  var emptyList = kotlin_kotlin.$_$.i7;
  var getKClass = kotlin_kotlin.$_$.e;
  var arrayOf = kotlin_kotlin.$_$.wi;
  var createKType = kotlin_kotlin.$_$.b;
  var serializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.s3;
  var buildClassSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.u1;
  var Companion_instance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.q;
  var UnknownFieldException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f;
  var MissingFieldException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b;
  var AbstractPolymorphicSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m2;
  var SealedClassSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k3;
  var PrimitiveClasses_getInstance = kotlin_kotlin.$_$.c5;
  var Enum = kotlin_kotlin.$_$.uh;
  var numberToInt = kotlin_kotlin.$_$.sc;
  var indexOf = kotlin_kotlin.$_$.df;
  var charSequenceLength = kotlin_kotlin.$_$.jb;
  var numberToDouble = kotlin_kotlin.$_$.rc;
  var equals = kotlin_kotlin.$_$.ob;
  var Comparable = kotlin_kotlin.$_$.qh;
  var noWhenBranchMatchedException = kotlin_kotlin.$_$.gj;
  var IllegalArgumentException_init_$Create$_0 = kotlin_kotlin.$_$.q1;
  var toSet = kotlin_kotlin.$_$.ba;
  //endregion
  //region block: pre-declaration
  setMetadataFor(System, 'System', objectMeta);
  setMetadataFor(Companion, 'Companion', objectMeta);
  setMetadataFor(DateTimePeriod, 'DateTimePeriod', classMeta, VOID, VOID, VOID, VOID, {0: DateTimePeriodIso8601Serializer_getInstance});
  setMetadataFor(DateTimePeriodImpl, 'DateTimePeriodImpl', classMeta, DateTimePeriod);
  setMetadataFor(Companion_0, 'Companion', objectMeta);
  setMetadataFor(DatePeriod, 'DatePeriod', classMeta, DateTimePeriod, VOID, DatePeriod_init_$Create$, VOID, {0: DatePeriodIso8601Serializer_getInstance});
  setMetadataFor(Companion_1, 'Companion', objectMeta);
  setMetadataFor(Companion_2, 'Companion', objectMeta);
  setMetadataFor(Companion_3, 'Companion', objectMeta);
  setMetadataFor(Companion_4, 'Companion', objectMeta);
  setMetadataFor(DateTimeUnit, 'DateTimeUnit', classMeta, VOID, VOID, VOID, VOID, {0: DateTimeUnitSerializer_getInstance});
  setMetadataFor(TimeBased, 'TimeBased', classMeta, DateTimeUnit, VOID, VOID, VOID, {0: TimeBasedDateTimeUnitSerializer_getInstance});
  setMetadataFor(DateBased, 'DateBased', classMeta, DateTimeUnit, VOID, VOID, VOID, {0: DateBasedDateTimeUnitSerializer_getInstance});
  setMetadataFor(DayBased, 'DayBased', classMeta, DateBased, VOID, VOID, VOID, {0: DayBasedDateTimeUnitSerializer_getInstance});
  setMetadataFor(MonthBased, 'MonthBased', classMeta, DateBased, VOID, VOID, VOID, {0: MonthBasedDateTimeUnitSerializer_getInstance});
  setMetadataFor(Companion_5, 'Companion', objectMeta);
  setMetadataFor(DateTimeFormatException, 'DateTimeFormatException', classMeta, IllegalArgumentException, VOID, DateTimeFormatException_init_$Create$);
  setMetadataFor(DateTimeArithmeticException, 'DateTimeArithmeticException', classMeta, RuntimeException, VOID, DateTimeArithmeticException_init_$Create$);
  setMetadataFor(IllegalTimeZoneException, 'IllegalTimeZoneException', classMeta, IllegalArgumentException, VOID, IllegalTimeZoneException_init_$Create$);
  setMetadataFor(DivRemResult, 'DivRemResult', classMeta);
  setMetadataFor(DateTimePeriodIso8601Serializer, 'DateTimePeriodIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(DatePeriodIso8601Serializer, 'DatePeriodIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(TimeBasedDateTimeUnitSerializer, 'TimeBasedDateTimeUnitSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(DateBasedDateTimeUnitSerializer, 'DateBasedDateTimeUnitSerializer', objectMeta, AbstractPolymorphicSerializer);
  setMetadataFor(DayBasedDateTimeUnitSerializer, 'DayBasedDateTimeUnitSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(MonthBasedDateTimeUnitSerializer, 'MonthBasedDateTimeUnitSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(DateTimeUnitSerializer, 'DateTimeUnitSerializer', objectMeta, AbstractPolymorphicSerializer);
  setMetadataFor(InstantIso8601Serializer, 'InstantIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(LocalDateIso8601Serializer, 'LocalDateIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(LocalDateTimeIso8601Serializer, 'LocalDateTimeIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(LocalTimeIso8601Serializer, 'LocalTimeIso8601Serializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(TimeZoneSerializer, 'TimeZoneSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(FixedOffsetTimeZoneSerializer, 'FixedOffsetTimeZoneSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(UtcOffsetSerializer, 'UtcOffsetSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(DayOfWeek_0, 'DayOfWeek', classMeta, Enum);
  setMetadataFor(Companion_6, 'Companion', objectMeta);
  setMetadataFor(Instant_0, 'Instant', classMeta, VOID, [Comparable], VOID, VOID, {0: InstantIso8601Serializer_getInstance});
  setMetadataFor(Companion_7, 'Companion', objectMeta);
  setMetadataFor(LocalDate_0, 'LocalDate', classMeta, VOID, [Comparable], VOID, VOID, {0: LocalDateIso8601Serializer_getInstance});
  setMetadataFor(Companion_8, 'Companion', objectMeta);
  setMetadataFor(LocalDateTime_0, 'LocalDateTime', classMeta, VOID, [Comparable], VOID, VOID, {0: LocalDateTimeIso8601Serializer_getInstance});
  setMetadataFor(Companion_9, 'Companion', objectMeta);
  setMetadataFor(LocalTime_0, 'LocalTime', classMeta, VOID, [Comparable], VOID, VOID, {0: LocalTimeIso8601Serializer_getInstance});
  setMetadataFor(Companion_10, 'Companion', objectMeta);
  setMetadataFor(TimeZone, 'TimeZone', classMeta, VOID, VOID, VOID, VOID, {0: TimeZoneSerializer_getInstance});
  setMetadataFor(Companion_11, 'Companion', objectMeta);
  setMetadataFor(FixedOffsetTimeZone, 'FixedOffsetTimeZone', classMeta, TimeZone, VOID, VOID, VOID, {0: FixedOffsetTimeZoneSerializer_getInstance});
  setMetadataFor(Companion_12, 'Companion', objectMeta);
  setMetadataFor(UtcOffset, 'UtcOffset', classMeta, VOID, VOID, VOID, VOID, {0: UtcOffsetSerializer_getInstance});
  //endregion
  function System() {
  }
  protoOf(System).ymd = function () {
    return Companion_getInstance_7().ymd();
  };
  var System_instance;
  function System_getInstance() {
    return System_instance;
  }
  function parse$parseException(message, position) {
    throw DateTimeFormatException_init_$Create$_0('Parse error at char ' + position + ': ' + message);
  }
  function parse$toIntThrowing(_this__u8e3s4, iStart, component) {
    if (_this__u8e3s4.c7(toLong(IntCompanionObject_instance.MIN_VALUE)) < 0 ? true : _this__u8e3s4.c7(toLong(IntCompanionObject_instance.MAX_VALUE)) > 0) {
      parse$parseException('Value ' + _this__u8e3s4.toString() + " does not fit into an Int, which is required for component '" + toString(component) + "'", iStart);
    }
    return _this__u8e3s4.mb();
  }
  function allNonpositive($this) {
    return (($this.eme() <= 0 ? $this.fme() <= 0 : false) ? $this.dme().c7(new Long(0, 0)) <= 0 : false) ? !(($this.eme() | $this.fme()) === 0) ? true : !$this.dme().equals(new Long(0, 0)) : false;
  }
  function Companion() {
  }
  protoOf(Companion).o2r = function (text) {
    var START = 0;
    var AFTER_P = 1;
    var AFTER_YEAR = 2;
    var AFTER_MONTH = 3;
    var AFTER_WEEK = 4;
    var AFTER_DAY = 5;
    var AFTER_T = 6;
    var AFTER_HOUR = 7;
    var AFTER_MINUTE = 8;
    var AFTER_SECOND_AND_NANO = 9;
    var state = START;
    var i = 0;
    var sign = 1;
    var years = 0;
    var months = 0;
    var weeks = 0;
    var days = 0;
    var hours = 0;
    var minutes = 0;
    var seconds = 0;
    var nanoseconds = 0;
    $l$loop_0: while (true) {
      if (i >= text.length) {
        if (state === START) {
          parse$parseException("Unexpected end of input; 'P' designator is required", i);
        }
        if (state === AFTER_T) {
          parse$parseException("Unexpected end of input; at least one time component is required after 'T'", i);
        }
        // Inline function 'kotlin.Long.plus' call
        var this_0 = toLong(days);
        var other = imul(weeks, 7);
        var n = this_0.lc(toLong(other));
        var tmp;
        // Inline function 'kotlin.ranges.contains' call
        var this_1 = numberRangeToNumber(IntCompanionObject_instance.MIN_VALUE, IntCompanionObject_instance.MAX_VALUE);
        if (contains(isInterface(this_1, ClosedRange) ? this_1 : THROW_CCE(), n)) {
          tmp = n.mb();
        } else {
          parse$parseException("The total number of days under 'D' and 'W' designators should fit into an Int", 0);
        }
        var daysTotal = tmp;
        return DateTimePeriod_0(years, months, daysTotal, hours, minutes, seconds, toLong(nanoseconds));
      }
      if (state === START) {
        if ((i + 1 | 0) >= text.length ? charSequenceGet(text, i) === _Char___init__impl__6a9atx(43) ? true : charSequenceGet(text, i) === _Char___init__impl__6a9atx(45) : false) {
          parse$parseException("Unexpected end of string; 'P' designator is required", i);
        }
        var tmp0_subject = charSequenceGet(text, i);
        if (tmp0_subject === _Char___init__impl__6a9atx(43) ? true : tmp0_subject === _Char___init__impl__6a9atx(45)) {
          if (charSequenceGet(text, i) === _Char___init__impl__6a9atx(45))
            sign = -1;
          if (!(charSequenceGet(text, i + 1 | 0) === _Char___init__impl__6a9atx(80))) {
            parse$parseException("Expected 'P', got '" + toString(charSequenceGet(text, i + 1 | 0)) + "'", i + 1 | 0);
          }
          i = i + 2 | 0;
        } else if (tmp0_subject === _Char___init__impl__6a9atx(80)) {
          i = i + 1 | 0;
        } else {
          parse$parseException("Expected '+', '-', 'P', got '" + toString(charSequenceGet(text, i)) + "'", i);
        }
        state = AFTER_P;
        continue $l$loop_0;
      }
      var localSign = sign;
      var iStart = i;
      var tmp1_subject = charSequenceGet(text, i);
      if (tmp1_subject === _Char___init__impl__6a9atx(43) ? true : tmp1_subject === _Char___init__impl__6a9atx(45)) {
        if (charSequenceGet(text, i) === _Char___init__impl__6a9atx(45))
          localSign = imul(localSign, -1);
        i = i + 1 | 0;
        var tmp_0;
        if (i >= text.length) {
          tmp_0 = true;
        } else {
          var containsArg = charSequenceGet(text, i);
          tmp_0 = !(_Char___init__impl__6a9atx(48) <= containsArg ? containsArg <= _Char___init__impl__6a9atx(57) : false);
        }
        if (tmp_0) {
          parse$parseException("A number expected after '" + toString(charSequenceGet(text, i)) + "'", i);
        }
      } else if (!(_Char___init__impl__6a9atx(48) <= tmp1_subject ? tmp1_subject <= _Char___init__impl__6a9atx(57) : false))
        if (tmp1_subject === _Char___init__impl__6a9atx(84)) {
          if (state >= AFTER_T) {
            parse$parseException("Only one 'T' designator is allowed", i);
          }
          state = AFTER_T;
          i = i + 1 | 0;
          continue $l$loop_0;
        }
      var number = new Long(0, 0);
      $l$loop_1: while (true) {
        var tmp_1;
        if (i < text.length) {
          var containsArg_0 = charSequenceGet(text, i);
          tmp_1 = _Char___init__impl__6a9atx(48) <= containsArg_0 ? containsArg_0 <= _Char___init__impl__6a9atx(57) : false;
        } else {
          tmp_1 = false;
        }
        if (!tmp_1) {
          break $l$loop_1;
        }
        try {
          number = safeAdd(safeMultiply(number, new Long(10, 0)), toLong(Char__minus_impl_a2frrh(charSequenceGet(text, i), _Char___init__impl__6a9atx(48))));
        } catch ($p) {
          if ($p instanceof ArithmeticException) {
            var e = $p;
            parse$parseException('The number is too large', iStart);
          } else {
            throw $p;
          }
        }
        i = i + 1 | 0;
      }
      // Inline function 'kotlin.Long.times' call
      var this_2 = number;
      var other_0 = localSign;
      number = this_2.cb(toLong(other_0));
      if (i === text.length) {
        parse$parseException('Expected a designator after the numerical value', i);
      }
      var wrongOrder = "Wrong component order: should be 'Y', 'M', 'W', 'D', then designator 'T', then 'H', 'M', 'S'";
      var tmp2_subject = uppercaseChar(charSequenceGet(text, i));
      if (tmp2_subject === _Char___init__impl__6a9atx(89)) {
        if (state >= AFTER_YEAR) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_YEAR;
        years = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(89));
      } else if (tmp2_subject === _Char___init__impl__6a9atx(77)) {
        if (state >= AFTER_T) {
          if (state >= AFTER_MINUTE) {
            parse$parseException(wrongOrder, i);
          }
          state = AFTER_MINUTE;
          minutes = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(77));
        } else {
          if (state >= AFTER_MONTH) {
            parse$parseException(wrongOrder, i);
          }
          state = AFTER_MONTH;
          months = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(77));
        }
      } else if (tmp2_subject === _Char___init__impl__6a9atx(87)) {
        if (state >= AFTER_WEEK) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_WEEK;
        weeks = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(87));
      } else if (tmp2_subject === _Char___init__impl__6a9atx(68)) {
        if (state >= AFTER_DAY) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_DAY;
        days = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(68));
      } else if (tmp2_subject === _Char___init__impl__6a9atx(72)) {
        if (state >= AFTER_HOUR ? true : state < AFTER_T) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_HOUR;
        hours = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(72));
      } else if (tmp2_subject === _Char___init__impl__6a9atx(83)) {
        if (state >= AFTER_SECOND_AND_NANO ? true : state < AFTER_T) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_SECOND_AND_NANO;
        seconds = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(83));
      } else if (tmp2_subject === _Char___init__impl__6a9atx(46) ? true : tmp2_subject === _Char___init__impl__6a9atx(44)) {
        i = i + 1 | 0;
        if (i >= text.length) {
          parse$parseException("Expected designator 'S' after " + toString(charSequenceGet(text, i - 1 | 0)), i);
        }
        var iStartFraction = i;
        $l$loop_2: while (true) {
          var tmp_2;
          if (i < text.length) {
            var containsArg_1 = charSequenceGet(text, i);
            tmp_2 = _Char___init__impl__6a9atx(48) <= containsArg_1 ? containsArg_1 <= _Char___init__impl__6a9atx(57) : false;
          } else {
            tmp_2 = false;
          }
          if (!tmp_2) {
            break $l$loop_2;
          }
          i = i + 1 | 0;
        }
        var fractionLength = i - iStartFraction | 0;
        if (fractionLength > 9) {
          parse$parseException('Only the nanosecond fractions of a second are supported', iStartFraction);
        }
        // Inline function 'kotlin.text.substring' call
        var endIndex = i;
        // Inline function 'kotlin.js.asDynamic' call
        var fractionalPart = text.substring(iStartFraction, endIndex) + repeat('0', 9 - fractionLength | 0);
        nanoseconds = imul(toInt(fractionalPart, 10), localSign);
        if (!(charSequenceGet(text, i) === _Char___init__impl__6a9atx(83))) {
          parse$parseException("Expected the 'S' designator after a fraction", i);
        }
        if (state >= AFTER_SECOND_AND_NANO ? true : state < AFTER_T) {
          parse$parseException(wrongOrder, i);
        }
        state = AFTER_SECOND_AND_NANO;
        seconds = parse$toIntThrowing(number, iStart, _Char___init__impl__6a9atx(83));
      } else {
        parse$parseException('Expected a designator after the numerical value', i);
      }
      i = i + 1 | 0;
    }
  };
  var Companion_instance_0;
  function Companion_getInstance_0() {
    return Companion_instance_0;
  }
  function DateTimePeriod() {
  }
  protoOf(DateTimePeriod).gme = function () {
    return this.eme() / 12 | 0;
  };
  protoOf(DateTimePeriod).hme = function () {
    return this.eme() % 12 | 0;
  };
  protoOf(DateTimePeriod).ime = function () {
    return this.dme().bb(new Long(817405952, 838)).mb();
  };
  protoOf(DateTimePeriod).jme = function () {
    return this.dme().nc(new Long(817405952, 838)).bb(new Long(-129542144, 13)).mb();
  };
  protoOf(DateTimePeriod).kme = function () {
    // Inline function 'kotlin.Long.div' call
    var this_0 = this.dme().nc(new Long(-129542144, 13));
    var other = get_NANOS_PER_ONE();
    return this_0.bb(toLong(other)).mb();
  };
  protoOf(DateTimePeriod).lme = function () {
    // Inline function 'kotlin.Long.rem' call
    var this_0 = this.dme();
    var other = get_NANOS_PER_ONE();
    return this_0.nc(toLong(other)).mb();
  };
  protoOf(DateTimePeriod).toString = function () {
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlin.apply' call
    var this_0 = StringBuilder_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlinx.datetime.DateTimePeriod.toString.<anonymous>' call
    var tmp;
    if (allNonpositive(this)) {
      this_0.z5(_Char___init__impl__6a9atx(45));
      tmp = -1;
    } else {
      tmp = 1;
    }
    var sign = tmp;
    this_0.z5(_Char___init__impl__6a9atx(80));
    if (!(this.gme() === 0)) {
      this_0.x5(imul(this.gme(), sign)).z5(_Char___init__impl__6a9atx(89));
    }
    if (!(this.hme() === 0)) {
      this_0.x5(imul(this.hme(), sign)).z5(_Char___init__impl__6a9atx(77));
    }
    if (!(this.fme() === 0)) {
      this_0.x5(imul(this.fme(), sign)).z5(_Char___init__impl__6a9atx(68));
    }
    var t = 'T';
    if (!(this.ime() === 0)) {
      // Inline function 'kotlin.also' call
      this_0.y5(t).x5(imul(this.ime(), sign)).z5(_Char___init__impl__6a9atx(72));
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.datetime.DateTimePeriod.toString.<anonymous>.<anonymous>' call
      t = '';
    }
    if (!(this.jme() === 0)) {
      // Inline function 'kotlin.also' call
      this_0.y5(t).x5(imul(this.jme(), sign)).z5(_Char___init__impl__6a9atx(77));
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.datetime.DateTimePeriod.toString.<anonymous>.<anonymous>' call
      t = '';
    }
    if (!((this.kme() | this.lme()) === 0)) {
      this_0.y5(t);
      this_0.x5(!(this.kme() === 0) ? imul(this.kme(), sign) : imul(this.lme(), sign) < 0 ? '-0' : '0');
      if (!(this.lme() === 0)) {
        var tmp_0 = this_0.z5(_Char___init__impl__6a9atx(46));
        // Inline function 'kotlin.math.absoluteValue' call
        var this_1 = this.lme();
        var tmp$ret$2 = abs(this_1);
        tmp_0.y5(padStart(tmp$ret$2.toString(), 9, _Char___init__impl__6a9atx(48)));
      }
      this_0.z5(_Char___init__impl__6a9atx(83));
    }
    if (this_0.a() === 1) {
      this_0.y5('0D');
    }
    return this_0.toString();
  };
  protoOf(DateTimePeriod).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof DateTimePeriod))
      return false;
    if (!(this.eme() === other.eme()))
      return false;
    if (!(this.fme() === other.fme()))
      return false;
    if (!this.dme().equals(other.dme()))
      return false;
    return true;
  };
  protoOf(DateTimePeriod).hashCode = function () {
    var result = this.eme();
    result = imul(31, result) + this.fme() | 0;
    result = imul(31, result) + this.dme().hashCode() | 0;
    return result;
  };
  function buildDateTimePeriod(totalMonths, days, totalNanoseconds) {
    totalMonths = totalMonths === VOID ? 0 : totalMonths;
    days = days === VOID ? 0 : days;
    return !totalNanoseconds.equals(new Long(0, 0)) ? new DateTimePeriodImpl(totalMonths, days, totalNanoseconds) : new DatePeriod(totalMonths, days);
  }
  function DateTimePeriod_0(years, months, days, hours, minutes, seconds, nanoseconds) {
    years = years === VOID ? 0 : years;
    months = months === VOID ? 0 : months;
    days = days === VOID ? 0 : days;
    hours = hours === VOID ? 0 : hours;
    minutes = minutes === VOID ? 0 : minutes;
    seconds = seconds === VOID ? 0 : seconds;
    nanoseconds = nanoseconds === VOID ? new Long(0, 0) : nanoseconds;
    return buildDateTimePeriod(totalMonths(years, months), days, totalNanoseconds(hours, minutes, seconds, nanoseconds));
  }
  function DateTimePeriodImpl(totalMonths, days, totalNanoseconds) {
    DateTimePeriod.call(this);
    this.mme_1 = totalMonths;
    this.nme_1 = days;
    this.ome_1 = totalNanoseconds;
  }
  protoOf(DateTimePeriodImpl).eme = function () {
    return this.mme_1;
  };
  protoOf(DateTimePeriodImpl).fme = function () {
    return this.nme_1;
  };
  protoOf(DateTimePeriodImpl).dme = function () {
    return this.ome_1;
  };
  function DatePeriod_init_$Init$(years, months, days, $this) {
    years = years === VOID ? 0 : years;
    months = months === VOID ? 0 : months;
    days = days === VOID ? 0 : days;
    DatePeriod.call($this, totalMonths(years, months), days);
    return $this;
  }
  function DatePeriod_init_$Create$(years, months, days) {
    return DatePeriod_init_$Init$(years, months, days, objectCreate(protoOf(DatePeriod)));
  }
  function Companion_0() {
  }
  var Companion_instance_1;
  function Companion_getInstance_1() {
    return Companion_instance_1;
  }
  function DatePeriod(totalMonths, days) {
    DateTimePeriod.call(this);
    this.pme_1 = totalMonths;
    this.qme_1 = days;
  }
  protoOf(DatePeriod).eme = function () {
    return this.pme_1;
  };
  protoOf(DatePeriod).fme = function () {
    return this.qme_1;
  };
  protoOf(DatePeriod).ime = function () {
    return 0;
  };
  protoOf(DatePeriod).jme = function () {
    return 0;
  };
  protoOf(DatePeriod).kme = function () {
    return 0;
  };
  protoOf(DatePeriod).lme = function () {
    return 0;
  };
  protoOf(DatePeriod).dme = function () {
    return new Long(0, 0);
  };
  function totalMonths(years, months) {
    // Inline function 'kotlin.Long.times' call
    var totalMonths = toLong(years).cb(toLong(12)).lc(toLong(months));
    var tmp;
    // Inline function 'kotlin.ranges.contains' call
    var this_0 = numberRangeToNumber(IntCompanionObject_instance.MIN_VALUE, IntCompanionObject_instance.MAX_VALUE);
    if (contains(isInterface(this_0, ClosedRange) ? this_0 : THROW_CCE(), totalMonths)) {
      tmp = totalMonths.mb();
    } else {
      throw IllegalArgumentException_init_$Create$('The total number of months in ' + years + ' years and ' + months + ' months overflows an Int');
    }
    return tmp;
  }
  function totalNanoseconds(hours, minutes, seconds, nanoseconds) {
    // Inline function 'kotlin.Long.plus' call
    // Inline function 'kotlin.Long.times' call
    var totalMinutes = toLong(hours).cb(toLong(60)).lc(toLong(minutes));
    // Inline function 'kotlin.Long.times' call
    var totalMinutesAsSeconds = totalMinutes.cb(toLong(60));
    // Inline function 'kotlin.Long.div' call
    var other = get_NANOS_PER_ONE();
    var tmp$ret$3 = nanoseconds.bb(toLong(other));
    var minutesAndNanosecondsAsSeconds = totalMinutesAsSeconds.lc(tmp$ret$3);
    // Inline function 'kotlin.Long.plus' call
    var totalSeconds = minutesAndNanosecondsAsSeconds.lc(toLong(seconds));
    var tmp;
    try {
      var tmp_0 = new Long(1000000000, 0);
      // Inline function 'kotlin.Long.rem' call
      var other_0 = get_NANOS_PER_ONE();
      var tmp$ret$5 = nanoseconds.nc(toLong(other_0));
      tmp = multiplyAndAdd(totalSeconds, tmp_0, tmp$ret$5);
    } catch ($p) {
      var tmp_1;
      if ($p instanceof ArithmeticException) {
        var e = $p;
        throw IllegalArgumentException_init_$Create$('The total number of nanoseconds in ' + hours + ' hours, ' + minutes + ' minutes, ' + seconds + ' seconds, and ' + nanoseconds.toString() + ' nanoseconds overflows a Long');
      } else {
        throw $p;
      }
    }
    return tmp;
  }
  function Companion_1() {
  }
  var Companion_instance_2;
  function Companion_getInstance_2() {
    return Companion_instance_2;
  }
  function Companion_2() {
  }
  var Companion_instance_3;
  function Companion_getInstance_3() {
    return Companion_instance_3;
  }
  function Companion_3() {
  }
  var Companion_instance_4;
  function Companion_getInstance_4() {
    return Companion_instance_4;
  }
  function Companion_4() {
  }
  var Companion_instance_5;
  function Companion_getInstance_5() {
    return Companion_instance_5;
  }
  function TimeBased(nanoseconds) {
    DateTimeUnit.call(this);
    this.rme_1 = nanoseconds;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.contracts.contract' call
    if (!(this.rme_1.c7(new Long(0, 0)) > 0)) {
      // Inline function 'kotlinx.datetime.TimeBased.<anonymous>' call
      var message = 'Unit duration must be positive, but was ' + this.rme_1.toString() + ' ns.';
      throw IllegalArgumentException_init_$Create$(toString_0(message));
    }
    if (this.rme_1.nc(new Long(817405952, 838)).equals(new Long(0, 0))) {
      this.sme_1 = 'HOUR';
      this.tme_1 = this.rme_1.bb(new Long(817405952, 838));
    } else {
      if (this.rme_1.nc(new Long(-129542144, 13)).equals(new Long(0, 0))) {
        this.sme_1 = 'MINUTE';
        this.tme_1 = this.rme_1.bb(new Long(-129542144, 13));
      } else {
        // Inline function 'kotlin.Long.rem' call
        var this_0 = this.rme_1;
        var other = 1000000000;
        if (this_0.nc(toLong(other)).equals(new Long(0, 0))) {
          this.sme_1 = 'SECOND';
          var tmp = this;
          // Inline function 'kotlin.Long.div' call
          var this_1 = this.rme_1;
          var other_0 = 1000000000;
          tmp.tme_1 = this_1.bb(toLong(other_0));
        } else {
          // Inline function 'kotlin.Long.rem' call
          if (this.rme_1.nc(toLong(1000000)).equals(new Long(0, 0))) {
            this.sme_1 = 'MILLISECOND';
            var tmp_0 = this;
            // Inline function 'kotlin.Long.div' call
            tmp_0.tme_1 = this.rme_1.bb(toLong(1000000));
          } else {
            // Inline function 'kotlin.Long.rem' call
            if (this.rme_1.nc(toLong(1000)).equals(new Long(0, 0))) {
              this.sme_1 = 'MICROSECOND';
              var tmp_1 = this;
              // Inline function 'kotlin.Long.div' call
              tmp_1.tme_1 = this.rme_1.bb(toLong(1000));
            } else {
              this.sme_1 = 'NANOSECOND';
              this.tme_1 = this.rme_1;
            }
          }
        }
      }
    }
  }
  protoOf(TimeBased).ume = function (scalar) {
    return new TimeBased(safeMultiply(this.rme_1, toLong(scalar)));
  };
  protoOf(TimeBased).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof TimeBased) {
        tmp_0 = this.rme_1.equals(other.rme_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(TimeBased).hashCode = function () {
    var tmp = this.rme_1.mb();
    return tmp ^ this.rme_1.sc(32).mb();
  };
  protoOf(TimeBased).toString = function () {
    return this.vme(this.tme_1, this.sme_1);
  };
  function DateBased() {
    DateTimeUnit.call(this);
  }
  function DayBased(days) {
    DateBased.call(this);
    this.xme_1 = days;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.contracts.contract' call
    if (!(this.xme_1 > 0)) {
      // Inline function 'kotlinx.datetime.DayBased.<anonymous>' call
      var message = 'Unit duration must be positive, but was ' + this.xme_1 + ' days.';
      throw IllegalArgumentException_init_$Create$(toString_0(message));
    }
  }
  protoOf(DayBased).ume = function (scalar) {
    return new DayBased(safeMultiply_0(this.xme_1, scalar));
  };
  protoOf(DayBased).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof DayBased) {
        tmp_0 = this.xme_1 === other.xme_1;
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(DayBased).hashCode = function () {
    return this.xme_1 ^ 65536;
  };
  protoOf(DayBased).toString = function () {
    return (this.xme_1 % 7 | 0) === 0 ? this.wme(this.xme_1 / 7 | 0, 'WEEK') : this.wme(this.xme_1, 'DAY');
  };
  function MonthBased(months) {
    DateBased.call(this);
    this.yme_1 = months;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.contracts.contract' call
    if (!(this.yme_1 > 0)) {
      // Inline function 'kotlinx.datetime.MonthBased.<anonymous>' call
      var message = 'Unit duration must be positive, but was ' + this.yme_1 + ' months.';
      throw IllegalArgumentException_init_$Create$(toString_0(message));
    }
  }
  protoOf(MonthBased).ume = function (scalar) {
    return new MonthBased(safeMultiply_0(this.yme_1, scalar));
  };
  protoOf(MonthBased).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof MonthBased) {
        tmp_0 = this.yme_1 === other.yme_1;
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(MonthBased).hashCode = function () {
    return this.yme_1 ^ 131072;
  };
  protoOf(MonthBased).toString = function () {
    return (this.yme_1 % 1200 | 0) === 0 ? this.wme(this.yme_1 / 1200 | 0, 'CENTURY') : (this.yme_1 % 12 | 0) === 0 ? this.wme(this.yme_1 / 12 | 0, 'YEAR') : (this.yme_1 % 3 | 0) === 0 ? this.wme(this.yme_1 / 3 | 0, 'QUARTER') : this.wme(this.yme_1, 'MONTH');
  };
  function Companion_5() {
    Companion_instance_6 = this;
    this.zme_1 = new TimeBased(new Long(1, 0));
    this.amf_1 = this.zme_1.ume(1000);
    this.bmf_1 = this.amf_1.ume(1000);
    this.cmf_1 = this.bmf_1.ume(1000);
    this.dmf_1 = this.cmf_1.ume(60);
    this.emf_1 = this.dmf_1.ume(60);
    this.fmf_1 = new DayBased(1);
    this.gmf_1 = this.fmf_1.ume(7);
    this.hmf_1 = new MonthBased(1);
    this.imf_1 = this.hmf_1.ume(3);
    this.jmf_1 = this.hmf_1.ume(12);
    this.kmf_1 = this.jmf_1.ume(100);
  }
  var Companion_instance_6;
  function Companion_getInstance_6() {
    if (Companion_instance_6 == null)
      new Companion_5();
    return Companion_instance_6;
  }
  function DateTimeUnit() {
    Companion_getInstance_6();
  }
  protoOf(DateTimeUnit).wme = function (value, unit) {
    return value === 1 ? unit : '' + value + '-' + unit;
  };
  protoOf(DateTimeUnit).vme = function (value, unit) {
    return value.equals(new Long(1, 0)) ? unit : value.toString() + '-' + unit;
  };
  function get_allDaysOfWeek() {
    _init_properties_DayOfWeek_kt__jlq111();
    return allDaysOfWeek;
  }
  var allDaysOfWeek;
  function DayOfWeek(isoDayNumber) {
    _init_properties_DayOfWeek_kt__jlq111();
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.contracts.contract' call
    if (!(1 <= isoDayNumber ? isoDayNumber <= 7 : false)) {
      // Inline function 'kotlin.require.<anonymous>' call
      var message = 'Failed requirement.';
      throw IllegalArgumentException_init_$Create$(toString_0(message));
    }
    return get_allDaysOfWeek().v(isoDayNumber - 1 | 0);
  }
  var properties_initialized_DayOfWeek_kt_chtv49;
  function _init_properties_DayOfWeek_kt__jlq111() {
    if (!properties_initialized_DayOfWeek_kt_chtv49) {
      properties_initialized_DayOfWeek_kt_chtv49 = true;
      allDaysOfWeek = asList(values());
    }
  }
  function DateTimeFormatException_init_$Init$($this) {
    IllegalArgumentException_init_$Init$($this);
    DateTimeFormatException.call($this);
    return $this;
  }
  function DateTimeFormatException_init_$Create$() {
    var tmp = DateTimeFormatException_init_$Init$(objectCreate(protoOf(DateTimeFormatException)));
    captureStack(tmp, DateTimeFormatException_init_$Create$);
    return tmp;
  }
  function DateTimeFormatException_init_$Init$_0(message, $this) {
    IllegalArgumentException_init_$Init$_0(message, $this);
    DateTimeFormatException.call($this);
    return $this;
  }
  function DateTimeFormatException_init_$Create$_0(message) {
    var tmp = DateTimeFormatException_init_$Init$_0(message, objectCreate(protoOf(DateTimeFormatException)));
    captureStack(tmp, DateTimeFormatException_init_$Create$_0);
    return tmp;
  }
  function DateTimeFormatException_init_$Init$_1(cause, $this) {
    IllegalArgumentException_init_$Init$_1(cause, $this);
    DateTimeFormatException.call($this);
    return $this;
  }
  function DateTimeFormatException_init_$Create$_1(cause) {
    var tmp = DateTimeFormatException_init_$Init$_1(cause, objectCreate(protoOf(DateTimeFormatException)));
    captureStack(tmp, DateTimeFormatException_init_$Create$_1);
    return tmp;
  }
  function DateTimeFormatException() {
    captureStack(this, DateTimeFormatException);
  }
  function DateTimeArithmeticException_init_$Init$($this) {
    RuntimeException_init_$Init$($this);
    DateTimeArithmeticException.call($this);
    return $this;
  }
  function DateTimeArithmeticException_init_$Create$() {
    var tmp = DateTimeArithmeticException_init_$Init$(objectCreate(protoOf(DateTimeArithmeticException)));
    captureStack(tmp, DateTimeArithmeticException_init_$Create$);
    return tmp;
  }
  function DateTimeArithmeticException_init_$Init$_0(cause, $this) {
    RuntimeException_init_$Init$_0(cause, $this);
    DateTimeArithmeticException.call($this);
    return $this;
  }
  function DateTimeArithmeticException_init_$Create$_0(cause) {
    var tmp = DateTimeArithmeticException_init_$Init$_0(cause, objectCreate(protoOf(DateTimeArithmeticException)));
    captureStack(tmp, DateTimeArithmeticException_init_$Create$_0);
    return tmp;
  }
  function DateTimeArithmeticException() {
    captureStack(this, DateTimeArithmeticException);
  }
  function IllegalTimeZoneException_init_$Init$($this) {
    IllegalArgumentException_init_$Init$($this);
    IllegalTimeZoneException.call($this);
    return $this;
  }
  function IllegalTimeZoneException_init_$Create$() {
    var tmp = IllegalTimeZoneException_init_$Init$(objectCreate(protoOf(IllegalTimeZoneException)));
    captureStack(tmp, IllegalTimeZoneException_init_$Create$);
    return tmp;
  }
  function IllegalTimeZoneException_init_$Init$_0(cause, $this) {
    IllegalArgumentException_init_$Init$_1(cause, $this);
    IllegalTimeZoneException.call($this);
    return $this;
  }
  function IllegalTimeZoneException_init_$Create$_0(cause) {
    var tmp = IllegalTimeZoneException_init_$Init$_0(cause, objectCreate(protoOf(IllegalTimeZoneException)));
    captureStack(tmp, IllegalTimeZoneException_init_$Create$_0);
    return tmp;
  }
  function IllegalTimeZoneException() {
    captureStack(this, IllegalTimeZoneException);
  }
  function get_DISTANT_PAST_SECONDS() {
    return DISTANT_PAST_SECONDS;
  }
  var DISTANT_PAST_SECONDS;
  function get_DISTANT_FUTURE_SECONDS() {
    return DISTANT_FUTURE_SECONDS;
  }
  var DISTANT_FUTURE_SECONDS;
  function daysUntil(_this__u8e3s4, other, timeZone) {
    return clampToInt(until_0(_this__u8e3s4, other, Companion_getInstance_6().fmf_1, timeZone));
  }
  function until(_this__u8e3s4, other, unit) {
    var tmp;
    try {
      tmp = multiplyAddAndDivide(other.mmf().mc(_this__u8e3s4.mmf()), toLong(get_NANOS_PER_ONE()), toLong(other.nmf() - _this__u8e3s4.nmf() | 0), unit.rme_1);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof ArithmeticException) {
        var e = $p;
        var tmp_1;
        if (_this__u8e3s4.omf(other) < 0) {
          Companion_getInstance();
          tmp_1 = new Long(-1, 2147483647);
        } else {
          Companion_getInstance();
          tmp_1 = new Long(0, -2147483648);
        }
        tmp_0 = tmp_1;
      } else {
        throw $p;
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  function asTimeZone(_this__u8e3s4) {
    return FixedOffsetTimeZone_init_$Create$(_this__u8e3s4);
  }
  function get_NANOS_PER_MILLI() {
    return NANOS_PER_MILLI;
  }
  var NANOS_PER_MILLI;
  function get_MILLIS_PER_ONE() {
    return MILLIS_PER_ONE;
  }
  var MILLIS_PER_ONE;
  function get_NANOS_PER_ONE() {
    return NANOS_PER_ONE;
  }
  var NANOS_PER_ONE;
  function DivRemResult(q, r) {
    this.pmf_1 = q;
    this.qmf_1 = r;
  }
  protoOf(DivRemResult).y6 = function () {
    return this.pmf_1;
  };
  protoOf(DivRemResult).z6 = function () {
    return this.qmf_1;
  };
  function multiplyAndDivide(a, b, c) {
    if (a.equals(new Long(0, 0)) ? true : b.equals(new Long(0, 0)))
      return new DivRemResult(new Long(0, 0), new Long(0, 0));
    var ab = safeMultiplyOrZero(a, b);
    if (!ab.equals(new Long(0, 0)))
      return new DivRemResult(ab.bb(c), ab.nc(c));
    if (b.equals(c))
      return new DivRemResult(a, new Long(0, 0));
    if (a.equals(c))
      return new DivRemResult(b, new Long(0, 0));
    var ae = a.c7(new Long(0, 0)) >= 0 ? new Long(0, 0) : new Long(-1, -1);
    var be = b.c7(new Long(0, 0)) >= 0 ? new Long(0, 0) : new Long(-1, -1);
    // Inline function 'kotlinx.datetime.internal.low' call
    var al = a.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.high' call
    var ah = a.sc(32).uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.low' call
    var bl = b.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.high' call
    var bh = b.sc(32).uc(new Long(-1, 0));
    var w = ae.cb(bh).lc(ah.cb(be));
    var x = ae.cb(bl).lc(ah.cb(bh)).lc(al.cb(be));
    var y1 = ah.cb(bl);
    var y2 = al.cb(bh);
    var z = al.cb(bl);
    // Inline function 'kotlinx.datetime.internal.low' call
    var r4 = z.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.low' call
    var tmp = y1.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.low' call
    var tmp$ret$6 = y2.uc(new Long(-1, 0));
    var tmp_0 = tmp.lc(tmp$ret$6);
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp$ret$7 = z.sc(32).uc(new Long(-1, 0));
    var r3c = tmp_0.lc(tmp$ret$7);
    // Inline function 'kotlinx.datetime.internal.low' call
    var r3 = r3c.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp_1 = r3c.sc(32).uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.low' call
    var tmp$ret$10 = x.uc(new Long(-1, 0));
    var tmp_2 = tmp_1.lc(tmp$ret$10);
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp$ret$11 = y1.sc(32).uc(new Long(-1, 0));
    var tmp_3 = tmp_2.lc(tmp$ret$11);
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp$ret$12 = y2.sc(32).uc(new Long(-1, 0));
    var r2c = tmp_3.lc(tmp$ret$12);
    // Inline function 'kotlinx.datetime.internal.low' call
    var r2 = r2c.uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp_4 = r2c.sc(32).uc(new Long(-1, 0));
    // Inline function 'kotlinx.datetime.internal.high' call
    var tmp$ret$15 = x.sc(32).uc(new Long(-1, 0));
    var tmp_5 = tmp_4.lc(tmp$ret$15);
    // Inline function 'kotlinx.datetime.internal.low' call
    var tmp$ret$16 = w.uc(new Long(-1, 0));
    var r1 = tmp_5.lc(tmp$ret$16);
    var abl = r3.rc(32).vc(r4);
    var abh = r1.rc(32).vc(r2);
    var tmp_6;
    // Inline function 'kotlinx.datetime.internal.indexBit' call
    if (abh.sc(63).uc(new Long(1, 0)).equals(new Long(1, 0))) {
      tmp_6 = -1;
    } else {
      tmp_6 = 1;
    }
    var sign = tmp_6;
    if (sign === -1) {
      // Inline function 'kotlin.Long.plus' call
      abl = abl.qc().lc(toLong(1));
      abh = abh.qc();
      if (abl.equals(new Long(0, 0))) {
        // Inline function 'kotlin.Long.plus' call
        abh = abh.lc(toLong(1));
      }
    }
    var q = new Long(0, 0);
    var r = new Long(0, 0);
    var inductionVariable = 127;
    if (0 <= inductionVariable)
      do {
        var bitNo = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        var tmp_7;
        if (bitNo < 64) {
          // Inline function 'kotlinx.datetime.internal.indexBit' call
          tmp_7 = abl.sc(bitNo).uc(new Long(1, 0));
        } else {
          // Inline function 'kotlinx.datetime.internal.indexBit' call
          var value = abh;
          var bit = bitNo - 64 | 0;
          tmp_7 = value.sc(bit).uc(new Long(1, 0));
        }
        var nextBit = tmp_7;
        r = r.rc(1).vc(nextBit);
        if (r.c7(c) >= 0 ? true : r.c7(new Long(0, 0)) < 0) {
          r = r.mc(c);
          if (bitNo < 63)
            q = q.vc((new Long(1, 0)).rc(bitNo));
          else
            throw ArithmeticException_init_$Create$('The result of a multiplication followed by division overflows a long');
        }
      }
       while (0 <= inductionVariable);
    return new DivRemResult(numberToLong(sign).cb(q), numberToLong(sign).cb(r));
  }
  function multiplyAndAdd(d, n, r) {
    var md = d;
    var mr = r;
    if (d.c7(new Long(0, 0)) > 0 ? r.c7(new Long(0, 0)) < 0 : false) {
      md = md.pc();
      mr = mr.lc(n);
    } else if (d.c7(new Long(0, 0)) < 0 ? r.c7(new Long(0, 0)) > 0 : false) {
      md = md.oc();
      mr = mr.mc(n);
    }
    return safeAdd(safeMultiply(md, n), mr);
  }
  function safeMultiplyOrZero(a, b) {
    if (b.equals(new Long(-1, -1))) {
      Companion_getInstance();
      if (a.equals(new Long(0, -2147483648))) {
        return new Long(0, 0);
      }
      return a.b7();
    } else if (b.equals(new Long(1, 0)))
      return a;
    var total = a.cb(b);
    if (!total.bb(b).equals(a)) {
      return new Long(0, 0);
    }
    return total;
  }
  function clampToInt(_this__u8e3s4) {
    return _this__u8e3s4.c7(toLong(IntCompanionObject_instance.MAX_VALUE)) > 0 ? IntCompanionObject_instance.MAX_VALUE : _this__u8e3s4.c7(toLong(IntCompanionObject_instance.MIN_VALUE)) < 0 ? IntCompanionObject_instance.MIN_VALUE : _this__u8e3s4.mb();
  }
  function multiplyAddAndDivide(d, n, r, m) {
    var md = d;
    var mr = r;
    if (d.c7(new Long(0, 0)) > 0 ? r.c7(new Long(0, 0)) < 0 : false) {
      md = md.pc();
      mr = mr.lc(n);
    } else if (d.c7(new Long(0, 0)) < 0 ? r.c7(new Long(0, 0)) > 0 : false) {
      md = md.oc();
      mr = mr.mc(n);
    }
    if (md.equals(new Long(0, 0))) {
      return mr.bb(m);
    }
    var tmp2_container = multiplyAndDivide(md, n, m);
    var rd = tmp2_container.y6();
    var rr = tmp2_container.z6();
    return safeAdd(rd, safeAdd(mr.bb(m), safeAdd(mr.nc(m), rr).bb(m)));
  }
  function DateTimePeriodIso8601Serializer() {
    DateTimePeriodIso8601Serializer_instance = this;
    this.rmf_1 = PrimitiveSerialDescriptor('DateTimePeriod', STRING_getInstance());
  }
  protoOf(DateTimePeriodIso8601Serializer).q44 = function () {
    return this.rmf_1;
  };
  protoOf(DateTimePeriodIso8601Serializer).s44 = function (decoder) {
    return Companion_instance_0.o2r(decoder.d48());
  };
  protoOf(DateTimePeriodIso8601Serializer).smf = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(DateTimePeriodIso8601Serializer).r44 = function (encoder, value) {
    return this.smf(encoder, value instanceof DateTimePeriod ? value : THROW_CCE());
  };
  var DateTimePeriodIso8601Serializer_instance;
  function DateTimePeriodIso8601Serializer_getInstance() {
    if (DateTimePeriodIso8601Serializer_instance == null)
      new DateTimePeriodIso8601Serializer();
    return DateTimePeriodIso8601Serializer_instance;
  }
  function DatePeriodIso8601Serializer() {
    DatePeriodIso8601Serializer_instance = this;
    this.tmf_1 = PrimitiveSerialDescriptor('DatePeriod', STRING_getInstance());
  }
  protoOf(DatePeriodIso8601Serializer).q44 = function () {
    return this.tmf_1;
  };
  protoOf(DatePeriodIso8601Serializer).s44 = function (decoder) {
    var period = Companion_instance_0.o2r(decoder.d48());
    var tmp;
    if (period instanceof DatePeriod) {
      tmp = period;
    } else {
      throw SerializationException_init_$Create$('' + period + ' is not a date-based period');
    }
    return tmp;
  };
  protoOf(DatePeriodIso8601Serializer).umf = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(DatePeriodIso8601Serializer).r44 = function (encoder, value) {
    return this.umf(encoder, value instanceof DatePeriod ? value : THROW_CCE());
  };
  var DatePeriodIso8601Serializer_instance;
  function DatePeriodIso8601Serializer_getInstance() {
    if (DatePeriodIso8601Serializer_instance == null)
      new DatePeriodIso8601Serializer();
    return DatePeriodIso8601Serializer_instance;
  }
  function TimeBasedDateTimeUnitSerializer$descriptor$lambda($this$buildClassSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.element' call
    var elementName = 'nanoseconds';
    var annotations = emptyList();
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(getKClass(Long), arrayOf([]), false));
    var descriptor = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).q44();
    $this$buildClassSerialDescriptor.c47(elementName, descriptor, annotations, false);
    return Unit_instance;
  }
  function TimeBasedDateTimeUnitSerializer() {
    TimeBasedDateTimeUnitSerializer_instance = this;
    var tmp = this;
    tmp.vmf_1 = buildClassSerialDescriptor('TimeBased', [], TimeBasedDateTimeUnitSerializer$descriptor$lambda);
  }
  protoOf(TimeBasedDateTimeUnitSerializer).q44 = function () {
    return this.vmf_1;
  };
  protoOf(TimeBasedDateTimeUnitSerializer).wmf = function (encoder, value) {
    // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
    var descriptor = this.vmf_1;
    var composite = encoder.i48(descriptor);
    // Inline function 'kotlinx.datetime.serializers.TimeBasedDateTimeUnitSerializer.serialize.<anonymous>' call
    composite.s49(TimeBasedDateTimeUnitSerializer_getInstance().vmf_1, 0, value.rme_1);
    composite.j48(descriptor);
  };
  protoOf(TimeBasedDateTimeUnitSerializer).r44 = function (encoder, value) {
    return this.wmf(encoder, value instanceof TimeBased ? value : THROW_CCE());
  };
  protoOf(TimeBasedDateTimeUnitSerializer).s44 = function (decoder) {
    var seen = {_v: false};
    var nanoseconds = {_v: new Long(0, 0)};
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = this.vmf_1;
    var composite = decoder.i48(descriptor);
    var tmp;
    if (composite.x48()) {
      nanoseconds._v = composite.o48(TimeBasedDateTimeUnitSerializer_getInstance().vmf_1, 0);
      seen._v = true;
      tmp = Unit_instance;
    } else {
      loop: while (true) {
        var elementIndex = composite.y48(TimeBasedDateTimeUnitSerializer_getInstance().vmf_1);
        if (elementIndex === 0) {
          nanoseconds._v = composite.o48(TimeBasedDateTimeUnitSerializer_getInstance().vmf_1, 0);
          seen._v = true;
        } else {
          if (elementIndex === -1)
            break loop;
          else {
            throw UnknownFieldException_init_$Create$(elementIndex);
          }
        }
      }
      tmp = Unit_instance;
    }
    var result = tmp;
    composite.j48(descriptor);
    if (!seen._v)
      throw MissingFieldException_init_$Create$('nanoseconds');
    return new TimeBased(nanoseconds._v);
  };
  var TimeBasedDateTimeUnitSerializer_instance;
  function TimeBasedDateTimeUnitSerializer_getInstance() {
    if (TimeBasedDateTimeUnitSerializer_instance == null)
      new TimeBasedDateTimeUnitSerializer();
    return TimeBasedDateTimeUnitSerializer_instance;
  }
  function DateBasedDateTimeUnitSerializer() {
    DateBasedDateTimeUnitSerializer_instance = this;
    AbstractPolymorphicSerializer.call(this);
    var tmp = this;
    var tmp_0 = getKClass(DateBased);
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = [getKClass(DayBased), getKClass(MonthBased)];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$5 = [DayBasedDateTimeUnitSerializer_getInstance(), MonthBasedDateTimeUnitSerializer_getInstance()];
    tmp.xmf_1 = new SealedClassSerializer('kotlinx.datetime.DateTimeUnit.DateBased', tmp_0, tmp_1, tmp$ret$5);
  }
  protoOf(DateBasedDateTimeUnitSerializer).h45 = function (decoder, klassName) {
    return this.xmf_1.h45(decoder, klassName);
  };
  protoOf(DateBasedDateTimeUnitSerializer).ymf = function (encoder, value) {
    return this.xmf_1.i45(encoder, value);
  };
  protoOf(DateBasedDateTimeUnitSerializer).i45 = function (encoder, value) {
    return this.ymf(encoder, value instanceof DateBased ? value : THROW_CCE());
  };
  protoOf(DateBasedDateTimeUnitSerializer).f45 = function () {
    return getKClass(DateBased);
  };
  protoOf(DateBasedDateTimeUnitSerializer).q44 = function () {
    return this.xmf_1.q44();
  };
  var DateBasedDateTimeUnitSerializer_instance;
  function DateBasedDateTimeUnitSerializer_getInstance() {
    if (DateBasedDateTimeUnitSerializer_instance == null)
      new DateBasedDateTimeUnitSerializer();
    return DateBasedDateTimeUnitSerializer_instance;
  }
  function DayBasedDateTimeUnitSerializer$descriptor$lambda($this$buildClassSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.element' call
    var annotations = emptyList();
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().c8(), arrayOf([]), false));
    var descriptor = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).q44();
    $this$buildClassSerialDescriptor.c47('days', descriptor, annotations, false);
    return Unit_instance;
  }
  function DayBasedDateTimeUnitSerializer() {
    DayBasedDateTimeUnitSerializer_instance = this;
    var tmp = this;
    tmp.zmf_1 = buildClassSerialDescriptor('DayBased', [], DayBasedDateTimeUnitSerializer$descriptor$lambda);
  }
  protoOf(DayBasedDateTimeUnitSerializer).q44 = function () {
    return this.zmf_1;
  };
  protoOf(DayBasedDateTimeUnitSerializer).amg = function (encoder, value) {
    // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
    var descriptor = this.zmf_1;
    var composite = encoder.i48(descriptor);
    // Inline function 'kotlinx.datetime.serializers.DayBasedDateTimeUnitSerializer.serialize.<anonymous>' call
    composite.r49(DayBasedDateTimeUnitSerializer_getInstance().zmf_1, 0, value.xme_1);
    composite.j48(descriptor);
  };
  protoOf(DayBasedDateTimeUnitSerializer).r44 = function (encoder, value) {
    return this.amg(encoder, value instanceof DayBased ? value : THROW_CCE());
  };
  protoOf(DayBasedDateTimeUnitSerializer).s44 = function (decoder) {
    var seen = {_v: false};
    var days = {_v: 0};
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = this.zmf_1;
    var composite = decoder.i48(descriptor);
    var tmp;
    if (composite.x48()) {
      days._v = composite.n48(DayBasedDateTimeUnitSerializer_getInstance().zmf_1, 0);
      seen._v = true;
      tmp = Unit_instance;
    } else {
      loop: while (true) {
        var elementIndex = composite.y48(DayBasedDateTimeUnitSerializer_getInstance().zmf_1);
        if (elementIndex === 0) {
          days._v = composite.n48(DayBasedDateTimeUnitSerializer_getInstance().zmf_1, 0);
          seen._v = true;
        } else {
          if (elementIndex === -1)
            break loop;
          else {
            throw UnknownFieldException_init_$Create$(elementIndex);
          }
        }
      }
      tmp = Unit_instance;
    }
    var result = tmp;
    composite.j48(descriptor);
    if (!seen._v)
      throw MissingFieldException_init_$Create$('days');
    return new DayBased(days._v);
  };
  var DayBasedDateTimeUnitSerializer_instance;
  function DayBasedDateTimeUnitSerializer_getInstance() {
    if (DayBasedDateTimeUnitSerializer_instance == null)
      new DayBasedDateTimeUnitSerializer();
    return DayBasedDateTimeUnitSerializer_instance;
  }
  function MonthBasedDateTimeUnitSerializer$descriptor$lambda($this$buildClassSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.element' call
    var annotations = emptyList();
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().c8(), arrayOf([]), false));
    var descriptor = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).q44();
    $this$buildClassSerialDescriptor.c47('months', descriptor, annotations, false);
    return Unit_instance;
  }
  function MonthBasedDateTimeUnitSerializer() {
    MonthBasedDateTimeUnitSerializer_instance = this;
    var tmp = this;
    tmp.bmg_1 = buildClassSerialDescriptor('MonthBased', [], MonthBasedDateTimeUnitSerializer$descriptor$lambda);
  }
  protoOf(MonthBasedDateTimeUnitSerializer).q44 = function () {
    return this.bmg_1;
  };
  protoOf(MonthBasedDateTimeUnitSerializer).cmg = function (encoder, value) {
    // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
    var descriptor = this.bmg_1;
    var composite = encoder.i48(descriptor);
    // Inline function 'kotlinx.datetime.serializers.MonthBasedDateTimeUnitSerializer.serialize.<anonymous>' call
    composite.r49(MonthBasedDateTimeUnitSerializer_getInstance().bmg_1, 0, value.yme_1);
    composite.j48(descriptor);
  };
  protoOf(MonthBasedDateTimeUnitSerializer).r44 = function (encoder, value) {
    return this.cmg(encoder, value instanceof MonthBased ? value : THROW_CCE());
  };
  protoOf(MonthBasedDateTimeUnitSerializer).s44 = function (decoder) {
    var seen = {_v: false};
    var months = {_v: 0};
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = this.bmg_1;
    var composite = decoder.i48(descriptor);
    var tmp;
    if (composite.x48()) {
      months._v = composite.n48(MonthBasedDateTimeUnitSerializer_getInstance().bmg_1, 0);
      seen._v = true;
      tmp = Unit_instance;
    } else {
      loop: while (true) {
        var elementIndex = composite.y48(MonthBasedDateTimeUnitSerializer_getInstance().bmg_1);
        if (elementIndex === 0) {
          months._v = composite.n48(MonthBasedDateTimeUnitSerializer_getInstance().bmg_1, 0);
          seen._v = true;
        } else {
          if (elementIndex === -1)
            break loop;
          else {
            throw UnknownFieldException_init_$Create$(elementIndex);
          }
        }
      }
      tmp = Unit_instance;
    }
    var result = tmp;
    composite.j48(descriptor);
    if (!seen._v)
      throw MissingFieldException_init_$Create$('months');
    return new MonthBased(months._v);
  };
  var MonthBasedDateTimeUnitSerializer_instance;
  function MonthBasedDateTimeUnitSerializer_getInstance() {
    if (MonthBasedDateTimeUnitSerializer_instance == null)
      new MonthBasedDateTimeUnitSerializer();
    return MonthBasedDateTimeUnitSerializer_instance;
  }
  function DateTimeUnitSerializer() {
    DateTimeUnitSerializer_instance = this;
    AbstractPolymorphicSerializer.call(this);
    var tmp = this;
    var tmp_0 = getKClass(DateTimeUnit);
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = [getKClass(DayBased), getKClass(MonthBased), getKClass(TimeBased)];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$5 = [DayBasedDateTimeUnitSerializer_getInstance(), MonthBasedDateTimeUnitSerializer_getInstance(), TimeBasedDateTimeUnitSerializer_getInstance()];
    tmp.dmg_1 = new SealedClassSerializer('kotlinx.datetime.DateTimeUnit', tmp_0, tmp_1, tmp$ret$5);
  }
  protoOf(DateTimeUnitSerializer).h45 = function (decoder, klassName) {
    return this.dmg_1.h45(decoder, klassName);
  };
  protoOf(DateTimeUnitSerializer).emg = function (encoder, value) {
    return this.dmg_1.i45(encoder, value);
  };
  protoOf(DateTimeUnitSerializer).i45 = function (encoder, value) {
    return this.emg(encoder, value instanceof DateTimeUnit ? value : THROW_CCE());
  };
  protoOf(DateTimeUnitSerializer).f45 = function () {
    return getKClass(DateTimeUnit);
  };
  protoOf(DateTimeUnitSerializer).q44 = function () {
    return this.dmg_1.q44();
  };
  var DateTimeUnitSerializer_instance;
  function DateTimeUnitSerializer_getInstance() {
    if (DateTimeUnitSerializer_instance == null)
      new DateTimeUnitSerializer();
    return DateTimeUnitSerializer_instance;
  }
  function InstantIso8601Serializer() {
    InstantIso8601Serializer_instance = this;
    this.fmg_1 = PrimitiveSerialDescriptor('Instant', STRING_getInstance());
  }
  protoOf(InstantIso8601Serializer).q44 = function () {
    return this.fmg_1;
  };
  protoOf(InstantIso8601Serializer).s44 = function (decoder) {
    return Companion_getInstance_7().o2r(decoder.d48());
  };
  protoOf(InstantIso8601Serializer).gmg = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(InstantIso8601Serializer).r44 = function (encoder, value) {
    return this.gmg(encoder, value instanceof Instant_0 ? value : THROW_CCE());
  };
  var InstantIso8601Serializer_instance;
  function InstantIso8601Serializer_getInstance() {
    if (InstantIso8601Serializer_instance == null)
      new InstantIso8601Serializer();
    return InstantIso8601Serializer_instance;
  }
  function LocalDateIso8601Serializer() {
    LocalDateIso8601Serializer_instance = this;
    this.hmg_1 = PrimitiveSerialDescriptor('LocalDate', STRING_getInstance());
  }
  protoOf(LocalDateIso8601Serializer).q44 = function () {
    return this.hmg_1;
  };
  protoOf(LocalDateIso8601Serializer).s44 = function (decoder) {
    return Companion_getInstance_8().o2r(decoder.d48());
  };
  protoOf(LocalDateIso8601Serializer).kmg = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(LocalDateIso8601Serializer).r44 = function (encoder, value) {
    return this.kmg(encoder, value instanceof LocalDate_0 ? value : THROW_CCE());
  };
  var LocalDateIso8601Serializer_instance;
  function LocalDateIso8601Serializer_getInstance() {
    if (LocalDateIso8601Serializer_instance == null)
      new LocalDateIso8601Serializer();
    return LocalDateIso8601Serializer_instance;
  }
  function LocalDateTimeIso8601Serializer() {
    LocalDateTimeIso8601Serializer_instance = this;
    this.lmg_1 = PrimitiveSerialDescriptor('LocalDateTime', STRING_getInstance());
  }
  protoOf(LocalDateTimeIso8601Serializer).q44 = function () {
    return this.lmg_1;
  };
  protoOf(LocalDateTimeIso8601Serializer).s44 = function (decoder) {
    return Companion_getInstance_9().o2r(decoder.d48());
  };
  protoOf(LocalDateTimeIso8601Serializer).omg = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(LocalDateTimeIso8601Serializer).r44 = function (encoder, value) {
    return this.omg(encoder, value instanceof LocalDateTime_0 ? value : THROW_CCE());
  };
  var LocalDateTimeIso8601Serializer_instance;
  function LocalDateTimeIso8601Serializer_getInstance() {
    if (LocalDateTimeIso8601Serializer_instance == null)
      new LocalDateTimeIso8601Serializer();
    return LocalDateTimeIso8601Serializer_instance;
  }
  function LocalTimeIso8601Serializer() {
    LocalTimeIso8601Serializer_instance = this;
    this.pmg_1 = PrimitiveSerialDescriptor('LocalTime', STRING_getInstance());
  }
  protoOf(LocalTimeIso8601Serializer).q44 = function () {
    return this.pmg_1;
  };
  protoOf(LocalTimeIso8601Serializer).s44 = function (decoder) {
    return Companion_getInstance_10().o2r(decoder.d48());
  };
  protoOf(LocalTimeIso8601Serializer).smg = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(LocalTimeIso8601Serializer).r44 = function (encoder, value) {
    return this.smg(encoder, value instanceof LocalTime_0 ? value : THROW_CCE());
  };
  var LocalTimeIso8601Serializer_instance;
  function LocalTimeIso8601Serializer_getInstance() {
    if (LocalTimeIso8601Serializer_instance == null)
      new LocalTimeIso8601Serializer();
    return LocalTimeIso8601Serializer_instance;
  }
  function TimeZoneSerializer() {
    TimeZoneSerializer_instance = this;
    this.tmg_1 = PrimitiveSerialDescriptor('TimeZone', STRING_getInstance());
  }
  protoOf(TimeZoneSerializer).q44 = function () {
    return this.tmg_1;
  };
  protoOf(TimeZoneSerializer).s44 = function (decoder) {
    return Companion_getInstance_11().vmg(decoder.d48());
  };
  protoOf(TimeZoneSerializer).wmg = function (encoder, value) {
    encoder.l49(value.ymg());
  };
  protoOf(TimeZoneSerializer).r44 = function (encoder, value) {
    return this.wmg(encoder, value instanceof TimeZone ? value : THROW_CCE());
  };
  var TimeZoneSerializer_instance;
  function TimeZoneSerializer_getInstance() {
    if (TimeZoneSerializer_instance == null)
      new TimeZoneSerializer();
    return TimeZoneSerializer_instance;
  }
  function FixedOffsetTimeZoneSerializer() {
    FixedOffsetTimeZoneSerializer_instance = this;
    this.zmg_1 = PrimitiveSerialDescriptor('FixedOffsetTimeZone', STRING_getInstance());
  }
  protoOf(FixedOffsetTimeZoneSerializer).q44 = function () {
    return this.zmg_1;
  };
  protoOf(FixedOffsetTimeZoneSerializer).s44 = function (decoder) {
    var zone = Companion_getInstance_11().vmg(decoder.d48());
    if (zone instanceof FixedOffsetTimeZone) {
      return zone;
    } else {
      throw SerializationException_init_$Create$("Timezone identifier '" + zone + "' does not correspond to a fixed-offset timezone");
    }
  };
  protoOf(FixedOffsetTimeZoneSerializer).amh = function (encoder, value) {
    encoder.l49(value.ymg());
  };
  protoOf(FixedOffsetTimeZoneSerializer).r44 = function (encoder, value) {
    return this.amh(encoder, value instanceof FixedOffsetTimeZone ? value : THROW_CCE());
  };
  var FixedOffsetTimeZoneSerializer_instance;
  function FixedOffsetTimeZoneSerializer_getInstance() {
    if (FixedOffsetTimeZoneSerializer_instance == null)
      new FixedOffsetTimeZoneSerializer();
    return FixedOffsetTimeZoneSerializer_instance;
  }
  function UtcOffsetSerializer() {
    UtcOffsetSerializer_instance = this;
    this.bmh_1 = PrimitiveSerialDescriptor('UtcOffset', STRING_getInstance());
  }
  protoOf(UtcOffsetSerializer).q44 = function () {
    return this.bmh_1;
  };
  protoOf(UtcOffsetSerializer).s44 = function (decoder) {
    return Companion_getInstance_13().o2r(decoder.d48());
  };
  protoOf(UtcOffsetSerializer).dmh = function (encoder, value) {
    encoder.l49(value.toString());
  };
  protoOf(UtcOffsetSerializer).r44 = function (encoder, value) {
    return this.dmh(encoder, value instanceof UtcOffset ? value : THROW_CCE());
  };
  var UtcOffsetSerializer_instance;
  function UtcOffsetSerializer_getInstance() {
    if (UtcOffsetSerializer_instance == null)
      new UtcOffsetSerializer();
    return UtcOffsetSerializer_instance;
  }
  function toJSDate(_this__u8e3s4) {
    return new Date(_this__u8e3s4.emh().a7());
  }
  var DayOfWeek_MONDAY_instance;
  var DayOfWeek_TUESDAY_instance;
  var DayOfWeek_WEDNESDAY_instance;
  var DayOfWeek_THURSDAY_instance;
  var DayOfWeek_FRIDAY_instance;
  var DayOfWeek_SATURDAY_instance;
  var DayOfWeek_SUNDAY_instance;
  function values() {
    return [DayOfWeek_MONDAY_getInstance(), DayOfWeek_TUESDAY_getInstance(), DayOfWeek_WEDNESDAY_getInstance(), DayOfWeek_THURSDAY_getInstance(), DayOfWeek_FRIDAY_getInstance(), DayOfWeek_SATURDAY_getInstance(), DayOfWeek_SUNDAY_getInstance()];
  }
  var DayOfWeek_entriesInitialized;
  function DayOfWeek_initEntries() {
    if (DayOfWeek_entriesInitialized)
      return Unit_instance;
    DayOfWeek_entriesInitialized = true;
    DayOfWeek_MONDAY_instance = new DayOfWeek_0('MONDAY', 0);
    DayOfWeek_TUESDAY_instance = new DayOfWeek_0('TUESDAY', 1);
    DayOfWeek_WEDNESDAY_instance = new DayOfWeek_0('WEDNESDAY', 2);
    DayOfWeek_THURSDAY_instance = new DayOfWeek_0('THURSDAY', 3);
    DayOfWeek_FRIDAY_instance = new DayOfWeek_0('FRIDAY', 4);
    DayOfWeek_SATURDAY_instance = new DayOfWeek_0('SATURDAY', 5);
    DayOfWeek_SUNDAY_instance = new DayOfWeek_0('SUNDAY', 6);
  }
  function DayOfWeek_0(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  function toDayOfWeek(_this__u8e3s4) {
    return DayOfWeek(numberToInt(_this__u8e3s4.value()));
  }
  function DayOfWeek_MONDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_MONDAY_instance;
  }
  function DayOfWeek_TUESDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_TUESDAY_instance;
  }
  function DayOfWeek_WEDNESDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_WEDNESDAY_instance;
  }
  function DayOfWeek_THURSDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_THURSDAY_instance;
  }
  function DayOfWeek_FRIDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_FRIDAY_instance;
  }
  function DayOfWeek_SATURDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_SATURDAY_instance;
  }
  function DayOfWeek_SUNDAY_getInstance() {
    DayOfWeek_initEntries();
    return DayOfWeek_SUNDAY_instance;
  }
  function fixOffsetRepresentation($this, isoString) {
    var time = indexOf(isoString, _Char___init__impl__6a9atx(84), VOID, true);
    if (time === -1)
      return isoString;
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.text.indexOfLast' call
      var inductionVariable = charSequenceLength(isoString) - 1 | 0;
      if (0 <= inductionVariable)
        do {
          var index = inductionVariable;
          inductionVariable = inductionVariable + -1 | 0;
          // Inline function 'kotlinx.datetime.Companion.fixOffsetRepresentation.<anonymous>' call
          var c = charSequenceGet(isoString, index);
          if (c === _Char___init__impl__6a9atx(43) ? true : c === _Char___init__impl__6a9atx(45)) {
            tmp$ret$1 = index;
            break $l$block;
          }
        }
         while (0 <= inductionVariable);
      tmp$ret$1 = -1;
    }
    var offset = tmp$ret$1;
    if (offset < time)
      return isoString;
    var separator = indexOf(isoString, _Char___init__impl__6a9atx(58), offset);
    return !(separator === -1) ? isoString : isoString + ':00';
  }
  function Companion_6() {
    Companion_instance_7 = this;
    this.zmd_1 = new Instant_0(Instant.ofEpochSecond(get_DISTANT_PAST_SECONDS(), 999999999));
    this.ame_1 = new Instant_0(Instant.ofEpochSecond(get_DISTANT_FUTURE_SECONDS(), 0));
    this.bme_1 = new Instant_0(Instant.MIN);
    this.cme_1 = new Instant_0(Instant.MAX);
  }
  protoOf(Companion_6).ymd = function () {
    return new Instant_0(Clock.systemUTC().instant());
  };
  protoOf(Companion_6).fmh = function (epochMilliseconds) {
    var tmp;
    try {
      // Inline function 'kotlin.Long.div' call
      var other = get_MILLIS_PER_ONE();
      var tmp_0 = epochMilliseconds.bb(toLong(other));
      // Inline function 'kotlin.Long.times' call
      // Inline function 'kotlin.Long.rem' call
      var other_0 = get_MILLIS_PER_ONE();
      var this_0 = epochMilliseconds.nc(toLong(other_0));
      var other_1 = get_NANOS_PER_MILLI();
      var tmp$ret$2 = this_0.cb(toLong(other_1));
      tmp = this.gmh(tmp_0, tmp$ret$2);
    } catch ($p) {
      var tmp_1;
      if ($p instanceof Error) {
        var e = $p;
        if (!isJodaDateTimeException(e))
          throw e;
        tmp_1 = epochMilliseconds.c7(new Long(0, 0)) > 0 ? this.cme_1 : this.bme_1;
      } else {
        throw $p;
      }
      tmp = tmp_1;
    }
    return tmp;
  };
  protoOf(Companion_6).o2r = function (isoString) {
    var tmp;
    try {
      tmp = new Instant_0(OffsetDateTime.parse(fixOffsetRepresentation(this, isoString)).toInstant());
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeParseException(e))
          throw DateTimeFormatException_init_$Create$_1(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  protoOf(Companion_6).gmh = function (epochSeconds, nanosecondAdjustment) {
    var tmp;
    try {
      // Inline function 'kotlin.floorDiv' call
      var other = toLong(get_NANOS_PER_ONE());
      var q = nanosecondAdjustment.bb(other);
      if (nanosecondAdjustment.wc(other).c7(new Long(0, 0)) < 0 ? !q.cb(other).equals(nanosecondAdjustment) : false) {
        q = q.pc();
      }
      var tmp$ret$0 = q;
      var secs = safeAdd(epochSeconds, tmp$ret$0);
      // Inline function 'kotlin.mod' call
      var other_0 = toLong(get_NANOS_PER_ONE());
      var r = nanosecondAdjustment.nc(other_0);
      var nos = r.lc(other_0.uc(r.wc(other_0).uc(r.vc(r.b7())).sc(63))).mb();
      tmp = new Instant_0(Instant.ofEpochSecond(secs, nos));
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        var tmp_1;
        if (!isJodaDateTimeException(e)) {
          tmp_1 = !(e instanceof ArithmeticException);
        } else {
          tmp_1 = false;
        }
        if (tmp_1)
          throw e;
        tmp_0 = epochSeconds.c7(new Long(0, 0)) > 0 ? this.cme_1 : this.bme_1;
      } else {
        throw $p;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  var Companion_instance_7;
  function Companion_getInstance_7() {
    if (Companion_instance_7 == null)
      new Companion_6();
    return Companion_instance_7;
  }
  function Instant_0(value) {
    Companion_getInstance_7();
    this.lmf_1 = value;
  }
  protoOf(Instant_0).mmf = function () {
    return numberToLong(this.lmf_1.epochSecond());
  };
  protoOf(Instant_0).nmf = function () {
    return numberToInt(this.lmf_1.nano());
  };
  protoOf(Instant_0).emh = function () {
    // Inline function 'kotlin.Long.plus' call
    // Inline function 'kotlin.Long.times' call
    var this_0 = this.mmf();
    var other = get_MILLIS_PER_ONE();
    var this_1 = this_0.cb(toLong(other));
    var other_0 = this.nmf() / get_NANOS_PER_MILLI() | 0;
    return this_1.lc(toLong(other_0));
  };
  protoOf(Instant_0).hmh = function (seconds, nanos) {
    var newSeconds = numberToDouble(this.lmf_1.epochSecond()) + seconds;
    var newNanos = numberToDouble(this.lmf_1.nano()) + nanos;
    return Instant.ofEpochSecond(newSeconds, newNanos);
  };
  protoOf(Instant_0).omf = function (other) {
    return numberToInt(this.lmf_1.compareTo(other.lmf_1));
  };
  protoOf(Instant_0).d = function (other) {
    return this.omf(other instanceof Instant_0 ? other : THROW_CCE());
  };
  protoOf(Instant_0).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof Instant_0) {
        tmp_0 = equals(this.lmf_1, other.lmf_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(Instant_0).hashCode = function () {
    return numberToInt(this.lmf_1.hashCode());
  };
  protoOf(Instant_0).toString = function () {
    return this.lmf_1.toString();
  };
  function periodUntil(_this__u8e3s4, other, timeZone) {
    var tmp;
    try {
      var thisZdt = _this__u8e3s4.lmf_1.atZone(timeZone.xmg_1);
      var otherZdt = other.lmf_1.atZone(timeZone.xmg_1);
      var months = numberToDouble(thisZdt.until(otherZdt, ChronoUnit.MONTHS));
      thisZdt = thisZdt.plusMonths(months);
      var days = numberToDouble(thisZdt.until(otherZdt, ChronoUnit.DAYS));
      thisZdt = thisZdt.plusDays(days);
      var nanoseconds = numberToDouble(thisZdt.until(otherZdt, ChronoUnit.NANOS));
      tmp = buildDateTimePeriod(numberToInt(months), numberToInt(days), numberToLong(nanoseconds));
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        var tmp_1;
        if (isJodaDateTimeException(e)) {
          throw DateTimeArithmeticException_init_$Create$_0(e);
        } else {
          throw e;
        }
      } else {
        throw $p;
      }
    }
    return tmp;
  }
  function minus(_this__u8e3s4, value, unit, timeZone) {
    return value === IntCompanionObject_instance.MIN_VALUE ? plus(_this__u8e3s4, toLong(value).b7(), unit, timeZone) : plus_0(_this__u8e3s4, -value | 0, unit, timeZone);
  }
  function plus(_this__u8e3s4, value, unit, timeZone) {
    var tmp;
    try {
      var thisZdt = atZone(_this__u8e3s4, timeZone);
      // Inline function 'kotlin.let' call
      var tmp_0;
      if (unit instanceof TimeBased) {
        tmp_0 = checkZone(plus_1(_this__u8e3s4, value, unit).lmf_1, timeZone);
      } else {
        if (unit instanceof DayBased) {
          tmp_0 = thisZdt.plusDays(value.a7() * unit.xme_1).toInstant();
        } else {
          if (unit instanceof MonthBased) {
            tmp_0 = thisZdt.plusMonths(value.a7() * unit.yme_1).toInstant();
          } else {
            noWhenBranchMatchedException();
          }
        }
      }
      var this_0 = tmp_0;
      // Inline function 'kotlin.contracts.contract' call
      tmp = new Instant_0(this_0);
    } catch ($p) {
      var tmp_1;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw DateTimeArithmeticException_init_$Create$_0(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  }
  function plus_0(_this__u8e3s4, value, unit, timeZone) {
    var tmp;
    try {
      var thisZdt = atZone(_this__u8e3s4, timeZone);
      // Inline function 'kotlin.let' call
      var tmp_0;
      if (unit instanceof TimeBased) {
        tmp_0 = checkZone(plus_1(_this__u8e3s4, toLong(value), unit).lmf_1, timeZone);
      } else {
        if (unit instanceof DayBased) {
          tmp_0 = thisZdt.plusDays(value * unit.xme_1).toInstant();
        } else {
          if (unit instanceof MonthBased) {
            tmp_0 = thisZdt.plusMonths(value * unit.yme_1).toInstant();
          } else {
            noWhenBranchMatchedException();
          }
        }
      }
      var this_0 = tmp_0;
      // Inline function 'kotlin.contracts.contract' call
      tmp = new Instant_0(this_0);
    } catch ($p) {
      var tmp_1;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw DateTimeArithmeticException_init_$Create$_0(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  }
  function atZone(_this__u8e3s4, zone) {
    return _this__u8e3s4.lmf_1.atZone(zone.xmg_1);
  }
  function checkZone(_this__u8e3s4, zone) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlinx.datetime.checkZone.<anonymous>' call
    _this__u8e3s4.atZone(zone.xmg_1);
    return _this__u8e3s4;
  }
  function plus_1(_this__u8e3s4, value, unit) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.datetime.plus.<anonymous>' call
      var name_for_destructuring_parameter_0_fjsvno = multiplyAndDivide(value, unit.rme_1, toLong(get_NANOS_PER_ONE()));
      var d = name_for_destructuring_parameter_0_fjsvno.y6();
      var r = name_for_destructuring_parameter_0_fjsvno.z6();
      tmp = new Instant_0(_this__u8e3s4.hmh(d.a7(), r.mb()));
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (!isJodaDateTimeException(e)) {
          throw e;
        }
        tmp_0 = value.c7(new Long(0, 0)) > 0 ? Companion_getInstance_7().cme_1 : Companion_getInstance_7().bme_1;
      } else {
        throw $p;
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  function until_0(_this__u8e3s4, other, unit, timeZone) {
    var tmp;
    try {
      var thisZdt = atZone(_this__u8e3s4, timeZone);
      var otherZdt = atZone(other, timeZone);
      var tmp_0;
      if (unit instanceof TimeBased) {
        tmp_0 = until(_this__u8e3s4, other, unit);
      } else {
        if (unit instanceof DayBased) {
          tmp_0 = numberToLong(numberToDouble(thisZdt.until(otherZdt, ChronoUnit.DAYS)) / unit.xme_1);
        } else {
          if (unit instanceof MonthBased) {
            tmp_0 = numberToLong(numberToDouble(thisZdt.until(otherZdt, ChronoUnit.MONTHS)) / unit.yme_1);
          } else {
            noWhenBranchMatchedException();
          }
        }
      }
      tmp = tmp_0;
    } catch ($p) {
      var tmp_1;
      if ($p instanceof ArithmeticException) {
        var e = $p;
        var tmp_2;
        if (_this__u8e3s4.omf(other) < 0) {
          Companion_getInstance();
          tmp_2 = new Long(-1, 2147483647);
        } else {
          Companion_getInstance();
          tmp_2 = new Long(0, -2147483648);
        }
        tmp_1 = tmp_2;
      } else {
        if ($p instanceof Error) {
          var e_0 = $p;
          var tmp_3;
          if (isJodaDateTimeException(e_0)) {
            throw DateTimeArithmeticException_init_$Create$_0(e_0);
          } else {
            throw e_0;
          }
        } else {
          throw $p;
        }
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  function isJodaDateTimeException(_this__u8e3s4) {
    // Inline function 'kotlin.js.asDynamic' call
    return _this__u8e3s4.name == 'DateTimeException';
  }
  function isJodaDateTimeParseException(_this__u8e3s4) {
    // Inline function 'kotlin.js.asDynamic' call
    return _this__u8e3s4.name == 'DateTimeParseException';
  }
  function Companion_7() {
    Companion_instance_8 = this;
    this.img_1 = new LocalDate_0(LocalDate.MIN);
    this.jmg_1 = new LocalDate_0(LocalDate.MAX);
  }
  protoOf(Companion_7).o2r = function (isoString) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = LocalDate.parse(isoString);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new LocalDate_0(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeParseException(e))
          throw DateTimeFormatException_init_$Create$_1(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  var Companion_instance_8;
  function Companion_getInstance_8() {
    if (Companion_instance_8 == null)
      new Companion_7();
    return Companion_instance_8;
  }
  function LocalDate_0(value) {
    Companion_getInstance_8();
    this.imh_1 = value;
  }
  protoOf(LocalDate_0).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof LocalDate_0) {
        tmp_0 = equals(this.imh_1, other.imh_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(LocalDate_0).hashCode = function () {
    return numberToInt(this.imh_1.hashCode());
  };
  protoOf(LocalDate_0).toString = function () {
    return this.imh_1.toString();
  };
  protoOf(LocalDate_0).jmh = function (other) {
    return numberToInt(this.imh_1.compareTo(other.imh_1));
  };
  protoOf(LocalDate_0).d = function (other) {
    return this.jmh(other instanceof LocalDate_0 ? other : THROW_CCE());
  };
  protoOf(LocalDate_0).kmh = function () {
    return numberToInt(this.imh_1.toEpochDay());
  };
  function LocalDateTime_init_$Init$(date, time, $this) {
    LocalDateTime_0.call($this, LocalDateTime.of(date.imh_1, time.lmh_1));
    return $this;
  }
  function LocalDateTime_init_$Create$(date, time) {
    return LocalDateTime_init_$Init$(date, time, objectCreate(protoOf(LocalDateTime_0)));
  }
  function Companion_8() {
    Companion_instance_9 = this;
    this.mmg_1 = new LocalDateTime_0(LocalDateTime.MIN);
    this.nmg_1 = new LocalDateTime_0(LocalDateTime.MAX);
  }
  protoOf(Companion_8).o2r = function (isoString) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = LocalDateTime.parse(isoString);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new LocalDateTime_0(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeParseException(e))
          throw DateTimeFormatException_init_$Create$_1(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  var Companion_instance_9;
  function Companion_getInstance_9() {
    if (Companion_instance_9 == null)
      new Companion_8();
    return Companion_instance_9;
  }
  function LocalDateTime_0(value) {
    Companion_getInstance_9();
    this.mmh_1 = value;
  }
  protoOf(LocalDateTime_0).nmh = function () {
    return toDayOfWeek(this.mmh_1.dayOfWeek());
  };
  protoOf(LocalDateTime_0).omh = function () {
    return numberToInt(this.mmh_1.hour());
  };
  protoOf(LocalDateTime_0).pmh = function () {
    return numberToInt(this.mmh_1.minute());
  };
  protoOf(LocalDateTime_0).qmh = function () {
    return numberToInt(this.mmh_1.second());
  };
  protoOf(LocalDateTime_0).rmh = function () {
    return numberToInt(this.mmh_1.nano());
  };
  protoOf(LocalDateTime_0).smh = function () {
    return new LocalDate_0(this.mmh_1.toLocalDate());
  };
  protoOf(LocalDateTime_0).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof LocalDateTime_0) {
        tmp_0 = equals(this.mmh_1, other.mmh_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(LocalDateTime_0).hashCode = function () {
    return numberToInt(this.mmh_1.hashCode());
  };
  protoOf(LocalDateTime_0).toString = function () {
    return this.mmh_1.toString();
  };
  protoOf(LocalDateTime_0).tmh = function (other) {
    return numberToInt(this.mmh_1.compareTo(other.mmh_1));
  };
  protoOf(LocalDateTime_0).d = function (other) {
    return this.tmh(other instanceof LocalDateTime_0 ? other : THROW_CCE());
  };
  function LocalTime_init_$Init$(hour, minute, second, nanosecond, $this) {
    second = second === VOID ? 0 : second;
    nanosecond = nanosecond === VOID ? 0 : nanosecond;
    var tmp;
    try {
      tmp = LocalTime.of(hour, minute, second, nanosecond);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw IllegalArgumentException_init_$Create$_0(e);
        throw e;
      } else {
        throw $p;
      }
    }
    LocalTime_0.call($this, tmp);
    return $this;
  }
  function LocalTime_init_$Create$(hour, minute, second, nanosecond) {
    return LocalTime_init_$Init$(hour, minute, second, nanosecond, objectCreate(protoOf(LocalTime_0)));
  }
  function Companion_9() {
    Companion_instance_10 = this;
    this.qmg_1 = new LocalTime_0(LocalTime.MIN);
    this.rmg_1 = new LocalTime_0(LocalTime.MAX);
  }
  protoOf(Companion_9).o2r = function (isoString) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = LocalTime.parse(isoString);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new LocalTime_0(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeParseException(e))
          throw DateTimeFormatException_init_$Create$_1(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  protoOf(Companion_9).umh = function (millisecondOfDay) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = LocalTime.ofNanoOfDay(millisecondOfDay * 1000000.0);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new LocalTime_0(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        throw IllegalArgumentException_init_$Create$_0(e);
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  var Companion_instance_10;
  function Companion_getInstance_10() {
    if (Companion_instance_10 == null)
      new Companion_9();
    return Companion_instance_10;
  }
  function LocalTime_0(value) {
    Companion_getInstance_10();
    this.lmh_1 = value;
  }
  protoOf(LocalTime_0).omh = function () {
    return numberToInt(this.lmh_1.hour());
  };
  protoOf(LocalTime_0).pmh = function () {
    return numberToInt(this.lmh_1.minute());
  };
  protoOf(LocalTime_0).qmh = function () {
    return numberToInt(this.lmh_1.second());
  };
  protoOf(LocalTime_0).rmh = function () {
    return numberToInt(this.lmh_1.nano());
  };
  protoOf(LocalTime_0).vmh = function () {
    return numberToInt(numberToDouble(this.lmh_1.toNanoOfDay()) / get_NANOS_PER_MILLI());
  };
  protoOf(LocalTime_0).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof LocalTime_0) {
        tmp_0 = equals(this.lmh_1, other.lmh_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(LocalTime_0).hashCode = function () {
    return numberToInt(this.lmh_1.hashCode());
  };
  protoOf(LocalTime_0).toString = function () {
    return this.lmh_1.toString();
  };
  protoOf(LocalTime_0).wmh = function (other) {
    return numberToInt(this.lmh_1.compareTo(other.lmh_1));
  };
  protoOf(LocalTime_0).d = function (other) {
    return this.wmh(other instanceof LocalTime_0 ? other : THROW_CCE());
  };
  function toLocalDateTime(_this__u8e3s4, timeZone) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = LocalDateTime.ofInstant(_this__u8e3s4.lmf_1, timeZone.xmg_1);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new LocalDateTime_0(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw DateTimeArithmeticException_init_$Create$_0(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  }
  function ofZone($this, zoneId) {
    var tmp;
    if (zoneId instanceof ZoneOffset) {
      tmp = FixedOffsetTimeZone_init_$Create$(new UtcOffset(zoneId));
    } else {
      if (zoneId.rules().isFixedOffset()) {
        var tmp_0 = zoneId.normalized();
        tmp = new FixedOffsetTimeZone(new UtcOffset(tmp_0 instanceof ZoneOffset ? tmp_0 : THROW_CCE()), zoneId);
      } else {
        tmp = new TimeZone(zoneId);
      }
    }
    return tmp;
  }
  function Companion_10() {
    Companion_instance_11 = this;
    this.umg_1 = asTimeZone(new UtcOffset(ZoneOffset.UTC));
  }
  protoOf(Companion_10).xmh = function () {
    return ofZone(this, ZoneId.systemDefault());
  };
  protoOf(Companion_10).vmg = function (zoneId) {
    var tmp;
    try {
      tmp = ofZone(this, ZoneId.of(zoneId));
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw IllegalTimeZoneException_init_$Create$_0(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  protoOf(Companion_10).ymh = function () {
    return toSet(ZoneId.getAvailableZoneIds());
  };
  var Companion_instance_11;
  function Companion_getInstance_11() {
    if (Companion_instance_11 == null)
      new Companion_10();
    return Companion_instance_11;
  }
  function TimeZone(zoneId) {
    Companion_getInstance_11();
    this.xmg_1 = zoneId;
  }
  protoOf(TimeZone).ymg = function () {
    return this.xmg_1.id();
  };
  protoOf(TimeZone).equals = function (other) {
    var tmp;
    if (this === other) {
      tmp = true;
    } else {
      var tmp_0;
      if (other instanceof TimeZone) {
        tmp_0 = equals(this.xmg_1, other.xmg_1);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  };
  protoOf(TimeZone).hashCode = function () {
    return numberToInt(this.xmg_1.hashCode());
  };
  protoOf(TimeZone).toString = function () {
    return this.xmg_1.toString();
  };
  function toInstant(_this__u8e3s4, timeZone) {
    // Inline function 'kotlin.let' call
    var this_0 = _this__u8e3s4.mmh_1.atZone(timeZone.xmg_1).toInstant();
    // Inline function 'kotlin.contracts.contract' call
    return new Instant_0(this_0);
  }
  function FixedOffsetTimeZone_init_$Init$(offset, $this) {
    FixedOffsetTimeZone.call($this, offset, offset.zmh_1);
    return $this;
  }
  function FixedOffsetTimeZone_init_$Create$(offset) {
    return FixedOffsetTimeZone_init_$Init$(offset, objectCreate(protoOf(FixedOffsetTimeZone)));
  }
  function Companion_11() {
  }
  var Companion_instance_12;
  function Companion_getInstance_12() {
    return Companion_instance_12;
  }
  function FixedOffsetTimeZone(offset, zoneId) {
    TimeZone.call(this, zoneId);
    this.bmi_1 = offset;
  }
  function offsetAt(_this__u8e3s4, instant) {
    // Inline function 'kotlin.let' call
    var this_0 = _this__u8e3s4.xmg_1.rules().offsetOfInstant(instant.lmf_1);
    // Inline function 'kotlin.contracts.contract' call
    return new UtcOffset(this_0);
  }
  function Companion_12() {
    Companion_instance_13 = this;
    this.cmh_1 = new UtcOffset(ZoneOffset.UTC);
  }
  protoOf(Companion_12).o2r = function (offsetString) {
    var tmp;
    try {
      // Inline function 'kotlin.let' call
      var this_0 = ZoneOffset.of(offsetString);
      // Inline function 'kotlin.contracts.contract' call
      tmp = new UtcOffset(this_0);
    } catch ($p) {
      var tmp_0;
      if ($p instanceof Error) {
        var e = $p;
        if (isJodaDateTimeException(e))
          throw DateTimeFormatException_init_$Create$_1(e);
        throw e;
      } else {
        throw $p;
      }
    }
    return tmp;
  };
  var Companion_instance_13;
  function Companion_getInstance_13() {
    if (Companion_instance_13 == null)
      new Companion_12();
    return Companion_instance_13;
  }
  function UtcOffset(zoneOffset) {
    Companion_getInstance_13();
    this.zmh_1 = zoneOffset;
  }
  protoOf(UtcOffset).cmi = function () {
    return numberToInt(this.zmh_1.totalSeconds());
  };
  protoOf(UtcOffset).hashCode = function () {
    return numberToInt(this.zmh_1.hashCode());
  };
  protoOf(UtcOffset).equals = function (other) {
    var tmp;
    if (other instanceof UtcOffset) {
      tmp = equals(this.zmh_1, other.zmh_1);
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(UtcOffset).toString = function () {
    return this.zmh_1.toString();
  };
  function safeAdd(a, b) {
    var sum = a.lc(b);
    if (a.wc(sum).c7(new Long(0, 0)) < 0 ? a.wc(b).c7(new Long(0, 0)) >= 0 : false) {
      throw ArithmeticException_init_$Create$('Addition overflows a long: ' + a.toString() + ' + ' + b.toString());
    }
    return sum;
  }
  function safeMultiply(a, b) {
    if (b.equals(new Long(-1, -1))) {
      Companion_getInstance();
      if (a.equals(new Long(0, -2147483648))) {
        throw ArithmeticException_init_$Create$('Multiplication overflows a long: ' + a.toString() + ' * ' + b.toString());
      }
      return a.b7();
    } else if (b.equals(new Long(0, 0)))
      return new Long(0, 0);
    else if (b.equals(new Long(1, 0)))
      return a;
    var total = a.cb(b);
    if (!total.bb(b).equals(a)) {
      throw ArithmeticException_init_$Create$('Multiplication overflows a long: ' + a.toString() + ' * ' + b.toString());
    }
    return total;
  }
  function safeMultiply_0(a, b) {
    // Inline function 'kotlin.Long.times' call
    var result = toLong(a).cb(toLong(b));
    if (result.c7(toLong(IntCompanionObject_instance.MAX_VALUE)) > 0 ? true : result.c7(toLong(IntCompanionObject_instance.MIN_VALUE)) < 0)
      throw ArithmeticException_init_$Create$('Multiplication overflows Int range: ' + a + ' * ' + b + '.');
    return result.mb();
  }
  //region block: init
  System_instance = new System();
  Companion_instance_0 = new Companion();
  Companion_instance_1 = new Companion_0();
  Companion_instance_2 = new Companion_1();
  Companion_instance_3 = new Companion_2();
  Companion_instance_4 = new Companion_3();
  Companion_instance_5 = new Companion_4();
  DISTANT_PAST_SECONDS = new Long(-931914497, -750);
  DISTANT_FUTURE_SECONDS = new Long(1151527680, 720);
  NANOS_PER_MILLI = 1000000;
  MILLIS_PER_ONE = 1000;
  NANOS_PER_ONE = 1000000000;
  Companion_instance_12 = new Companion_11();
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = LocalDateTime_init_$Create$;
  _.$_$.b = LocalTime_init_$Create$;
  _.$_$.c = System_instance;
  _.$_$.d = Companion_getInstance_6;
  _.$_$.e = Companion_getInstance_7;
  _.$_$.f = Companion_getInstance_8;
  _.$_$.g = Companion_getInstance_9;
  _.$_$.h = Companion_getInstance_10;
  _.$_$.i = Companion_getInstance_11;
  _.$_$.j = values;
  _.$_$.k = daysUntil;
  _.$_$.l = minus;
  _.$_$.m = offsetAt;
  _.$_$.n = periodUntil;
  _.$_$.o = toInstant;
  _.$_$.p = toJSDate;
  _.$_$.q = toLocalDateTime;
  //endregion
  return _;
}(module.exports, require('@js-joda/core'), require('./kotlin-kotlin-stdlib.js'), require('./kotlinx-serialization-kotlinx-serialization-core.js')));

//# sourceMappingURL=Kotlin-DateTime-library-kotlinx-datetime-js-ir.js.map
