(function (_, kotlin_kotlin, kotlin_org_kodein_type_kaverit) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var protoOf = kotlin_kotlin.$_$.vf;
  var classMeta = kotlin_kotlin.$_$.ge;
  var setMetadataFor = kotlin_kotlin.$_$.wf;
  var VOID = kotlin_kotlin.$_$.g;
  var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.a1;
  var first = kotlin_kotlin.$_$.p9;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.q;
  var filterNotNull = kotlin_kotlin.$_$.k9;
  var sorted = kotlin_kotlin.$_$.ac;
  var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.n1;
  var Unit_getInstance = kotlin_kotlin.$_$.g6;
  var repeat = kotlin_kotlin.$_$.kj;
  var ensureNotNull = kotlin_kotlin.$_$.an;
  var KProperty1 = kotlin_kotlin.$_$.fh;
  var getPropertyCallableRef = kotlin_kotlin.$_$.se;
  var objectMeta = kotlin_kotlin.$_$.uf;
  var emptySet = kotlin_kotlin.$_$.f9;
  var collectionSizeOrDefault = kotlin_kotlin.$_$.z7;
  var mapCapacity = kotlin_kotlin.$_$.sa;
  var coerceAtLeast = kotlin_kotlin.$_$.ng;
  var LinkedHashMap_init_$Create$_0 = kotlin_kotlin.$_$.z;
  var to = kotlin_kotlin.$_$.xn;
  var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.p;
  var addAll = kotlin_kotlin.$_$.m7;
  var minus = kotlin_kotlin.$_$.wa;
  var toSet = kotlin_kotlin.$_$.qc;
  var minus_0 = kotlin_kotlin.$_$.va;
  var interfaceMeta = kotlin_kotlin.$_$.we;
  var toString = kotlin_kotlin.$_$.wn;
  var Companion_getInstance = kotlin_org_kodein_type_kaverit.$_$.a;
  var equals = kotlin_kotlin.$_$.ke;
  var objectCreate = kotlin_kotlin.$_$.tf;
  var RuntimeException = kotlin_kotlin.$_$.em;
  var RuntimeException_init_$Init$ = kotlin_kotlin.$_$.x2;
  var captureStack = kotlin_kotlin.$_$.ae;
  var hashCode = kotlin_kotlin.$_$.ue;
  var THROW_CCE = kotlin_kotlin.$_$.fm;
  var Annotation = kotlin_kotlin.$_$.il;
  var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.l2;
  var charSequenceLength = kotlin_kotlin.$_$.ee;
  var getBooleanHashCode = kotlin_kotlin.$_$.oe;
  var getStringHashCode = kotlin_kotlin.$_$.te;
  var lazy = kotlin_kotlin.$_$.in;
  var TypeToken = kotlin_org_kodein_type_kaverit.$_$.b;
  var isInterface = kotlin_kotlin.$_$.ff;
  var joinToString = kotlin_kotlin.$_$.ca;
  var erasedOf = kotlin_org_kodein_type_kaverit.$_$.d;
  var Pair = kotlin_kotlin.$_$.cm;
  var toList = kotlin_kotlin.$_$.jc;
  var asSequence = kotlin_kotlin.$_$.t7;
  var map = kotlin_kotlin.$_$.sh;
  var toSet_0 = kotlin_kotlin.$_$.ai;
  var LinkedHashSet_init_$Create$ = kotlin_kotlin.$_$.d1;
  var HashSet_init_$Create$ = kotlin_kotlin.$_$.x;
  var HashMap_init_$Create$ = kotlin_kotlin.$_$.t;
  var Set = kotlin_kotlin.$_$.k7;
  var getKClass = kotlin_kotlin.$_$.e;
  var erasedComp = kotlin_org_kodein_type_kaverit.$_$.c;
  var MutableSet = kotlin_kotlin.$_$.i7;
  var THROW_IAE = kotlin_kotlin.$_$.gm;
  var enumEntries = kotlin_kotlin.$_$.td;
  var Enum = kotlin_kotlin.$_$.sl;
  var Map = kotlin_kotlin.$_$.b7;
  var listOf = kotlin_kotlin.$_$.qa;
  var plus = kotlin_kotlin.$_$.gb;
  var emptyList = kotlin_kotlin.$_$.d9;
  var plus_0 = kotlin_kotlin.$_$.hb;
  var checkIndexOverflow = kotlin_kotlin.$_$.x7;
  var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.m3;
  var KProperty0 = kotlin_kotlin.$_$.eh;
  var asSequence_0 = kotlin_kotlin.$_$.s7;
  var filter = kotlin_kotlin.$_$.mh;
  var flatMap = kotlin_kotlin.$_$.oh;
  var mapNotNull = kotlin_kotlin.$_$.rh;
  var toList_0 = kotlin_kotlin.$_$.zh;
  var Triple = kotlin_kotlin.$_$.im;
  var ArrayList_init_$Create$_1 = kotlin_kotlin.$_$.r;
  var HashMap_init_$Create$_0 = kotlin_kotlin.$_$.u;
  var Collection = kotlin_kotlin.$_$.p6;
  var getOrNull = kotlin_kotlin.$_$.u9;
  //endregion
  //region block: pre-declaration
  setMetadataFor(DIDefining, 'DIDefining', classMeta);
  setMetadataFor(DIDefinition, 'DIDefinition', classMeta, DIDefining);
  setMetadataFor(Sentence, 'Sentence', classMeta);
  setMetadataFor(Copy, 'Copy', interfaceMeta);
  setMetadataFor(All, 'All', objectMeta, VOID, [Copy]);
  setMetadataFor(None, 'None', objectMeta, VOID, [Copy]);
  setMetadataFor(NonCached, 'NonCached', objectMeta, VOID, [Copy]);
  setMetadataFor(Companion, 'Companion', objectMeta);
  setMetadataFor(SearchDSL, 'SearchDSL', classMeta, VOID, VOID, SearchDSL);
  setMetadataFor(BaseDSL, 'BaseDSL', classMeta, SearchDSL, [SearchDSL, Copy]);
  setMetadataFor(DSL, 'DSL', classMeta, BaseDSL, VOID, DSL);
  setMetadataFor(AllButDSL, 'AllButDSL', classMeta, BaseDSL, VOID, AllButDSL);
  setMetadataFor(SearchSpecs, 'SearchSpecs', classMeta, VOID, VOID, SearchSpecs);
  setMetadataFor(CopySpecs, 'CopySpecs', classMeta, SearchSpecs);
  setMetadataFor(BindBuilder, 'BindBuilder', interfaceMeta);
  setMetadataFor(ImplWithContext, 'ImplWithContext', classMeta, VOID, [BindBuilder]);
  setMetadataFor(WithScope, 'WithScope', interfaceMeta, VOID, [BindBuilder]);
  setMetadataFor(ImplWithScope, 'ImplWithScope', classMeta, VOID, [WithScope]);
  setMetadataFor(TypeBinder, 'TypeBinder', interfaceMeta);
  setMetadataFor(DelegateBinder, 'DelegateBinder', classMeta);
  setMetadataFor(DirectBinder, 'DirectBinder', interfaceMeta);
  setMetadataFor(ConstantBinder, 'ConstantBinder', interfaceMeta);
  function bind$default(tag, overrides, createBinding, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.bind_szh7k5_k$(tag, overrides, createBinding);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.bind_szh7k5_k$.call(this, tag, overrides, createBinding);
    }
    return tmp;
  }
  setMetadataFor(SetBinder, 'SetBinder', interfaceMeta);
  function bind$default_0(tag, overrides, createBinding, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.bind_3isvw3_k$(tag, overrides, createBinding);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.bind_3isvw3_k$.call(this, tag, overrides, createBinding);
    }
    return tmp;
  }
  setMetadataFor(ArgSetBinder, 'ArgSetBinder', interfaceMeta);
  setMetadataFor(DependencyLoopException, 'DependencyLoopException', classMeta, RuntimeException);
  setMetadataFor(NotFoundException, 'NotFoundException', classMeta, RuntimeException);
  setMetadataFor(NoResultException, 'NoResultException', classMeta, RuntimeException);
  setMetadataFor(OverridingException, 'OverridingException', classMeta, RuntimeException);
  setMetadataFor(Key, 'Key', classMeta);
  setMetadataFor(DIDsl, 'DIDsl', classMeta, VOID, [Annotation]);
  function Bind$default(tag, overrides, binding, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.Bind_m6el0l_k$(tag, overrides, binding);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.Bind_m6el0l_k$.call(this, tag, overrides, binding);
    }
    return tmp;
  }
  function BindInSet$default(tag, overrides, type, creator, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.BindInSet_5q14wj_k$(tag, overrides, type, creator);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.BindInSet_5q14wj_k$.call(this, tag, overrides, type, creator);
    }
    return tmp;
  }
  function InBindSet$default(tag, overrides, type, creator, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.InBindSet_xdzbgz_k$(tag, overrides, type, creator);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.InBindSet_xdzbgz_k$.call(this, tag, overrides, type, creator);
    }
    return tmp;
  }
  function BindInArgSet$default(tag, overrides, argType, type, creator, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.BindInArgSet_bfoms3_k$(tag, overrides, argType, type, creator);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.BindInArgSet_bfoms3_k$.call(this, tag, overrides, argType, type, creator);
    }
    return tmp;
  }
  function InBindArgSet$default(tag, overrides, argType, type, creator, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.InBindArgSet_oh9kvh_k$(tag, overrides, argType, type, creator);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.InBindArgSet_oh9kvh_k$.call(this, tag, overrides, argType, type, creator);
    }
    return tmp;
  }
  function BindSet$default(tag, overrides, binding, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.BindSet_4lrvr7_k$(tag, overrides, binding);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.BindSet_4lrvr7_k$.call(this, tag, overrides, binding);
    }
    return tmp;
  }
  function AddBindInSet$default(tag, overrides, binding, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.AddBindInSet_uyqzgd_k$(tag, overrides, binding);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.AddBindInSet_uyqzgd_k$.call(this, tag, overrides, binding);
    }
    return tmp;
  }
  function Bind$default_0(type, tag, overrides, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    return $super === VOID ? this.Bind_k87ebn_k$(type, tag, overrides) : $super.Bind_k87ebn_k$.call(this, type, tag, overrides);
  }
  function Bind$default_1(tag, overrides, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    return $super === VOID ? this.Bind_r59sum_k$(tag, overrides) : $super.Bind_r59sum_k$.call(this, tag, overrides);
  }
  function constant$default(tag, overrides, $super) {
    overrides = overrides === VOID ? null : overrides;
    return $super === VOID ? this.constant_vezuiy_k$(tag, overrides) : $super.constant_vezuiy_k$.call(this, tag, overrides);
  }
  function Delegate$default(type, tag, overrides, $super) {
    tag = tag === VOID ? null : tag;
    overrides = overrides === VOID ? null : overrides;
    return $super === VOID ? this.Delegate_y16ygr_k$(type, tag, overrides) : $super.Delegate_y16ygr_k$.call(this, type, tag, overrides);
  }
  function import$default(module_0, allowOverride, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    var tmp;
    if ($super === VOID) {
      this.import_3gb1gd_k$(module_0, allowOverride);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.import_3gb1gd_k$.call(this, module_0, allowOverride);
    }
    return tmp;
  }
  function importAll$default(modules, allowOverride, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    var tmp;
    if ($super === VOID) {
      this.importAll_ybdkza_k$(modules, allowOverride);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.importAll_ybdkza_k$.call(this, modules, allowOverride);
    }
    return tmp;
  }
  function importAll$default_0(modules, allowOverride, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    var tmp;
    if ($super === VOID) {
      this.importAll_830u8g_k$(modules, allowOverride);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.importAll_830u8g_k$.call(this, modules, allowOverride);
    }
    return tmp;
  }
  function importOnce$default(module_0, allowOverride, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    var tmp;
    if ($super === VOID) {
      this.importOnce_ede4oy_k$(module_0, allowOverride);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.importOnce_ede4oy_k$.call(this, module_0, allowOverride);
    }
    return tmp;
  }
  setMetadataFor(Builder, 'Builder', interfaceMeta, VOID, [BindBuilder, WithScope]);
  function extend$default(di, allowOverride, copy, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    copy = copy === VOID ? NonCached_getInstance() : copy;
    var tmp;
    if ($super === VOID) {
      this.extend_5e6fyj_k$(di, allowOverride, copy);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.extend_5e6fyj_k$.call(this, di, allowOverride, copy);
    }
    return tmp;
  }
  function extend$default_0(directDI, allowOverride, copy, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    copy = copy === VOID ? NonCached_getInstance() : copy;
    var tmp;
    if ($super === VOID) {
      this.extend_h72go4_k$(directDI, allowOverride, copy);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.extend_h72go4_k$.call(this, directDI, allowOverride, copy);
    }
    return tmp;
  }
  setMetadataFor(MainBuilder, 'MainBuilder', interfaceMeta, VOID, [Builder]);
  setMetadataFor(Module, 'Module', classMeta);
  setMetadataFor(Companion_0, 'Companion', objectMeta);
  function get_diContext() {
    return get_AnyDIContext();
  }
  function get_diTrigger() {
    return null;
  }
  setMetadataFor(DIAware, 'DIAware', interfaceMeta);
  function get_di() {
    return this;
  }
  setMetadataFor(DI, 'DI', interfaceMeta, VOID, [DIAware]);
  setMetadataFor(DIContext, 'DIContext', interfaceMeta);
  setMetadataFor(Value, 'Value', classMeta, VOID, [DIContext]);
  setMetadataFor(Lazy, 'Lazy', classMeta, VOID, [DIContext]);
  setMetadataFor(Companion_1, 'Companion', objectMeta);
  setMetadataFor(DIWrapper, 'DIWrapper', classMeta, VOID, [DI]);
  setMetadataFor(Contexes, 'Contexes', objectMeta);
  function bind$default_1(key, binding, fromModule, overrides, $super) {
    fromModule = fromModule === VOID ? null : fromModule;
    overrides = overrides === VOID ? null : overrides;
    var tmp;
    if ($super === VOID) {
      this.bind_3li2fm_k$(key, binding, fromModule, overrides);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.bind_3li2fm_k$.call(this, key, binding, fromModule, overrides);
    }
    return tmp;
  }
  function extend$default_1(container, allowOverride, copy, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    copy = copy === VOID ? emptySet() : copy;
    var tmp;
    if ($super === VOID) {
      this.extend_nvy7ev_k$(container, allowOverride, copy);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.extend_nvy7ev_k$.call(this, container, allowOverride, copy);
    }
    return tmp;
  }
  function subBuilder$default(allowOverride, silentOverride, $super) {
    allowOverride = allowOverride === VOID ? false : allowOverride;
    silentOverride = silentOverride === VOID ? false : silentOverride;
    return $super === VOID ? this.subBuilder_75ze1x_k$(allowOverride, silentOverride) : $super.subBuilder_75ze1x_k$.call(this, allowOverride, silentOverride);
  }
  setMetadataFor(Builder_0, 'Builder', interfaceMeta);
  function factory$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.factory_isjdsh_k$(key, context, overrideLevel) : $super.factory_isjdsh_k$.call(this, key, context, overrideLevel);
  }
  function factoryOrNull$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.factoryOrNull_jav97_k$(key, context, overrideLevel) : $super.factoryOrNull_jav97_k$.call(this, key, context, overrideLevel);
  }
  function allFactories$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.allFactories_3u4qlu_k$(key, context, overrideLevel) : $super.allFactories_3u4qlu_k$.call(this, key, context, overrideLevel);
  }
  function provider(key, context, overrideLevel) {
    // Inline function 'org.kodein.di.toProvider' call
    var this_0 = this.factory$default_e70lnm_k$(key, context);
    return DIContainer$provider$lambda(this_0);
  }
  function provider$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.provider_kpadaj_k$(key, context, overrideLevel) : provider(key, context, overrideLevel);
  }
  function providerOrNull(key, context, overrideLevel) {
    var tmp0_safe_receiver = this.factoryOrNull$default_r0w9fs_k$(key, context);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'org.kodein.di.toProvider' call
      tmp = DIContainer$providerOrNull$lambda(tmp0_safe_receiver);
    }
    return tmp;
  }
  function providerOrNull$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.providerOrNull_mcoi45_k$(key, context, overrideLevel) : providerOrNull(key, context, overrideLevel);
  }
  function allProviders(key, context, overrideLevel) {
    // Inline function 'kotlin.collections.map' call
    var this_0 = this.allFactories$default_ydeenv_k$(key, context);
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.DIContainer.allProviders.<anonymous>' call
      // Inline function 'org.kodein.di.toProvider' call
      var tmp$ret$1 = DIContainer$allProviders$lambda(item);
      destination.add_utx5q5_k$(tmp$ret$1);
    }
    return destination;
  }
  function allProviders$default(key, context, overrideLevel, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    return $super === VOID ? this.allProviders_e4hdlx_k$(key, context, overrideLevel) : allProviders(key, context, overrideLevel);
  }
  setMetadataFor(DIContainer, 'DIContainer', interfaceMeta);
  function find$default(key, overrideLevel, all, $super) {
    overrideLevel = overrideLevel === VOID ? 0 : overrideLevel;
    all = all === VOID ? false : all;
    return $super === VOID ? this.find_nbwl90_k$(key, overrideLevel, all) : $super.find_nbwl90_k$.call(this, key, overrideLevel, all);
  }
  setMetadataFor(DITree, 'DITree', interfaceMeta);
  setMetadataFor(DirectDIAware, 'DirectDIAware', interfaceMeta);
  function get_di_0() {
    return this.get_lazy_wopozh_k$();
  }
  function Factory$default(argType, type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.Factory_54q17q_k$(argType, type, tag) : $super.Factory_54q17q_k$.call(this, argType, type, tag);
  }
  function FactoryOrNull$default(argType, type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.FactoryOrNull_f8e6ls_k$(argType, type, tag) : $super.FactoryOrNull_f8e6ls_k$.call(this, argType, type, tag);
  }
  function Provider$default(type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.Provider_ehs6tv_k$(type, tag) : $super.Provider_ehs6tv_k$.call(this, type, tag);
  }
  function Provider$default_0(argType, type, tag, arg, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.Provider_lm93ss_k$(argType, type, tag, arg) : $super.Provider_lm93ss_k$.call(this, argType, type, tag, arg);
  }
  function ProviderOrNull$default(type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.ProviderOrNull_830ut9_k$(type, tag) : $super.ProviderOrNull_830ut9_k$.call(this, type, tag);
  }
  function ProviderOrNull$default_0(argType, type, tag, arg, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.ProviderOrNull_33f8by_k$(argType, type, tag, arg) : $super.ProviderOrNull_33f8by_k$.call(this, argType, type, tag, arg);
  }
  function Instance$default(type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.Instance_vwdrk9_k$(type, tag) : $super.Instance_vwdrk9_k$.call(this, type, tag);
  }
  function Instance$default_0(argType, type, tag, arg, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.Instance_spguml_k$(argType, type, tag, arg) : $super.Instance_spguml_k$.call(this, argType, type, tag, arg);
  }
  function InstanceOrNull$default(type, tag, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.InstanceOrNull_akutzz_k$(type, tag) : $super.InstanceOrNull_akutzz_k$.call(this, type, tag);
  }
  function InstanceOrNull$default_0(argType, type, tag, arg, $super) {
    tag = tag === VOID ? null : tag;
    return $super === VOID ? this.InstanceOrNull_5l1mxv_k$(argType, type, tag, arg) : $super.InstanceOrNull_5l1mxv_k$.call(this, argType, type, tag, arg);
  }
  setMetadataFor(DirectDIBase, 'DirectDIBase', interfaceMeta, VOID, [DirectDIAware]);
  setMetadataFor(NoDefinedTag, 'NoDefinedTag', objectMeta);
  setMetadataFor(Spec, 'Spec', interfaceMeta);
  setMetadataFor(SearchDSL$Spec$Companion$invoke$1, VOID, classMeta, VOID, [Spec]);
  setMetadataFor(Companion_2, 'Companion', objectMeta);
  setMetadataFor(Binding, 'Binding', classMeta, VOID, [Spec]);
  setMetadataFor(DirectDI, 'DirectDI', interfaceMeta, VOID, [DirectDIBase]);
  setMetadataFor(WithContext, 'WithContext', interfaceMeta);
  setMetadataFor(BindingDI, 'BindingDI', interfaceMeta, VOID, [DirectDI, WithContext]);
  setMetadataFor(NoArgBindingDI, 'NoArgBindingDI', interfaceMeta, VOID, [DirectDI, WithContext]);
  setMetadataFor(ErasedContext, 'ErasedContext', objectMeta, VOID, [DIContext]);
  setMetadataFor(NoArgBindingDIWrap, 'NoArgBindingDIWrap', classMeta, VOID, [NoArgBindingDI, DirectDI, WithContext]);
  setMetadataFor(Copier, 'Copier', interfaceMeta);
  setMetadataFor(DIBinding$Copier$Companion$invoke$1, VOID, classMeta, VOID, [Copier]);
  setMetadataFor(Companion_3, 'Companion', objectMeta);
  setMetadataFor(Binding_0, 'Binding', interfaceMeta);
  function factoryFullName() {
    return this.factoryName_1a29it_k$();
  }
  function get_scope() {
    return null;
  }
  function get_description() {
    var arg = !equals(this.get_argType_b1zqd5_k$(), Companion_getInstance().get_Unit_wob9il_k$()) ? this.get_argType_b1zqd5_k$().simpleDispString_fi18pn_k$() + ' -> ' : '';
    var tmp;
    var tmp_0 = this.get_scope_iyfcq3_k$();
    if (tmp_0 instanceof NoScope) {
      tmp = null;
    } else {
      tmp = this.get_scope_iyfcq3_k$();
    }
    var scope = tmp;
    var tmp_1;
    if (scope == null) {
      tmp_1 = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.DIBinding.<get-description>.<anonymous>' call
      tmp_1 = 'scoped(' + erasedOf(scope).simpleDispString_fi18pn_k$() + ').';
    }
    var tmp1_elvis_lhs = tmp_1;
    var context = tmp1_elvis_lhs == null ? !equals(this.get_contextType_c6z128_k$(), Companion_getInstance().get_Any_18jx5p_k$()) ? 'contexted<' + this.get_contextType_c6z128_k$().simpleDispString_fi18pn_k$() + '>().' : '' : tmp1_elvis_lhs;
    return context + this.factoryName_1a29it_k$() + ' { ' + arg + this.get_createdType_5sj3yx_k$().simpleDispString_fi18pn_k$() + ' }';
  }
  function get_fullDescription() {
    var arg = !equals(this.get_argType_b1zqd5_k$(), Companion_getInstance().get_Unit_wob9il_k$()) ? this.get_argType_b1zqd5_k$().qualifiedDispString_lx0v0v_k$() + ' -> ' : '';
    var tmp;
    var tmp_0 = this.get_scope_iyfcq3_k$();
    if (tmp_0 instanceof NoScope) {
      tmp = null;
    } else {
      tmp = this.get_scope_iyfcq3_k$();
    }
    var scope = tmp;
    var tmp_1;
    if (scope == null) {
      tmp_1 = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.DIBinding.<get-fullDescription>.<anonymous>' call
      tmp_1 = 'scoped(' + erasedOf(scope).qualifiedDispString_lx0v0v_k$() + ').';
    }
    var tmp1_elvis_lhs = tmp_1;
    var context = tmp1_elvis_lhs == null ? !equals(this.get_contextType_c6z128_k$(), Companion_getInstance().get_Any_18jx5p_k$()) ? 'contexted<' + this.get_contextType_c6z128_k$().qualifiedDispString_lx0v0v_k$() + '>().' : '' : tmp1_elvis_lhs;
    return context + this.factoryFullName_a9f76k_k$() + ' { ' + arg + this.get_createdType_5sj3yx_k$().qualifiedDispString_lx0v0v_k$() + ' }';
  }
  function get_copier() {
    return null;
  }
  function get_supportSubTypes() {
    return false;
  }
  setMetadataFor(DIBinding, 'DIBinding', interfaceMeta, VOID, [Binding_0]);
  function get_argType() {
    return Companion_getInstance().get_Unit_wob9il_k$();
  }
  setMetadataFor(NoArgDIBinding, 'NoArgDIBinding', interfaceMeta, VOID, [DIBinding]);
  setMetadataFor(ExternalSource, 'ExternalSource', interfaceMeta);
  setMetadataFor(_no_name_provided__qut3iv, VOID, classMeta, VOID, [ExternalSource]);
  setMetadataFor(Companion_4, 'Companion', objectMeta);
  setMetadataFor(Reference, 'Reference', classMeta);
  setMetadataFor(Scope, 'Scope', interfaceMeta);
  setMetadataFor(ContextTranslator, 'ContextTranslator', interfaceMeta);
  setMetadataFor(ScopeCloseable, 'ScopeCloseable', interfaceMeta);
  setMetadataFor(ScopeRegistry, 'ScopeRegistry', classMeta, VOID, [ScopeCloseable]);
  setMetadataFor(NoScope, 'NoScope', classMeta, VOID, [Scope], NoScope);
  setMetadataFor(StandardScopeRegistry, 'StandardScopeRegistry', classMeta, ScopeRegistry, VOID, StandardScopeRegistry);
  setMetadataFor(CompositeContextTranslator, 'CompositeContextTranslator', classMeta, VOID, [ContextTranslator]);
  setMetadataFor(BaseMultiBinding, 'BaseMultiBinding', classMeta, VOID, [DIBinding]);
  setMetadataFor(SetBinding, 'SetBinding', classMeta, BaseMultiBinding, [NoArgDIBinding, BaseMultiBinding]);
  setMetadataFor(ArgSetBinding, 'ArgSetBinding', classMeta, BaseMultiBinding);
  setMetadataFor(SetBindingDI, 'SetBindingDI', classMeta, VOID, [BindingDI]);
  setMetadataFor(Provider, 'Provider', classMeta, VOID, [NoArgDIBinding]);
  setMetadataFor(InstanceBinding, 'InstanceBinding', classMeta, VOID, [NoArgDIBinding]);
  setMetadataFor(DIBuilderImpl, 'DIBuilderImpl', classMeta, VOID, [Builder]);
  setMetadataFor(DIMainBuilderImpl, 'DIMainBuilderImpl', classMeta, DIBuilderImpl, [DIBuilderImpl, MainBuilder]);
  setMetadataFor(TypeBinder_0, 'TypeBinder', classMeta, VOID, [TypeBinder]);
  setMetadataFor(DelegateBinder_0, 'DelegateBinder', classMeta, DelegateBinder);
  setMetadataFor(DirectBinder_0, 'DirectBinder', classMeta, VOID, [DirectBinder]);
  setMetadataFor(ConstantBinder_0, 'ConstantBinder', classMeta, VOID, [ConstantBinder]);
  setMetadataFor(SetBinder_0, 'SetBinder', classMeta, VOID, [SetBinder]);
  setMetadataFor(ArgSetBinder_0, 'ArgSetBinder', classMeta, VOID, [ArgSetBinder]);
  setMetadataFor(OverrideMode, 'OverrideMode', classMeta, Enum);
  setMetadataFor(DIContainerBuilderImpl$OverrideMode$ALLOW_SILENT, 'ALLOW_SILENT', classMeta, OverrideMode);
  setMetadataFor(DIContainerBuilderImpl$OverrideMode$ALLOW_EXPLICIT, 'ALLOW_EXPLICIT', classMeta, OverrideMode);
  setMetadataFor(DIContainerBuilderImpl$OverrideMode$FORBID, 'FORBID', classMeta, OverrideMode);
  setMetadataFor(Companion_5, 'Companion', objectMeta);
  setMetadataFor(DIContainerBuilderImpl, 'DIContainerBuilderImpl', classMeta, VOID, [Builder_0]);
  setMetadataFor(Node, 'Node', classMeta);
  setMetadataFor(DIContainerImpl, 'DIContainerImpl', classMeta, VOID, [DIContainer]);
  setMetadataFor(Companion_6, 'Companion', objectMeta);
  setMetadataFor(DIImpl, 'DIImpl', classMeta, VOID, [DI]);
  setMetadataFor(BindingDIImpl, 'BindingDIImpl', classMeta, VOID, [DirectDI, BindingDI]);
  setMetadataFor(DITreeImpl, 'DITreeImpl', classMeta, VOID, [DITree]);
  setMetadataFor(TypeChecker, 'TypeChecker', classMeta);
  setMetadataFor(Down, 'Down', classMeta, TypeChecker);
  setMetadataFor(Up, 'Up', classMeta, TypeChecker);
  setMetadataFor(DirectDIBaseImpl, 'DirectDIBaseImpl', classMeta, VOID, [DirectDI]);
  setMetadataFor(LazyDI, 'LazyDI', classMeta, VOID, [DI]);
  setMetadataFor(LazyDelegate, 'LazyDelegate', interfaceMeta);
  setMetadataFor(DITrigger, 'DITrigger', classMeta, VOID, VOID, DITrigger);
  setMetadataFor(DIProperty, 'DIProperty', classMeta, VOID, [LazyDelegate]);
  setMetadataFor(DirectDIImpl, 'DirectDIImpl', classMeta, DirectDIBaseImpl, [DirectDIBaseImpl, DirectDI]);
  //endregion
  function DIDefinition(binding, fromModule, tree) {
    DIDefining.call(this, binding, fromModule);
    this.tree_1 = tree;
  }
  protoOf(DIDefinition).get_tree_wov4yv_k$ = function () {
    return this.tree_1;
  };
  function description(_this__u8e3s4, withOverrides, ident) {
    withOverrides = withOverrides === VOID ? false : withOverrides;
    ident = ident === VOID ? 8 : ident;
    return descriptionImpl(_this__u8e3s4, withOverrides, ident, bindDescription$factory(), description$factory());
  }
  function DIDefining(binding, fromModule) {
    this.binding_1 = binding;
    this.fromModule_1 = fromModule;
  }
  protoOf(DIDefining).get_binding_ivlno_k$ = function () {
    return this.binding_1;
  };
  protoOf(DIDefining).get_fromModule_clazi7_k$ = function () {
    return this.fromModule_1;
  };
  function descriptionImpl(_this__u8e3s4, withOverrides, ident, keyBindDisp, bindingDisp) {
    // Inline function 'kotlin.collections.groupBy' call
    // Inline function 'kotlin.collections.groupByTo' call
    var this_0 = _this__u8e3s4.get_entries_p20ztl_k$();
    var destination = LinkedHashMap_init_$Create$();
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.descriptionImpl.<anonymous>' call
      var key = first(element.get_value_j01efc_k$()).fromModule_1;
      // Inline function 'kotlin.collections.getOrPut' call
      var value = destination.get_wei43m_k$(key);
      var tmp;
      if (value == null) {
        // Inline function 'kotlin.collections.groupByTo.<anonymous>' call
        var answer = ArrayList_init_$Create$();
        destination.put_4fpzoq_k$(key, answer);
        tmp = answer;
      } else {
        tmp = value;
      }
      var list = tmp;
      list.add_utx5q5_k$(element);
    }
    var byModule = destination;
    var modules = sorted(filterNotNull(byModule.get_keys_wop4xp_k$()));
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlin.apply' call
    var this_1 = StringBuilder_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.descriptionImpl.<anonymous>' call
    var tmp0_safe_receiver = byModule.get_wei43m_k$(null);
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      descriptionImpl$appendBindings(this_1, keyBindDisp, bindingDisp, withOverrides, ident, tmp0_safe_receiver);
    }
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator_0 = modules.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var element_0 = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'org.kodein.di.descriptionImpl.<anonymous>.<anonymous>' call
      this_1.append_22ad7x_k$(repeat(' ', ident) + 'module ' + element_0 + ' {\n');
      descriptionImpl$appendBindings(this_1, keyBindDisp, bindingDisp, withOverrides, ident + 4 | 0, ensureNotNull(byModule.get_wei43m_k$(element_0)));
      this_1.append_22ad7x_k$(repeat(' ', ident) + '}\n');
    }
    return this_1.toString();
  }
  function fullDescription(_this__u8e3s4, withOverrides, ident) {
    withOverrides = withOverrides === VOID ? false : withOverrides;
    ident = ident === VOID ? 8 : ident;
    return descriptionImpl(_this__u8e3s4, withOverrides, ident, bindFullDescription$factory(), fullDescription$factory());
  }
  function descriptionImpl$appendBindings(_this__u8e3s4, $keyBindDisp, $bindingDisp, $withOverrides, ident, entries) {
    var tmp0_iterator = entries.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.descriptionImpl.appendBindings.<anonymous>' call
      var keyDescription = $keyBindDisp(element.get_key_18j28a_k$());
      _this__u8e3s4.append_22ad7x_k$(repeat(' ', ident) + keyDescription + ' { ' + $bindingDisp(first(element.get_value_j01efc_k$()).binding_1) + ' }');
      if ($withOverrides) {
        var subIdent = keyDescription.length - 4 | 0;
        // Inline function 'kotlin.collections.forEach' call
        var tmp0_iterator_0 = element.get_value_j01efc_k$().subList_xle3r2_k$(1, element.get_value_j01efc_k$().get_size_woubt6_k$()).iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var element_0 = tmp0_iterator_0.next_20eer_k$();
          // Inline function 'org.kodein.di.descriptionImpl.appendBindings.<anonymous>.<anonymous>' call
          _this__u8e3s4.append_22ad7x_k$(repeat(' ', subIdent) + 'overrides ' + $bindingDisp(element_0.binding_1));
        }
      }
      _this__u8e3s4.append_22ad7x_k$('\n');
    }
    return Unit_getInstance();
  }
  function bindDescription$factory() {
    return getPropertyCallableRef('bindDescription', 1, KProperty1, function (receiver) {
      return receiver.get_bindDescription_5en1cm_k$();
    }, null);
  }
  function description$factory() {
    return getPropertyCallableRef('description', 1, KProperty1, function (receiver) {
      return receiver.get_description_emjre5_k$();
    }, null);
  }
  function bindFullDescription$factory() {
    return getPropertyCallableRef('bindFullDescription', 1, KProperty1, function (receiver) {
      return receiver.get_bindFullDescription_qg22kn_k$();
    }, null);
  }
  function fullDescription$factory() {
    return getPropertyCallableRef('fullDescription', 1, KProperty1, function (receiver) {
      return receiver.get_fullDescription_vl3lz8_k$();
    }, null);
  }
  function _get_specs__bb4bbb($this) {
    return $this.specs_1;
  }
  function Sentence(specs) {
    this.specs_1 = specs;
  }
  protoOf(Sentence).the_31dyxy_k$ = function (binding) {
    // Inline function 'kotlin.also' call
    var this_0 = new CopySpecs(false);
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.Sentence.the.<anonymous>' call
    binding.apply_xvjdc4_k$(this_0);
    // Inline function 'kotlin.collections.plusAssign' call
    this.specs_1.add_utx5q5_k$(this_0);
    return this_0;
  };
  protoOf(Sentence).all_kn35hb_k$ = function (spec) {
    // Inline function 'kotlin.also' call
    var this_0 = new CopySpecs(true);
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.Sentence.all.<anonymous>' call
    spec.apply_xvjdc4_k$(this_0);
    // Inline function 'kotlin.collections.plusAssign' call
    this.specs_1.add_utx5q5_k$(this_0);
    return this_0;
  };
  function All() {
    All_instance = this;
  }
  protoOf(All).keySet_jzujro_k$ = function (tree) {
    return tree.get_bindings_g97nah_k$().get_keys_wop4xp_k$();
  };
  var All_instance;
  function All_getInstance() {
    if (All_instance == null)
      new All();
    return All_instance;
  }
  function None() {
    None_instance = this;
  }
  protoOf(None).keySet_jzujro_k$ = function (tree) {
    return emptySet();
  };
  var None_instance;
  function None_getInstance() {
    if (None_instance == null)
      new None();
    return None_instance;
  }
  function NonCached() {
    NonCached_instance = this;
  }
  protoOf(NonCached).keySet_jzujro_k$ = function (tree) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var this_0 = tree.get_bindings_g97nah_k$();
    var destination = LinkedHashMap_init_$Create$();
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = this_0.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.NonCached.keySet.<anonymous>' call
      if (first(element.get_value_j01efc_k$()).get_binding_ivlno_k$().get_copier_c07lcr_k$() == null) {
        destination.put_4fpzoq_k$(element.get_key_18j28a_k$(), element.get_value_j01efc_k$());
      }
    }
    return destination.get_keys_wop4xp_k$();
  };
  var NonCached_instance;
  function NonCached_getInstance() {
    if (NonCached_instance == null)
      new NonCached();
    return NonCached_instance;
  }
  function Companion() {
    Companion_instance = this;
  }
  protoOf(Companion).invoke_2lwz1_k$ = function (f) {
    // Inline function 'kotlin.apply' call
    var this_0 = new DSL();
    // Inline function 'kotlin.contracts.contract' call
    f(this_0);
    return this_0;
  };
  protoOf(Companion).allBut_h80gff_k$ = function (f) {
    // Inline function 'kotlin.apply' call
    var this_0 = new AllButDSL();
    // Inline function 'kotlin.contracts.contract' call
    f(this_0);
    return this_0;
  };
  protoOf(Companion).specsToKeys_w8dcs8_k$ = function (tree, it) {
    var list = tree.find_njtemv_k$(it);
    if (list.isEmpty_y1axqb_k$()) {
      throw new NoResultException(it, 'No binding found that match this search: ' + it);
    }
    if (!it.all_1 ? list.get_size_woubt6_k$() > 1 : false) {
      var tmp = list.get_size_woubt6_k$();
      // Inline function 'kotlin.collections.associate' call
      var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault(list, 10)), 16);
      // Inline function 'kotlin.collections.associateTo' call
      var destination = LinkedHashMap_init_$Create$_0(capacity);
      var tmp0_iterator = list.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'kotlin.collections.plusAssign' call
        // Inline function 'org.kodein.di.Companion.specsToKeys.<anonymous>' call
        var pair = to(element.get_first_irdx8n_k$(), element.get_second_jf7fjx_k$());
        destination.put_4fpzoq_k$(pair.get_first_irdx8n_k$(), pair.get_second_jf7fjx_k$());
      }
      throw new NoResultException(it, 'There were ' + tmp + ' matches for this search: ' + it + '\n' + description(destination, false));
    }
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination_0 = ArrayList_init_$Create$_0(collectionSizeOrDefault(list, 10));
    var tmp0_iterator_0 = list.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'org.kodein.di.Companion.specsToKeys.<anonymous>' call
      var tmp$ret$3 = item.get_first_irdx8n_k$();
      destination_0.add_utx5q5_k$(tmp$ret$3);
    }
    return destination_0;
  };
  var Companion_instance;
  function Companion_getInstance_0() {
    if (Companion_instance == null)
      new Companion();
    return Companion_instance;
  }
  function BaseDSL() {
    SearchDSL.call(this);
    this.copySpecs_1 = ArrayList_init_$Create$();
    this.ignoreSpecs_1 = ArrayList_init_$Create$();
    this.copy_1 = new Sentence(this.copySpecs_1);
    this.ignore_1 = new Sentence(this.ignoreSpecs_1);
  }
  protoOf(BaseDSL).get_copySpecs_x8afay_k$ = function () {
    return this.copySpecs_1;
  };
  protoOf(BaseDSL).get_ignoreSpecs_vvjuv7_k$ = function () {
    return this.ignoreSpecs_1;
  };
  protoOf(BaseDSL).get_copy_wok88u_k$ = function () {
    return this.copy_1;
  };
  protoOf(BaseDSL).get_ignore_eq1tqz_k$ = function () {
    return this.ignore_1;
  };
  function DSL() {
    BaseDSL.call(this);
  }
  protoOf(DSL).keySet_jzujro_k$ = function (tree) {
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_0 = this.ignoreSpecs_1;
    var destination = ArrayList_init_$Create$();
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.DSL.keySet.<anonymous>' call
      var list = Companion_getInstance_0().specsToKeys_w8dcs8_k$(tree, element);
      addAll(destination, list);
    }
    var ignored = destination;
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_1 = this.copySpecs_1;
    var destination_0 = ArrayList_init_$Create$();
    var tmp0_iterator_0 = this_1.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var element_0 = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'org.kodein.di.DSL.keySet.<anonymous>' call
      var list_0 = Companion_getInstance_0().specsToKeys_w8dcs8_k$(tree, element_0);
      addAll(destination_0, list_0);
    }
    return toSet(minus(destination_0, ignored));
  };
  function AllButDSL() {
    BaseDSL.call(this);
  }
  protoOf(AllButDSL).keySet_jzujro_k$ = function (tree) {
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_0 = this.copySpecs_1;
    var destination = ArrayList_init_$Create$();
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.AllButDSL.keySet.<anonymous>' call
      var list = Companion_getInstance_0().specsToKeys_w8dcs8_k$(tree, element);
      addAll(destination, list);
    }
    var kept = destination;
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_1 = this.ignoreSpecs_1;
    var destination_0 = ArrayList_init_$Create$();
    var tmp0_iterator_0 = this_1.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var element_0 = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'org.kodein.di.AllButDSL.keySet.<anonymous>' call
      var list_0 = Companion_getInstance_0().specsToKeys_w8dcs8_k$(tree, element_0);
      addAll(destination_0, list_0);
    }
    var ignored = minus(destination_0, kept);
    return minus_0(tree.get_bindings_g97nah_k$().get_keys_wop4xp_k$(), ignored);
  };
  function Copy() {
  }
  function CopySpecs(all) {
    SearchSpecs.call(this);
    this.all_1 = all;
  }
  protoOf(CopySpecs).get_all_18j9hk_k$ = function () {
    return this.all_1;
  };
  function _set_cachedHashCode__cb6f1i($this, _set____db54di) {
    $this.cachedHashCode_1 = _set____db54di;
  }
  function _get_cachedHashCode__d7x0zy($this) {
    return $this.cachedHashCode_1;
  }
  function appendDescription(_this__u8e3s4, $this, displayString) {
    if (!($this.tag_1 == null)) {
      _this__u8e3s4.append_22ad7x_k$(' tagged "' + toString($this.tag_1) + '"');
    }
    if (!equals($this.contextType_1, Companion_getInstance().get_Any_18jx5p_k$())) {
      _this__u8e3s4.append_22ad7x_k$(' on context ' + displayString($this.contextType_1));
    }
    if (!equals($this.argType_1, Companion_getInstance().get_Unit_wob9il_k$())) {
      _this__u8e3s4.append_22ad7x_k$(', with argument ' + displayString($this.argType_1));
    }
  }
  function TypeToken$simpleDispString$ref() {
    var l = function (p0) {
      return p0.simpleDispString_fi18pn_k$();
    };
    l.callableName = 'simpleDispString';
    return l;
  }
  function TypeToken$qualifiedDispString$ref() {
    var l = function (p0) {
      return p0.qualifiedDispString_lx0v0v_k$();
    };
    l.callableName = 'qualifiedDispString';
    return l;
  }
  function ImplWithContext(contextType) {
    this.contextType_1 = contextType;
  }
  protoOf(ImplWithContext).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(ImplWithContext).get_explicitContext_ym4etq_k$ = function () {
    return true;
  };
  function WithScope() {
  }
  function ImplWithScope(contextType, scope) {
    this.contextType_1 = contextType;
    this.scope_1 = scope;
  }
  protoOf(ImplWithScope).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(ImplWithScope).get_scope_iyfcq3_k$ = function () {
    return this.scope_1;
  };
  protoOf(ImplWithScope).get_explicitContext_ym4etq_k$ = function () {
    return true;
  };
  function TypeBinder() {
  }
  function DelegateBinder() {
  }
  function DirectBinder() {
  }
  function ConstantBinder() {
  }
  function SetBinder() {
  }
  function ArgSetBinder() {
  }
  function _set__name__b7xr8b($this, _set____db54di) {
    $this._name_1 = _set____db54di;
  }
  function _get__name__kt6p95($this) {
    return $this._name_1;
  }
  function Module_init_$Init$(name, allowSilentOverride, prefix, init, $this) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    prefix = prefix === VOID ? '' : prefix;
    Module.call($this, allowSilentOverride, prefix, init);
    $this._name_1 = name;
    return $this;
  }
  function Module_init_$Create$(name, allowSilentOverride, prefix, init) {
    return Module_init_$Init$(name, allowSilentOverride, prefix, init, objectCreate(protoOf(Module)));
  }
  function DI$Companion$lazy$lambda($allowSilentOverride, $init) {
    return function () {
      return DIImpl_init_$Create$_0($allowSilentOverride, $init);
    };
  }
  function DI$Companion$from$lambda($modules) {
    return function ($this$invoke) {
      var tmp0_iterator = $modules.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.Companion.from.<anonymous>.<anonymous>' call
        $this$invoke.import$default_2izlr1_k$(element);
      }
      return Unit_getInstance();
    };
  }
  function DependencyLoopException(message) {
    RuntimeException_init_$Init$(message, this);
    captureStack(this, DependencyLoopException);
  }
  function NotFoundException(key, message) {
    RuntimeException_init_$Init$(message, this);
    captureStack(this, NotFoundException);
    this.key_1 = key;
  }
  protoOf(NotFoundException).get_key_18j28a_k$ = function () {
    return this.key_1;
  };
  function NoResultException(search, message) {
    RuntimeException_init_$Init$(message, this);
    captureStack(this, NoResultException);
    this.search_1 = search;
  }
  protoOf(NoResultException).get_search_jf67jl_k$ = function () {
    return this.search_1;
  };
  function OverridingException(message) {
    RuntimeException_init_$Init$(message, this);
    captureStack(this, OverridingException);
  }
  function Key(contextType, argType, type, tag) {
    this.contextType_1 = contextType;
    this.argType_1 = argType;
    this.type_1 = type;
    this.tag_1 = tag;
    this.cachedHashCode_1 = 0;
  }
  protoOf(Key).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(Key).get_argType_b1zqd5_k$ = function () {
    return this.argType_1;
  };
  protoOf(Key).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Key).get_tag_18ivnz_k$ = function () {
    return this.tag_1;
  };
  protoOf(Key).hashCode = function () {
    if (this.cachedHashCode_1 === 0) {
      this.cachedHashCode_1 = hashCode(this.contextType_1);
      this.cachedHashCode_1 = imul(31, this.cachedHashCode_1) + hashCode(this.argType_1) | 0;
      this.cachedHashCode_1 = imul(29, hashCode(this.type_1));
      var tmp = this;
      var tmp_0 = imul(23, this.cachedHashCode_1);
      var tmp0_safe_receiver = this.tag_1;
      var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
      tmp.cachedHashCode_1 = tmp_0 + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    }
    return this.cachedHashCode_1;
  };
  protoOf(Key).toString = function () {
    return this.get_description_emjre5_k$();
  };
  protoOf(Key).get_bindDescription_5en1cm_k$ = 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 'org.kodein.di.Key.<get-bindDescription>.<anonymous>' call
    this_0.append_22ad7x_k$('bind<' + this.type_1.simpleDispString_fi18pn_k$() + '>');
    if (!(this.tag_1 == null)) {
      this_0.append_22ad7x_k$('(tag = "' + toString(this.tag_1) + '")');
    }
    return this_0.toString();
  };
  protoOf(Key).get_bindFullDescription_qg22kn_k$ = 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 'org.kodein.di.Key.<get-bindFullDescription>.<anonymous>' call
    this_0.append_22ad7x_k$('bind<' + this.type_1.qualifiedDispString_lx0v0v_k$() + '>');
    if (!(this.tag_1 == null)) {
      this_0.append_22ad7x_k$('(tag = "' + toString(this.tag_1) + '")');
    }
    return this_0.toString();
  };
  protoOf(Key).get_description_emjre5_k$ = 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 'org.kodein.di.Key.<get-description>.<anonymous>' call
    this_0.append_22ad7x_k$(this.type_1.simpleDispString_fi18pn_k$());
    appendDescription(this_0, this, TypeToken$simpleDispString$ref());
    return this_0.toString();
  };
  protoOf(Key).get_internalDescription_qj0sx6_k$ = function () {
    return '(context: ' + this.contextType_1.simpleDispString_fi18pn_k$() + ', arg: ' + this.argType_1.simpleDispString_fi18pn_k$() + ', type: ' + this.type_1.simpleDispString_fi18pn_k$() + ', tag: ' + toString(this.tag_1) + ')';
  };
  protoOf(Key).get_fullDescription_vl3lz8_k$ = 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 'org.kodein.di.Key.<get-fullDescription>.<anonymous>' call
    this_0.append_22ad7x_k$(this.type_1.qualifiedDispString_lx0v0v_k$());
    appendDescription(this_0, this, TypeToken$qualifiedDispString$ref());
    return this_0.toString();
  };
  protoOf(Key).component1_7eebsc_k$ = function () {
    return this.contextType_1;
  };
  protoOf(Key).component2_7eebsb_k$ = function () {
    return this.argType_1;
  };
  protoOf(Key).component3_7eebsa_k$ = function () {
    return this.type_1;
  };
  protoOf(Key).component4_7eebs9_k$ = function () {
    return this.tag_1;
  };
  protoOf(Key).copy_bmnu5g_k$ = function (contextType, argType, type, tag) {
    return new Key(contextType, argType, type, tag);
  };
  protoOf(Key).copy$default_71eqho_k$ = function (contextType, argType, type, tag, $super) {
    contextType = contextType === VOID ? this.contextType_1 : contextType;
    argType = argType === VOID ? this.argType_1 : argType;
    type = type === VOID ? this.type_1 : type;
    tag = tag === VOID ? this.tag_1 : tag;
    return $super === VOID ? this.copy_bmnu5g_k$(contextType, argType, type, tag) : $super.copy_bmnu5g_k$.call(this, contextType, argType, type, tag);
  };
  protoOf(Key).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Key))
      return false;
    var tmp0_other_with_cast = other instanceof Key ? other : THROW_CCE();
    if (!equals(this.contextType_1, tmp0_other_with_cast.contextType_1))
      return false;
    if (!equals(this.argType_1, tmp0_other_with_cast.argType_1))
      return false;
    if (!equals(this.type_1, tmp0_other_with_cast.type_1))
      return false;
    if (!equals(this.tag_1, tmp0_other_with_cast.tag_1))
      return false;
    return true;
  };
  function DIDsl() {
  }
  protoOf(DIDsl).equals = function (other) {
    if (!(other instanceof DIDsl))
      return false;
    other instanceof DIDsl || THROW_CCE();
    return true;
  };
  protoOf(DIDsl).hashCode = function () {
    return 0;
  };
  protoOf(DIDsl).toString = function () {
    return '@org.kodein.di.DI.DIDsl()';
  };
  function BindBuilder() {
  }
  function Builder() {
  }
  function MainBuilder() {
  }
  function Module(allowSilentOverride, prefix, init) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    prefix = prefix === VOID ? '' : prefix;
    this.allowSilentOverride_1 = allowSilentOverride;
    this.prefix_1 = prefix;
    this.init_1 = init;
    this._name_1 = null;
  }
  protoOf(Module).get_allowSilentOverride_rg30ch_k$ = function () {
    return this.allowSilentOverride_1;
  };
  protoOf(Module).get_prefix_i78za3_k$ = function () {
    return this.prefix_1;
  };
  protoOf(Module).get_init_woo195_k$ = function () {
    return this.init_1;
  };
  protoOf(Module).get_name_woqyms_k$ = function () {
    var tmp0_elvis_lhs = this._name_1;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw IllegalStateException_init_$Create$('module must have a name.');
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  };
  protoOf(Module).getValue_fbnwi2_k$ = function (thisRef, property) {
    // Inline function 'kotlin.text.isNullOrEmpty' call
    var this_0 = this._name_1;
    // Inline function 'kotlin.contracts.contract' call
    if (this_0 == null ? true : charSequenceLength(this_0) === 0)
      this._name_1 = property.callableName;
    return this;
  };
  protoOf(Module).component1_7eebsc_k$ = function () {
    return this.allowSilentOverride_1;
  };
  protoOf(Module).component2_7eebsb_k$ = function () {
    return this.prefix_1;
  };
  protoOf(Module).component3_7eebsa_k$ = function () {
    return this.init_1;
  };
  protoOf(Module).copy_9r6a1f_k$ = function (allowSilentOverride, prefix, init) {
    return new Module(allowSilentOverride, prefix, init);
  };
  protoOf(Module).copy$default_kyf54b_k$ = function (allowSilentOverride, prefix, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? this.allowSilentOverride_1 : allowSilentOverride;
    prefix = prefix === VOID ? this.prefix_1 : prefix;
    init = init === VOID ? this.init_1 : init;
    return $super === VOID ? this.copy_9r6a1f_k$(allowSilentOverride, prefix, init) : $super.copy_9r6a1f_k$.call(this, allowSilentOverride, prefix, init);
  };
  protoOf(Module).toString = function () {
    return 'Module(allowSilentOverride=' + this.allowSilentOverride_1 + ', prefix=' + this.prefix_1 + ', init=' + this.init_1 + ')';
  };
  protoOf(Module).hashCode = function () {
    var result = getBooleanHashCode(this.allowSilentOverride_1);
    result = imul(result, 31) + getStringHashCode(this.prefix_1) | 0;
    result = imul(result, 31) + hashCode(this.init_1) | 0;
    return result;
  };
  protoOf(Module).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Module))
      return false;
    var tmp0_other_with_cast = other instanceof Module ? other : THROW_CCE();
    if (!(this.allowSilentOverride_1 === tmp0_other_with_cast.allowSilentOverride_1))
      return false;
    if (!(this.prefix_1 === tmp0_other_with_cast.prefix_1))
      return false;
    if (!equals(this.init_1, tmp0_other_with_cast.init_1))
      return false;
    return true;
  };
  function Companion_0() {
    Companion_instance_0 = this;
    this.defaultFullDescriptionOnError_1 = false;
    this.defaultFullContainerTreeOnError_1 = false;
  }
  protoOf(Companion_0).invoke_t1f2ix_k$ = function (allowSilentOverride, init) {
    return DIImpl_init_$Create$_0(allowSilentOverride, init);
  };
  protoOf(Companion_0).invoke$default_zhoysj_k$ = function (allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return $super === VOID ? this.invoke_t1f2ix_k$(allowSilentOverride, init) : $super.invoke_t1f2ix_k$.call(this, allowSilentOverride, init);
  };
  protoOf(Companion_0).lazy_2d9m9x_k$ = function (allowSilentOverride, init) {
    return new LazyDI(DI$Companion$lazy$lambda(allowSilentOverride, init));
  };
  protoOf(Companion_0).lazy$default_chdaxr_k$ = function (allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return $super === VOID ? this.lazy_2d9m9x_k$(allowSilentOverride, init) : $super.lazy_2d9m9x_k$.call(this, allowSilentOverride, init);
  };
  protoOf(Companion_0).direct_wlngnu_k$ = function (allowSilentOverride, init) {
    return get_direct(DIImpl_init_$Create$_0(allowSilentOverride, init));
  };
  protoOf(Companion_0).direct$default_4am3sk_k$ = function (allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return $super === VOID ? this.direct_wlngnu_k$(allowSilentOverride, init) : $super.direct_wlngnu_k$.call(this, allowSilentOverride, init);
  };
  protoOf(Companion_0).withDelayedCallbacks_xnhkxp_k$ = function (allowSilentOverride, init) {
    return Companion_getInstance_7().withDelayedCallbacks_xnhkxp_k$(allowSilentOverride, init);
  };
  protoOf(Companion_0).withDelayedCallbacks$default_94fg6b_k$ = function (allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return $super === VOID ? this.withDelayedCallbacks_xnhkxp_k$(allowSilentOverride, init) : $super.withDelayedCallbacks_xnhkxp_k$.call(this, allowSilentOverride, init);
  };
  protoOf(Companion_0).from_617zwx_k$ = function (modules) {
    var tmp = Companion_getInstance_1();
    return tmp.invoke$default_zhoysj_k$(VOID, DI$Companion$from$lambda(modules));
  };
  protoOf(Companion_0).set_defaultFullDescriptionOnError_mvyr1n_k$ = function (_set____db54di) {
    this.defaultFullDescriptionOnError_1 = _set____db54di;
  };
  protoOf(Companion_0).get_defaultFullDescriptionOnError_leibws_k$ = function () {
    return this.defaultFullDescriptionOnError_1;
  };
  protoOf(Companion_0).set_defaultFullContainerTreeOnError_pegl5k_k$ = function (_set____db54di) {
    this.defaultFullContainerTreeOnError_1 = _set____db54di;
  };
  protoOf(Companion_0).get_defaultFullContainerTreeOnError_9s42i7_k$ = function () {
    return this.defaultFullContainerTreeOnError_1;
  };
  var Companion_instance_0;
  function Companion_getInstance_1() {
    if (Companion_instance_0 == null)
      new Companion_0();
    return Companion_instance_0;
  }
  function DI() {
  }
  function get_direct(_this__u8e3s4) {
    return new DirectDIImpl(_this__u8e3s4.get_di_knto1e_k$().get_container_1pul08_k$(), _this__u8e3s4.get_diContext_hye8ch_k$());
  }
  function DIAware() {
  }
  function Instance(_this__u8e3s4, type, tag) {
    tag = tag === VOID ? null : tag;
    var tmp = _this__u8e3s4.get_diTrigger_fb5jcm_k$();
    var tmp_0 = _this__u8e3s4.get_diContext_hye8ch_k$();
    return new DIProperty(tmp, tmp_0, Instance$lambda(_this__u8e3s4, type, tag));
  }
  function Value(type, value) {
    this.type_1 = type;
    this.value_1 = value;
  }
  protoOf(Value).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Value).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(Value).component1_7eebsc_k$ = function () {
    return this.type_1;
  };
  protoOf(Value).component2_7eebsb_k$ = function () {
    return this.value_1;
  };
  protoOf(Value).copy_9n6vtc_k$ = function (type, value) {
    return new Value(type, value);
  };
  protoOf(Value).copy$default_ksw7fi_k$ = function (type, value, $super) {
    type = type === VOID ? this.type_1 : type;
    value = value === VOID ? this.value_1 : value;
    return $super === VOID ? this.copy_9n6vtc_k$(type, value) : $super.copy_9n6vtc_k$.call(this, type, value);
  };
  protoOf(Value).toString = function () {
    return 'Value(type=' + this.type_1 + ', value=' + this.value_1 + ')';
  };
  protoOf(Value).hashCode = function () {
    var result = hashCode(this.type_1);
    result = imul(result, 31) + hashCode(this.value_1) | 0;
    return result;
  };
  protoOf(Value).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Value))
      return false;
    var tmp0_other_with_cast = other instanceof Value ? other : THROW_CCE();
    if (!equals(this.type_1, tmp0_other_with_cast.type_1))
      return false;
    if (!equals(this.value_1, tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  function Lazy(type, getValue) {
    this.type_1 = type;
    this.getValue_1 = getValue;
    this.value$delegate_1 = lazy(this.getValue_1);
  }
  protoOf(Lazy).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Lazy).get_getValue_qn05g_k$ = function () {
    return this.getValue_1;
  };
  protoOf(Lazy).get_value_j01efc_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.value$delegate_1;
    value$factory();
    return this_0.get_value_j01efc_k$();
  };
  function Companion_1() {
    Companion_instance_1 = this;
  }
  protoOf(Companion_1).invoke_4wgfc3_k$ = function (type, value) {
    return new Value(type, value);
  };
  protoOf(Companion_1).invoke_2546vx_k$ = function (type, getValue) {
    return new Lazy(type, getValue);
  };
  var Companion_instance_1;
  function Companion_getInstance_2() {
    if (Companion_instance_1 == null)
      new Companion_1();
    return Companion_instance_1;
  }
  function DIContext() {
  }
  function On(_this__u8e3s4, context, trigger) {
    context = context === VOID ? _this__u8e3s4.get_diContext_hye8ch_k$() : context;
    trigger = trigger === VOID ? _this__u8e3s4.get_diTrigger_fb5jcm_k$() : trigger;
    return DIWrapper_init_$Create$(_this__u8e3s4, context, trigger);
  }
  function InstanceOrNull(_this__u8e3s4, type, tag) {
    tag = tag === VOID ? null : tag;
    var tmp = _this__u8e3s4.get_diTrigger_fb5jcm_k$();
    var tmp_0 = _this__u8e3s4.get_diContext_hye8ch_k$();
    return new DIProperty(tmp, tmp_0, InstanceOrNull$lambda(_this__u8e3s4, type, tag));
  }
  function get_AnyDIContext() {
    return Contexes_getInstance().AnyDIContext_1;
  }
  function get_anyType(_this__u8e3s4) {
    var tmp = _this__u8e3s4.get_type_wovaf7_k$();
    return isInterface(tmp, TypeToken) ? tmp : THROW_CCE();
  }
  function _get__base__kzs3xb($this) {
    return $this._base_1;
  }
  function DIWrapper_init_$Init$(base, diContext, trigger, $this) {
    diContext = diContext === VOID ? base.get_diContext_hye8ch_k$() : diContext;
    trigger = trigger === VOID ? base.get_diTrigger_fb5jcm_k$() : trigger;
    DIWrapper.call($this, base.get_di_knto1e_k$(), diContext, trigger);
    return $this;
  }
  function DIWrapper_init_$Create$(base, diContext, trigger) {
    return DIWrapper_init_$Init$(base, diContext, trigger, objectCreate(protoOf(DIWrapper)));
  }
  function DIWrapper(_base, diContext, diTrigger) {
    diTrigger = diTrigger === VOID ? null : diTrigger;
    this._base_1 = _base;
    this.diContext_1 = diContext;
    this.diTrigger_1 = diTrigger;
  }
  protoOf(DIWrapper).get_diContext_hye8ch_k$ = function () {
    return this.diContext_1;
  };
  protoOf(DIWrapper).get_diTrigger_fb5jcm_k$ = function () {
    return this.diTrigger_1;
  };
  protoOf(DIWrapper).get_di_knto1e_k$ = function () {
    return this;
  };
  protoOf(DIWrapper).get_container_1pul08_k$ = function () {
    return this._base_1.get_container_1pul08_k$();
  };
  function Contexes() {
    Contexes_instance = this;
    this.AnyDIContext_1 = Companion_getInstance_2().invoke_4wgfc3_k$(Companion_getInstance().get_Any_18jx5p_k$(), new Object());
  }
  protoOf(Contexes).get_AnyDIContext_57ngpz_k$ = function () {
    return this.AnyDIContext_1;
  };
  var Contexes_instance;
  function Contexes_getInstance() {
    if (Contexes_instance == null)
      new Contexes();
    return Contexes_instance;
  }
  function Instance$lambda($this_Instance, $type, $tag) {
    return function (ctx, _anonymous_parameter_1__qggqgd) {
      var tmp = $this_Instance.get_di_knto1e_k$().get_container_1pul08_k$();
      // Inline function 'org.kodein.di.anyType' call
      var tmp_0 = ctx.get_type_wovaf7_k$();
      var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
      return tmp.provider$default_gzv06g_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), $type, $tag), ctx.get_value_j01efc_k$())();
    };
  }
  function InstanceOrNull$lambda($this_InstanceOrNull, $type, $tag) {
    return function (ctx, _anonymous_parameter_1__qggqgd) {
      var tmp = $this_InstanceOrNull.get_di_knto1e_k$().get_container_1pul08_k$();
      // Inline function 'org.kodein.di.anyType' call
      var tmp_0 = ctx.get_type_wovaf7_k$();
      var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
      var tmp0_safe_receiver = tmp.providerOrNull$default_miq9vm_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), $type, $tag), ctx.get_value_j01efc_k$());
      return tmp0_safe_receiver == null ? null : tmp0_safe_receiver();
    };
  }
  function value$factory() {
    return getPropertyCallableRef('value', 1, KProperty1, function (receiver) {
      return receiver.get_value_j01efc_k$();
    }, null);
  }
  function Builder_0() {
  }
  function DIContainer$provider$lambda($this) {
    return function () {
      return $this(Unit_getInstance());
    };
  }
  function DIContainer$providerOrNull$lambda($this) {
    return function () {
      return $this(Unit_getInstance());
    };
  }
  function DIContainer$allProviders$lambda($this) {
    return function () {
      return $this(Unit_getInstance());
    };
  }
  function DIContainer() {
  }
  function DITree() {
  }
  function DirectDIAware() {
  }
  function DirectDIBase() {
  }
  function NoDefinedTag() {
    NoDefinedTag_instance = this;
  }
  var NoDefinedTag_instance;
  function NoDefinedTag_getInstance() {
    if (NoDefinedTag_instance == null)
      new NoDefinedTag();
    return NoDefinedTag_instance;
  }
  function SearchSpecs(contextType, argType, type, tag) {
    contextType = contextType === VOID ? null : contextType;
    argType = argType === VOID ? null : argType;
    type = type === VOID ? null : type;
    tag = tag === VOID ? NoDefinedTag_getInstance() : tag;
    this.contextType_1 = contextType;
    this.argType_1 = argType;
    this.type_1 = type;
    this.tag_1 = tag;
  }
  protoOf(SearchSpecs).set_contextType_jhyy1b_k$ = function (_set____db54di) {
    this.contextType_1 = _set____db54di;
  };
  protoOf(SearchSpecs).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(SearchSpecs).set_argType_o1m25m_k$ = function (_set____db54di) {
    this.argType_1 = _set____db54di;
  };
  protoOf(SearchSpecs).get_argType_b1zqd5_k$ = function () {
    return this.argType_1;
  };
  protoOf(SearchSpecs).set_type_8odwsa_k$ = function (_set____db54di) {
    this.type_1 = _set____db54di;
  };
  protoOf(SearchSpecs).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(SearchSpecs).set_tag_s8vklu_k$ = function (_set____db54di) {
    this.tag_1 = _set____db54di;
  };
  protoOf(SearchSpecs).get_tag_18ivnz_k$ = function () {
    return this.tag_1;
  };
  protoOf(SearchSpecs).toString = function () {
    var args = ArrayList_init_$Create$();
    if (!(this.contextType_1 == null)) {
      // Inline function 'kotlin.collections.plusAssign' call
      var tmp0_safe_receiver = this.contextType_1;
      var element = 'contextType=' + (tmp0_safe_receiver == null ? null : tmp0_safe_receiver.simpleDispString_fi18pn_k$());
      args.add_utx5q5_k$(element);
    }
    if (!(this.argType_1 == null)) {
      // Inline function 'kotlin.collections.plusAssign' call
      var tmp1_safe_receiver = this.argType_1;
      var element_0 = 'argType=' + (tmp1_safe_receiver == null ? null : tmp1_safe_receiver.simpleDispString_fi18pn_k$());
      args.add_utx5q5_k$(element_0);
    }
    if (!(this.type_1 == null)) {
      // Inline function 'kotlin.collections.plusAssign' call
      var tmp2_safe_receiver = this.type_1;
      var element_1 = 'type=' + (tmp2_safe_receiver == null ? null : tmp2_safe_receiver.simpleDispString_fi18pn_k$());
      args.add_utx5q5_k$(element_1);
    }
    if (!equals(this.tag_1, NoDefinedTag_getInstance())) {
      // Inline function 'kotlin.collections.plusAssign' call
      var element_2 = 'tag=' + toString(this.tag_1);
      args.add_utx5q5_k$(element_2);
    }
    return '[' + joinToString(args, ', ') + ']';
  };
  function SearchDSL$Spec$Companion$invoke$1($f) {
    this.$f_1 = $f;
  }
  protoOf(SearchDSL$Spec$Companion$invoke$1).apply_xvjdc4_k$ = function (specs) {
    return this.$f_1(specs);
  };
  function Companion_2() {
    Companion_instance_2 = this;
  }
  protoOf(Companion_2).invoke_mppme3_k$ = function (f) {
    return new SearchDSL$Spec$Companion$invoke$1(f);
  };
  var Companion_instance_2;
  function Companion_getInstance_3() {
    if (Companion_instance_2 == null)
      new Companion_2();
    return Companion_instance_2;
  }
  function Spec() {
  }
  function Binding(type, tag) {
    tag = tag === VOID ? null : tag;
    this.type_1 = type;
    this.tag_1 = tag;
  }
  protoOf(Binding).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Binding).get_tag_18ivnz_k$ = function () {
    return this.tag_1;
  };
  protoOf(Binding).apply_xvjdc4_k$ = function (specs) {
    specs.type_1 = this.type_1;
    if (!(this.tag_1 == null))
      specs.tag_1 = this.tag_1;
  };
  function SearchDSL$Context$lambda($contextType) {
    return function ($this$invoke) {
      $this$invoke.contextType_1 = $contextType;
      return Unit_getInstance();
    };
  }
  function SearchDSL$Argument$lambda($argumentType) {
    return function ($this$invoke) {
      $this$invoke.argType_1 = $argumentType;
      return Unit_getInstance();
    };
  }
  function SearchDSL$tag$lambda($tag) {
    return function ($this$invoke) {
      $this$invoke.tag_1 = $tag;
      return Unit_getInstance();
    };
  }
  function SearchDSL() {
  }
  protoOf(SearchDSL).with_1zu7xu_k$ = function (_this__u8e3s4, spec) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.SearchDSL.with.<anonymous>' call
    spec.apply_xvjdc4_k$(_this__u8e3s4);
    return _this__u8e3s4;
  };
  protoOf(SearchDSL).and_4zc9ur_k$ = function (_this__u8e3s4, spec) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.SearchDSL.and.<anonymous>' call
    spec.apply_xvjdc4_k$(_this__u8e3s4);
    return _this__u8e3s4;
  };
  protoOf(SearchDSL).Context_9un9ev_k$ = function (contextType) {
    var tmp = Companion_getInstance_3();
    return tmp.invoke_mppme3_k$(SearchDSL$Context$lambda(contextType));
  };
  protoOf(SearchDSL).Argument_drnstx_k$ = function (argumentType) {
    var tmp = Companion_getInstance_3();
    return tmp.invoke_mppme3_k$(SearchDSL$Argument$lambda(argumentType));
  };
  protoOf(SearchDSL).tag_jvwajp_k$ = function (tag) {
    var tmp = Companion_getInstance_3();
    return tmp.invoke_mppme3_k$(SearchDSL$tag$lambda(tag));
  };
  function BindingDI() {
  }
  function WithContext() {
  }
  function NoArgBindingDI() {
  }
  function ErasedContext() {
    ErasedContext_instance = this;
  }
  protoOf(ErasedContext).get_type_wovaf7_k$ = function () {
    return Companion_getInstance().get_Any_18jx5p_k$();
  };
  protoOf(ErasedContext).get_value_j01efc_k$ = function () {
    return ErasedContext_getInstance();
  };
  var ErasedContext_instance;
  function ErasedContext_getInstance() {
    if (ErasedContext_instance == null)
      new ErasedContext();
    return ErasedContext_instance;
  }
  function _get__di__e63sa5($this) {
    return $this._di_1;
  }
  function NoArgBindingDIWrap$overriddenProvider$lambda($this) {
    return function () {
      return $this(Unit_getInstance());
    };
  }
  function NoArgBindingDIWrap$overriddenProviderOrNull$lambda($this) {
    return function () {
      return $this(Unit_getInstance());
    };
  }
  function NoArgBindingDIWrap(_di) {
    this._di_1 = _di;
  }
  protoOf(NoArgBindingDIWrap).get_container_1pul08_k$ = function () {
    return this._di_1.get_container_1pul08_k$();
  };
  protoOf(NoArgBindingDIWrap).get_di_knto1e_k$ = function () {
    return this._di_1.get_di_knto1e_k$();
  };
  protoOf(NoArgBindingDIWrap).get_directDI_rqg7bd_k$ = function () {
    return this._di_1.get_directDI_rqg7bd_k$();
  };
  protoOf(NoArgBindingDIWrap).get_lazy_wopozh_k$ = function () {
    return this._di_1.get_lazy_wopozh_k$();
  };
  protoOf(NoArgBindingDIWrap).Factory_54q17q_k$ = function (argType, type, tag) {
    return this._di_1.Factory_54q17q_k$(argType, type, tag);
  };
  protoOf(NoArgBindingDIWrap).FactoryOrNull_f8e6ls_k$ = function (argType, type, tag) {
    return this._di_1.FactoryOrNull_f8e6ls_k$(argType, type, tag);
  };
  protoOf(NoArgBindingDIWrap).Instance_vwdrk9_k$ = function (type, tag) {
    return this._di_1.Instance_vwdrk9_k$(type, tag);
  };
  protoOf(NoArgBindingDIWrap).Instance_spguml_k$ = function (argType, type, tag, arg) {
    return this._di_1.Instance_spguml_k$(argType, type, tag, arg);
  };
  protoOf(NoArgBindingDIWrap).InstanceOrNull_akutzz_k$ = function (type, tag) {
    return this._di_1.InstanceOrNull_akutzz_k$(type, tag);
  };
  protoOf(NoArgBindingDIWrap).InstanceOrNull_5l1mxv_k$ = function (argType, type, tag, arg) {
    return this._di_1.InstanceOrNull_5l1mxv_k$(argType, type, tag, arg);
  };
  protoOf(NoArgBindingDIWrap).On_r75fd9_k$ = function (context) {
    return this._di_1.On_r75fd9_k$(context);
  };
  protoOf(NoArgBindingDIWrap).Provider_ehs6tv_k$ = function (type, tag) {
    return this._di_1.Provider_ehs6tv_k$(type, tag);
  };
  protoOf(NoArgBindingDIWrap).Provider_lm93ss_k$ = function (argType, type, tag, arg) {
    return this._di_1.Provider_lm93ss_k$(argType, type, tag, arg);
  };
  protoOf(NoArgBindingDIWrap).ProviderOrNull_830ut9_k$ = function (type, tag) {
    return this._di_1.ProviderOrNull_830ut9_k$(type, tag);
  };
  protoOf(NoArgBindingDIWrap).ProviderOrNull_33f8by_k$ = function (argType, type, tag, arg) {
    return this._di_1.ProviderOrNull_33f8by_k$(argType, type, tag, arg);
  };
  protoOf(NoArgBindingDIWrap).get_context_h02k06_k$ = function () {
    return this._di_1.get_context_h02k06_k$();
  };
  protoOf(NoArgBindingDIWrap).overriddenProvider_9bg46z_k$ = function () {
    // Inline function 'org.kodein.di.toProvider' call
    var this_0 = this._di_1.overriddenFactory_e8w2ie_k$();
    return NoArgBindingDIWrap$overriddenProvider$lambda(this_0);
  };
  protoOf(NoArgBindingDIWrap).overriddenProviderOrNull_y3uci9_k$ = function () {
    var tmp0_safe_receiver = this._di_1.overriddenFactoryOrNull_9stnxc_k$();
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'org.kodein.di.toProvider' call
      tmp = NoArgBindingDIWrap$overriddenProviderOrNull$lambda(tmp0_safe_receiver);
    }
    return tmp;
  };
  protoOf(NoArgBindingDIWrap).overriddenInstance_g6zn8p_k$ = function () {
    return this.overriddenProvider_9bg46z_k$()();
  };
  protoOf(NoArgBindingDIWrap).overriddenInstanceOrNull_gm54ur_k$ = function () {
    var tmp0_safe_receiver = this.overriddenProviderOrNull_y3uci9_k$();
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver();
  };
  function DIBinding$Copier$Companion$invoke$1($f) {
    this.$f_1 = $f;
  }
  protoOf(DIBinding$Copier$Companion$invoke$1).copy_zgyqr8_k$ = function (builder) {
    return this.$f_1(builder);
  };
  function Companion_3() {
    Companion_instance_3 = this;
  }
  protoOf(Companion_3).invoke_tttx6v_k$ = function (f) {
    return new DIBinding$Copier$Companion$invoke$1(f);
  };
  var Companion_instance_3;
  function Companion_getInstance_4() {
    if (Companion_instance_3 == null)
      new Companion_3();
    return Companion_instance_3;
  }
  function Copier() {
  }
  function DIBinding() {
  }
  function Binding_0() {
  }
  function NoArgDIBinding() {
  }
  function _no_name_provided__qut3iv($f) {
    this.$f_1 = $f;
  }
  protoOf(_no_name_provided__qut3iv).getFactory_51iulf_k$ = function (di, key) {
    return this.$f_1(di, key);
  };
  function Companion_4() {
    Companion_instance_4 = this;
  }
  protoOf(Companion_4).invoke_i2a6c8_k$ = function (f) {
    return new _no_name_provided__qut3iv(f);
  };
  var Companion_instance_4;
  function Companion_getInstance_5() {
    if (Companion_instance_4 == null)
      new Companion_4();
    return Companion_instance_4;
  }
  function ExternalSource() {
  }
  function Reference(current, next) {
    this.current_1 = current;
    this.next_1 = next;
  }
  protoOf(Reference).get_current_jwi6j4_k$ = function () {
    return this.current_1;
  };
  protoOf(Reference).get_next_wor1vg_k$ = function () {
    return this.next_1;
  };
  protoOf(Reference).component1_7eebsc_k$ = function () {
    return this.current_1;
  };
  protoOf(Reference).component2_7eebsb_k$ = function () {
    return this.next_1;
  };
  protoOf(Reference).copy_lud9pc_k$ = function (current, next) {
    return new Reference(current, next);
  };
  protoOf(Reference).copy$default_hbph14_k$ = function (current, next, $super) {
    current = current === VOID ? this.current_1 : current;
    next = next === VOID ? this.next_1 : next;
    return $super === VOID ? this.copy_lud9pc_k$(current, next) : $super.copy_lud9pc_k$.call(this, current, next);
  };
  protoOf(Reference).toString = function () {
    return 'Reference(current=' + this.current_1 + ', next=' + this.next_1 + ')';
  };
  protoOf(Reference).hashCode = function () {
    var result = hashCode(this.current_1);
    result = imul(result, 31) + hashCode(this.next_1) | 0;
    return result;
  };
  protoOf(Reference).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Reference))
      return false;
    var tmp0_other_with_cast = other instanceof Reference ? other : THROW_CCE();
    if (!equals(this.current_1, tmp0_other_with_cast.current_1))
      return false;
    if (!equals(this.next_1, tmp0_other_with_cast.next_1))
      return false;
    return true;
  };
  function Scope() {
  }
  function ContextTranslator() {
  }
  function ScopeRegistry() {
  }
  protoOf(ScopeRegistry).getOrCreate$default_ic5dau_k$ = function (key, sync, creator, $super) {
    sync = sync === VOID ? true : sync;
    return $super === VOID ? this.getOrCreate_e54l91_k$(key, sync, creator) : $super.getOrCreate_e54l91_k$.call(this, key, sync, creator);
  };
  protoOf(ScopeRegistry).close_yn9xrc_k$ = function () {
    return this.clear_j9egeb_k$();
  };
  function ScopeCloseable() {
  }
  function _get__registry__q2m9md($this) {
    return $this._registry_1;
  }
  function NoScope() {
    this._registry_1 = new StandardScopeRegistry();
  }
  protoOf(NoScope).getRegistry_2peito_k$ = function (context) {
    return this._registry_1;
  };
  protoOf(NoScope).getRegistry_wtvvsd_k$ = function (context) {
    return this.getRegistry_2peito_k$((context == null ? true : !(context == null)) ? context : THROW_CCE());
  };
  function _get__cache__b2fe3c($this) {
    return $this._cache_1;
  }
  function _get__lock__ku1jw9($this) {
    return $this._lock_1;
  }
  function StandardScopeRegistry() {
    ScopeRegistry.call(this);
    this._cache_1 = newConcurrentMap();
    this._lock_1 = new Object();
  }
  protoOf(StandardScopeRegistry).getOrCreate_e54l91_k$ = function (key, sync, creator) {
    var tmp$ret$2;
    $l$block_1: {
      // Inline function 'org.kodein.di.internal.synchronizedIfNull' call
      sync && this._lock_1;
      // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.getOrCreate.<anonymous>' call
      var tmp0_safe_receiver = this._cache_1.get_wei43m_k$(key);
      var tmp0_safe_receiver_0 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver();
      if (tmp0_safe_receiver_0 == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.getOrCreate.<anonymous>' call
        tmp$ret$2 = tmp0_safe_receiver_0;
        break $l$block_1;
      }
      // Inline function 'org.kodein.di.internal.maySynchronized' call
      var tmp$ret$5;
      $l$block_0: {
        // Inline function 'org.kodein.di.internal.synchronizedIfNull.<anonymous>' call
        // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.getOrCreate.<anonymous>' call
        var tmp0_safe_receiver_1 = this._cache_1.get_wei43m_k$(key);
        var tmp0_safe_receiver_2 = tmp0_safe_receiver_1 == null ? null : tmp0_safe_receiver_1();
        if (tmp0_safe_receiver_2 == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          tmp$ret$5 = tmp0_safe_receiver_2;
          break $l$block_0;
        }
        // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.getOrCreate.<anonymous>' call
        var tmp0_container = creator();
        var current = tmp0_container.component1_7eebsc_k$();
        var next = tmp0_container.component2_7eebsb_k$();
        // Inline function 'kotlin.collections.set' call
        this._cache_1.put_4fpzoq_k$(key, next);
        tmp$ret$2 = current;
        break $l$block_1;
      }
      var value = tmp$ret$5;
      // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.getOrCreate.<anonymous>' call
      tmp$ret$2 = value;
    }
    return tmp$ret$2;
  };
  protoOf(StandardScopeRegistry).getOrNull_1e9tky_k$ = function (key) {
    return this._cache_1.get_wei43m_k$(key);
  };
  protoOf(StandardScopeRegistry).values_dmh61q_k$ = function () {
    // Inline function 'kotlin.collections.map' call
    var this_0 = this._cache_1;
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(this_0.get_size_woubt6_k$());
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = this_0.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.values.<anonymous>' call
      // Inline function 'kotlin.collections.toPair' call
      var tmp$ret$2 = new Pair(item.get_key_18j28a_k$(), item.get_value_j01efc_k$());
      destination.add_utx5q5_k$(tmp$ret$2);
    }
    return destination;
  };
  protoOf(StandardScopeRegistry).remove_y2d6wa_k$ = function (key) {
    var tmp0_safe_receiver = this._cache_1.remove_gppy8k_k$(key);
    var tmp = tmp0_safe_receiver == null ? null : tmp0_safe_receiver();
    var tmp1_safe_receiver = (!(tmp == null) ? isInterface(tmp, ScopeCloseable) : false) ? tmp : null;
    if (tmp1_safe_receiver == null)
      null;
    else {
      tmp1_safe_receiver.close_yn9xrc_k$();
    }
  };
  protoOf(StandardScopeRegistry).clear_j9egeb_k$ = function () {
    // Inline function 'org.kodein.di.internal.maySynchronized' call
    this._lock_1;
    // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.clear.<anonymous>' call
    var refs = toList(this._cache_1.get_values_ksazhn_k$());
    this._cache_1.clear_j9egeb_k$();
    var refs_0 = refs;
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator = refs_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.bindings.StandardScopeRegistry.clear.<anonymous>' call
      var tmp = element();
      var tmp0_safe_receiver = (!(tmp == null) ? isInterface(tmp, ScopeCloseable) : false) ? tmp : null;
      if (tmp0_safe_receiver == null)
        null;
      else {
        tmp0_safe_receiver.close_yn9xrc_k$();
      }
    }
  };
  protoOf(StandardScopeRegistry).get_size_woubt6_k$ = function () {
    return this._cache_1.get_size_woubt6_k$();
  };
  protoOf(StandardScopeRegistry).isEmpty_y1axqb_k$ = function () {
    return this._cache_1.isEmpty_y1axqb_k$();
  };
  function toKContext(_this__u8e3s4, di, ctx) {
    var tmp0_safe_receiver = _this__u8e3s4.translate_9xhb17_k$(di, ctx);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.toKContext.<anonymous>' call
      tmp = Companion_getInstance_2().invoke_4wgfc3_k$(_this__u8e3s4.get_scopeType_s951x7_k$(), tmp0_safe_receiver);
    }
    return tmp;
  }
  function CompositeContextTranslator(src, dst) {
    this.src_1 = src;
    this.dst_1 = dst;
  }
  protoOf(CompositeContextTranslator).get_src_18iw05_k$ = function () {
    return this.src_1;
  };
  protoOf(CompositeContextTranslator).get_dst_18j738_k$ = function () {
    return this.dst_1;
  };
  protoOf(CompositeContextTranslator).get_contextType_c6z128_k$ = function () {
    return this.src_1.get_contextType_c6z128_k$();
  };
  protoOf(CompositeContextTranslator).get_scopeType_s951x7_k$ = function () {
    return this.dst_1.get_scopeType_s951x7_k$();
  };
  protoOf(CompositeContextTranslator).translate_9xhb17_k$ = function (di, ctx) {
    var tmp0_safe_receiver = this.src_1.translate_9xhb17_k$(di, ctx);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.CompositeContextTranslator.translate.<anonymous>' call
      tmp = this.dst_1.translate_9xhb17_k$(di, tmp0_safe_receiver);
    }
    return tmp;
  };
  protoOf(CompositeContextTranslator).toString = function () {
    return '(' + this.src_1 + ' -> ' + this.dst_1 + ')';
  };
  function BaseMultiBinding() {
  }
  protoOf(BaseMultiBinding).factoryName_1a29it_k$ = function () {
    return 'bindingSet';
  };
  function _get__elementType__manixg($this) {
    return $this._elementType_1;
  }
  function SetBinding$getFactory$lambda$lambda(it) {
    return it(Unit_getInstance());
  }
  function SetBinding$getFactory$lambda($lateInitProviders, this$0, $key, $di) {
    return function (_anonymous_parameter_0__qggqh8) {
      var tmp0_elvis_lhs = $lateInitProviders._v;
      var tmp;
      if (tmp0_elvis_lhs == null) {
        // Inline function 'kotlin.also' call
        // Inline function 'kotlin.run' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.bindings.SetBinding.getFactory.<anonymous>.<anonymous>' call
        var $this$run = this$0;
        var subKey = new Key($key.get_contextType_c6z128_k$(), Companion_getInstance().get_Unit_wob9il_k$(), $this$run._elementType_1, $key.get_tag_18ivnz_k$());
        var subDI = new SetBindingDI($di);
        // Inline function 'kotlin.collections.map' call
        var this_0 = $this$run.set_1;
        // Inline function 'kotlin.collections.mapTo' call
        var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
        var tmp0_iterator = this_0.iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var item = tmp0_iterator.next_20eer_k$();
          // Inline function 'org.kodein.di.bindings.SetBinding.getFactory.<anonymous>.<anonymous>.<anonymous>' call
          var tmp$ret$0 = item.getFactory_3vdie4_k$(subKey, subDI);
          destination.add_utx5q5_k$(tmp$ret$0);
        }
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.bindings.SetBinding.getFactory.<anonymous>.<anonymous>' call
        $lateInitProviders._v = destination;
        tmp = destination;
      } else {
        tmp = tmp0_elvis_lhs;
      }
      var providers = tmp;
      var tmp_0 = asSequence(providers);
      return toSet_0(map(tmp_0, SetBinding$getFactory$lambda$lambda));
    };
  }
  function SetBinding$copier$lambda(this$0) {
    return function (builder) {
      // Inline function 'kotlin.also' call
      var this_0 = new SetBinding(this$0.contextType_1, this$0._elementType_1, this$0.createdType_1);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.SetBinding.copier.<anonymous>.<anonymous>' call
      // Inline function 'kotlin.collections.map' call
      var this_1 = this$0.set_1;
      // Inline function 'kotlin.collections.mapTo' call
      var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_1, 10));
      var tmp0_iterator = this_1.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.bindings.SetBinding.copier.<anonymous>.<anonymous>.<anonymous>' call
        var tmp0_safe_receiver = item.get_copier_c07lcr_k$();
        var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.copy_zgyqr8_k$(builder);
        var tmp$ret$0 = tmp1_elvis_lhs == null ? item : tmp1_elvis_lhs;
        destination.add_utx5q5_k$(tmp$ret$0);
      }
      this_0.set_1.addAll_4lagoh_k$(destination);
      return this_0;
    };
  }
  function SetBinding(contextType, _elementType, createdType) {
    BaseMultiBinding.call(this);
    this.contextType_1 = contextType;
    this._elementType_1 = _elementType;
    this.createdType_1 = createdType;
    this.set_1 = LinkedHashSet_init_$Create$();
    var tmp = this;
    var tmp_0 = Companion_getInstance_4();
    tmp.copier_1 = tmp_0.invoke_tttx6v_k$(SetBinding$copier$lambda(this));
  }
  protoOf(SetBinding).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(SetBinding).get_createdType_5sj3yx_k$ = function () {
    return this.createdType_1;
  };
  protoOf(SetBinding).get_set_18iwav_k$ = function () {
    return this.set_1;
  };
  protoOf(SetBinding).getFactory_ueu64l_k$ = function (key, di) {
    var lateInitProviders = {_v: null};
    return SetBinding$getFactory$lambda(lateInitProviders, this, key, di);
  };
  protoOf(SetBinding).getFactory_3vdie4_k$ = function (key, di) {
    return this.getFactory_ueu64l_k$(key, di);
  };
  protoOf(SetBinding).get_copier_c07lcr_k$ = function () {
    return this.copier_1;
  };
  function _get__elementType__manixg_0($this) {
    return $this._elementType_1;
  }
  function ArgSetBinding$getFactory$lambda$lambda($arg) {
    return function (it) {
      return it($arg);
    };
  }
  function ArgSetBinding$getFactory$lambda($lateInitFactories, this$0, $key, $di) {
    return function (arg) {
      var tmp0_elvis_lhs = $lateInitFactories._v;
      var tmp;
      if (tmp0_elvis_lhs == null) {
        // Inline function 'kotlin.also' call
        // Inline function 'kotlin.run' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.bindings.ArgSetBinding.getFactory.<anonymous>.<anonymous>' call
        var $this$run = this$0;
        var subKey = new Key($key.get_contextType_c6z128_k$(), $key.get_argType_b1zqd5_k$(), $this$run._elementType_1, $key.get_tag_18ivnz_k$());
        // Inline function 'kotlin.collections.map' call
        var this_0 = $this$run.set_1;
        // Inline function 'kotlin.collections.mapTo' call
        var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
        var tmp0_iterator = this_0.iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var item = tmp0_iterator.next_20eer_k$();
          // Inline function 'org.kodein.di.bindings.ArgSetBinding.getFactory.<anonymous>.<anonymous>.<anonymous>' call
          var tmp$ret$0 = item.getFactory_3vdie4_k$(subKey, new SetBindingDI($di));
          destination.add_utx5q5_k$(tmp$ret$0);
        }
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.bindings.ArgSetBinding.getFactory.<anonymous>.<anonymous>' call
        $lateInitFactories._v = destination;
        tmp = destination;
      } else {
        tmp = tmp0_elvis_lhs;
      }
      var factories = tmp;
      var tmp_0 = asSequence(factories);
      return toSet_0(map(tmp_0, ArgSetBinding$getFactory$lambda$lambda(arg)));
    };
  }
  function ArgSetBinding$copier$lambda(this$0) {
    return function (builder) {
      // Inline function 'kotlin.also' call
      var this_0 = new ArgSetBinding(this$0.contextType_1, this$0.argType_1, this$0._elementType_1, this$0.createdType_1);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'org.kodein.di.bindings.ArgSetBinding.copier.<anonymous>.<anonymous>' call
      // Inline function 'kotlin.collections.map' call
      var this_1 = this$0.set_1;
      // Inline function 'kotlin.collections.mapTo' call
      var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_1, 10));
      var tmp0_iterator = this_1.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.bindings.ArgSetBinding.copier.<anonymous>.<anonymous>.<anonymous>' call
        var tmp0_safe_receiver = item.get_copier_c07lcr_k$();
        var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.copy_zgyqr8_k$(builder);
        var tmp$ret$0 = tmp1_elvis_lhs == null ? item : tmp1_elvis_lhs;
        destination.add_utx5q5_k$(tmp$ret$0);
      }
      this_0.set_1.addAll_4lagoh_k$(destination);
      return this_0;
    };
  }
  function ArgSetBinding(contextType, argType, _elementType, createdType) {
    BaseMultiBinding.call(this);
    this.contextType_1 = contextType;
    this.argType_1 = argType;
    this._elementType_1 = _elementType;
    this.createdType_1 = createdType;
    this.set_1 = LinkedHashSet_init_$Create$();
    var tmp = this;
    var tmp_0 = Companion_getInstance_4();
    tmp.copier_1 = tmp_0.invoke_tttx6v_k$(ArgSetBinding$copier$lambda(this));
  }
  protoOf(ArgSetBinding).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(ArgSetBinding).get_argType_b1zqd5_k$ = function () {
    return this.argType_1;
  };
  protoOf(ArgSetBinding).get_createdType_5sj3yx_k$ = function () {
    return this.createdType_1;
  };
  protoOf(ArgSetBinding).get_set_18iwav_k$ = function () {
    return this.set_1;
  };
  protoOf(ArgSetBinding).getFactory_kkxwlo_k$ = function (key, di) {
    var lateInitFactories = {_v: null};
    return ArgSetBinding$getFactory$lambda(lateInitFactories, this, key, di);
  };
  protoOf(ArgSetBinding).getFactory_3vdie4_k$ = function (key, di) {
    return this.getFactory_kkxwlo_k$(key, di);
  };
  protoOf(ArgSetBinding).get_copier_c07lcr_k$ = function () {
    return this.copier_1;
  };
  function _get__base__kzs3xb_0($this) {
    return $this._base_1;
  }
  function SetBindingDI(_base) {
    this._base_1 = _base;
  }
  protoOf(SetBindingDI).get_container_1pul08_k$ = function () {
    return this._base_1.get_container_1pul08_k$();
  };
  protoOf(SetBindingDI).get_context_h02k06_k$ = function () {
    return this._base_1.get_context_h02k06_k$();
  };
  protoOf(SetBindingDI).get_di_knto1e_k$ = function () {
    return this._base_1.get_di_knto1e_k$();
  };
  protoOf(SetBindingDI).get_directDI_rqg7bd_k$ = function () {
    return this._base_1.get_directDI_rqg7bd_k$();
  };
  protoOf(SetBindingDI).get_lazy_wopozh_k$ = function () {
    return this._base_1.get_lazy_wopozh_k$();
  };
  protoOf(SetBindingDI).Factory_54q17q_k$ = function (argType, type, tag) {
    return this._base_1.Factory_54q17q_k$(argType, type, tag);
  };
  protoOf(SetBindingDI).FactoryOrNull_f8e6ls_k$ = function (argType, type, tag) {
    return this._base_1.FactoryOrNull_f8e6ls_k$(argType, type, tag);
  };
  protoOf(SetBindingDI).Instance_vwdrk9_k$ = function (type, tag) {
    return this._base_1.Instance_vwdrk9_k$(type, tag);
  };
  protoOf(SetBindingDI).Instance_spguml_k$ = function (argType, type, tag, arg) {
    return this._base_1.Instance_spguml_k$(argType, type, tag, arg);
  };
  protoOf(SetBindingDI).InstanceOrNull_akutzz_k$ = function (type, tag) {
    return this._base_1.InstanceOrNull_akutzz_k$(type, tag);
  };
  protoOf(SetBindingDI).InstanceOrNull_5l1mxv_k$ = function (argType, type, tag, arg) {
    return this._base_1.InstanceOrNull_5l1mxv_k$(argType, type, tag, arg);
  };
  protoOf(SetBindingDI).On_r75fd9_k$ = function (context) {
    return this._base_1.On_r75fd9_k$(context);
  };
  protoOf(SetBindingDI).Provider_ehs6tv_k$ = function (type, tag) {
    return this._base_1.Provider_ehs6tv_k$(type, tag);
  };
  protoOf(SetBindingDI).Provider_lm93ss_k$ = function (argType, type, tag, arg) {
    return this._base_1.Provider_lm93ss_k$(argType, type, tag, arg);
  };
  protoOf(SetBindingDI).ProviderOrNull_830ut9_k$ = function (type, tag) {
    return this._base_1.ProviderOrNull_830ut9_k$(type, tag);
  };
  protoOf(SetBindingDI).ProviderOrNull_33f8by_k$ = function (argType, type, tag, arg) {
    return this._base_1.ProviderOrNull_33f8by_k$(argType, type, tag, arg);
  };
  protoOf(SetBindingDI).onErasedContext_uyq5vy_k$ = function () {
    return this._base_1.onErasedContext_uyq5vy_k$();
  };
  protoOf(SetBindingDI).overriddenFactory_e8w2ie_k$ = function () {
    throw IllegalStateException_init_$Create$('Cannot access overrides in a Set binding');
  };
  protoOf(SetBindingDI).overriddenFactoryOrNull_9stnxc_k$ = function () {
    throw IllegalStateException_init_$Create$('Cannot access overrides in a Set binding');
  };
  function Provider$getFactory$lambda(this$0, $di) {
    return function (_anonymous_parameter_0__qggqh8) {
      return this$0.creator_1(new NoArgBindingDIWrap($di));
    };
  }
  function Provider(contextType, createdType, creator) {
    this.contextType_1 = contextType;
    this.createdType_1 = createdType;
    this.creator_1 = creator;
  }
  protoOf(Provider).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(Provider).get_createdType_5sj3yx_k$ = function () {
    return this.createdType_1;
  };
  protoOf(Provider).get_creator_i9xg03_k$ = function () {
    return this.creator_1;
  };
  protoOf(Provider).factoryName_1a29it_k$ = function () {
    return 'provider';
  };
  protoOf(Provider).getFactory_ti2nyr_k$ = function (key, di) {
    return Provider$getFactory$lambda(this, di);
  };
  protoOf(Provider).getFactory_3vdie4_k$ = function (key, di) {
    return this.getFactory_ti2nyr_k$(key, di);
  };
  function InstanceBinding$getFactory$lambda(this$0) {
    return function (_anonymous_parameter_0__qggqh8) {
      return this$0.instance_1;
    };
  }
  function InstanceBinding(createdType, instance) {
    this.createdType_1 = createdType;
    this.instance_1 = instance;
    this.contextType_1 = Companion_getInstance().get_Any_18jx5p_k$();
  }
  protoOf(InstanceBinding).get_createdType_5sj3yx_k$ = function () {
    return this.createdType_1;
  };
  protoOf(InstanceBinding).get_instance_mmff6q_k$ = function () {
    return this.instance_1;
  };
  protoOf(InstanceBinding).factoryName_1a29it_k$ = function () {
    return 'instance';
  };
  protoOf(InstanceBinding).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(InstanceBinding).getFactory_bnq6yp_k$ = function (key, di) {
    return InstanceBinding$getFactory$lambda(this);
  };
  protoOf(InstanceBinding).getFactory_3vdie4_k$ = function (key, di) {
    return this.getFactory_bnq6yp_k$(key, di);
  };
  protoOf(InstanceBinding).get_description_emjre5_k$ = function () {
    return this.factoryName_1a29it_k$() + ' ( ' + this.createdType_1.simpleDispString_fi18pn_k$() + ' )';
  };
  protoOf(InstanceBinding).get_fullDescription_vl3lz8_k$ = function () {
    return this.factoryFullName_a9f76k_k$() + ' ( ' + this.createdType_1.qualifiedDispString_lx0v0v_k$() + ' )';
  };
  function toProvider(_this__u8e3s4, arg) {
    return toProvider$lambda(_this__u8e3s4, arg);
  }
  function toProvider$lambda($this_toProvider, $arg) {
    return function () {
      return $this_toProvider($arg());
    };
  }
  function DIMainBuilderImpl(allowSilentOverride) {
    DIBuilderImpl.call(this, null, '', HashSet_init_$Create$(), new DIContainerBuilderImpl(true, allowSilentOverride, HashMap_init_$Create$(), ArrayList_init_$Create$(), ArrayList_init_$Create$()));
    this.externalSources_1 = ArrayList_init_$Create$();
    this.fullDescriptionOnError_1 = Companion_getInstance_1().get_defaultFullDescriptionOnError_leibws_k$();
    this.fullContainerTreeOnError_1 = Companion_getInstance_1().get_defaultFullContainerTreeOnError_9s42i7_k$();
  }
  protoOf(DIMainBuilderImpl).get_externalSources_ddqoas_k$ = function () {
    return this.externalSources_1;
  };
  protoOf(DIMainBuilderImpl).set_fullDescriptionOnError_iergas_k$ = function (_set____db54di) {
    this.fullDescriptionOnError_1 = _set____db54di;
  };
  protoOf(DIMainBuilderImpl).get_fullDescriptionOnError_wm7k5_k$ = function () {
    return this.fullDescriptionOnError_1;
  };
  protoOf(DIMainBuilderImpl).set_fullContainerTreeOnError_49kwap_k$ = function (_set____db54di) {
    this.fullContainerTreeOnError_1 = _set____db54di;
  };
  protoOf(DIMainBuilderImpl).get_fullContainerTreeOnError_m3wwgu_k$ = function () {
    return this.fullContainerTreeOnError_1;
  };
  protoOf(DIMainBuilderImpl).extend_5e6fyj_k$ = function (di, allowOverride, copy) {
    var keys = copy.keySet_jzujro_k$(di.get_container_1pul08_k$().get_tree_wov4yv_k$());
    this.get_containerBuilder_df8r4t_k$().extend_nvy7ev_k$(di.get_container_1pul08_k$(), allowOverride, keys);
    // Inline function 'kotlin.collections.plusAssign' call
    var this_0 = this.get_externalSources_ddqoas_k$();
    var elements = di.get_container_1pul08_k$().get_tree_wov4yv_k$().get_externalSources_ddqoas_k$();
    addAll(this_0, elements);
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_1 = this.get_containerBuilder_df8r4t_k$().get_bindingsMap_96ww3p_k$();
    var destination = ArrayList_init_$Create$();
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = this_1.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIMainBuilderImpl.extend.<anonymous>' call
      // Inline function 'kotlin.collections.map' call
      var this_2 = element.get_value_j01efc_k$();
      // Inline function 'kotlin.collections.mapTo' call
      var destination_0 = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_2, 10));
      var tmp0_iterator_0 = this_2.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator_0.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DIMainBuilderImpl.extend.<anonymous>.<anonymous>' call
        var tmp$ret$1 = item.get_fromModule_clazi7_k$();
        destination_0.add_utx5q5_k$(tmp$ret$1);
      }
      var list = destination_0;
      addAll(destination, list);
    }
    this.importedModules_1.addAll_4lagoh_k$(filterNotNull(destination));
  };
  protoOf(DIMainBuilderImpl).extend_h72go4_k$ = function (directDI, allowOverride, copy) {
    var keys = copy.keySet_jzujro_k$(directDI.get_container_1pul08_k$().get_tree_wov4yv_k$());
    this.get_containerBuilder_df8r4t_k$().extend_nvy7ev_k$(directDI.get_container_1pul08_k$(), allowOverride, keys);
    // Inline function 'kotlin.collections.plusAssign' call
    var this_0 = this.get_externalSources_ddqoas_k$();
    var elements = directDI.get_container_1pul08_k$().get_tree_wov4yv_k$().get_externalSources_ddqoas_k$();
    addAll(this_0, elements);
    // Inline function 'kotlin.collections.flatMap' call
    // Inline function 'kotlin.collections.flatMapTo' call
    var this_1 = this.get_containerBuilder_df8r4t_k$().get_bindingsMap_96ww3p_k$();
    var destination = ArrayList_init_$Create$();
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = this_1.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIMainBuilderImpl.extend.<anonymous>' call
      // Inline function 'kotlin.collections.map' call
      var this_2 = element.get_value_j01efc_k$();
      // Inline function 'kotlin.collections.mapTo' call
      var destination_0 = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_2, 10));
      var tmp0_iterator_0 = this_2.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator_0.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DIMainBuilderImpl.extend.<anonymous>.<anonymous>' call
        var tmp$ret$1 = item.get_fromModule_clazi7_k$();
        destination_0.add_utx5q5_k$(tmp$ret$1);
      }
      var list = destination_0;
      addAll(destination, list);
    }
    this.importedModules_1.addAll_4lagoh_k$(filterNotNull(destination));
  };
  function _get_builder__bi005y($this) {
    return $this.builder_1;
  }
  function _get_bindType__8ykw44($this) {
    return $this.bindType_1;
  }
  function _get_bindTag__kbzucs($this) {
    return $this.bindTag_1;
  }
  function _get_overrides__k260ay($this) {
    return $this.overrides_1;
  }
  function DIBuilderImpl$DelegateBinder$To$lambda($type, $tag) {
    return function ($this$$receiver) {
      return $this$$receiver.Instance_vwdrk9_k$($type, $tag);
    };
  }
  function _get__tag__d2v3rk($this) {
    return $this._tag_1;
  }
  function _get__overrides__shogyr($this) {
    return $this._overrides_1;
  }
  function _get__tag__d2v3rk_0($this) {
    return $this._tag_1;
  }
  function _get__overrides__shogyr_0($this) {
    return $this._overrides_1;
  }
  function _get_setBindingTag__z401cq($this) {
    return $this.setBindingTag_1;
  }
  function _get_setBindingType__mzrvny($this) {
    return $this.setBindingType_1;
  }
  function _get_setBinding__h924o8($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.setBinding$delegate_1;
    setBinding$factory();
    return this_0.get_value_j01efc_k$();
  }
  function DIBuilderImpl$SetBinder$setBinding$delegate$lambda(this$0, this$1) {
    return function () {
      var tmp = erasedComp(getKClass(Set), [this$0.setBindingType_1]);
      var setType = isInterface(tmp, TypeToken) ? tmp : THROW_CCE();
      var setKey = new Key(Companion_getInstance().get_Any_18jx5p_k$(), Companion_getInstance().get_Unit_wob9il_k$(), setType, this$0.setBindingTag_1);
      var tmp0_safe_receiver = this$1.get_containerBuilder_df8r4t_k$().get_bindingsMap_96ww3p_k$().get_wei43m_k$(setKey);
      var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : first(tmp0_safe_receiver);
      var tmp_0;
      if (tmp1_elvis_lhs == null) {
        throw IllegalStateException_init_$Create$('No set binding to ' + setKey);
      } else {
        tmp_0 = tmp1_elvis_lhs;
      }
      var setBinding = tmp_0;
      var tmp_1 = setBinding.get_binding_ivlno_k$();
      var tmp2_elvis_lhs = tmp_1 instanceof BaseMultiBinding ? tmp_1 : null;
      var tmp_2;
      if (tmp2_elvis_lhs == null) {
        throw IllegalStateException_init_$Create$('' + setKey + ' is associated to a ' + setBinding.get_binding_ivlno_k$().factoryName_1a29it_k$() + ' while it should be associated with bindingSet');
      } else {
        tmp_2 = tmp2_elvis_lhs;
      }
      return tmp_2;
    };
  }
  function _get_setBindingTag__z401cq_0($this) {
    return $this.setBindingTag_1;
  }
  function _get_setBindingArgType__vbdy0s($this) {
    return $this.setBindingArgType_1;
  }
  function _get_setBindingType__mzrvny_0($this) {
    return $this.setBindingType_1;
  }
  function _get_setBinding__h924o8_0($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.setBinding$delegate_1;
    setBinding$factory_0();
    return this_0.get_value_j01efc_k$();
  }
  function DIBuilderImpl$ArgSetBinder$setBinding$delegate$lambda(this$0, this$1) {
    return function () {
      var tmp = erasedComp(getKClass(Set), [this$0.setBindingType_1]);
      var setType = isInterface(tmp, TypeToken) ? tmp : THROW_CCE();
      var setKey = new Key(Companion_getInstance().get_Any_18jx5p_k$(), this$0.setBindingArgType_1, setType, this$0.setBindingTag_1);
      var tmp0_safe_receiver = this$1.get_containerBuilder_df8r4t_k$().get_bindingsMap_96ww3p_k$().get_wei43m_k$(setKey);
      var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : first(tmp0_safe_receiver);
      var tmp_0;
      if (tmp1_elvis_lhs == null) {
        throw IllegalStateException_init_$Create$('No set binding to ' + setKey);
      } else {
        tmp_0 = tmp1_elvis_lhs;
      }
      var setBinding = tmp_0;
      var tmp_1 = setBinding.get_binding_ivlno_k$();
      var tmp2_elvis_lhs = tmp_1 instanceof BaseMultiBinding ? tmp_1 : null;
      var tmp_2;
      if (tmp2_elvis_lhs == null) {
        throw IllegalStateException_init_$Create$('' + setKey + ' is associated to a ' + setBinding.get_binding_ivlno_k$().factoryName_1a29it_k$() + ' while it should be associated with bindingSet');
      } else {
        tmp_2 = tmp2_elvis_lhs;
      }
      return tmp_2;
    };
  }
  function _get_moduleName__jt0evo($this) {
    return $this.moduleName_1;
  }
  function _get_prefix__wiwq7t($this) {
    return $this.prefix_1;
  }
  function TypeBinder_0($outer, type, tag, overrides) {
    this.$this_1 = $outer;
    this.type_1 = type;
    this.tag_1 = tag;
    this.overrides_1 = overrides;
  }
  protoOf(TypeBinder_0).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(TypeBinder_0).get_tag_18ivnz_k$ = function () {
    return this.tag_1;
  };
  protoOf(TypeBinder_0).get_overrides_3vzn9e_k$ = function () {
    return this.overrides_1;
  };
  protoOf(TypeBinder_0).get_containerBuilder_df8r4t_k$ = function () {
    return this.$this_1.get_containerBuilder_df8r4t_k$();
  };
  protoOf(TypeBinder_0).with_65mxvy_k$ = function (binding) {
    return this.get_containerBuilder_df8r4t_k$().bind_3li2fm_k$(new Key(binding.get_contextType_c6z128_k$(), binding.get_argType_b1zqd5_k$(), this.type_1, this.tag_1), binding, this.$this_1.moduleName_1, this.overrides_1);
  };
  function DelegateBinder_0($outer, builder, bindType, bindTag, overrides) {
    bindTag = bindTag === VOID ? null : bindTag;
    overrides = overrides === VOID ? null : overrides;
    this.$this_1 = $outer;
    DelegateBinder.call(this);
    this.builder_1 = builder;
    this.bindType_1 = bindType;
    this.bindTag_1 = bindTag;
    this.overrides_1 = overrides;
  }
  protoOf(DelegateBinder_0).To_ix5vcq_k$ = function (type, tag) {
    var tmp = this.builder_1.get_contextType_c6z128_k$();
    this.builder_1.Bind_m6el0l_k$(this.bindTag_1, this.overrides_1, new Provider(tmp, this.bindType_1, DIBuilderImpl$DelegateBinder$To$lambda(type, tag)));
  };
  function DirectBinder_0($outer, _tag, _overrides) {
    this.$this_1 = $outer;
    this._tag_1 = _tag;
    this._overrides_1 = _overrides;
  }
  function ConstantBinder_0($outer, _tag, _overrides) {
    this.$this_1 = $outer;
    this._tag_1 = _tag;
    this._overrides_1 = _overrides;
  }
  protoOf(ConstantBinder_0).With_mijc21_k$ = function (valueType, value) {
    return this.$this_1.Bind_m6el0l_k$(this._tag_1, this._overrides_1, new InstanceBinding(valueType, value));
  };
  function SetBinder_0($outer, setBindingTag, setBindingType, setBindingOverrides, addSetBindingToContainer) {
    setBindingTag = setBindingTag === VOID ? null : setBindingTag;
    setBindingOverrides = setBindingOverrides === VOID ? null : setBindingOverrides;
    addSetBindingToContainer = addSetBindingToContainer === VOID ? true : addSetBindingToContainer;
    this.$this_1 = $outer;
    this.setBindingTag_1 = setBindingTag;
    this.setBindingType_1 = setBindingType;
    var tmp = this;
    tmp.setBinding$delegate_1 = lazy(DIBuilderImpl$SetBinder$setBinding$delegate$lambda(this, this.$this_1));
    if (addSetBindingToContainer) {
      var tmp_0 = Companion_getInstance().get_Any_18jx5p_k$();
      var tmp_1 = erasedComp(getKClass(Set), [this.setBindingType_1]);
      this.$this_1.Bind_m6el0l_k$(this.setBindingTag_1, setBindingOverrides, new SetBinding(tmp_0, this.setBindingType_1, isInterface(tmp_1, TypeToken) ? tmp_1 : THROW_CCE()));
    }
  }
  protoOf(SetBinder_0).add_w0th82_k$ = function (createBinding) {
    var binding = createBinding();
    var tmp = _get_setBinding__h924o8(this).get_set_18iwav_k$();
    (isInterface(tmp, MutableSet) ? tmp : THROW_CCE()).add_utx5q5_k$(binding);
  };
  protoOf(SetBinder_0).bind_szh7k5_k$ = function (tag, overrides, createBinding) {
    var binding = createBinding();
    var tmp = _get_setBinding__h924o8(this).get_set_18iwav_k$();
    (isInterface(tmp, MutableSet) ? tmp : THROW_CCE()).add_utx5q5_k$(binding);
    this.$this_1.Bind_m6el0l_k$(tag, overrides, binding);
  };
  function ArgSetBinder_0($outer, setBindingTag, setBindingOverrides, setBindingArgType, setBindingType, addSetBindingToContainer) {
    setBindingTag = setBindingTag === VOID ? null : setBindingTag;
    setBindingOverrides = setBindingOverrides === VOID ? null : setBindingOverrides;
    addSetBindingToContainer = addSetBindingToContainer === VOID ? true : addSetBindingToContainer;
    this.$this_1 = $outer;
    this.setBindingTag_1 = setBindingTag;
    this.setBindingArgType_1 = setBindingArgType;
    this.setBindingType_1 = setBindingType;
    var tmp = this;
    tmp.setBinding$delegate_1 = lazy(DIBuilderImpl$ArgSetBinder$setBinding$delegate$lambda(this, this.$this_1));
    if (addSetBindingToContainer) {
      var tmp_0 = Companion_getInstance().get_Any_18jx5p_k$();
      var tmp_1 = erasedComp(getKClass(Set), [this.setBindingType_1]);
      this.$this_1.Bind_m6el0l_k$(this.setBindingTag_1, setBindingOverrides, new ArgSetBinding(tmp_0, this.setBindingArgType_1, this.setBindingType_1, isInterface(tmp_1, TypeToken) ? tmp_1 : THROW_CCE()));
    }
  }
  protoOf(ArgSetBinder_0).add_ect9q8_k$ = function (createBinding) {
    var binding = createBinding();
    var tmp = _get_setBinding__h924o8_0(this).get_set_18iwav_k$();
    (isInterface(tmp, MutableSet) ? tmp : THROW_CCE()).add_utx5q5_k$(binding);
  };
  protoOf(ArgSetBinder_0).bind_3isvw3_k$ = function (tag, overrides, createBinding) {
    var binding = createBinding();
    var tmp = _get_setBinding__h924o8_0(this).get_set_18iwav_k$();
    (isInterface(tmp, MutableSet) ? tmp : THROW_CCE()).add_utx5q5_k$(binding);
    this.$this_1.Bind_m6el0l_k$(tag, overrides, binding);
  };
  function DIBuilderImpl(moduleName, prefix, importedModules, containerBuilder) {
    this.moduleName_1 = moduleName;
    this.prefix_1 = prefix;
    this.importedModules_1 = importedModules;
    this.containerBuilder_1 = containerBuilder;
    this.contextType_1 = Companion_getInstance().get_Any_18jx5p_k$();
  }
  protoOf(DIBuilderImpl).get_importedModules_yfg1m_k$ = function () {
    return this.importedModules_1;
  };
  protoOf(DIBuilderImpl).get_containerBuilder_df8r4t_k$ = function () {
    return this.containerBuilder_1;
  };
  protoOf(DIBuilderImpl).get_contextType_c6z128_k$ = function () {
    return this.contextType_1;
  };
  protoOf(DIBuilderImpl).get_scope_iyfcq3_k$ = function () {
    return new NoScope();
  };
  protoOf(DIBuilderImpl).get_explicitContext_ym4etq_k$ = function () {
    return false;
  };
  protoOf(DIBuilderImpl).Bind_k87ebn_k$ = function (type, tag, overrides) {
    return new TypeBinder_0(this, type, tag, overrides);
  };
  protoOf(DIBuilderImpl).Bind_m6el0l_k$ = function (tag, overrides, binding) {
    this.get_containerBuilder_df8r4t_k$().bind_3li2fm_k$(new Key(binding.get_contextType_c6z128_k$(), binding.get_argType_b1zqd5_k$(), binding.get_createdType_5sj3yx_k$(), tag), binding, this.moduleName_1, overrides);
  };
  protoOf(DIBuilderImpl).BindInSet_5q14wj_k$ = function (tag, overrides, type, creator) {
    return creator(new SetBinder_0(this, tag, type, overrides));
  };
  protoOf(DIBuilderImpl).InBindSet_xdzbgz_k$ = function (tag, overrides, type, creator) {
    return creator(new SetBinder_0(this, tag, type, overrides, false));
  };
  protoOf(DIBuilderImpl).BindInArgSet_bfoms3_k$ = function (tag, overrides, argType, type, creator) {
    return creator(new ArgSetBinder_0(this, tag, overrides, argType, type));
  };
  protoOf(DIBuilderImpl).InBindArgSet_oh9kvh_k$ = function (tag, overrides, argType, type, creator) {
    return creator(new ArgSetBinder_0(this, tag, overrides, argType, type, false));
  };
  protoOf(DIBuilderImpl).BindSet_4lrvr7_k$ = function (tag, overrides, binding) {
    return this.AddBindInSet_uyqzgd_k$(tag, overrides, binding);
  };
  protoOf(DIBuilderImpl).AddBindInSet_uyqzgd_k$ = function (tag, overrides, binding) {
    var tmp = erasedComp(getKClass(Set), [binding.get_createdType_5sj3yx_k$()]);
    var setType = isInterface(tmp, TypeToken) ? tmp : THROW_CCE();
    var setKey = new Key(binding.get_contextType_c6z128_k$(), binding.get_argType_b1zqd5_k$(), setType, tag);
    var tmp0_safe_receiver = this.get_containerBuilder_df8r4t_k$().get_bindingsMap_96ww3p_k$().get_wei43m_k$(setKey);
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : first(tmp0_safe_receiver);
    var tmp_0;
    if (tmp1_elvis_lhs == null) {
      throw IllegalStateException_init_$Create$('No set binding to ' + setKey);
    } else {
      tmp_0 = tmp1_elvis_lhs;
    }
    var setBinding = tmp_0;
    var tmp_1 = setBinding.get_binding_ivlno_k$();
    var tmp2_elvis_lhs = tmp_1 instanceof BaseMultiBinding ? tmp_1 : null;
    var tmp_2;
    if (tmp2_elvis_lhs == null) {
      throw IllegalStateException_init_$Create$('' + setKey + ' is associated to a ' + setBinding.get_binding_ivlno_k$().factoryName_1a29it_k$() + ' while it should be associated with bindingSet');
    } else {
      tmp_2 = tmp2_elvis_lhs;
    }
    var multipleBinding = tmp_2;
    var tmp_3 = multipleBinding.get_set_18iwav_k$();
    (isInterface(tmp_3, MutableSet) ? tmp_3 : THROW_CCE()).add_utx5q5_k$(binding);
  };
  protoOf(DIBuilderImpl).Bind_r59sum_k$ = function (tag, overrides) {
    return new DirectBinder_0(this, tag, overrides);
  };
  protoOf(DIBuilderImpl).constant_vezuiy_k$ = function (tag, overrides) {
    return new ConstantBinder_0(this, tag, overrides);
  };
  protoOf(DIBuilderImpl).Delegate_y16ygr_k$ = function (type, tag, overrides) {
    return new DelegateBinder_0(this, this, type, tag, overrides);
  };
  protoOf(DIBuilderImpl).import_3gb1gd_k$ = function (module_0, allowOverride) {
    var moduleName = this.prefix_1 + module_0.get_name_woqyms_k$();
    var tmp;
    // Inline function 'kotlin.text.isNotEmpty' call
    if (charSequenceLength(moduleName) > 0) {
      tmp = this.importedModules_1.contains_aljjnj_k$(moduleName);
    } else {
      tmp = false;
    }
    if (tmp) {
      throw IllegalStateException_init_$Create$('Module "' + moduleName + '" has already been imported!');
    }
    // Inline function 'kotlin.collections.plusAssign' call
    this.importedModules_1.add_utx5q5_k$(moduleName);
    // Inline function 'kotlin.apply' call
    var this_0 = new DIBuilderImpl(moduleName, this.prefix_1 + module_0.get_prefix_i78za3_k$(), this.importedModules_1, this.get_containerBuilder_df8r4t_k$().subBuilder_75ze1x_k$(allowOverride, module_0.get_allowSilentOverride_rg30ch_k$()));
    // Inline function 'kotlin.contracts.contract' call
    module_0.get_init_woo195_k$()(this_0);
  };
  protoOf(DIBuilderImpl).importAll_830u8g_k$ = function (modules, allowOverride) {
    var tmp0_iterator = modules.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIBuilderImpl.importAll.<anonymous>' call
      this.import_3gb1gd_k$(element, allowOverride);
    }
    return Unit_getInstance();
  };
  protoOf(DIBuilderImpl).importAll_ybdkza_k$ = function (modules, allowOverride) {
    var inductionVariable = 0;
    var last = modules.length;
    while (inductionVariable < last) {
      var element = modules[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      // Inline function 'org.kodein.di.internal.DIBuilderImpl.importAll.<anonymous>' call
      this.import_3gb1gd_k$(element, allowOverride);
    }
    return Unit_getInstance();
  };
  protoOf(DIBuilderImpl).importOnce_ede4oy_k$ = function (module_0, allowOverride) {
    // Inline function 'kotlin.text.isEmpty' call
    var this_0 = module_0.get_name_woqyms_k$();
    if (charSequenceLength(this_0) === 0)
      throw IllegalStateException_init_$Create$('importOnce must be given a named module.');
    if (!this.importedModules_1.contains_aljjnj_k$(module_0.get_name_woqyms_k$())) {
      this.import_3gb1gd_k$(module_0, allowOverride);
    }
  };
  protoOf(DIBuilderImpl).onReady_yw6z5f_k$ = function (cb) {
    return this.get_containerBuilder_df8r4t_k$().onReady_yw6z5f_k$(cb);
  };
  protoOf(DIBuilderImpl).RegisterContextTranslator_bzefpq_k$ = function (translator) {
    return this.get_containerBuilder_df8r4t_k$().registerContextTranslator_j7zgoe_k$(translator);
  };
  function setBinding$factory() {
    return getPropertyCallableRef('setBinding', 1, KProperty1, function (receiver) {
      return _get_setBinding__h924o8(receiver);
    }, null);
  }
  function setBinding$factory_0() {
    return getPropertyCallableRef('setBinding', 1, KProperty1, function (receiver) {
      return _get_setBinding__h924o8_0(receiver);
    }, null);
  }
  function DIContainerBuilderImpl$OverrideMode$ALLOW_SILENT() {
    OverrideMode.call(this, 'ALLOW_SILENT', 0);
    OverrideMode_ALLOW_SILENT_instance = this;
  }
  protoOf(DIContainerBuilderImpl$OverrideMode$ALLOW_SILENT).get_isAllowed_g593t7_k$ = function () {
    return true;
  };
  protoOf(DIContainerBuilderImpl$OverrideMode$ALLOW_SILENT).must_mbbyf_k$ = function (overrides) {
    return overrides;
  };
  var OverrideMode_ALLOW_SILENT_instance;
  function DIContainerBuilderImpl$OverrideMode$ALLOW_EXPLICIT() {
    OverrideMode.call(this, 'ALLOW_EXPLICIT', 1);
    OverrideMode_ALLOW_EXPLICIT_instance = this;
  }
  protoOf(DIContainerBuilderImpl$OverrideMode$ALLOW_EXPLICIT).get_isAllowed_g593t7_k$ = function () {
    return true;
  };
  protoOf(DIContainerBuilderImpl$OverrideMode$ALLOW_EXPLICIT).must_mbbyf_k$ = function (overrides) {
    return overrides == null ? false : overrides;
  };
  var OverrideMode_ALLOW_EXPLICIT_instance;
  function DIContainerBuilderImpl$OverrideMode$FORBID() {
    OverrideMode.call(this, 'FORBID', 2);
    OverrideMode_FORBID_instance = this;
  }
  protoOf(DIContainerBuilderImpl$OverrideMode$FORBID).get_isAllowed_g593t7_k$ = function () {
    return false;
  };
  protoOf(DIContainerBuilderImpl$OverrideMode$FORBID).must_mbbyf_k$ = function (overrides) {
    var tmp;
    if (!(overrides == null) ? overrides : false) {
      throw new OverridingException('Overriding has been forbidden');
    } else {
      tmp = false;
    }
    return tmp;
  };
  var OverrideMode_FORBID_instance;
  function Companion_5() {
    Companion_instance_5 = this;
  }
  protoOf(Companion_5).get_qnxchi_k$ = function (allow, silent) {
    if (!allow)
      return OverrideMode_FORBID_getInstance();
    if (silent)
      return OverrideMode_ALLOW_SILENT_getInstance();
    return OverrideMode_ALLOW_EXPLICIT_getInstance();
  };
  var Companion_instance_5;
  function Companion_getInstance_6() {
    OverrideMode_initEntries();
    if (Companion_instance_5 == null)
      new Companion_5();
    return Companion_instance_5;
  }
  function values() {
    return [OverrideMode_ALLOW_SILENT_getInstance(), OverrideMode_ALLOW_EXPLICIT_getInstance(), OverrideMode_FORBID_getInstance()];
  }
  function valueOf(value) {
    switch (value) {
      case 'ALLOW_SILENT':
        return OverrideMode_ALLOW_SILENT_getInstance();
      case 'ALLOW_EXPLICIT':
        return OverrideMode_ALLOW_EXPLICIT_getInstance();
      case 'FORBID':
        return OverrideMode_FORBID_getInstance();
      default:
        OverrideMode_initEntries();
        THROW_IAE('No enum constant value.');
        break;
    }
  }
  function get_entries() {
    if ($ENTRIES == null)
      $ENTRIES = enumEntries(values());
    return $ENTRIES;
  }
  var OverrideMode_entriesInitialized;
  function OverrideMode_initEntries() {
    if (OverrideMode_entriesInitialized)
      return Unit_getInstance();
    OverrideMode_entriesInitialized = true;
    OverrideMode_ALLOW_SILENT_instance = new DIContainerBuilderImpl$OverrideMode$ALLOW_SILENT();
    OverrideMode_ALLOW_EXPLICIT_instance = new DIContainerBuilderImpl$OverrideMode$ALLOW_EXPLICIT();
    OverrideMode_FORBID_instance = new DIContainerBuilderImpl$OverrideMode$FORBID();
    Companion_getInstance_6();
  }
  var $ENTRIES;
  function OverrideMode(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  function _get__overrideMode__tmsu1v($this) {
    return $this._overrideMode_1;
  }
  function checkOverrides($this, key, overrides) {
    var mustOverride = $this._overrideMode_1.must_mbbyf_k$(overrides);
    if (!(mustOverride == null)) {
      var tmp;
      if (mustOverride) {
        // Inline function 'kotlin.collections.contains' call
        // Inline function 'kotlin.collections.containsKey' call
        var this_0 = $this.bindingsMap_1;
        tmp = !(isInterface(this_0, Map) ? this_0 : THROW_CCE()).containsKey_aw81wo_k$(key);
      } else {
        tmp = false;
      }
      if (tmp)
        throw new OverridingException('Binding ' + key + ' must override an existing binding.');
      var tmp_0;
      if (!mustOverride) {
        // Inline function 'kotlin.collections.contains' call
        // Inline function 'kotlin.collections.containsKey' call
        var this_1 = $this.bindingsMap_1;
        tmp_0 = (isInterface(this_1, Map) ? this_1 : THROW_CCE()).containsKey_aw81wo_k$(key);
      } else {
        tmp_0 = false;
      }
      if (tmp_0)
        throw new OverridingException('Binding ' + key + ' must not override an existing binding.');
    }
  }
  function checkMatch($this, allowOverride) {
    if (!$this._overrideMode_1.get_isAllowed_g593t7_k$() ? allowOverride : false)
      throw new OverridingException('Overriding has been forbidden');
  }
  function OverrideMode_ALLOW_SILENT_getInstance() {
    OverrideMode_initEntries();
    return OverrideMode_ALLOW_SILENT_instance;
  }
  function OverrideMode_ALLOW_EXPLICIT_getInstance() {
    OverrideMode_initEntries();
    return OverrideMode_ALLOW_EXPLICIT_instance;
  }
  function OverrideMode_FORBID_getInstance() {
    OverrideMode_initEntries();
    return OverrideMode_FORBID_instance;
  }
  function DIContainerBuilderImpl(allowOverride, silentOverride, bindingsMap, callbacks, translators) {
    this.bindingsMap_1 = bindingsMap;
    this.callbacks_1 = callbacks;
    this.translators_1 = translators;
    this._overrideMode_1 = Companion_getInstance_6().get_qnxchi_k$(allowOverride, silentOverride);
  }
  protoOf(DIContainerBuilderImpl).get_bindingsMap_96ww3p_k$ = function () {
    return this.bindingsMap_1;
  };
  protoOf(DIContainerBuilderImpl).get_callbacks_8qyswr_k$ = function () {
    return this.callbacks_1;
  };
  protoOf(DIContainerBuilderImpl).get_translators_gjo3bk_k$ = function () {
    return this.translators_1;
  };
  protoOf(DIContainerBuilderImpl).bind_3li2fm_k$ = function (key, binding, fromModule, overrides) {
    checkOverrides(this, key, overrides);
    // Inline function 'kotlin.collections.getOrPut' call
    var this_0 = this.bindingsMap_1;
    var value = this_0.get_wei43m_k$(key);
    var tmp;
    if (value == null) {
      // Inline function 'org.kodein.di.internal.DIContainerBuilderImpl.bind.<anonymous>' call
      var answer = newLinkedList();
      this_0.put_4fpzoq_k$(key, answer);
      tmp = answer;
    } else {
      tmp = value;
    }
    var bindings = tmp;
    bindings.add_dl6gt3_k$(0, new DIDefining(isInterface(binding, DIBinding) ? binding : THROW_CCE(), fromModule));
  };
  protoOf(DIContainerBuilderImpl).extend_nvy7ev_k$ = function (container, allowOverride, copy) {
    checkMatch(this, allowOverride);
    // Inline function 'kotlin.collections.forEach' call
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = container.get_tree_wov4yv_k$().get_bindings_g97nah_k$().get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIContainerBuilderImpl.extend.<anonymous>' call
      // Inline function 'kotlin.collections.component1' call
      var key = element.get_key_18j28a_k$();
      // Inline function 'kotlin.collections.component2' call
      var bindings = element.get_value_j01efc_k$();
      if (!allowOverride) {
        checkOverrides(this, key, null);
      }
      var tmp;
      if (copy.contains_aljjnj_k$(key)) {
        // Inline function 'kotlin.also' call
        var this_0 = newLinkedList();
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'org.kodein.di.internal.DIContainerBuilderImpl.extend.<anonymous>.<anonymous>' call
        // Inline function 'kotlin.collections.mapTo' call
        var tmp0_iterator_0 = bindings.iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var item = tmp0_iterator_0.next_20eer_k$();
          // Inline function 'org.kodein.di.internal.DIContainerBuilderImpl.extend.<anonymous>.<anonymous>.<anonymous>' call
          var tmp0_safe_receiver = item.get_binding_ivlno_k$().get_copier_c07lcr_k$();
          var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.copy_zgyqr8_k$(this);
          var tmp$ret$3 = new DIDefining(tmp1_elvis_lhs == null ? item.get_binding_ivlno_k$() : tmp1_elvis_lhs, item.get_fromModule_clazi7_k$());
          this_0.add_utx5q5_k$(tmp$ret$3);
        }
        tmp = this_0;
      } else {
        tmp = newLinkedList_0(bindings);
      }
      var newBindings = tmp;
      // Inline function 'kotlin.collections.set' call
      this.bindingsMap_1.put_4fpzoq_k$(key, newBindings);
    }
    // Inline function 'kotlin.collections.plusAssign' call
    var this_1 = this.translators_1;
    var elements = container.get_tree_wov4yv_k$().get_registeredTranslators_4g1pxq_k$();
    addAll(this_1, elements);
  };
  protoOf(DIContainerBuilderImpl).subBuilder_75ze1x_k$ = function (allowOverride, silentOverride) {
    checkMatch(this, allowOverride);
    return new DIContainerBuilderImpl(allowOverride, silentOverride, this.bindingsMap_1, this.callbacks_1, this.translators_1);
  };
  protoOf(DIContainerBuilderImpl).onReady_yw6z5f_k$ = function (cb) {
    // Inline function 'kotlin.collections.plusAssign' call
    this.callbacks_1.add_utx5q5_k$(cb);
  };
  protoOf(DIContainerBuilderImpl).registerContextTranslator_j7zgoe_k$ = function (translator) {
    // Inline function 'kotlin.collections.plusAssign' call
    this.translators_1.add_utx5q5_k$(translator);
  };
  function _get_key__e6bh8y($this) {
    return $this.key_1;
  }
  function _get_overrideLevel__6ffqkn($this) {
    return $this.overrideLevel_1;
  }
  function _get_parent__oo9xup($this) {
    return $this.parent_1;
  }
  function _get_fullDescriptionOnError__r7rb5d($this) {
    return $this.fullDescriptionOnError_1;
  }
  function displayString($this, key, overrideLevel) {
    var descProp = $this.fullDescriptionOnError_1 ? bindFullDescription$factory_0(key) : bindDescription$factory_0(key);
    return !(overrideLevel === 0) ? 'overridden ' + descProp.get() : descProp.get();
  }
  function recursiveLoop($this, node, firstKey, firstOverrideLevel, tail) {
    var $this_0 = $this;
    var node_0 = node;
    var firstKey_0 = firstKey;
    var firstOverrideLevel_0 = firstOverrideLevel;
    var tail_0 = tail;
    $l$1: do {
      $l$0: do {
        var tmp;
        if (node_0.parent_1 == null ? true : firstKey_0.equals(node_0.key_1) ? firstOverrideLevel_0 === node_0.overrideLevel_1 : false) {
          tmp = plus(listOf(displayString($this_0, node_0.key_1, node_0.overrideLevel_1)), tail_0);
        } else {
          var tmp0 = $this_0;
          var tmp4 = plus(listOf(displayString($this_0, node_0.key_1, node_0.overrideLevel_1)), tail_0);
          $this_0 = tmp0;
          node_0 = node_0.parent_1;
          firstKey_0 = firstKey_0;
          firstOverrideLevel_0 = firstOverrideLevel_0;
          tail_0 = tmp4;
          continue $l$0;
        }
        return tmp;
      }
       while (false);
    }
     while (true);
  }
  function recursiveCheck($this, node, searchedKey, searchedOverrideLevel) {
    var $this_0 = $this;
    var node_0 = node;
    var searchedKey_0 = searchedKey;
    var searchedOverrideLevel_0 = searchedOverrideLevel;
    $l$1: do {
      $l$0: do {
        var tmp;
        if (node_0.key_1.equals(searchedKey_0) ? node_0.overrideLevel_1 === searchedOverrideLevel_0 : false) {
          tmp = false;
        } else if (node_0.parent_1 == null) {
          tmp = true;
        } else {
          $this_0 = $this_0;
          node_0 = node_0.parent_1;
          searchedKey_0 = searchedKey_0;
          searchedOverrideLevel_0 = searchedOverrideLevel_0;
          continue $l$0;
        }
        return tmp;
      }
       while (false);
    }
     while (true);
  }
  function _get_node__db0vwp($this) {
    return $this.node_1;
  }
  function _get_fullDescriptionOnError__r7rb5d_0($this) {
    return $this.fullDescriptionOnError_1;
  }
  function _get_fullContainerTreeOnError__aim49e($this) {
    return $this.fullContainerTreeOnError_1;
  }
  function _set_initCallbacks__13bf53($this, _set____db54di) {
    $this.initCallbacks_1 = _set____db54di;
  }
  function DIContainerImpl_init_$Init$(builder, externalSources, fullDescriptionOnError, fullContainerTreeOnError, runCallbacks, $this) {
    DIContainerImpl.call($this, new DITreeImpl(builder.get_bindingsMap_96ww3p_k$(), externalSources, builder.get_translators_gjo3bk_k$()), null, fullDescriptionOnError, fullContainerTreeOnError);
    var init = DIContainerImpl$_init_$lambda_r6ib3j($this, builder);
    if (runCallbacks)
      init();
    else {
      var lock = new Object();
      var tmp = $this;
      tmp.initCallbacks_1 = DIContainerImpl$_init_$lambda_r6ib3j_0(lock, $this, init);
    }
    return $this;
  }
  function DIContainerImpl_init_$Create$(builder, externalSources, fullDescriptionOnError, fullContainerTreeOnError, runCallbacks) {
    return DIContainerImpl_init_$Init$(builder, externalSources, fullDescriptionOnError, fullContainerTreeOnError, runCallbacks, objectCreate(protoOf(DIContainerImpl)));
  }
  function Node(key, overrideLevel, parent, fullDescriptionOnError) {
    this.key_1 = key;
    this.overrideLevel_1 = overrideLevel;
    this.parent_1 = parent;
    this.fullDescriptionOnError_1 = fullDescriptionOnError;
  }
  protoOf(Node).check_kkdhcs_k$ = function (searchedKey, searchedOverrideLevel) {
    if (!recursiveCheck(this, this, searchedKey, searchedOverrideLevel)) {
      var list = plus_0(recursiveLoop(this, this, searchedKey, searchedOverrideLevel, emptyList()), displayString(this, searchedKey, this.overrideLevel_1));
      var sb = StringBuilder_init_$Create$();
      // Inline function 'kotlin.collections.forEachIndexed' call
      var index = 0;
      var tmp0_iterator = list.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.Node.check.<anonymous>' call
        var tmp1 = index;
        index = tmp1 + 1 | 0;
        var index_0 = checkIndexOverflow(tmp1);
        sb.append_22ad7x_k$('  ');
        switch (index_0) {
          case 0:
            sb.append_22ad7x_k$('   ');
            break;
          case 1:
            sb.append_22ad7x_k$('  \u2554\u2569>');
            break;
          default:
            sb.append_22ad7x_k$('  \u2551');
            sb.append_22ad7x_k$(repeat('  ', index_0 - 1 | 0));
            sb.append_22ad7x_k$('\u255A>');
            break;
        }
        sb.append_22ad7x_k$(item);
        sb.append_22ad7x_k$('\n');
      }
      sb.append_22ad7x_k$('    \u255A');
      sb.append_22ad7x_k$(repeat('\u2550\u2550', list.get_size_woubt6_k$() - 1 | 0));
      sb.append_22ad7x_k$('\u255D');
      throw new DependencyLoopException('Dependency recursion:\n' + sb);
    }
  };
  function bindingDI($this, key, context, tree, overrideLevel) {
    var container = new DIContainerImpl(tree, new Node(key, overrideLevel, $this.node_1, $this.fullDescriptionOnError_1), $this.fullDescriptionOnError_1, $this.fullContainerTreeOnError_1);
    return new BindingDIImpl(new DirectDIImpl(container, context), key, overrideLevel);
  }
  function DIContainerImpl$_init_$lambda_r6ib3j(this$0, $builder) {
    return function () {
      var direct = new DirectDIImpl(this$0, get_AnyDIContext());
      var tmp0_iterator = $builder.get_callbacks_8qyswr_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DIContainerImpl.<init>.<anonymous>.<anonymous>' call
        element(direct);
      }
      return Unit_getInstance();
    };
  }
  function DIContainerImpl$_init_$lambda_r6ib3j_0($lock, this$0, $init) {
    return function () {
      $l$block_1: {
        // Inline function 'org.kodein.di.internal.synchronizedIfNotNull' call
        if (this$0.initCallbacks_1 == null) {
          // Inline function 'org.kodein.di.internal.DIContainerImpl.<init>.<anonymous>.<anonymous>' call
          break $l$block_1;
        }
        // Inline function 'org.kodein.di.internal.maySynchronized' call
        $l$block_0: {
          // Inline function 'org.kodein.di.internal.synchronizedIfNotNull.<anonymous>' call
          var tmp0_elvis_lhs = this$0.initCallbacks_1;
          var tmp;
          if (tmp0_elvis_lhs == null) {
            break $l$block_0;
          } else {
            tmp = tmp0_elvis_lhs;
          }
          var value = tmp;
          this$0.initCallbacks_1 = null;
          $init();
          break $l$block_1;
        }
        // Inline function 'org.kodein.di.internal.DIContainerImpl.<init>.<anonymous>.<anonymous>' call
      }
      return Unit_getInstance();
    };
  }
  function DIContainerImpl$factory$lambda($this$null, it) {
    return fullDescription($this$null, it);
  }
  function DIContainerImpl$factory$lambda_0($this$null, it) {
    return description($this$null, it);
  }
  function DIContainerImpl(tree, node, fullDescriptionOnError, fullContainerTreeOnError) {
    this.tree_1 = tree;
    this.node_1 = node;
    this.fullDescriptionOnError_1 = fullDescriptionOnError;
    this.fullContainerTreeOnError_1 = fullContainerTreeOnError;
    this.initCallbacks_1 = null;
  }
  protoOf(DIContainerImpl).get_tree_wov4yv_k$ = function () {
    return this.tree_1;
  };
  protoOf(DIContainerImpl).get_initCallbacks_77pnxx_k$ = function () {
    return this.initCallbacks_1;
  };
  protoOf(DIContainerImpl).factoryOrNull_jav97_k$ = function (key, context, overrideLevel) {
    // Inline function 'kotlin.let' call
    // Inline function 'kotlin.contracts.contract' call
    var it = this.tree_1.find$default_l7tnin_k$(key, 0);
    var tmp;
    if (it.get_size_woubt6_k$() === 1) {
      var tmp0_container = it.get_c1px32_k$(0);
      var definition = tmp0_container.component2_7eebsb_k$();
      var translator = tmp0_container.component3_7eebsa_k$();
      var tmp1_safe_receiver = this.node_1;
      if (tmp1_safe_receiver == null)
        null;
      else {
        tmp1_safe_receiver.check_kkdhcs_k$(key, 0);
      }
      var tmp_0 = Companion_getInstance_2().invoke_4wgfc3_k$(key.get_contextType_c6z128_k$(), context);
      var originalContext = isInterface(tmp_0, DIContext) ? tmp_0 : THROW_CCE();
      var tmp3_elvis_lhs = translator == null ? null : toKContext(translator, new DirectDIImpl(this, originalContext), context);
      var kContext = tmp3_elvis_lhs == null ? originalContext : tmp3_elvis_lhs;
      if (!(key instanceof Key))
        THROW_CCE();
      var bindingDI_0 = bindingDI(this, key, kContext, definition.get_tree_wov4yv_k$(), overrideLevel);
      return definition.get_binding_ivlno_k$().getFactory_3vdie4_k$(key, bindingDI_0);
    }
    var bindingDI_1 = bindingDI(this, key, Companion_getInstance_2().invoke_4wgfc3_k$(key.get_contextType_c6z128_k$(), context), this.tree_1, overrideLevel);
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator = this.tree_1.get_externalSources_ddqoas_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIContainerImpl.factoryOrNull.<anonymous>' call
      var tmp0_safe_receiver = element.getFactory_51iulf_k$(bindingDI_1, key);
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        var tmp0_safe_receiver_0 = this.node_1;
        if (tmp0_safe_receiver_0 == null)
          null;
        else {
          tmp0_safe_receiver_0.check_kkdhcs_k$(key, 0);
        }
        return (!(tmp0_safe_receiver == null) ? typeof tmp0_safe_receiver === 'function' : false) ? tmp0_safe_receiver : THROW_CCE();
      }
    }
    return null;
  };
  protoOf(DIContainerImpl).factory_isjdsh_k$ = function (key, context, overrideLevel) {
    var result = this.tree_1.find$default_l7tnin_k$(key, overrideLevel);
    if (result.get_size_woubt6_k$() === 1) {
      var tmp0_container = result.get_c1px32_k$(0);
      var definition = tmp0_container.component2_7eebsb_k$();
      var translator = tmp0_container.component3_7eebsa_k$();
      var tmp1_safe_receiver = this.node_1;
      if (tmp1_safe_receiver == null)
        null;
      else {
        tmp1_safe_receiver.check_kkdhcs_k$(key, overrideLevel);
      }
      var tmp = Companion_getInstance_2().invoke_4wgfc3_k$(key.get_contextType_c6z128_k$(), context);
      var originalContext = isInterface(tmp, DIContext) ? tmp : THROW_CCE();
      var tmp3_elvis_lhs = translator == null ? null : toKContext(translator, new DirectDIImpl(this, originalContext), context);
      var kContext = tmp3_elvis_lhs == null ? originalContext : tmp3_elvis_lhs;
      if (!(key instanceof Key))
        THROW_CCE();
      var bindingDI_0 = bindingDI(this, key, kContext, definition.get_tree_wov4yv_k$(), overrideLevel);
      return definition.get_binding_ivlno_k$().getFactory_3vdie4_k$(key, bindingDI_0);
    }
    var bindingDI_1 = bindingDI(this, key, Companion_getInstance_2().invoke_4wgfc3_k$(key.get_contextType_c6z128_k$(), context), this.tree_1, overrideLevel);
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator = this.tree_1.get_externalSources_ddqoas_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIContainerImpl.factory.<anonymous>' call
      var tmp0_safe_receiver = element.getFactory_51iulf_k$(bindingDI_1, key);
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        var tmp0_safe_receiver_0 = this.node_1;
        if (tmp0_safe_receiver_0 == null)
          null;
        else {
          tmp0_safe_receiver_0.check_kkdhcs_k$(key, overrideLevel);
        }
        return (!(tmp0_safe_receiver == null) ? typeof tmp0_safe_receiver === 'function' : false) ? tmp0_safe_receiver : THROW_CCE();
      }
    }
    var withOverrides = !(overrideLevel === 0);
    var descProp = this.fullDescriptionOnError_1 ? fullDescription$factory_0(key) : description$factory_0(key);
    var tmp_0;
    if (this.fullDescriptionOnError_1) {
      tmp_0 = DIContainerImpl$factory$lambda;
    } else {
      tmp_0 = DIContainerImpl$factory$lambda_0;
    }
    var descFun = tmp_0;
    if (result.isEmpty_y1axqb_k$()) {
      // 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 'org.kodein.di.internal.DIContainerImpl.factory.<anonymous>' call
      this_0.append_22ad7x_k$('No binding found for ' + descProp.get());
      if (this.fullContainerTreeOnError_1) {
        // Inline function 'kotlin.text.appendLine' call
        this_0.append_am5a4z_k$(_Char___init__impl__6a9atx(10));
        var forType = this.tree_1.find_njtemv_k$(new SearchSpecs(VOID, VOID, key.get_type_wovaf7_k$()));
        // Inline function 'kotlin.collections.isNotEmpty' call
        if (!forType.isEmpty_y1axqb_k$()) {
          // Inline function 'kotlin.collections.associate' call
          var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault(forType, 10)), 16);
          // Inline function 'kotlin.collections.associateTo' call
          var destination = LinkedHashMap_init_$Create$_0(capacity);
          var tmp0_iterator_0 = forType.iterator_jk1svi_k$();
          while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
            var element_0 = tmp0_iterator_0.next_20eer_k$();
            // Inline function 'kotlin.collections.plusAssign' call
            // Inline function 'org.kodein.di.internal.DIContainerImpl.factory.<anonymous>.<anonymous>' call
            var pair = to(element_0.get_first_irdx8n_k$(), element_0.get_second_jf7fjx_k$());
            destination.put_4fpzoq_k$(pair.get_first_irdx8n_k$(), pair.get_second_jf7fjx_k$());
          }
          this_0.append_22ad7x_k$('Available bindings for this type:\n' + descFun(destination, withOverrides));
        }
        this_0.append_22ad7x_k$('Registered in this DI container:\n' + descFun(this.tree_1.get_bindings_g97nah_k$(), withOverrides));
      }
      var description = this_0.toString();
      throw new NotFoundException(key, description);
    }
    // Inline function 'kotlin.collections.associate' call
    var capacity_0 = coerceAtLeast(mapCapacity(collectionSizeOrDefault(result, 10)), 16);
    // Inline function 'kotlin.collections.associateTo' call
    var destination_0 = LinkedHashMap_init_$Create$_0(capacity_0);
    var tmp0_iterator_1 = result.iterator_jk1svi_k$();
    while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
      var element_1 = tmp0_iterator_1.next_20eer_k$();
      // Inline function 'kotlin.collections.plusAssign' call
      // Inline function 'org.kodein.di.internal.DIContainerImpl.factory.<anonymous>' call
      var pair_0 = to(element_1.get_first_irdx8n_k$(), ensureNotNull(this.tree_1.get_ypv49o_k$(element_1.get_first_irdx8n_k$())).get_second_jf7fjx_k$());
      destination_0.put_4fpzoq_k$(pair_0.get_first_irdx8n_k$(), pair_0.get_second_jf7fjx_k$());
    }
    var potentials = destination_0;
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var this_1 = this.tree_1.get_bindings_g97nah_k$();
    var destination_1 = LinkedHashMap_init_$Create$();
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator_2 = this_1.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator_2.hasNext_bitz1p_k$()) {
      var element_2 = tmp0_iterator_2.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIContainerImpl.factory.<anonymous>' call
      // Inline function 'kotlin.collections.component1' call
      var key_0 = element_2.get_key_18j28a_k$();
      if (!potentials.get_keys_wop4xp_k$().contains_aljjnj_k$(key_0)) {
        destination_1.put_4fpzoq_k$(element_2.get_key_18j28a_k$(), element_2.get_value_j01efc_k$());
      }
    }
    var others = destination_1;
    throw new NotFoundException(key, '' + potentials.get_size_woubt6_k$() + ' bindings found that match ' + key + ':\n' + descFun(potentials, withOverrides) + 'Other bindings registered in DI:\n' + descFun(others, withOverrides));
  };
  protoOf(DIContainerImpl).allFactories_3u4qlu_k$ = function (key, context, overrideLevel) {
    var result = this.tree_1.find_nbwl90_k$(key, overrideLevel, true);
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(result, 10));
    var tmp0_iterator = result.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DIContainerImpl.allFactories.<anonymous>' call
      var definition = item.component2_7eebsb_k$();
      var translator = item.component3_7eebsa_k$();
      var tmp0_safe_receiver = this.node_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        tmp0_safe_receiver.check_kkdhcs_k$(key, overrideLevel);
      }
      var tmp = Companion_getInstance_2().invoke_4wgfc3_k$(key.get_contextType_c6z128_k$(), context);
      var originalContext = isInterface(tmp, DIContext) ? tmp : THROW_CCE();
      var tmp2_elvis_lhs = translator == null ? null : toKContext(translator, new DirectDIImpl(this, originalContext), context);
      var kContext = tmp2_elvis_lhs == null ? originalContext : tmp2_elvis_lhs;
      if (!(key instanceof Key))
        THROW_CCE();
      var bindingDI_0 = bindingDI(this, key, kContext, definition.get_tree_wov4yv_k$(), overrideLevel);
      var tmp$ret$0 = definition.get_binding_ivlno_k$().getFactory_3vdie4_k$(key, bindingDI_0);
      destination.add_utx5q5_k$(tmp$ret$0);
    }
    return destination;
  };
  function bindFullDescription$factory_0($b0) {
    return getPropertyCallableRef('bindFullDescription', 0, KProperty0, function () {
      return $b0.get_bindFullDescription_qg22kn_k$();
    }, null);
  }
  function bindDescription$factory_0($b0) {
    return getPropertyCallableRef('bindDescription', 0, KProperty0, function () {
      return $b0.get_bindDescription_5en1cm_k$();
    }, null);
  }
  function fullDescription$factory_0($b0) {
    return getPropertyCallableRef('fullDescription', 0, KProperty0, function () {
      return $b0.get_fullDescription_vl3lz8_k$();
    }, null);
  }
  function description$factory_0($b0) {
    return getPropertyCallableRef('description', 0, KProperty0, function () {
      return $b0.get_description_emjre5_k$();
    }, null);
  }
  function newBuilder($this, allowSilentOverride, init) {
    // Inline function 'kotlin.apply' call
    var this_0 = new DIMainBuilderImpl(allowSilentOverride);
    // Inline function 'kotlin.contracts.contract' call
    init(this_0);
    return this_0;
  }
  function newBuilder$default($this, allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return newBuilder($this, allowSilentOverride, init);
  }
  function DIImpl$Companion$withDelayedCallbacks$lambda($di) {
    return function () {
      var tmp0_safe_receiver = $di._container_1.get_initCallbacks_77pnxx_k$();
      if (tmp0_safe_receiver == null)
        null;
      else
        tmp0_safe_receiver();
      return Unit_getInstance();
    };
  }
  function _get__container__asmkon($this) {
    return $this._container_1;
  }
  function DIImpl_init_$Init$(builder, runCallbacks, $this) {
    DIImpl.call($this, DIContainerImpl_init_$Create$(builder.get_containerBuilder_df8r4t_k$(), builder.get_externalSources_ddqoas_k$(), builder.get_fullDescriptionOnError_wm7k5_k$(), builder.get_fullContainerTreeOnError_m3wwgu_k$(), runCallbacks));
    return $this;
  }
  function DIImpl_init_$Create$(builder, runCallbacks) {
    return DIImpl_init_$Init$(builder, runCallbacks, objectCreate(protoOf(DIImpl)));
  }
  function DIImpl_init_$Init$_0(allowSilentOverride, init, $this) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    DIImpl_init_$Init$(newBuilder(Companion_getInstance_7(), allowSilentOverride, init), true, $this);
    return $this;
  }
  function DIImpl_init_$Create$_0(allowSilentOverride, init) {
    return DIImpl_init_$Init$_0(allowSilentOverride, init, objectCreate(protoOf(DIImpl)));
  }
  function Companion_6() {
    Companion_instance_6 = this;
  }
  protoOf(Companion_6).withDelayedCallbacks_xnhkxp_k$ = function (allowSilentOverride, init) {
    var di = DIImpl_init_$Create$(newBuilder(this, allowSilentOverride, init), false);
    return to(di, DIImpl$Companion$withDelayedCallbacks$lambda(di));
  };
  protoOf(Companion_6).withDelayedCallbacks$default_4sswzh_k$ = function (allowSilentOverride, init, $super) {
    allowSilentOverride = allowSilentOverride === VOID ? false : allowSilentOverride;
    return $super === VOID ? this.withDelayedCallbacks_xnhkxp_k$(allowSilentOverride, init) : $super.withDelayedCallbacks_xnhkxp_k$.call(this, allowSilentOverride, init);
  };
  var Companion_instance_6;
  function Companion_getInstance_7() {
    if (Companion_instance_6 == null)
      new Companion_6();
    return Companion_instance_6;
  }
  function DIImpl$container$delegate$lambda(this$0) {
    return function () {
      var tmp;
      if (!(this$0._container_1.get_initCallbacks_77pnxx_k$() == null)) {
        throw IllegalStateException_init_$Create$('DI has not been initialized');
      }
      return this$0._container_1;
    };
  }
  function DIImpl(_container) {
    Companion_getInstance_7();
    this._container_1 = _container;
    var tmp = this;
    tmp.container$delegate_1 = lazy(DIImpl$container$delegate$lambda(this));
  }
  protoOf(DIImpl).get_container_1pul08_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.container$delegate_1;
    container$factory();
    return this_0.get_value_j01efc_k$();
  };
  function _get_overrideLevel__6ffqkn_0($this) {
    return $this.overrideLevel_1;
  }
  function BindingDIImpl(directDI, key, overrideLevel) {
    this.directDI_1 = directDI;
    this.key_1 = key;
    this.overrideLevel_1 = overrideLevel;
  }
  protoOf(BindingDIImpl).get_directDI_rqg7bd_k$ = function () {
    return this.directDI_1;
  };
  protoOf(BindingDIImpl).get_key_18j28a_k$ = function () {
    return this.key_1;
  };
  protoOf(BindingDIImpl).get_container_1pul08_k$ = function () {
    return this.directDI_1.get_container_1pul08_k$();
  };
  protoOf(BindingDIImpl).get_di_knto1e_k$ = function () {
    return this.directDI_1.get_di_knto1e_k$();
  };
  protoOf(BindingDIImpl).get_lazy_wopozh_k$ = function () {
    return this.directDI_1.get_lazy_wopozh_k$();
  };
  protoOf(BindingDIImpl).Factory_54q17q_k$ = function (argType, type, tag) {
    return this.directDI_1.Factory_54q17q_k$(argType, type, tag);
  };
  protoOf(BindingDIImpl).FactoryOrNull_f8e6ls_k$ = function (argType, type, tag) {
    return this.directDI_1.FactoryOrNull_f8e6ls_k$(argType, type, tag);
  };
  protoOf(BindingDIImpl).Instance_vwdrk9_k$ = function (type, tag) {
    return this.directDI_1.Instance_vwdrk9_k$(type, tag);
  };
  protoOf(BindingDIImpl).Instance_spguml_k$ = function (argType, type, tag, arg) {
    return this.directDI_1.Instance_spguml_k$(argType, type, tag, arg);
  };
  protoOf(BindingDIImpl).InstanceOrNull_akutzz_k$ = function (type, tag) {
    return this.directDI_1.InstanceOrNull_akutzz_k$(type, tag);
  };
  protoOf(BindingDIImpl).InstanceOrNull_5l1mxv_k$ = function (argType, type, tag, arg) {
    return this.directDI_1.InstanceOrNull_5l1mxv_k$(argType, type, tag, arg);
  };
  protoOf(BindingDIImpl).On_r75fd9_k$ = function (context) {
    return this.directDI_1.On_r75fd9_k$(context);
  };
  protoOf(BindingDIImpl).Provider_ehs6tv_k$ = function (type, tag) {
    return this.directDI_1.Provider_ehs6tv_k$(type, tag);
  };
  protoOf(BindingDIImpl).Provider_lm93ss_k$ = function (argType, type, tag, arg) {
    return this.directDI_1.Provider_lm93ss_k$(argType, type, tag, arg);
  };
  protoOf(BindingDIImpl).ProviderOrNull_830ut9_k$ = function (type, tag) {
    return this.directDI_1.ProviderOrNull_830ut9_k$(type, tag);
  };
  protoOf(BindingDIImpl).ProviderOrNull_33f8by_k$ = function (argType, type, tag, arg) {
    return this.directDI_1.ProviderOrNull_33f8by_k$(argType, type, tag, arg);
  };
  protoOf(BindingDIImpl).overriddenFactory_e8w2ie_k$ = function () {
    var tmp = this.get_container_1pul08_k$().factory_isjdsh_k$(this.key_1, this.get_context_h02k06_k$(), this.overrideLevel_1 + 1 | 0);
    return typeof tmp === 'function' ? tmp : THROW_CCE();
  };
  protoOf(BindingDIImpl).overriddenFactoryOrNull_9stnxc_k$ = function () {
    var tmp = this.get_container_1pul08_k$().factoryOrNull_jav97_k$(this.key_1, this.get_context_h02k06_k$(), this.overrideLevel_1 + 1 | 0);
    return (tmp == null ? true : typeof tmp === 'function') ? tmp : THROW_CCE();
  };
  protoOf(BindingDIImpl).get_context_h02k06_k$ = function () {
    var tmp = this.get_directDI_rqg7bd_k$().get_di_knto1e_k$().get_diContext_hye8ch_k$().get_value_j01efc_k$();
    return !(tmp == null) ? tmp : THROW_CCE();
  };
  protoOf(BindingDIImpl).onErasedContext_uyq5vy_k$ = function () {
    return new BindingDIImpl(this.get_directDI_rqg7bd_k$().On_r75fd9_k$(ErasedContext_getInstance()), this.key_1, this.overrideLevel_1);
  };
  function container$factory() {
    return getPropertyCallableRef('container', 1, KProperty1, function (receiver) {
      return receiver.get_container_1pul08_k$();
    }, null);
  }
  function _get__cache__b2fe3c_0($this) {
    return $this._cache_1;
  }
  function _get__typeTree__x763fe($this) {
    return $this._typeTree_1;
  }
  function _get_translators__73bymw($this) {
    return $this.translators_1;
  }
  function findBySpecs($this, specs) {
    var bindSeq = asSequence_0($this._typeTree_1);
    var specsBindType = specs.get_type_wovaf7_k$();
    if (!(specsBindType == null) ? !equals(specsBindType, Companion_getInstance().get_Any_18jx5p_k$()) : false) {
      var tmp = bindSeq;
      bindSeq = filter(tmp, DITreeImpl$findBySpecs$lambda(specsBindType));
    }
    var tmp_0 = bindSeq;
    var contextSeq = flatMap(tmp_0, DITreeImpl$findBySpecs$lambda_0);
    var specsContextType = specs.get_contextType_c6z128_k$();
    if (!(specsContextType == null)) {
      var tmp_1 = contextSeq;
      contextSeq = mapNotNull(tmp_1, DITreeImpl$findBySpecs$lambda_1(specsContextType, $this));
    }
    var tmp_2 = contextSeq;
    var argSeq = flatMap(tmp_2, DITreeImpl$findBySpecs$lambda_2);
    var specsArgType = specs.get_argType_b1zqd5_k$();
    if (!(specsArgType == null)) {
      var tmp_3 = argSeq;
      argSeq = filter(tmp_3, DITreeImpl$findBySpecs$lambda_3(specsArgType));
    }
    var tmp_4 = argSeq;
    var tagSeq = flatMap(tmp_4, DITreeImpl$findBySpecs$lambda_4);
    var specsTag = specs.get_tag_18ivnz_k$();
    if (!equals(specsTag, NoDefinedTag_getInstance())) {
      var tmp_5 = tagSeq;
      tagSeq = filter(tmp_5, DITreeImpl$findBySpecs$lambda_5(specsTag));
    }
    var tmp_6 = tagSeq;
    var resultSeq = map(tmp_6, DITreeImpl$findBySpecs$lambda_6);
    return toList_0(resultSeq);
  }
  function notInMap($this, result, request) {
    var tmp = result.get_internalDescription_qj0sx6_k$();
    var tmp_0 = request.get_internalDescription_qj0sx6_k$();
    var tmp_1 = $this._cache_1.get_keys_wop4xp_k$();
    return IllegalStateException_init_$Create$('Tree returned key ' + tmp + ' that is not in cache when searching for ' + tmp_0 + '.\nKeys in cache:\n' + joinToString(tmp_1, '\n', VOID, VOID, VOID, VOID, DITreeImpl$notInMap$lambda));
  }
  function DITreeImpl$findBySpecs$lambda($specsBindType) {
    return function (_name_for_destructuring_parameter_0__wldtmu) {
      // Inline function 'kotlin.collections.component1' call
      var bindType = _name_for_destructuring_parameter_0__wldtmu.get_key_18j28a_k$();
      return bindType.check_pb7nz4_k$($specsBindType);
    };
  }
  function DITreeImpl$findBySpecs$lambda_0(_name_for_destructuring_parameter_0__wldtmu) {
    // Inline function 'kotlin.collections.component2' call
    var contextTree = _name_for_destructuring_parameter_0__wldtmu.get_value_j01efc_k$();
    var tmp = asSequence_0(contextTree);
    return map(tmp, DITreeImpl$findBySpecs$lambda$lambda);
  }
  function DITreeImpl$findBySpecs$lambda$lambda(it) {
    return new Triple(it.get_key_18j28a_k$(), it.get_value_j01efc_k$(), null);
  }
  function DITreeImpl$findBySpecs$lambda_1($specsContextType, this$0) {
    return function (triple) {
      var contextType = triple.component1_7eebsc_k$();
      var tmp;
      if (contextType.check_pb7nz4_k$($specsContextType)) {
        tmp = triple;
      } else {
        var tmp$ret$1;
        $l$block: {
          // Inline function 'kotlin.collections.firstOrNull' call
          var tmp0_iterator = this$0.translators_1.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var element = tmp0_iterator.next_20eer_k$();
            // Inline function 'org.kodein.di.internal.DITreeImpl.findBySpecs.<anonymous>.<anonymous>' call
            if (element.get_contextType_c6z128_k$().isAssignableFrom_qb3ccr_k$($specsContextType) ? contextType.check_pb7nz4_k$(element.get_scopeType_s951x7_k$()) : false) {
              tmp$ret$1 = element;
              break $l$block;
            }
          }
          tmp$ret$1 = null;
        }
        var translator = tmp$ret$1;
        tmp = !(translator == null) ? triple.copy$default_wmtbyu_k$(VOID, VOID, translator) : null;
      }
      return tmp;
    };
  }
  function DITreeImpl$findBySpecs$lambda_2(_name_for_destructuring_parameter_0__wldtmu) {
    var argumentTree = _name_for_destructuring_parameter_0__wldtmu.component2_7eebsb_k$();
    var translator = _name_for_destructuring_parameter_0__wldtmu.component3_7eebsa_k$();
    var tmp = asSequence_0(argumentTree);
    return map(tmp, DITreeImpl$findBySpecs$lambda$lambda_0(translator));
  }
  function DITreeImpl$findBySpecs$lambda$lambda_0($translator) {
    return function (it) {
      return new Triple(it.get_key_18j28a_k$(), it.get_value_j01efc_k$(), $translator);
    };
  }
  function DITreeImpl$findBySpecs$lambda_3($specsArgType) {
    return function (_name_for_destructuring_parameter_0__wldtmu) {
      var argType = _name_for_destructuring_parameter_0__wldtmu.component1_7eebsc_k$();
      return argType.check_pb7nz4_k$($specsArgType);
    };
  }
  function DITreeImpl$findBySpecs$lambda_4(_name_for_destructuring_parameter_0__wldtmu) {
    var tagTree = _name_for_destructuring_parameter_0__wldtmu.component2_7eebsb_k$();
    var translator = _name_for_destructuring_parameter_0__wldtmu.component3_7eebsa_k$();
    var tmp = asSequence_0(tagTree);
    return map(tmp, DITreeImpl$findBySpecs$lambda$lambda_1(translator));
  }
  function DITreeImpl$findBySpecs$lambda$lambda_1($translator) {
    return function (it) {
      return new Triple(it.get_key_18j28a_k$(), it.get_value_j01efc_k$(), $translator);
    };
  }
  function DITreeImpl$findBySpecs$lambda_5($specsTag) {
    return function (_name_for_destructuring_parameter_0__wldtmu) {
      var tag = _name_for_destructuring_parameter_0__wldtmu.component1_7eebsc_k$();
      return equals(tag, $specsTag);
    };
  }
  function DITreeImpl$findBySpecs$lambda_6(_name_for_destructuring_parameter_0__wldtmu) {
    var key = _name_for_destructuring_parameter_0__wldtmu.component2_7eebsb_k$();
    var translator = _name_for_destructuring_parameter_0__wldtmu.component3_7eebsa_k$();
    return to(key, translator);
  }
  function DITreeImpl$notInMap$lambda(it) {
    return it.get_internalDescription_qj0sx6_k$();
  }
  function DITreeImpl(map, externalSources, registeredTranslators) {
    this.externalSources_1 = externalSources;
    this.registeredTranslators_1 = registeredTranslators;
    this._cache_1 = newConcurrentMap();
    this._typeTree_1 = HashMap_init_$Create$();
    this.translators_1 = ArrayList_init_$Create$_1(this.registeredTranslators_1);
    // Inline function 'kotlin.collections.forEach' call
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = map.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>' call
      // Inline function 'kotlin.collections.component1' call
      var key = element.get_key_18j28a_k$();
      // Inline function 'kotlin.collections.component2' call
      var bindings = element.get_value_j01efc_k$();
      // Inline function 'kotlin.collections.map' call
      // Inline function 'kotlin.collections.mapTo' call
      var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(bindings, 10));
      var tmp0_iterator_0 = bindings.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var item = tmp0_iterator_0.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>.<anonymous>' call
        var tmp;
        if (item instanceof DIDefinition) {
          tmp = item;
        } else {
          tmp = new DIDefinition(item.get_binding_ivlno_k$(), item.get_fromModule_clazi7_k$(), this);
        }
        var tmp$ret$3 = tmp;
        destination.add_utx5q5_k$(tmp$ret$3);
      }
      var definitions = destination;
      // Inline function 'kotlin.collections.set' call
      var this_0 = this._cache_1;
      var value = new Triple(key, definitions, null);
      this_0.put_4fpzoq_k$(key, value);
      var typeChecker = first(bindings).get_binding_ivlno_k$().get_supportSubTypes_5g5om9_k$() ? new Down(key.get_type_wovaf7_k$()) : new Up(key.get_type_wovaf7_k$());
      // Inline function 'kotlin.collections.getOrPut' call
      var this_1 = this._typeTree_1;
      var value_0 = this_1.get_wei43m_k$(typeChecker);
      var tmp_0;
      if (value_0 == null) {
        // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>.<anonymous>' call
        var answer = HashMap_init_$Create$();
        this_1.put_4fpzoq_k$(typeChecker, answer);
        tmp_0 = answer;
      } else {
        tmp_0 = value_0;
      }
      var contextTree = tmp_0;
      // Inline function 'kotlin.collections.getOrPut' call
      var key_0 = new Down(key.get_contextType_c6z128_k$());
      var value_1 = contextTree.get_wei43m_k$(key_0);
      var tmp_1;
      if (value_1 == null) {
        // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>.<anonymous>' call
        var answer_0 = HashMap_init_$Create$();
        contextTree.put_4fpzoq_k$(key_0, answer_0);
        tmp_1 = answer_0;
      } else {
        tmp_1 = value_1;
      }
      var argumentTree = tmp_1;
      // Inline function 'kotlin.collections.getOrPut' call
      var key_1 = new Down(key.get_argType_b1zqd5_k$());
      var value_2 = argumentTree.get_wei43m_k$(key_1);
      var tmp_2;
      if (value_2 == null) {
        // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>.<anonymous>' call
        var answer_1 = HashMap_init_$Create$();
        argumentTree.put_4fpzoq_k$(key_1, answer_1);
        tmp_2 = answer_1;
      } else {
        tmp_2 = value_2;
      }
      var tagTree = tmp_2;
      // Inline function 'kotlin.collections.set' call
      var key_2 = key.get_tag_18ivnz_k$();
      tagTree.put_4fpzoq_k$(key_2, key);
    }
    var tmp_3 = this;
    // Inline function 'kotlin.collections.mapValues' call
    var this_2 = this._cache_1;
    // Inline function 'kotlin.collections.mapValuesTo' call
    var destination_0 = LinkedHashMap_init_$Create$_0(mapCapacity(this_2.get_size_woubt6_k$()));
    // Inline function 'kotlin.collections.associateByTo' call
    var tmp0_iterator_1 = this_2.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
      var element_0 = tmp0_iterator_1.next_20eer_k$();
      // Inline function 'kotlin.collections.mapValuesTo.<anonymous>' call
      var tmp_4 = element_0.get_key_18j28a_k$();
      // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>' call
      var tmp$ret$13 = element_0.get_value_j01efc_k$().get_second_jf7fjx_k$();
      destination_0.put_4fpzoq_k$(tmp_4, tmp$ret$13);
    }
    tmp_3.bindings_1 = HashMap_init_$Create$_0(destination_0);
    $l$loop: while (true) {
      var added = ArrayList_init_$Create$();
      var tmp0_iterator_2 = this.translators_1.iterator_jk1svi_k$();
      while (tmp0_iterator_2.hasNext_bitz1p_k$()) {
        var src = tmp0_iterator_2.next_20eer_k$();
        var tmp1_iterator = this.translators_1.iterator_jk1svi_k$();
        while (tmp1_iterator.hasNext_bitz1p_k$()) {
          var dst = tmp1_iterator.next_20eer_k$();
          if (dst.get_contextType_c6z128_k$().isAssignableFrom_qb3ccr_k$(src.get_scopeType_s951x7_k$()) ? !equals(src.get_contextType_c6z128_k$(), dst.get_scopeType_s951x7_k$()) : false) {
            var tmp$ret$17;
            $l$block_0: {
              // Inline function 'kotlin.collections.none' call
              var this_3 = this.translators_1;
              var tmp_5;
              if (isInterface(this_3, Collection)) {
                tmp_5 = this_3.isEmpty_y1axqb_k$();
              } else {
                tmp_5 = false;
              }
              if (tmp_5) {
                tmp$ret$17 = true;
                break $l$block_0;
              }
              var tmp0_iterator_3 = this_3.iterator_jk1svi_k$();
              while (tmp0_iterator_3.hasNext_bitz1p_k$()) {
                var element_1 = tmp0_iterator_3.next_20eer_k$();
                // Inline function 'org.kodein.di.internal.DITreeImpl.<anonymous>' call
                if (equals(element_1.get_contextType_c6z128_k$(), src.get_contextType_c6z128_k$()) ? equals(element_1.get_scopeType_s951x7_k$(), dst.get_scopeType_s951x7_k$()) : false) {
                  tmp$ret$17 = false;
                  break $l$block_0;
                }
              }
              tmp$ret$17 = true;
            }
            if (tmp$ret$17) {
              // Inline function 'kotlin.collections.plusAssign' call
              var tmp_6 = isInterface(src, ContextTranslator) ? src : THROW_CCE();
              var element_2 = new CompositeContextTranslator(tmp_6, isInterface(dst, ContextTranslator) ? dst : THROW_CCE());
              added.add_utx5q5_k$(element_2);
            }
          }
        }
      }
      // Inline function 'kotlin.collections.plusAssign' call
      var this_4 = this.translators_1;
      addAll(this_4, added);
      if (added.isEmpty_y1axqb_k$())
        break $l$loop;
    }
  }
  protoOf(DITreeImpl).get_externalSources_ddqoas_k$ = function () {
    return this.externalSources_1;
  };
  protoOf(DITreeImpl).get_registeredTranslators_4g1pxq_k$ = function () {
    return this.registeredTranslators_1;
  };
  protoOf(DITreeImpl).get_bindings_g97nah_k$ = function () {
    return this.bindings_1;
  };
  protoOf(DITreeImpl).find_nbwl90_k$ = function (key, overrideLevel, all) {
    if (!all) {
      var tmp0_safe_receiver = this._cache_1.get_wei43m_k$(key);
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        var realKey = tmp0_safe_receiver.component1_7eebsc_k$();
        var list = tmp0_safe_receiver.component2_7eebsb_k$();
        var translator = tmp0_safe_receiver.component3_7eebsa_k$();
        var tmp0_elvis_lhs = getOrNull(list, overrideLevel);
        var tmp;
        if (tmp0_elvis_lhs == null) {
          return emptyList();
        } else {
          tmp = tmp0_elvis_lhs;
        }
        var definition = tmp;
        var tmp_0 = realKey instanceof Key ? realKey : THROW_CCE();
        var tmp_1 = definition instanceof DIDefinition ? definition : THROW_CCE();
        return listOf(new Triple(tmp_0, tmp_1, (translator == null ? true : isInterface(translator, ContextTranslator)) ? translator : THROW_CCE()));
      }
      if (!equals(key.get_contextType_c6z128_k$(), Companion_getInstance().get_Any_18jx5p_k$())) {
        var anyContextKey = key.copy$default_71eqho_k$(Companion_getInstance().get_Any_18jx5p_k$());
        var tmp1_safe_receiver = this._cache_1.get_wei43m_k$(anyContextKey);
        if (tmp1_safe_receiver == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          $l$block: {
            // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
            var realKey_0 = tmp1_safe_receiver.component1_7eebsc_k$();
            var list_0 = tmp1_safe_receiver.component2_7eebsb_k$();
            var translator_0 = tmp1_safe_receiver.component3_7eebsa_k$();
            if (!(translator_0 == null) ? !equals(translator_0.get_contextType_c6z128_k$(), key.get_contextType_c6z128_k$()) : false) {
              break $l$block;
            }
            // Inline function 'kotlin.collections.set' call
            this._cache_1.put_4fpzoq_k$(key, tmp1_safe_receiver);
            var tmp1_elvis_lhs = getOrNull(list_0, overrideLevel);
            var tmp_2;
            if (tmp1_elvis_lhs == null) {
              return emptyList();
            } else {
              tmp_2 = tmp1_elvis_lhs;
            }
            var definition_0 = tmp_2;
            var tmp_3 = realKey_0 instanceof Key ? realKey_0 : THROW_CCE();
            var tmp_4 = definition_0 instanceof DIDefinition ? definition_0 : THROW_CCE();
            return listOf(new Triple(tmp_3, tmp_4, (translator_0 == null ? true : isInterface(translator_0, ContextTranslator)) ? translator_0 : THROW_CCE()));
          }
        }
      }
      // Inline function 'kotlin.collections.filter' call
      // Inline function 'kotlin.collections.filterTo' call
      var this_0 = this.translators_1;
      var destination = ArrayList_init_$Create$();
      var tmp0_iterator = this_0.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
        if (equals(element.get_contextType_c6z128_k$(), key.get_contextType_c6z128_k$())) {
          destination.add_utx5q5_k$(element);
        }
      }
      var tmp_5 = destination;
      // Inline function 'kotlin.collections.filter' call
      // Inline function 'kotlin.collections.filterTo' call
      var this_1 = this.translators_1;
      var destination_0 = ArrayList_init_$Create$();
      var tmp0_iterator_0 = this_1.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var element_0 = tmp0_iterator_0.next_20eer_k$();
        // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
        if (equals(element_0.get_contextType_c6z128_k$(), Companion_getInstance().get_Any_18jx5p_k$())) {
          destination_0.add_utx5q5_k$(element_0);
        }
      }
      var applicableTranslators = plus(tmp_5, destination_0);
      var tmp2_iterator = applicableTranslators.iterator_jk1svi_k$();
      while (tmp2_iterator.hasNext_bitz1p_k$()) {
        var translator_1 = tmp2_iterator.next_20eer_k$();
        var translatedKey = new Key(translator_1.get_scopeType_s951x7_k$(), key.get_argType_b1zqd5_k$(), key.get_type_wovaf7_k$(), key.get_tag_18ivnz_k$());
        var tmp3_safe_receiver = this._cache_1.get_wei43m_k$(translatedKey);
        var tmp_6;
        if (tmp3_safe_receiver == null) {
          tmp_6 = null;
        } else {
          // Inline function 'kotlin.takeIf' call
          // Inline function 'kotlin.contracts.contract' call
          var tmp_7;
          // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
          if (tmp3_safe_receiver.get_third_iz27um_k$() == null) {
            tmp_7 = tmp3_safe_receiver;
          } else {
            tmp_7 = null;
          }
          tmp_6 = tmp_7;
        }
        var tmp4_safe_receiver = tmp_6;
        if (tmp4_safe_receiver == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          $l$block_0: {
            // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
            if (!(tmp4_safe_receiver.get_third_iz27um_k$() == null)) {
              break $l$block_0;
            }
            // Inline function 'kotlin.collections.set' call
            var this_2 = this._cache_1;
            var value = tmp4_safe_receiver.copy$default_wmtbyu_k$(VOID, VOID, translator_1);
            this_2.put_4fpzoq_k$(key, value);
            var realKey_1 = tmp4_safe_receiver.component1_7eebsc_k$();
            var list_1 = tmp4_safe_receiver.component2_7eebsb_k$();
            var tmp1_elvis_lhs_0 = getOrNull(list_1, overrideLevel);
            var tmp_8;
            if (tmp1_elvis_lhs_0 == null) {
              return emptyList();
            } else {
              tmp_8 = tmp1_elvis_lhs_0;
            }
            var definition_1 = tmp_8;
            var tmp_9 = realKey_1 instanceof Key ? realKey_1 : THROW_CCE();
            var tmp_10 = definition_1 instanceof DIDefinition ? definition_1 : THROW_CCE();
            return listOf(new Triple(tmp_9, tmp_10, isInterface(translator_1, ContextTranslator) ? translator_1 : THROW_CCE()));
          }
        }
      }
    }
    var result = findBySpecs(this, new SearchSpecs(key.get_contextType_c6z128_k$(), key.get_argType_b1zqd5_k$(), key.get_type_wovaf7_k$(), key.get_tag_18ivnz_k$()));
    if (result.get_size_woubt6_k$() === 1) {
      var tmp5_container = first(result);
      var realKey_2 = tmp5_container.component1_7eebsc_k$();
      var translator_2 = tmp5_container.component2_7eebsb_k$();
      // Inline function 'kotlin.collections.set' call
      var this_3 = this._cache_1;
      var tmp6_safe_receiver = this._cache_1.get_wei43m_k$(realKey_2);
      var tmp7_elvis_lhs = tmp6_safe_receiver == null ? null : tmp6_safe_receiver.copy$default_wmtbyu_k$(VOID, VOID, translator_2);
      var tmp_11;
      if (tmp7_elvis_lhs == null) {
        throw notInMap(this, realKey_2, key);
      } else {
        tmp_11 = tmp7_elvis_lhs;
      }
      var value_0 = tmp_11;
      this_3.put_4fpzoq_k$(key, value_0);
    }
    // Inline function 'kotlin.collections.mapNotNull' call
    // Inline function 'kotlin.collections.mapNotNullTo' call
    var destination_1 = ArrayList_init_$Create$();
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator_1 = result.iterator_jk1svi_k$();
    while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
      var element_1 = tmp0_iterator_1.next_20eer_k$();
      // Inline function 'kotlin.collections.mapNotNullTo.<anonymous>' call
      var tmp$ret$13;
      $l$block_1: {
        // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
        var realKey_3 = element_1.component1_7eebsc_k$();
        var translator_3 = element_1.component2_7eebsb_k$();
        var tmp0_elvis_lhs_0 = this._cache_1.get_wei43m_k$(realKey_3);
        var tmp_12;
        if (tmp0_elvis_lhs_0 == null) {
          throw notInMap(this, realKey_3, key);
        } else {
          tmp_12 = tmp0_elvis_lhs_0;
        }
        var definitions = tmp_12.component2_7eebsb_k$();
        var tmp2_elvis_lhs = getOrNull(definitions, overrideLevel);
        var tmp_13;
        if (tmp2_elvis_lhs == null) {
          tmp$ret$13 = null;
          break $l$block_1;
        } else {
          tmp_13 = tmp2_elvis_lhs;
        }
        var definition_2 = tmp_13;
        var tmp_14 = realKey_3 instanceof Key ? realKey_3 : THROW_CCE();
        var tmp_15 = definition_2 instanceof DIDefinition ? definition_2 : THROW_CCE();
        tmp$ret$13 = new Triple(tmp_14, tmp_15, (translator_3 == null ? true : isInterface(translator_3, ContextTranslator)) ? translator_3 : THROW_CCE());
      }
      var tmp0_safe_receiver_0 = tmp$ret$13;
      if (tmp0_safe_receiver_0 == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        destination_1.add_utx5q5_k$(tmp0_safe_receiver_0);
      }
    }
    return destination_1;
  };
  protoOf(DITreeImpl).find_njtemv_k$ = function (search) {
    var result = findBySpecs(this, search);
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(result, 10));
    var tmp0_iterator = result.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.internal.DITreeImpl.find.<anonymous>' call
      var key = item.component1_7eebsc_k$();
      var translator = item.component2_7eebsb_k$();
      var tmp$ret$0 = new Triple(key, ensureNotNull(this._cache_1.get_wei43m_k$(key)).get_second_jf7fjx_k$(), translator);
      destination.add_utx5q5_k$(tmp$ret$0);
    }
    return destination;
  };
  protoOf(DITreeImpl).get_ypv49o_k$ = function (key) {
    var tmp = this._cache_1.get_wei43m_k$(key);
    return (tmp == null ? true : tmp instanceof Triple) ? tmp : THROW_CCE();
  };
  function Down(type) {
    TypeChecker.call(this);
    this.type_1 = type;
    this.isAny_1 = equals(this.type_1, Companion_getInstance().get_Any_18jx5p_k$());
  }
  protoOf(Down).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Down).get_isAny_it6oft_k$ = function () {
    return this.isAny_1;
  };
  protoOf(Down).check_pb7nz4_k$ = function (other) {
    return this.isAny_1 ? true : this.type_1.isAssignableFrom_qb3ccr_k$(other);
  };
  protoOf(Down).component1_7eebsc_k$ = function () {
    return this.type_1;
  };
  protoOf(Down).copy_4a9mq5_k$ = function (type) {
    return new Down(type);
  };
  protoOf(Down).copy$default_i0nac5_k$ = function (type, $super) {
    type = type === VOID ? this.type_1 : type;
    return $super === VOID ? this.copy_4a9mq5_k$(type) : $super.copy_4a9mq5_k$.call(this, type);
  };
  protoOf(Down).toString = function () {
    return 'Down(type=' + this.type_1 + ')';
  };
  protoOf(Down).hashCode = function () {
    return hashCode(this.type_1);
  };
  protoOf(Down).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Down))
      return false;
    var tmp0_other_with_cast = other instanceof Down ? other : THROW_CCE();
    if (!equals(this.type_1, tmp0_other_with_cast.type_1))
      return false;
    return true;
  };
  function Up(type) {
    TypeChecker.call(this);
    this.type_1 = type;
  }
  protoOf(Up).get_type_wovaf7_k$ = function () {
    return this.type_1;
  };
  protoOf(Up).check_pb7nz4_k$ = function (other) {
    return equals(other, Companion_getInstance().get_Any_18jx5p_k$()) ? true : other.isAssignableFrom_qb3ccr_k$(this.type_1);
  };
  protoOf(Up).component1_7eebsc_k$ = function () {
    return this.type_1;
  };
  protoOf(Up).copy_4a9mq5_k$ = function (type) {
    return new Up(type);
  };
  protoOf(Up).copy$default_8qlwws_k$ = function (type, $super) {
    type = type === VOID ? this.type_1 : type;
    return $super === VOID ? this.copy_4a9mq5_k$(type) : $super.copy_4a9mq5_k$.call(this, type);
  };
  protoOf(Up).toString = function () {
    return 'Up(type=' + this.type_1 + ')';
  };
  protoOf(Up).hashCode = function () {
    return hashCode(this.type_1);
  };
  protoOf(Up).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Up))
      return false;
    var tmp0_other_with_cast = other instanceof Up ? other : THROW_CCE();
    if (!equals(this.type_1, tmp0_other_with_cast.type_1))
      return false;
    return true;
  };
  function TypeChecker() {
  }
  function DirectDIBaseImpl$Provider$lambda($this, $arg) {
    return function () {
      return $this($arg());
    };
  }
  function DirectDIBaseImpl$ProviderOrNull$lambda($this, $arg) {
    return function () {
      return $this($arg());
    };
  }
  function DirectDIBaseImpl(container, context) {
    this.container_1 = container;
    this.context_1 = context;
  }
  protoOf(DirectDIBaseImpl).get_container_1pul08_k$ = function () {
    return this.container_1;
  };
  protoOf(DirectDIBaseImpl).get_context_h02k06_k$ = function () {
    return this.context_1;
  };
  protoOf(DirectDIBaseImpl).get_directDI_rqg7bd_k$ = function () {
    return this;
  };
  protoOf(DirectDIBaseImpl).get_lazy_wopozh_k$ = function () {
    var tmp = this.get_container_1pul08_k$();
    return On(new DIImpl(tmp instanceof DIContainerImpl ? tmp : THROW_CCE()), this.context_1);
  };
  protoOf(DirectDIBaseImpl).On_r75fd9_k$ = function (context) {
    return new DirectDIImpl(this.get_container_1pul08_k$(), context);
  };
  protoOf(DirectDIBaseImpl).Factory_54q17q_k$ = function (argType, type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.factory$default_e70lnm_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$());
  };
  protoOf(DirectDIBaseImpl).FactoryOrNull_f8e6ls_k$ = function (argType, type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.factoryOrNull$default_r0w9fs_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$());
  };
  protoOf(DirectDIBaseImpl).Provider_ehs6tv_k$ = function (type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.provider$default_gzv06g_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), type, tag), this.context_1.get_value_j01efc_k$());
  };
  protoOf(DirectDIBaseImpl).Provider_lm93ss_k$ = function (argType, type, tag, arg) {
    // Inline function 'org.kodein.di.toProvider' call
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    var this_0 = tmp.factory$default_e70lnm_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$());
    return DirectDIBaseImpl$Provider$lambda(this_0, arg);
  };
  protoOf(DirectDIBaseImpl).ProviderOrNull_830ut9_k$ = function (type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.providerOrNull$default_miq9vm_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), type, tag), this.context_1.get_value_j01efc_k$());
  };
  protoOf(DirectDIBaseImpl).ProviderOrNull_33f8by_k$ = function (argType, type, tag, arg) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    var tmp0_safe_receiver = tmp.factoryOrNull$default_r0w9fs_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$());
    var tmp_1;
    if (tmp0_safe_receiver == null) {
      tmp_1 = null;
    } else {
      // Inline function 'org.kodein.di.toProvider' call
      tmp_1 = DirectDIBaseImpl$ProviderOrNull$lambda(tmp0_safe_receiver, arg);
    }
    return tmp_1;
  };
  protoOf(DirectDIBaseImpl).Instance_vwdrk9_k$ = function (type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.provider$default_gzv06g_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), type, tag), this.context_1.get_value_j01efc_k$())();
  };
  protoOf(DirectDIBaseImpl).Instance_spguml_k$ = function (argType, type, tag, arg) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    return tmp.factory$default_e70lnm_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$())(arg);
  };
  protoOf(DirectDIBaseImpl).InstanceOrNull_akutzz_k$ = function (type, tag) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    var tmp0_safe_receiver = tmp.providerOrNull$default_miq9vm_k$(new Key(tmp$ret$0, Companion_getInstance().get_Unit_wob9il_k$(), type, tag), this.context_1.get_value_j01efc_k$());
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver();
  };
  protoOf(DirectDIBaseImpl).InstanceOrNull_5l1mxv_k$ = function (argType, type, tag, arg) {
    var tmp = this.get_container_1pul08_k$();
    // Inline function 'org.kodein.di.internal.anyType' call
    var tmp_0 = this.context_1.get_type_wovaf7_k$();
    var tmp$ret$0 = isInterface(tmp_0, TypeToken) ? tmp_0 : THROW_CCE();
    var tmp0_safe_receiver = tmp.factoryOrNull$default_r0w9fs_k$(new Key(tmp$ret$0, argType, type, tag), this.context_1.get_value_j01efc_k$());
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver(arg);
  };
  function get_anyType_0(_this__u8e3s4) {
    var tmp = _this__u8e3s4.get_type_wovaf7_k$();
    return isInterface(tmp, TypeToken) ? tmp : THROW_CCE();
  }
  function synchronizedIfNull(lock, predicate, ifNotNull, ifNull) {
    var tmp0_safe_receiver = predicate();
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return ifNotNull(tmp0_safe_receiver);
    }
    // Inline function 'org.kodein.di.internal.maySynchronized' call
    var tmp$ret$1;
    $l$block: {
      // Inline function 'org.kodein.di.internal.synchronizedIfNull.<anonymous>' call
      var tmp0_safe_receiver_0 = predicate();
      if (tmp0_safe_receiver_0 == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        tmp$ret$1 = tmp0_safe_receiver_0;
        break $l$block;
      }
      return ifNull();
    }
    var value = tmp$ret$1;
    return ifNotNull(value);
  }
  function synchronizedIfNotNull(lock, predicate, ifNull, ifNotNull) {
    if (predicate() == null) {
      return ifNull();
    }
    // Inline function 'org.kodein.di.internal.maySynchronized' call
    $l$block: {
      // Inline function 'org.kodein.di.internal.synchronizedIfNotNull.<anonymous>' call
      var tmp0_elvis_lhs = predicate();
      var tmp;
      if (tmp0_elvis_lhs == null) {
        break $l$block;
      } else {
        tmp = tmp0_elvis_lhs;
      }
      var value = tmp;
      return ifNotNull(value);
    }
    return ifNull();
  }
  function LazyDI(f) {
    this.baseDI$delegate_1 = lazy(f);
  }
  protoOf(LazyDI).get_baseDI_bbintr_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.baseDI$delegate_1;
    baseDI$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(LazyDI).get_container_1pul08_k$ = function () {
    return this.get_baseDI_bbintr_k$().get_container_1pul08_k$();
  };
  protoOf(LazyDI).getValue_fbnwi2_k$ = function (thisRef, property) {
    return this;
  };
  function baseDI$factory() {
    return getPropertyCallableRef('baseDI', 1, KProperty1, function (receiver) {
      return receiver.get_baseDI_bbintr_k$();
    }, null);
  }
  function LazyDelegate() {
  }
  function DITrigger() {
    this.properties_1 = ArrayList_init_$Create$();
  }
  protoOf(DITrigger).get_properties_zhllqc_k$ = function () {
    return this.properties_1;
  };
  protoOf(DITrigger).trigger_l6pyqg_k$ = function () {
    var tmp0_iterator = this.properties_1.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'org.kodein.di.DITrigger.trigger.<anonymous>' call
      element.get_value_j01efc_k$();
    }
    return Unit_getInstance();
  };
  function _get_get__e68x6j($this) {
    return $this.get_1;
  }
  function DIProperty$provideDelegate$lambda($receiver, this$0, $prop) {
    return function () {
      var tmp;
      if (!($receiver == null) ? this$0.originalContext_1 === get_AnyDIContext() : false) {
        var tmp_0 = Companion_getInstance_2();
        var tmp_1 = erasedOf($receiver);
        tmp = tmp_0.invoke_4wgfc3_k$(isInterface(tmp_1, TypeToken) ? tmp_1 : THROW_CCE(), $receiver);
      } else {
        tmp = this$0.originalContext_1;
      }
      var context = tmp;
      return this$0.get_1(context, $prop.callableName);
    };
  }
  function DIProperty(trigger, originalContext, get) {
    this.trigger_1 = trigger;
    this.originalContext_1 = originalContext;
    this.get_1 = get;
  }
  protoOf(DIProperty).get_trigger_g9h7ox_k$ = function () {
    return this.trigger_1;
  };
  protoOf(DIProperty).get_originalContext_n5kw23_k$ = function () {
    return this.originalContext_1;
  };
  protoOf(DIProperty).provideDelegate_o2qlc1_k$ = function (receiver, prop) {
    // Inline function 'kotlin.also' call
    var this_0 = lazy(DIProperty$provideDelegate$lambda(receiver, this, prop));
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'org.kodein.di.DIProperty.provideDelegate.<anonymous>' call
    var tmp0_safe_receiver = this.trigger_1;
    var tmp1_safe_receiver = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.properties_1;
    if (tmp1_safe_receiver == null)
      null;
    else
      tmp1_safe_receiver.add_utx5q5_k$(this_0);
    return this_0;
  };
  function DirectDI() {
  }
  function DirectDIImpl(container, context) {
    DirectDIBaseImpl.call(this, container, context);
  }
  function newConcurrentMap() {
    return HashMap_init_$Create$();
  }
  function maySynchronized(lock, block) {
    return block();
  }
  function newLinkedList() {
    return ArrayList_init_$Create$();
  }
  function newLinkedList_0(c) {
    return ArrayList_init_$Create$_1(c);
  }
  //region block: post-declaration
  protoOf(NoArgBindingDIWrap).Factory$default_7clp5b_k$ = Factory$default;
  protoOf(NoArgBindingDIWrap).FactoryOrNull$default_lwvbg9_k$ = FactoryOrNull$default;
  protoOf(NoArgBindingDIWrap).Instance$default_gbvpjc_k$ = Instance$default;
  protoOf(NoArgBindingDIWrap).Instance$default_rqamns_k$ = Instance$default_0;
  protoOf(NoArgBindingDIWrap).InstanceOrNull$default_1f6rwu_k$ = InstanceOrNull$default;
  protoOf(NoArgBindingDIWrap).InstanceOrNull$default_ra6rhe_k$ = InstanceOrNull$default_0;
  protoOf(NoArgBindingDIWrap).Provider$default_8xfod8_k$ = Provider$default;
  protoOf(NoArgBindingDIWrap).Provider$default_qvlofv_k$ = Provider$default_0;
  protoOf(NoArgBindingDIWrap).ProviderOrNull$default_k7f5yq_k$ = ProviderOrNull$default;
  protoOf(NoArgBindingDIWrap).ProviderOrNull$default_f9qci9_k$ = ProviderOrNull$default_0;
  protoOf(BaseMultiBinding).factoryFullName_a9f76k_k$ = factoryFullName;
  protoOf(BaseMultiBinding).get_scope_iyfcq3_k$ = get_scope;
  protoOf(BaseMultiBinding).get_description_emjre5_k$ = get_description;
  protoOf(BaseMultiBinding).get_fullDescription_vl3lz8_k$ = get_fullDescription;
  protoOf(BaseMultiBinding).get_copier_c07lcr_k$ = get_copier;
  protoOf(BaseMultiBinding).get_supportSubTypes_5g5om9_k$ = get_supportSubTypes;
  protoOf(SetBinding).get_argType_b1zqd5_k$ = get_argType;
  protoOf(SetBindingDI).Factory$default_7clp5b_k$ = Factory$default;
  protoOf(SetBindingDI).FactoryOrNull$default_lwvbg9_k$ = FactoryOrNull$default;
  protoOf(SetBindingDI).Instance$default_gbvpjc_k$ = Instance$default;
  protoOf(SetBindingDI).Instance$default_rqamns_k$ = Instance$default_0;
  protoOf(SetBindingDI).InstanceOrNull$default_1f6rwu_k$ = InstanceOrNull$default;
  protoOf(SetBindingDI).InstanceOrNull$default_ra6rhe_k$ = InstanceOrNull$default_0;
  protoOf(SetBindingDI).Provider$default_8xfod8_k$ = Provider$default;
  protoOf(SetBindingDI).Provider$default_qvlofv_k$ = Provider$default_0;
  protoOf(SetBindingDI).ProviderOrNull$default_k7f5yq_k$ = ProviderOrNull$default;
  protoOf(SetBindingDI).ProviderOrNull$default_f9qci9_k$ = ProviderOrNull$default_0;
  protoOf(Provider).get_argType_b1zqd5_k$ = get_argType;
  protoOf(Provider).factoryFullName_a9f76k_k$ = factoryFullName;
  protoOf(Provider).get_scope_iyfcq3_k$ = get_scope;
  protoOf(Provider).get_description_emjre5_k$ = get_description;
  protoOf(Provider).get_fullDescription_vl3lz8_k$ = get_fullDescription;
  protoOf(Provider).get_copier_c07lcr_k$ = get_copier;
  protoOf(Provider).get_supportSubTypes_5g5om9_k$ = get_supportSubTypes;
  protoOf(InstanceBinding).get_argType_b1zqd5_k$ = get_argType;
  protoOf(InstanceBinding).factoryFullName_a9f76k_k$ = factoryFullName;
  protoOf(InstanceBinding).get_scope_iyfcq3_k$ = get_scope;
  protoOf(InstanceBinding).get_copier_c07lcr_k$ = get_copier;
  protoOf(InstanceBinding).get_supportSubTypes_5g5om9_k$ = get_supportSubTypes;
  protoOf(DIBuilderImpl).Bind$default_x0kqug_k$ = Bind$default_0;
  protoOf(DIBuilderImpl).Bind$default_qaorli_k$ = Bind$default;
  protoOf(DIBuilderImpl).BindInSet$default_e1shws_k$ = BindInSet$default;
  protoOf(DIBuilderImpl).InBindSet$default_t72jfw_k$ = InBindSet$default;
  protoOf(DIBuilderImpl).BindInArgSet$default_o4lihe_k$ = BindInArgSet$default;
  protoOf(DIBuilderImpl).InBindArgSet$default_56qviq_k$ = InBindArgSet$default;
  protoOf(DIBuilderImpl).BindSet$default_xkldzy_k$ = BindSet$default;
  protoOf(DIBuilderImpl).AddBindInSet$default_9qacmg_k$ = AddBindInSet$default;
  protoOf(DIBuilderImpl).Bind$default_8efqcp_k$ = Bind$default_1;
  protoOf(DIBuilderImpl).constant$default_l7seuo_k$ = constant$default;
  protoOf(DIBuilderImpl).Delegate$default_1nrgyo_k$ = Delegate$default;
  protoOf(DIBuilderImpl).import$default_2izlr1_k$ = import$default;
  protoOf(DIBuilderImpl).importAll$default_aykjpy_k$ = importAll$default_0;
  protoOf(DIBuilderImpl).importAll$default_rav1d6_k$ = importAll$default;
  protoOf(DIBuilderImpl).importOnce$default_4gdllq_k$ = importOnce$default;
  protoOf(DIMainBuilderImpl).extend$default_tf3myj_k$ = extend$default;
  protoOf(DIMainBuilderImpl).extend$default_d67qnu_k$ = extend$default_0;
  protoOf(SetBinder_0).bind$default_7d59k5_k$ = bind$default;
  protoOf(ArgSetBinder_0).bind$default_j1r6e4_k$ = bind$default_0;
  protoOf(DIContainerBuilderImpl).bind$default_aaxm9f_k$ = bind$default_1;
  protoOf(DIContainerBuilderImpl).extend$default_9dj4pm_k$ = extend$default_1;
  protoOf(DIContainerBuilderImpl).subBuilder$default_14m7je_k$ = subBuilder$default;
  protoOf(DIContainerImpl).factoryOrNull$default_r0w9fs_k$ = factoryOrNull$default;
  protoOf(DIContainerImpl).factory$default_e70lnm_k$ = factory$default;
  protoOf(DIContainerImpl).allFactories$default_ydeenv_k$ = allFactories$default;
  protoOf(DIContainerImpl).provider_kpadaj_k$ = provider;
  protoOf(DIContainerImpl).provider$default_gzv06g_k$ = provider$default;
  protoOf(DIContainerImpl).providerOrNull_mcoi45_k$ = providerOrNull;
  protoOf(DIContainerImpl).providerOrNull$default_miq9vm_k$ = providerOrNull$default;
  protoOf(DIContainerImpl).allProviders_e4hdlx_k$ = allProviders;
  protoOf(DIContainerImpl).allProviders$default_fvz04o_k$ = allProviders$default;
  protoOf(DIImpl).get_di_knto1e_k$ = get_di;
  protoOf(DIImpl).get_diContext_hye8ch_k$ = get_diContext;
  protoOf(DIImpl).get_diTrigger_fb5jcm_k$ = get_diTrigger;
  protoOf(BindingDIImpl).Factory$default_7clp5b_k$ = Factory$default;
  protoOf(BindingDIImpl).FactoryOrNull$default_lwvbg9_k$ = FactoryOrNull$default;
  protoOf(BindingDIImpl).Instance$default_gbvpjc_k$ = Instance$default;
  protoOf(BindingDIImpl).Instance$default_rqamns_k$ = Instance$default_0;
  protoOf(BindingDIImpl).InstanceOrNull$default_1f6rwu_k$ = InstanceOrNull$default;
  protoOf(BindingDIImpl).InstanceOrNull$default_ra6rhe_k$ = InstanceOrNull$default_0;
  protoOf(BindingDIImpl).Provider$default_8xfod8_k$ = Provider$default;
  protoOf(BindingDIImpl).Provider$default_qvlofv_k$ = Provider$default_0;
  protoOf(BindingDIImpl).ProviderOrNull$default_k7f5yq_k$ = ProviderOrNull$default;
  protoOf(BindingDIImpl).ProviderOrNull$default_f9qci9_k$ = ProviderOrNull$default_0;
  protoOf(DITreeImpl).find$default_l7tnin_k$ = find$default;
  protoOf(DirectDIBaseImpl).Factory$default_7clp5b_k$ = Factory$default;
  protoOf(DirectDIBaseImpl).FactoryOrNull$default_lwvbg9_k$ = FactoryOrNull$default;
  protoOf(DirectDIBaseImpl).Provider$default_8xfod8_k$ = Provider$default;
  protoOf(DirectDIBaseImpl).Provider$default_qvlofv_k$ = Provider$default_0;
  protoOf(DirectDIBaseImpl).ProviderOrNull$default_k7f5yq_k$ = ProviderOrNull$default;
  protoOf(DirectDIBaseImpl).ProviderOrNull$default_f9qci9_k$ = ProviderOrNull$default_0;
  protoOf(DirectDIBaseImpl).Instance$default_gbvpjc_k$ = Instance$default;
  protoOf(DirectDIBaseImpl).Instance$default_rqamns_k$ = Instance$default_0;
  protoOf(DirectDIBaseImpl).InstanceOrNull$default_1f6rwu_k$ = InstanceOrNull$default;
  protoOf(DirectDIBaseImpl).InstanceOrNull$default_ra6rhe_k$ = InstanceOrNull$default_0;
  protoOf(DirectDIBaseImpl).get_di_knto1e_k$ = get_di_0;
  protoOf(LazyDI).get_di_knto1e_k$ = get_di;
  protoOf(LazyDI).get_diContext_hye8ch_k$ = get_diContext;
  protoOf(LazyDI).get_diTrigger_fb5jcm_k$ = get_diTrigger;
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = Companion_getInstance_2;
  _.$_$.b = get_diContext;
  _.$_$.c = get_diTrigger;
  _.$_$.d = DIAware;
  _.$_$.e = InstanceOrNull;
  _.$_$.f = Instance;
  _.$_$.g = On;
  _.$_$.h = get_direct;
  //endregion
  return _;
}(module.exports, require('./kotlin-kotlin-stdlib.js'), require('./Kosi-Kaverit-kaverit.js')));

//# sourceMappingURL=Kosi-Kodein-kodein-di.js.map
