# /*
#  * Copyright (C) 2016 The Android Open Source Project
#  *
#  * Licensed under the Apache License, Version 2.0 (the "License");
#  * you may not use this file except in compliance with the License.
#  * You may obtain a copy of the License at
#  *
#  *    http://www.apache.org/licenses/LICENSE-2.0
#  *
#  * Unless required by applicable law or agreed to in writing, software
#  * distributed under the License is distributed on an "AS IS" BASIS,
#  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  * See the License for the specific language governing permissions and
#  * limitations under the License.
#  */
# public class Klass implements Iface1, Iface2 {
#    public static void testMe(Iface2 me) {
#      try {
#        me.notImplementedMethod0();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod0!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod1();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod1!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod2();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod2!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod3();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod3!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod4();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod4!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod5();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod5!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod6();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod6!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod7();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod7!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod8();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod8!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod9();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod9!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod10();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod10!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod11();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod11!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod12();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod12!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod13();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod13!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod14();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod14!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod15();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod15!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod16();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod16!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod17();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod17!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod18();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod18!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod19();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod19!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod20();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod20!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod21();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod21!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod22();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod22!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod23();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod23!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod24();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod24!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod25();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod25!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod26();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod26!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod27();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod27!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod28();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod28!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod29();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod29!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod30();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod30!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod31();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod31!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod32();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod32!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod33();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod33!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod34();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod34!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod35();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod35!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod36();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod36!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod37();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod37!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod38();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod38!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod39();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod39!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod40();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod40!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod41();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod41!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod42();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod42!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod43();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod43!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod44();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod44!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod45();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod45!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod46();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod46!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod47();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod47!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod48();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod48!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod49();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod49!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod50();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod50!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod51();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod51!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod52();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod52!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod53();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod53!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod54();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod54!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod55();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod55!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod56();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod56!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod57();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod57!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod58();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod58!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod59();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod59!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod60();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod60!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod61();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod61!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod62();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod62!");
#      } catch (AbstractMethodError e) { /* do nothing */ }
#      try {
#        me.notImplementedMethod63();
#        System.out.println("FAILED TO THROW AbstractMethodError when calling notImplementedMethod63!");
#      } catch (AbstractMethodError e) { /* do nothing */ }                                                                }
#    }
# }

.class public LKlass;
.super Ljava/lang/Object;
.implements LIface1;
.implements LIface2;

.method public constructor <init>()V
    .registers 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    return-void
.end method

