class freemarker.core.BuiltInsForMultipleTypes$cBI extends freemarker.core.BuiltInsForMultipleTypes$AbstractCBI implements freemarker.core.ICIChainMember
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.core.BuiltInsForMultipleTypes$cBI
  super_class: freemarker.core.BuiltInsForMultipleTypes$AbstractCBI
{
  private final freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21 prevICIObj;
    descriptor: Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
         0: .line 56
            aload 0 /* this */
            invokespecial freemarker.core.BuiltInsForMultipleTypes$AbstractCBI.<init>:()V
         1: .line 73
            aload 0 /* this */
            new freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21
            dup
            invokespecial freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21.<init>:()V
            putfield freemarker.core.BuiltInsForMultipleTypes$cBI.prevICIObj:Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
         2: .line 56
            return
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$cBI;

  freemarker.template.TemplateModel _eval(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
        start local 1 // freemarker.core.Environment env
         0: .line 77
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$cBI.target:Lfreemarker/core/Expression;
            aload 1 /* env */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            astore 2 /* model */
        start local 2 // freemarker.template.TemplateModel model
         1: .line 78
            aload 2 /* model */
            instanceof freemarker.template.TemplateNumberModel
            ifeq 3
         2: .line 79
            aload 0 /* this */
            aload 1 /* env */
            aload 2 /* model */
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$cBI.formatNumber:(Lfreemarker/core/Environment;Lfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModel;
            areturn
         3: .line 80
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 2 /* model */
            instanceof freemarker.template.TemplateBooleanModel
            ifeq 8
         4: .line 81
            new freemarker.template.SimpleScalar
            dup
            aload 2 /* model */
            checkcast freemarker.template.TemplateBooleanModel
            invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
            ifeq 6
         5: .line 82
            ldc "true"
            goto 7
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$cBI freemarker.core.Environment freemarker.template.TemplateModel
      StackMap stack: new 4 new 4
         6: ldc "false"
         7: .line 81
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$cBI freemarker.core.Environment freemarker.template.TemplateModel
      StackMap stack: new 4 new 4 java.lang.String
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
         8: .line 84
      StackMap locals:
      StackMap stack:
            new freemarker.core.UnexpectedTypeException
            dup
         9: .line 85
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$cBI.target:Lfreemarker/core/Expression;
            aload 2 /* model */
        10: .line 86
            ldc "number or boolean"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lfreemarker/template/TemplateNumberModel;
            aastore
            dup
            iconst_1
            ldc Lfreemarker/template/TemplateBooleanModel;
            aastore
        11: .line 87
            aload 1 /* env */
        12: .line 84
            invokespecial freemarker.core.UnexpectedTypeException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;[Ljava/lang/Class;Lfreemarker/core/Environment;)V
            athrow
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
            0   13     1    env  Lfreemarker/core/Environment;
            1   13     2  model  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      env   

  protected freemarker.template.TemplateModel formatNumber(freemarker.core.Environment, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/core/Environment;Lfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModel;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
        start local 1 // freemarker.core.Environment env
        start local 2 // freemarker.template.TemplateModel model
         0: .line 93
            aload 2 /* model */
            checkcast freemarker.template.TemplateNumberModel
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$cBI.target:Lfreemarker/core/Expression;
            invokestatic freemarker.core.EvalUtil.modelToNumber:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;)Ljava/lang/Number;
            astore 3 /* num */
        start local 3 // java.lang.Number num
         1: .line 94
            aload 3 /* num */
            instanceof java.lang.Integer
            ifne 2
            aload 3 /* num */
            instanceof java.lang.Long
            ifeq 3
         2: .line 96
      StackMap locals: java.lang.Number
      StackMap stack:
            new freemarker.template.SimpleScalar
            dup
            aload 3 /* num */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
         3: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* num */
            instanceof java.lang.Double
            ifeq 11
         4: .line 98
            aload 3 /* num */
            invokevirtual java.lang.Number.doubleValue:()D
            dstore 4 /* n */
        start local 4 // double n
         5: .line 99
            dload 4 /* n */
            ldc Infinity
            dcmpl
            ifne 7
         6: .line 100
            new freemarker.template.SimpleScalar
            dup
            ldc "INF"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
         7: .line 102
      StackMap locals: double
      StackMap stack:
            dload 4 /* n */
            ldc -Infinity
            dcmpl
            ifne 9
         8: .line 103
            new freemarker.template.SimpleScalar
            dup
            ldc "-INF"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
         9: .line 105
      StackMap locals:
      StackMap stack:
            dload 4 /* n */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 19
        10: .line 106
            new freemarker.template.SimpleScalar
            dup
            ldc "NaN"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        end local 4 // double n
        11: .line 109
      StackMap locals:
      StackMap stack:
            aload 3 /* num */
            instanceof java.lang.Float
            ifeq 19
        12: .line 110
            aload 3 /* num */
            invokevirtual java.lang.Number.floatValue:()F
            fstore 4 /* n */
        start local 4 // float n
        13: .line 111
            fload 4 /* n */
            ldc Infinity
            fcmpl
            ifne 15
        14: .line 112
            new freemarker.template.SimpleScalar
            dup
            ldc "INF"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        15: .line 114
      StackMap locals: float
      StackMap stack:
            fload 4 /* n */
            ldc -Infinity
            fcmpl
            ifne 17
        16: .line 115
            new freemarker.template.SimpleScalar
            dup
            ldc "-INF"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        17: .line 117
      StackMap locals:
      StackMap stack:
            fload 4 /* n */
            invokestatic java.lang.Float.isNaN:(F)Z
            ifeq 19
        18: .line 118
            new freemarker.template.SimpleScalar
            dup
            ldc "NaN"
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        end local 4 // float n
        19: .line 123
      StackMap locals:
      StackMap stack:
            new freemarker.template.SimpleScalar
            dup
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getCNumberFormat:()Ljava/text/NumberFormat;
            aload 3 /* num */
            invokevirtual java.text.NumberFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.Number num
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
            0   20     1    env  Lfreemarker/core/Environment;
            0   20     2  model  Lfreemarker/template/TemplateModel;
            1   20     3    num  Ljava/lang/Number;
            5   11     4      n  D
           13   19     4      n  F
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
       Name  Flags
      env    
      model  

  public int getMinimumICIVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
         0: .line 127
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_21:I
            ireturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$cBI;

  public java.lang.Object getPreviousICIChainMember();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
         0: .line 131
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$cBI.prevICIObj:Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
            areturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$cBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
}
SourceFile: "BuiltInsForMultipleTypes.java"
NestHost: freemarker.core.BuiltInsForMultipleTypes
InnerClasses:
  abstract AbstractCBI = freemarker.core.BuiltInsForMultipleTypes$AbstractCBI of freemarker.core.BuiltInsForMultipleTypes
  cBI = freemarker.core.BuiltInsForMultipleTypes$cBI of freemarker.core.BuiltInsForMultipleTypes
  BIBeforeICE2d3d21 = freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21 of freemarker.core.BuiltInsForMultipleTypes$cBI