var _Foo;
class Foo {
  static getSelf() {
    return this;
  }
  static test() {
    var _o$Foo, _o$Foo2, _o$Foo3, _deep$very$o$Foo, _deep$very$o, _deep$very$o$Foo2, _deep$very$o2, _deep$very$o$Foo3, _deep$very$o3, _ref, _ref2, _self2, _ref3, _self3, _ref4, _self$self, _ref5, _ref6, _babelHelpers$assertC, _call, _ref7, _getSelf, _ref8, _getSelf2, _ref9, _ref9$getSelf, _self4, _ref10, _babelHelpers$assertC2, _call$self, _ref11, _getSelf$self, _ref12, _getSelf$self2, _ref13, _ref13$getSelf, _fn$Foo, _fn$Foo2, _fn$Foo3, _fnDeep$very$o$Foo, _fnDeep$very$o, _fnDeep$very$o$Foo2, _fnDeep$very$o2, _fnDeep$very$o$Foo3, _fnDeep$very$o3, _ref14, _ref15, _self5, _ref16, _self6, _ref17, _self$self2, _ref18, _ref19, _babelHelpers$assertC3, _call2, _ref20, _getSelf3, _ref21, _getSelf4, _ref22, _ref22$getSelf, _self7, _ref23, _babelHelpers$assertC4, _call$self2, _ref24, _getSelf$self3, _ref25, _getSelf$self4, _ref26, _ref26$getSelf;    const o = {
      Foo: Foo
    };
    const deep = {
      very: {
        o
      }
    };
    function fn() {
      return o;
    }
    function fnDeep() {
      return deep;
    }
    Foo === null || Foo === void 0 ? void 0 : _x._;
    Foo === null || Foo === void 0 ? void 0 : _x._.toString;
    Foo === null || Foo === void 0 ? void 0 : _x._.toString();
    (_o$Foo = o === null || o === void 0 ? void 0 : o.Foo) === null || _o$Foo === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _o$Foo, _x)._;
    (_o$Foo2 = o === null || o === void 0 ? void 0 : o.Foo) === null || _o$Foo2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _o$Foo2, _x)._.toString;
    (_o$Foo3 = o === null || o === void 0 ? void 0 : o.Foo) === null || _o$Foo3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _o$Foo3, _x)._.toString();
    (_deep$very$o$Foo = deep === null || deep === void 0 || (_deep$very$o = deep.very.o) === null || _deep$very$o === void 0 ? void 0 : _deep$very$o.Foo) === null || _deep$very$o$Foo === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _deep$very$o$Foo, _x)._;
    (_deep$very$o$Foo2 = deep === null || deep === void 0 || (_deep$very$o2 = deep.very.o) === null || _deep$very$o2 === void 0 ? void 0 : _deep$very$o2.Foo) === null || _deep$very$o$Foo2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _deep$very$o$Foo2, _x)._.toString;
    (_deep$very$o$Foo3 = deep === null || deep === void 0 || (_deep$very$o3 = deep.very.o) === null || _deep$very$o3 === void 0 ? void 0 : _deep$very$o3.Foo) === null || _deep$very$o$Foo3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _deep$very$o$Foo3, _x)._.toString();
    (_ref = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref, _x)._;
    (_ref2 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._.self) === null || _ref2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref2, _x)._;
    (_self2 = (_ref3 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref3 === void 0 ? void 0 : _ref3.self) === null || _self2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self2, _x)._;
    (_self3 = (_ref4 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._.self) === null || _ref4 === void 0 ? void 0 : _ref4.self) === null || _self3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self3, _x)._;
    (_self$self = (_ref5 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref5 === void 0 || (_ref5 = _ref5.self) === null || _ref5 === void 0 ? void 0 : _ref5.self) === null || _self$self === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self$self, _x)._;
    (_ref6 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._.getSelf()) === null || _ref6 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref6, _x)._;
    (_call = (_ref7 = o === null || o === void 0 ? void 0 : (_babelHelpers$assertC = babelHelpers.assertClassBrand(Foo, o.Foo, _self)._).getSelf) === null || _ref7 === void 0 ? void 0 : _ref7.call(_babelHelpers$assertC)) === null || _call === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _call, _x)._;
    (_getSelf = (_ref8 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref8 === void 0 ? void 0 : _ref8.getSelf()) === null || _getSelf === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf, _x)._;
    (_getSelf2 = (_ref9 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref9 === void 0 || (_ref9$getSelf = _ref9.getSelf) === null || _ref9$getSelf === void 0 ? void 0 : _ref9$getSelf.call(_ref9)) === null || _getSelf2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf2, _x)._;
    (_self4 = (_ref10 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._.getSelf()) === null || _ref10 === void 0 ? void 0 : _ref10.self) === null || _self4 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self4, _x)._;
    (_call$self = (_ref11 = o === null || o === void 0 ? void 0 : (_babelHelpers$assertC2 = babelHelpers.assertClassBrand(Foo, o.Foo, _self)._).getSelf) === null || _ref11 === void 0 || (_ref11 = _ref11.call(_babelHelpers$assertC2)) === null || _ref11 === void 0 ? void 0 : _ref11.self) === null || _call$self === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _call$self, _x)._;
    (_getSelf$self = (_ref12 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref12 === void 0 || (_ref12 = _ref12.getSelf()) === null || _ref12 === void 0 ? void 0 : _ref12.self) === null || _getSelf$self === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf$self, _x)._;
    (_getSelf$self2 = (_ref13 = o === null || o === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, o.Foo, _self)._) === null || _ref13 === void 0 || (_ref13$getSelf = _ref13.getSelf) === null || _ref13$getSelf === void 0 || (_ref13$getSelf = _ref13$getSelf.call(_ref13)) === null || _ref13$getSelf === void 0 ? void 0 : _ref13$getSelf.self) === null || _getSelf$self2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf$self2, _x)._;
    (_fn$Foo = fn === null || fn === void 0 ? void 0 : fn().Foo) === null || _fn$Foo === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fn$Foo, _x)._;
    (_fn$Foo2 = fn === null || fn === void 0 ? void 0 : fn().Foo) === null || _fn$Foo2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fn$Foo2, _x)._.toString;
    (_fn$Foo3 = fn === null || fn === void 0 ? void 0 : fn().Foo) === null || _fn$Foo3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fn$Foo3, _x)._.toString();
    (_fnDeep$very$o$Foo = fnDeep === null || fnDeep === void 0 || (_fnDeep$very$o = fnDeep().very.o) === null || _fnDeep$very$o === void 0 ? void 0 : _fnDeep$very$o.Foo) === null || _fnDeep$very$o$Foo === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fnDeep$very$o$Foo, _x)._;
    (_fnDeep$very$o$Foo2 = fnDeep === null || fnDeep === void 0 || (_fnDeep$very$o2 = fnDeep().very.o) === null || _fnDeep$very$o2 === void 0 ? void 0 : _fnDeep$very$o2.Foo) === null || _fnDeep$very$o$Foo2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fnDeep$very$o$Foo2, _x)._.toString;
    (_fnDeep$very$o$Foo3 = fnDeep === null || fnDeep === void 0 || (_fnDeep$very$o3 = fnDeep().very.o) === null || _fnDeep$very$o3 === void 0 ? void 0 : _fnDeep$very$o3.Foo) === null || _fnDeep$very$o$Foo3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _fnDeep$very$o$Foo3, _x)._.toString();
    (_ref14 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref14 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref14, _x)._;
    (_ref15 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._.self) === null || _ref15 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref15, _x)._;
    (_self5 = (_ref16 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref16 === void 0 ? void 0 : _ref16.self) === null || _self5 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self5, _x)._;
    (_self6 = (_ref17 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._.self) === null || _ref17 === void 0 ? void 0 : _ref17.self) === null || _self6 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self6, _x)._;
    (_self$self2 = (_ref18 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref18 === void 0 || (_ref18 = _ref18.self) === null || _ref18 === void 0 ? void 0 : _ref18.self) === null || _self$self2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self$self2, _x)._;
    (_ref19 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._.getSelf()) === null || _ref19 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _ref19, _x)._;
    (_call2 = (_ref20 = fn === null || fn === void 0 ? void 0 : (_babelHelpers$assertC3 = babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._).getSelf) === null || _ref20 === void 0 ? void 0 : _ref20.call(_babelHelpers$assertC3)) === null || _call2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _call2, _x)._;
    (_getSelf3 = (_ref21 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref21 === void 0 ? void 0 : _ref21.getSelf()) === null || _getSelf3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf3, _x)._;
    (_getSelf4 = (_ref22 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref22 === void 0 || (_ref22$getSelf = _ref22.getSelf) === null || _ref22$getSelf === void 0 ? void 0 : _ref22$getSelf.call(_ref22)) === null || _getSelf4 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf4, _x)._;
    (_self7 = (_ref23 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._.getSelf()) === null || _ref23 === void 0 ? void 0 : _ref23.self) === null || _self7 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _self7, _x)._;
    (_call$self2 = (_ref24 = fn === null || fn === void 0 ? void 0 : (_babelHelpers$assertC4 = babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._).getSelf) === null || _ref24 === void 0 || (_ref24 = _ref24.call(_babelHelpers$assertC4)) === null || _ref24 === void 0 ? void 0 : _ref24.self) === null || _call$self2 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _call$self2, _x)._;
    (_getSelf$self3 = (_ref25 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref25 === void 0 || (_ref25 = _ref25.getSelf()) === null || _ref25 === void 0 ? void 0 : _ref25.self) === null || _getSelf$self3 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf$self3, _x)._;
    (_getSelf$self4 = (_ref26 = fn === null || fn === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, fn().Foo, _self)._) === null || _ref26 === void 0 || (_ref26$getSelf = _ref26.getSelf) === null || _ref26$getSelf === void 0 || (_ref26$getSelf = _ref26$getSelf.call(_ref26)) === null || _ref26$getSelf === void 0 ? void 0 : _ref26$getSelf.self) === null || _getSelf$self4 === void 0 ? void 0 : babelHelpers.assertClassBrand(Foo, _getSelf$self4, _x)._;
  }
}
_Foo = Foo;
var _x = {
  _: 1
};
var _self = {
  _: _Foo
};
babelHelpers.defineProperty(Foo, "self", _Foo);
Foo.test();