.method public static testMe(LIface2;)V
.locals 5
    :try_0_start
        invoke-interface {p0}, LIface2;->notImplementedMethod0()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod0!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_0_end
    :try_0_end
    .catch Ljava/lang/AbstractMethodError; {:try_0_start .. :try_0_end} :catch_0_end
    :catch_0_end


    :try_1_start
        invoke-interface {p0}, LIface2;->notImplementedMethod1()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod1!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_1_end
    :try_1_end
    .catch Ljava/lang/AbstractMethodError; {:try_1_start .. :try_1_end} :catch_1_end
    :catch_1_end


    :try_2_start
        invoke-interface {p0}, LIface2;->notImplementedMethod2()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod2!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_2_end
    :try_2_end
    .catch Ljava/lang/AbstractMethodError; {:try_2_start .. :try_2_end} :catch_2_end
    :catch_2_end


    :try_3_start
        invoke-interface {p0}, LIface2;->notImplementedMethod3()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod3!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_3_end
    :try_3_end
    .catch Ljava/lang/AbstractMethodError; {:try_3_start .. :try_3_end} :catch_3_end
    :catch_3_end


    :try_4_start
        invoke-interface {p0}, LIface2;->notImplementedMethod4()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod4!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_4_end
    :try_4_end
    .catch Ljava/lang/AbstractMethodError; {:try_4_start .. :try_4_end} :catch_4_end
    :catch_4_end


    :try_5_start
        invoke-interface {p0}, LIface2;->notImplementedMethod5()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod5!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_5_end
    :try_5_end
    .catch Ljava/lang/AbstractMethodError; {:try_5_start .. :try_5_end} :catch_5_end
    :catch_5_end


    :try_6_start
        invoke-interface {p0}, LIface2;->notImplementedMethod6()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod6!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_6_end
    :try_6_end
    .catch Ljava/lang/AbstractMethodError; {:try_6_start .. :try_6_end} :catch_6_end
    :catch_6_end


    :try_7_start
        invoke-interface {p0}, LIface2;->notImplementedMethod7()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod7!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_7_end
    :try_7_end
    .catch Ljava/lang/AbstractMethodError; {:try_7_start .. :try_7_end} :catch_7_end
    :catch_7_end


    :try_8_start
        invoke-interface {p0}, LIface2;->notImplementedMethod8()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod8!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_8_end
    :try_8_end
    .catch Ljava/lang/AbstractMethodError; {:try_8_start .. :try_8_end} :catch_8_end
    :catch_8_end


    :try_9_start
        invoke-interface {p0}, LIface2;->notImplementedMethod9()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod9!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_9_end
    :try_9_end
    .catch Ljava/lang/AbstractMethodError; {:try_9_start .. :try_9_end} :catch_9_end
    :catch_9_end


    :try_10_start
        invoke-interface {p0}, LIface2;->notImplementedMethod10()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod10!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_10_end
    :try_10_end
    .catch Ljava/lang/AbstractMethodError; {:try_10_start .. :try_10_end} :catch_10_end
    :catch_10_end


    :try_11_start
        invoke-interface {p0}, LIface2;->notImplementedMethod11()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod11!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_11_end
    :try_11_end
    .catch Ljava/lang/AbstractMethodError; {:try_11_start .. :try_11_end} :catch_11_end
    :catch_11_end


    :try_12_start
        invoke-interface {p0}, LIface2;->notImplementedMethod12()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod12!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_12_end
    :try_12_end
    .catch Ljava/lang/AbstractMethodError; {:try_12_start .. :try_12_end} :catch_12_end
    :catch_12_end


    :try_13_start
        invoke-interface {p0}, LIface2;->notImplementedMethod13()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod13!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_13_end
    :try_13_end
    .catch Ljava/lang/AbstractMethodError; {:try_13_start .. :try_13_end} :catch_13_end
    :catch_13_end


    :try_14_start
        invoke-interface {p0}, LIface2;->notImplementedMethod14()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod14!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_14_end
    :try_14_end
    .catch Ljava/lang/AbstractMethodError; {:try_14_start .. :try_14_end} :catch_14_end
    :catch_14_end


    :try_15_start
        invoke-interface {p0}, LIface2;->notImplementedMethod15()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod15!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_15_end
    :try_15_end
    .catch Ljava/lang/AbstractMethodError; {:try_15_start .. :try_15_end} :catch_15_end
    :catch_15_end


    :try_16_start
        invoke-interface {p0}, LIface2;->notImplementedMethod16()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod16!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_16_end
    :try_16_end
    .catch Ljava/lang/AbstractMethodError; {:try_16_start .. :try_16_end} :catch_16_end
    :catch_16_end


    :try_17_start
        invoke-interface {p0}, LIface2;->notImplementedMethod17()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod17!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_17_end
    :try_17_end
    .catch Ljava/lang/AbstractMethodError; {:try_17_start .. :try_17_end} :catch_17_end
    :catch_17_end


    :try_18_start
        invoke-interface {p0}, LIface2;->notImplementedMethod18()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod18!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_18_end
    :try_18_end
    .catch Ljava/lang/AbstractMethodError; {:try_18_start .. :try_18_end} :catch_18_end
    :catch_18_end


    :try_19_start
        invoke-interface {p0}, LIface2;->notImplementedMethod19()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod19!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_19_end
    :try_19_end
    .catch Ljava/lang/AbstractMethodError; {:try_19_start .. :try_19_end} :catch_19_end
    :catch_19_end


    :try_20_start
        invoke-interface {p0}, LIface2;->notImplementedMethod20()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod20!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_20_end
    :try_20_end
    .catch Ljava/lang/AbstractMethodError; {:try_20_start .. :try_20_end} :catch_20_end
    :catch_20_end


    :try_21_start
        invoke-interface {p0}, LIface2;->notImplementedMethod21()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod21!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_21_end
    :try_21_end
    .catch Ljava/lang/AbstractMethodError; {:try_21_start .. :try_21_end} :catch_21_end
    :catch_21_end


    :try_22_start
        invoke-interface {p0}, LIface2;->notImplementedMethod22()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod22!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_22_end
    :try_22_end
    .catch Ljava/lang/AbstractMethodError; {:try_22_start .. :try_22_end} :catch_22_end
    :catch_22_end


    :try_23_start
        invoke-interface {p0}, LIface2;->notImplementedMethod23()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod23!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_23_end
    :try_23_end
    .catch Ljava/lang/AbstractMethodError; {:try_23_start .. :try_23_end} :catch_23_end
    :catch_23_end


    :try_24_start
        invoke-interface {p0}, LIface2;->notImplementedMethod24()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod24!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_24_end
    :try_24_end
    .catch Ljava/lang/AbstractMethodError; {:try_24_start .. :try_24_end} :catch_24_end
    :catch_24_end


    :try_25_start
        invoke-interface {p0}, LIface2;->notImplementedMethod25()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod25!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_25_end
    :try_25_end
    .catch Ljava/lang/AbstractMethodError; {:try_25_start .. :try_25_end} :catch_25_end
    :catch_25_end


    :try_26_start
        invoke-interface {p0}, LIface2;->notImplementedMethod26()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod26!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_26_end
    :try_26_end
    .catch Ljava/lang/AbstractMethodError; {:try_26_start .. :try_26_end} :catch_26_end
    :catch_26_end


    :try_27_start
        invoke-interface {p0}, LIface2;->notImplementedMethod27()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod27!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_27_end
    :try_27_end
    .catch Ljava/lang/AbstractMethodError; {:try_27_start .. :try_27_end} :catch_27_end
    :catch_27_end


    :try_28_start
        invoke-interface {p0}, LIface2;->notImplementedMethod28()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod28!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_28_end
    :try_28_end
    .catch Ljava/lang/AbstractMethodError; {:try_28_start .. :try_28_end} :catch_28_end
    :catch_28_end


    :try_29_start
        invoke-interface {p0}, LIface2;->notImplementedMethod29()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod29!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_29_end
    :try_29_end
    .catch Ljava/lang/AbstractMethodError; {:try_29_start .. :try_29_end} :catch_29_end
    :catch_29_end


    :try_30_start
        invoke-interface {p0}, LIface2;->notImplementedMethod30()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod30!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_30_end
    :try_30_end
    .catch Ljava/lang/AbstractMethodError; {:try_30_start .. :try_30_end} :catch_30_end
    :catch_30_end


    :try_31_start
        invoke-interface {p0}, LIface2;->notImplementedMethod31()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod31!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_31_end
    :try_31_end
    .catch Ljava/lang/AbstractMethodError; {:try_31_start .. :try_31_end} :catch_31_end
    :catch_31_end


    :try_32_start
        invoke-interface {p0}, LIface2;->notImplementedMethod32()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod32!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_32_end
    :try_32_end
    .catch Ljava/lang/AbstractMethodError; {:try_32_start .. :try_32_end} :catch_32_end
    :catch_32_end


    :try_33_start
        invoke-interface {p0}, LIface2;->notImplementedMethod33()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod33!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_33_end
    :try_33_end
    .catch Ljava/lang/AbstractMethodError; {:try_33_start .. :try_33_end} :catch_33_end
    :catch_33_end


    :try_34_start
        invoke-interface {p0}, LIface2;->notImplementedMethod34()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod34!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_34_end
    :try_34_end
    .catch Ljava/lang/AbstractMethodError; {:try_34_start .. :try_34_end} :catch_34_end
    :catch_34_end


    :try_35_start
        invoke-interface {p0}, LIface2;->notImplementedMethod35()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod35!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_35_end
    :try_35_end
    .catch Ljava/lang/AbstractMethodError; {:try_35_start .. :try_35_end} :catch_35_end
    :catch_35_end


    :try_36_start
        invoke-interface {p0}, LIface2;->notImplementedMethod36()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod36!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_36_end
    :try_36_end
    .catch Ljava/lang/AbstractMethodError; {:try_36_start .. :try_36_end} :catch_36_end
    :catch_36_end


    :try_37_start
        invoke-interface {p0}, LIface2;->notImplementedMethod37()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod37!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_37_end
    :try_37_end
    .catch Ljava/lang/AbstractMethodError; {:try_37_start .. :try_37_end} :catch_37_end
    :catch_37_end


    :try_38_start
        invoke-interface {p0}, LIface2;->notImplementedMethod38()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod38!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_38_end
    :try_38_end
    .catch Ljava/lang/AbstractMethodError; {:try_38_start .. :try_38_end} :catch_38_end
    :catch_38_end


    :try_39_start
        invoke-interface {p0}, LIface2;->notImplementedMethod39()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod39!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_39_end
    :try_39_end
    .catch Ljava/lang/AbstractMethodError; {:try_39_start .. :try_39_end} :catch_39_end
    :catch_39_end


    :try_40_start
        invoke-interface {p0}, LIface2;->notImplementedMethod40()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod40!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_40_end
    :try_40_end
    .catch Ljava/lang/AbstractMethodError; {:try_40_start .. :try_40_end} :catch_40_end
    :catch_40_end


    :try_41_start
        invoke-interface {p0}, LIface2;->notImplementedMethod41()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod41!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_41_end
    :try_41_end
    .catch Ljava/lang/AbstractMethodError; {:try_41_start .. :try_41_end} :catch_41_end
    :catch_41_end


    :try_42_start
        invoke-interface {p0}, LIface2;->notImplementedMethod42()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod42!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_42_end
    :try_42_end
    .catch Ljava/lang/AbstractMethodError; {:try_42_start .. :try_42_end} :catch_42_end
    :catch_42_end


    :try_43_start
        invoke-interface {p0}, LIface2;->notImplementedMethod43()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod43!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_43_end
    :try_43_end
    .catch Ljava/lang/AbstractMethodError; {:try_43_start .. :try_43_end} :catch_43_end
    :catch_43_end


    :try_44_start
        invoke-interface {p0}, LIface2;->notImplementedMethod44()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod44!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_44_end
    :try_44_end
    .catch Ljava/lang/AbstractMethodError; {:try_44_start .. :try_44_end} :catch_44_end
    :catch_44_end


    :try_45_start
        invoke-interface {p0}, LIface2;->notImplementedMethod45()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod45!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_45_end
    :try_45_end
    .catch Ljava/lang/AbstractMethodError; {:try_45_start .. :try_45_end} :catch_45_end
    :catch_45_end


    :try_46_start
        invoke-interface {p0}, LIface2;->notImplementedMethod46()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod46!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_46_end
    :try_46_end
    .catch Ljava/lang/AbstractMethodError; {:try_46_start .. :try_46_end} :catch_46_end
    :catch_46_end


    :try_47_start
        invoke-interface {p0}, LIface2;->notImplementedMethod47()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod47!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_47_end
    :try_47_end
    .catch Ljava/lang/AbstractMethodError; {:try_47_start .. :try_47_end} :catch_47_end
    :catch_47_end


    :try_48_start
        invoke-interface {p0}, LIface2;->notImplementedMethod48()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod48!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_48_end
    :try_48_end
    .catch Ljava/lang/AbstractMethodError; {:try_48_start .. :try_48_end} :catch_48_end
    :catch_48_end


    :try_49_start
        invoke-interface {p0}, LIface2;->notImplementedMethod49()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod49!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_49_end
    :try_49_end
    .catch Ljava/lang/AbstractMethodError; {:try_49_start .. :try_49_end} :catch_49_end
    :catch_49_end


    :try_50_start
        invoke-interface {p0}, LIface2;->notImplementedMethod50()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod50!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_50_end
    :try_50_end
    .catch Ljava/lang/AbstractMethodError; {:try_50_start .. :try_50_end} :catch_50_end
    :catch_50_end


    :try_51_start
        invoke-interface {p0}, LIface2;->notImplementedMethod51()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod51!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_51_end
    :try_51_end
    .catch Ljava/lang/AbstractMethodError; {:try_51_start .. :try_51_end} :catch_51_end
    :catch_51_end


    :try_52_start
        invoke-interface {p0}, LIface2;->notImplementedMethod52()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod52!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_52_end
    :try_52_end
    .catch Ljava/lang/AbstractMethodError; {:try_52_start .. :try_52_end} :catch_52_end
    :catch_52_end


    :try_53_start
        invoke-interface {p0}, LIface2;->notImplementedMethod53()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod53!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_53_end
    :try_53_end
    .catch Ljava/lang/AbstractMethodError; {:try_53_start .. :try_53_end} :catch_53_end
    :catch_53_end


    :try_54_start
        invoke-interface {p0}, LIface2;->notImplementedMethod54()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod54!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_54_end
    :try_54_end
    .catch Ljava/lang/AbstractMethodError; {:try_54_start .. :try_54_end} :catch_54_end
    :catch_54_end


    :try_55_start
        invoke-interface {p0}, LIface2;->notImplementedMethod55()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod55!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_55_end
    :try_55_end
    .catch Ljava/lang/AbstractMethodError; {:try_55_start .. :try_55_end} :catch_55_end
    :catch_55_end


    :try_56_start
        invoke-interface {p0}, LIface2;->notImplementedMethod56()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod56!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_56_end
    :try_56_end
    .catch Ljava/lang/AbstractMethodError; {:try_56_start .. :try_56_end} :catch_56_end
    :catch_56_end


    :try_57_start
        invoke-interface {p0}, LIface2;->notImplementedMethod57()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod57!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_57_end
    :try_57_end
    .catch Ljava/lang/AbstractMethodError; {:try_57_start .. :try_57_end} :catch_57_end
    :catch_57_end


    :try_58_start
        invoke-interface {p0}, LIface2;->notImplementedMethod58()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod58!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_58_end
    :try_58_end
    .catch Ljava/lang/AbstractMethodError; {:try_58_start .. :try_58_end} :catch_58_end
    :catch_58_end


    :try_59_start
        invoke-interface {p0}, LIface2;->notImplementedMethod59()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod59!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_59_end
    :try_59_end
    .catch Ljava/lang/AbstractMethodError; {:try_59_start .. :try_59_end} :catch_59_end
    :catch_59_end


    :try_60_start
        invoke-interface {p0}, LIface2;->notImplementedMethod60()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod60!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_60_end
    :try_60_end
    .catch Ljava/lang/AbstractMethodError; {:try_60_start .. :try_60_end} :catch_60_end
    :catch_60_end


    :try_61_start
        invoke-interface {p0}, LIface2;->notImplementedMethod61()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod61!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_61_end
    :try_61_end
    .catch Ljava/lang/AbstractMethodError; {:try_61_start .. :try_61_end} :catch_61_end
    :catch_61_end


    :try_62_start
        invoke-interface {p0}, LIface2;->notImplementedMethod62()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod62!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_62_end
    :try_62_end
    .catch Ljava/lang/AbstractMethodError; {:try_62_start .. :try_62_end} :catch_62_end
    :catch_62_end


    :try_63_start
        invoke-interface {p0}, LIface2;->notImplementedMethod63()V
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
        const-string v1, "FAILED TO THROW AbstractMethodError when calling notImplementedMethod63!"
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
        goto :catch_63_end
    :try_63_end
    .catch Ljava/lang/AbstractMethodError; {:try_63_start .. :try_63_end} :catch_63_end
    :catch_63_end
    return-void
.end method
