public final class freemarker.core.Environment extends freemarker.core.Configurable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: freemarker.core.Environment
  super_class: freemarker.core.Configurable
{
  private static final java.lang.ThreadLocal threadEnv;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final freemarker.log.Logger LOG;
    descriptor: Lfreemarker/log/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final freemarker.log.Logger ATTEMPT_LOGGER;
    descriptor: Lfreemarker/log/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.text.DecimalFormat C_NUMBER_FORMAT;
    descriptor: Ljava/text/DecimalFormat;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final freemarker.template.Configuration configuration;
    descriptor: Lfreemarker/template/Configuration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean incompatibleImprovementsGE2328;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.template.TemplateHashModel rootDataModel;
    descriptor: Lfreemarker/template/TemplateHashModel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private freemarker.core.TemplateElement[] instructionStack;
    descriptor: [Lfreemarker/core/TemplateElement;
    flags: (0x0002) ACC_PRIVATE

  private int instructionStackSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.ArrayList recoveredErrorStack;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private freemarker.core.TemplateNumberFormat cachedTemplateNumberFormat;
    descriptor: Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, freemarker.core.TemplateNumberFormat> cachedTemplateNumberFormats;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lfreemarker/core/TemplateNumberFormat;>;

  private freemarker.core.TemplateDateFormat[] cachedTempDateFormatArray;
    descriptor: [Lfreemarker/core/TemplateDateFormat;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, freemarker.core.TemplateDateFormat>[] cachedTempDateFormatsByFmtStrArray;
    descriptor: [Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: [Ljava/util/HashMap<Ljava/lang/String;Lfreemarker/core/TemplateDateFormat;>;

  private static final int CACHED_TDFS_ZONELESS_INPUT_OFFS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int CACHED_TDFS_SQL_D_T_TZ_OFFS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int CACHED_TDFS_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private java.lang.Boolean cachedSQLDateAndTimeTimeZoneSameAsNormal;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.text.NumberFormat cNumberFormat;
    descriptor: Ljava/text/NumberFormat;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.template.utility.DateUtil$DateToISO8601CalendarFactory isoBuiltInCalendarFactory;
    descriptor: Lfreemarker/template/utility/DateUtil$DateToISO8601CalendarFactory;
    flags: (0x0002) ACC_PRIVATE

  private java.text.Collator cachedCollator;
    descriptor: Ljava/text/Collator;
    flags: (0x0002) ACC_PRIVATE

  private java.io.Writer out;
    descriptor: Ljava/io/Writer;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.core.Macro$Context currentMacroContext;
    descriptor: Lfreemarker/core/Macro$Context;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.core.LocalContextStack localContextStack;
    descriptor: Lfreemarker/core/LocalContextStack;
    flags: (0x0002) ACC_PRIVATE

  private final freemarker.core.Environment$Namespace mainNamespace;
    descriptor: Lfreemarker/core/Environment$Namespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private freemarker.core.Environment$Namespace currentNamespace;
    descriptor: Lfreemarker/core/Environment$Namespace;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.core.Environment$Namespace globalNamespace;
    descriptor: Lfreemarker/core/Environment$Namespace;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, freemarker.core.Environment$Namespace> loadedLibs;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lfreemarker/core/Environment$Namespace;>;

  private freemarker.core.Configurable legacyParent;
    descriptor: Lfreemarker/core/Configurable;
    flags: (0x0002) ACC_PRIVATE

  private boolean inAttemptBlock;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Throwable lastThrowable;
    descriptor: Ljava/lang/Throwable;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.template.TemplateModel lastReturnValue;
    descriptor: Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap macroToNamespaceLookup;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.template.TemplateNodeModel currentVisitorNode;
    descriptor: Lfreemarker/template/TemplateNodeModel;
    flags: (0x0002) ACC_PRIVATE

  private freemarker.template.TemplateSequenceModel nodeNamespaces;
    descriptor: Lfreemarker/template/TemplateSequenceModel;
    flags: (0x0002) ACC_PRIVATE

  private int nodeNamespaceIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String currentNodeName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String currentNodeNS;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String cachedURLEscapingCharset;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean cachedURLEscapingCharsetSet;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean fastInvalidReferenceExceptions;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final freemarker.template.TemplateModel[] NO_OUT_ARGS;
    descriptor: [Lfreemarker/template/TemplateModel;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int TERSE_MODE_INSTRUCTION_STACK_TRACE_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private java.util.IdentityHashMap<java.lang.Object, java.lang.Object> customStateVariables;
    descriptor: Ljava/util/IdentityHashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/IdentityHashMap<Ljava/lang/Object;Ljava/lang/Object;>;

  private static final java.io.Writer EMPTY_BODY_WRITER;
    descriptor: Ljava/io/Writer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 96
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
         1: .line 98
            ldc "freemarker.runtime"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            putstatic freemarker.core.Environment.LOG:Lfreemarker/log/Logger;
         2: .line 99
            ldc "freemarker.runtime.attempt"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            putstatic freemarker.core.Environment.ATTEMPT_LOGGER:Lfreemarker/log/Logger;
         3: .line 103
            new java.text.DecimalFormat
            dup
         4: .line 104
            ldc "0.################"
         5: .line 105
            new java.text.DecimalFormatSymbols
            dup
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokespecial java.text.DecimalFormatSymbols.<init>:(Ljava/util/Locale;)V
         6: .line 103
            invokespecial java.text.DecimalFormat.<init>:(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V
            putstatic freemarker.core.Environment.C_NUMBER_FORMAT:Ljava/text/DecimalFormat;
         7: .line 108
            getstatic freemarker.core.Environment.C_NUMBER_FORMAT:Ljava/text/DecimalFormat;
            iconst_0
            invokevirtual java.text.DecimalFormat.setGroupingUsed:(Z)V
         8: .line 109
            getstatic freemarker.core.Environment.C_NUMBER_FORMAT:Ljava/text/DecimalFormat;
            iconst_0
            invokevirtual java.text.DecimalFormat.setDecimalSeparatorAlwaysShown:(Z)V
         9: .line 404
            iconst_0
            anewarray freemarker.template.TemplateModel
            putstatic freemarker.core.Environment.NO_OUT_ARGS:[Lfreemarker/template/TemplateModel;
        10: .line 3104
            new freemarker.core.Environment$1
            dup
            invokespecial freemarker.core.Environment$1.<init>:()V
            putstatic freemarker.core.Environment.EMPTY_BODY_WRITER:Ljava/io/Writer;
        11: .line 3121
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static freemarker.core.Environment getCurrentEnvironment();
    descriptor: ()Lfreemarker/core/Environment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 193
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast freemarker.core.Environment
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void setCurrentEnvironment(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment env
         0: .line 197
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            aload 0 /* env */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 198
            return
        end local 0 // freemarker.core.Environment env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   env  Lfreemarker/core/Environment;
    MethodParameters:
      Name  Flags
      env   

  public void <init>(freemarker.template.Template, freemarker.template.TemplateHashModel, java.io.Writer);
    descriptor: (Lfreemarker/template/Template;Lfreemarker/template/TemplateHashModel;Ljava/io/Writer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.Template template
        start local 2 // freemarker.template.TemplateHashModel rootDataModel
        start local 3 // java.io.Writer out
         0: .line 201
            aload 0 /* this */
            aload 1 /* template */
            invokespecial freemarker.core.Configurable.<init>:(Lfreemarker/core/Configurable;)V
         1: .line 115
            aload 0 /* this */
            bipush 16
            anewarray freemarker.core.TemplateElement
            putfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
         2: .line 116
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.Environment.instructionStackSize:I
         3: .line 117
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
         4: .line 173
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield freemarker.core.Environment.macroToNamespaceLookup:Ljava/util/HashMap;
         5: .line 202
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual freemarker.template.Template.getConfiguration:()Lfreemarker/template/Configuration;
            putfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
         6: .line 203
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_28:I
            if_icmplt 7
            iconst_1
            goto 8
      StackMap locals: freemarker.core.Environment freemarker.template.Template freemarker.template.TemplateHashModel java.io.Writer
      StackMap stack: freemarker.core.Environment
         7: iconst_0
      StackMap locals: freemarker.core.Environment freemarker.template.Template freemarker.template.TemplateHashModel java.io.Writer
      StackMap stack: freemarker.core.Environment int
         8: putfield freemarker.core.Environment.incompatibleImprovementsGE2328:Z
         9: .line 204
            aload 0 /* this */
            new freemarker.core.Environment$Namespace
            dup
            aload 0 /* this */
            aconst_null
            invokespecial freemarker.core.Environment$Namespace.<init>:(Lfreemarker/core/Environment;Lfreemarker/template/Template;)V
            putfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
        10: .line 205
            aload 0 /* this */
            aload 0 /* this */
            new freemarker.core.Environment$Namespace
            dup
            aload 0 /* this */
            aload 1 /* template */
            invokespecial freemarker.core.Environment$Namespace.<init>:(Lfreemarker/core/Environment;Lfreemarker/template/Template;)V
            dup_x1
            putfield freemarker.core.Environment.mainNamespace:Lfreemarker/core/Environment$Namespace;
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        11: .line 206
            aload 0 /* this */
            aload 3 /* out */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        12: .line 207
            aload 0 /* this */
            aload 2 /* rootDataModel */
            putfield freemarker.core.Environment.rootDataModel:Lfreemarker/template/TemplateHashModel;
        13: .line 208
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual freemarker.core.Environment.importMacros:(Lfreemarker/template/Template;)V
        14: .line 209
            return
        end local 3 // java.io.Writer out
        end local 2 // freemarker.template.TemplateHashModel rootDataModel
        end local 1 // freemarker.template.Template template
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lfreemarker/core/Environment;
            0   15     1       template  Lfreemarker/template/Template;
            0   15     2  rootDataModel  Lfreemarker/template/TemplateHashModel;
            0   15     3            out  Ljava/io/Writer;
    MethodParameters:
               Name  Flags
      template       
      rootDataModel  final
      out            

  public freemarker.template.Template getTemplate();
    descriptor: ()Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 223
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getParent:()Lfreemarker/core/Configurable;
            checkcast freemarker.template.Template
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  freemarker.template.Template getTemplate230();
    descriptor: ()Lfreemarker/template/Template;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 228
            aload 0 /* this */
            getfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
            checkcast freemarker.template.Template
            astore 1 /* legacyParent */
        start local 1 // freemarker.template.Template legacyParent
         1: .line 229
            aload 1 /* legacyParent */
            ifnull 2
            aload 1 /* legacyParent */
            goto 3
      StackMap locals: freemarker.template.Template
      StackMap stack:
         2: aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
      StackMap locals:
      StackMap stack: freemarker.template.Template
         3: areturn
        end local 1 // freemarker.template.Template legacyParent
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lfreemarker/core/Environment;
            1    4     1  legacyParent  Lfreemarker/template/Template;

  public freemarker.template.Template getMainTemplate();
    descriptor: ()Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 242
            aload 0 /* this */
            getfield freemarker.core.Environment.mainNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public freemarker.template.Template getCurrentTemplate();
    descriptor: ()Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 257
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tSuppressFBWarnings cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
    RuntimeInvisibleAnnotations: 
      SuppressFBWarnings()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        SuppressFBWarnings()

  public freemarker.core.DirectiveCallPlace getCurrentDirectiveCallPlace();
    descriptor: ()Lfreemarker/core/DirectiveCallPlace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 271
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tSuppressFBWarnings cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
    RuntimeInvisibleAnnotations: 
      SuppressFBWarnings()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        SuppressFBWarnings()

  private void clearCachedValues();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 287
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
         1: .line 288
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
         2: .line 290
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
         3: .line 291
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
         4: .line 293
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedCollator:Ljava/text/Collator;
         5: .line 294
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedURLEscapingCharset:Ljava/lang/String;
         6: .line 295
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.Environment.cachedURLEscapingCharsetSet:Z
         7: .line 296
            return
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lfreemarker/core/Environment;

  public void process();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 302
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            astore 1 /* savedEnv */
        start local 1 // java.lang.Object savedEnv
         1: .line 303
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            aload 0 /* this */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         2: .line 306
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.clearCachedValues:()V
         3: .line 308
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.doAutoImportsAndIncludes:(Lfreemarker/core/Environment;)V
         4: .line 309
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
         5: .line 311
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getAutoFlush:()Z
            ifeq 11
         6: .line 312
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            invokevirtual java.io.Writer.flush:()V
         7: .line 314
            goto 11
      StackMap locals: freemarker.core.Environment java.lang.Object
      StackMap stack: java.lang.Throwable
         8: astore 2
         9: .line 316
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.clearCachedValues:()V
        10: .line 317
            aload 2
            athrow
        11: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.clearCachedValues:()V
        12: .line 318
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
        14: .line 319
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            aload 1 /* savedEnv */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        15: .line 320
            aload 3
            athrow
        16: .line 319
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.Environment.threadEnv:Ljava/lang/ThreadLocal;
            aload 1 /* savedEnv */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        17: .line 321
            return
        end local 1 // java.lang.Object savedEnv
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lfreemarker/core/Environment;
            1   18     1  savedEnv  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     8       8  any
           2    13      13  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException

  void visit(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement element
         0: .line 328
            aload 0 /* this */
            aload 1 /* element */
            invokevirtual freemarker.core.Environment.pushElement:(Lfreemarker/core/TemplateElement;)V
         1: .line 330
            aload 1 /* element */
            aload 0 /* this */
            invokevirtual freemarker.core.TemplateElement.accept:(Lfreemarker/core/Environment;)[Lfreemarker/core/TemplateElement;
            astore 2 /* templateElementsToVisit */
        start local 2 // freemarker.core.TemplateElement[] templateElementsToVisit
         2: .line 331
            aload 2 /* templateElementsToVisit */
            ifnull 17
         3: .line 332
            aload 2 /* templateElementsToVisit */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* el */
        start local 3 // freemarker.core.TemplateElement el
         5: .line 333
            aload 3 /* el */
            ifnonnull 7
         6: .line 334
            goto 17
         7: .line 336
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* el */
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
        end local 3 // freemarker.core.TemplateElement el
         8: .line 332
            iinc 4 1
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 4
        end local 2 // freemarker.core.TemplateElement[] templateElementsToVisit
        10: .line 339
            goto 17
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement
      StackMap stack: freemarker.template.TemplateException
        11: astore 2 /* te */
        start local 2 // freemarker.template.TemplateException te
        12: .line 340
            aload 0 /* this */
            aload 2 /* te */
            invokevirtual freemarker.core.Environment.handleTemplateException:(Lfreemarker/template/TemplateException;)V
        end local 2 // freemarker.template.TemplateException te
        13: .line 342
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
            goto 18
        14: .line 341
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        15: .line 342
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        16: .line 343
            aload 7
            athrow
        17: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        18: .line 345
      StackMap locals:
      StackMap stack:
            return
        end local 1 // freemarker.core.TemplateElement element
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   19     0                     this  Lfreemarker/core/Environment;
            0   19     1                  element  Lfreemarker/core/TemplateElement;
            2   10     2  templateElementsToVisit  [Lfreemarker/core/TemplateElement;
            5    8     3                       el  Lfreemarker/core/TemplateElement;
           12   13     2                       te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           1    10      11  Class freemarker.template.TemplateException
           1    13      14  any
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
         Name  Flags
      element  

  final void visit(freemarker.core.TemplateElement[]);
    descriptor: ([Lfreemarker/core/TemplateElement;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=12, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement[] elementBuffer
         0: .line 354
            aload 1 /* elementBuffer */
            ifnonnull 2
         1: .line 355
            return
         2: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* elementBuffer */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 25
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* element */
        start local 2 // freemarker.core.TemplateElement element
         4: .line 358
            aload 2 /* element */
            ifnonnull 6
         5: .line 359
            goto 26
         6: .line 364
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* element */
            invokevirtual freemarker.core.Environment.pushElement:(Lfreemarker/core/TemplateElement;)V
         7: .line 366
            aload 2 /* element */
            aload 0 /* this */
            invokevirtual freemarker.core.TemplateElement.accept:(Lfreemarker/core/Environment;)[Lfreemarker/core/TemplateElement;
            astore 6 /* templateElementsToVisit */
        start local 6 // freemarker.core.TemplateElement[] templateElementsToVisit
         8: .line 367
            aload 6 /* templateElementsToVisit */
            ifnull 23
         9: .line 368
            aload 6 /* templateElementsToVisit */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 15
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[] freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
        10: aload 10
            iload 8
            aaload
            astore 7 /* el */
        start local 7 // freemarker.core.TemplateElement el
        11: .line 369
            aload 7 /* el */
            ifnonnull 13
        12: .line 370
            goto 23
        13: .line 372
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[] freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[]
      StackMap stack:
            aload 0 /* this */
            aload 7 /* el */
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
        end local 7 // freemarker.core.TemplateElement el
        14: .line 368
            iinc 8 1
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[] freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
        15: iload 8
            iload 9
            if_icmplt 10
        end local 6 // freemarker.core.TemplateElement[] templateElementsToVisit
        16: .line 375
            goto 23
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.core.TemplateElement int int freemarker.core.TemplateElement[]
      StackMap stack: freemarker.template.TemplateException
        17: astore 6 /* te */
        start local 6 // freemarker.template.TemplateException te
        18: .line 376
            aload 0 /* this */
            aload 6 /* te */
            invokevirtual freemarker.core.Environment.handleTemplateException:(Lfreemarker/template/TemplateException;)V
        end local 6 // freemarker.template.TemplateException te
        19: .line 378
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
            goto 24
        20: .line 377
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        21: .line 378
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        22: .line 379
            aload 11
            athrow
        23: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        end local 2 // freemarker.core.TemplateElement element
        24: .line 357
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] top int int freemarker.core.TemplateElement[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        25: iload 3
            iload 4
            if_icmplt 3
        26: .line 382
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[]
      StackMap stack:
            return
        end local 1 // freemarker.core.TemplateElement[] elementBuffer
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   27     0                     this  Lfreemarker/core/Environment;
            0   27     1            elementBuffer  [Lfreemarker/core/TemplateElement;
            4   24     2                  element  Lfreemarker/core/TemplateElement;
            8   16     6  templateElementsToVisit  [Lfreemarker/core/TemplateElement;
           11   14     7                       el  Lfreemarker/core/TemplateElement;
           18   19     6                       te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           7    16      17  Class freemarker.template.TemplateException
           7    19      20  any
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
               Name  Flags
      elementBuffer  

  final void visit(freemarker.core.TemplateElement[], java.io.Writer);
    descriptor: ([Lfreemarker/core/TemplateElement;Ljava/io/Writer;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement[] elementBuffer
        start local 2 // java.io.Writer out
         0: .line 390
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            astore 3 /* prevOut */
        start local 3 // java.io.Writer prevOut
         1: .line 391
            aload 0 /* this */
            aload 2 /* out */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         2: .line 393
            aload 0 /* this */
            aload 1 /* elementBuffer */
            invokevirtual freemarker.core.Environment.visit:([Lfreemarker/core/TemplateElement;)V
         3: .line 394
            goto 7
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] java.io.Writer java.io.Writer
      StackMap stack: java.lang.Throwable
         4: astore 4
         5: .line 395
            aload 0 /* this */
            aload 3 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         6: .line 396
            aload 4
            athrow
         7: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         8: .line 397
            return
        end local 3 // java.io.Writer prevOut
        end local 2 // java.io.Writer out
        end local 1 // freemarker.core.TemplateElement[] elementBuffer
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lfreemarker/core/Environment;
            0    9     1  elementBuffer  [Lfreemarker/core/TemplateElement;
            0    9     2            out  Ljava/io/Writer;
            1    9     3        prevOut  Ljava/io/Writer;
      Exception table:
        from    to  target  type
           2     4       4  any
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
               Name  Flags
      elementBuffer  
      out            

  private freemarker.core.TemplateElement replaceTopElement(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)Lfreemarker/core/TemplateElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
         0: .line 399
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tSuppressFBWarnings cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
    RuntimeInvisibleAnnotations: 
      SuppressFBWarnings()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        SuppressFBWarnings()
    MethodParameters:
         Name  Flags
      element  

  public void visit(freemarker.core.TemplateElement, freemarker.template.TemplateDirectiveModel, java.util.Map, java.util.List);
    descriptor: (Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateDirectiveModel;Ljava/util/Map;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement element
        start local 2 // freemarker.template.TemplateDirectiveModel directiveModel
        start local 3 // java.util.Map args
        start local 4 // java.util.List bodyParameterNames
         0: .line 413
            aload 0 /* this */
            iconst_1
            anewarray freemarker.core.TemplateElement
            dup
            iconst_0
            aload 1 /* element */
            aastore
            aload 2 /* directiveModel */
            aload 3 /* args */
            aload 4 /* bodyParameterNames */
            invokevirtual freemarker.core.Environment.visit:([Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateDirectiveModel;Ljava/util/Map;Ljava/util/List;)V
         1: .line 414
            return
        end local 4 // java.util.List bodyParameterNames
        end local 3 // java.util.Map args
        end local 2 // freemarker.template.TemplateDirectiveModel directiveModel
        end local 1 // freemarker.core.TemplateElement element
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lfreemarker/core/Environment;
            0    2     1             element  Lfreemarker/core/TemplateElement;
            0    2     2      directiveModel  Lfreemarker/template/TemplateDirectiveModel;
            0    2     3                args  Ljava/util/Map;
            0    2     4  bodyParameterNames  Ljava/util/List;
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                    Name  Flags
      element             final
      directiveModel      
      args                
      bodyParameterNames  final

  void visit(freemarker.core.TemplateElement[], freemarker.template.TemplateDirectiveModel, java.util.Map, java.util.List);
    descriptor: ([Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateDirectiveModel;Ljava/util/Map;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement[] childBuffer
        start local 2 // freemarker.template.TemplateDirectiveModel directiveModel
        start local 3 // java.util.Map args
        start local 4 // java.util.List bodyParameterNames
         0: .line 420
            aload 1 /* childBuffer */
            ifnonnull 3
         1: .line 421
            aconst_null
            astore 5 /* nested */
        start local 5 // freemarker.template.TemplateDirectiveBody nested
         2: .line 422
            goto 4
        end local 5 // freemarker.template.TemplateDirectiveBody nested
         3: .line 423
      StackMap locals:
      StackMap stack:
            new freemarker.core.Environment$NestedElementTemplateDirectiveBody
            dup
            aload 0 /* this */
            aload 1 /* childBuffer */
            invokespecial freemarker.core.Environment$NestedElementTemplateDirectiveBody.<init>:(Lfreemarker/core/Environment;[Lfreemarker/core/TemplateElement;)V
            astore 5 /* nested */
        start local 5 // freemarker.template.TemplateDirectiveBody nested
         4: .line 426
      StackMap locals: freemarker.template.TemplateDirectiveBody
      StackMap stack:
            aload 4 /* bodyParameterNames */
            ifnull 5
            aload 4 /* bodyParameterNames */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         5: .line 427
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.Environment.NO_OUT_ARGS:[Lfreemarker/template/TemplateModel;
            astore 6 /* outArgs */
        start local 6 // freemarker.template.TemplateModel[] outArgs
         6: .line 428
            goto 8
        end local 6 // freemarker.template.TemplateModel[] outArgs
         7: .line 429
      StackMap locals:
      StackMap stack:
            aload 4 /* bodyParameterNames */
            invokeinterface java.util.List.size:()I
            anewarray freemarker.template.TemplateModel
            astore 6 /* outArgs */
        start local 6 // freemarker.template.TemplateModel[] outArgs
         8: .line 431
      StackMap locals: freemarker.template.TemplateModel[]
      StackMap stack:
            aload 6 /* outArgs */
            arraylength
            ifle 10
         9: .line 432
            aload 0 /* this */
            new freemarker.core.Environment$2
            dup
            aload 0 /* this */
            aload 4 /* bodyParameterNames */
            aload 6 /* outArgs */
            invokespecial freemarker.core.Environment$2.<init>:(Lfreemarker/core/Environment;Ljava/util/List;[Lfreemarker/template/TemplateModel;)V
            invokevirtual freemarker.core.Environment.pushLocalContext:(Lfreemarker/core/LocalContext;)V
        10: .line 445
      StackMap locals:
      StackMap stack:
            aload 2 /* directiveModel */
            aload 0 /* this */
            aload 3 /* args */
            aload 6 /* outArgs */
            aload 5 /* nested */
            invokeinterface freemarker.template.TemplateDirectiveModel.execute:(Lfreemarker/core/Environment;Ljava/util/Map;[Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateDirectiveBody;)V
        11: .line 446
            goto 30
      StackMap locals:
      StackMap stack: freemarker.core.FlowControlException
        12: astore 7 /* e */
        start local 7 // freemarker.core.FlowControlException e
        13: .line 447
            aload 7 /* e */
            athrow
        end local 7 // freemarker.core.FlowControlException e
        14: .line 448
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            astore 7 /* e */
        start local 7 // freemarker.template.TemplateException e
        15: .line 449
            aload 7 /* e */
            athrow
        end local 7 // freemarker.template.TemplateException e
        16: .line 450
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        17: .line 452
            aload 7 /* e */
            athrow
        end local 7 // java.io.IOException e
        18: .line 453
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        19: .line 454
            aload 7 /* e */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.shouldWrapUncheckedException:(Ljava/lang/Throwable;Lfreemarker/core/Environment;)Z
            ifeq 23
        20: .line 455
            new freemarker.core._MiscTemplateException
            dup
        21: .line 456
            aload 7 /* e */
            aload 0 /* this */
            ldc "Directive has thrown an unchecked exception; see the cause exception."
        22: .line 455
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Ljava/lang/String;)V
            athrow
        23: .line 457
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 7 /* e */
            instanceof java.lang.RuntimeException
            ifeq 25
        24: .line 458
            aload 7 /* e */
            checkcast java.lang.RuntimeException
            athrow
        25: .line 460
      StackMap locals:
      StackMap stack:
            new freemarker.template.utility.UndeclaredThrowableException
            dup
            aload 7 /* e */
            invokespecial freemarker.template.utility.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        26: .line 462
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateDirectiveModel java.util.Map java.util.List freemarker.template.TemplateDirectiveBody freemarker.template.TemplateModel[]
      StackMap stack: java.lang.Throwable
            astore 8
        27: .line 463
            aload 6 /* outArgs */
            arraylength
            ifle 29
        28: .line 464
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
        29: .line 466
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateDirectiveModel java.util.Map java.util.List freemarker.template.TemplateDirectiveBody freemarker.template.TemplateModel[] top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        30: .line 463
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateDirectiveModel java.util.Map java.util.List freemarker.template.TemplateDirectiveBody freemarker.template.TemplateModel[]
      StackMap stack:
            aload 6 /* outArgs */
            arraylength
            ifle 32
        31: .line 464
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
        32: .line 467
      StackMap locals:
      StackMap stack:
            return
        end local 6 // freemarker.template.TemplateModel[] outArgs
        end local 5 // freemarker.template.TemplateDirectiveBody nested
        end local 4 // java.util.List bodyParameterNames
        end local 3 // java.util.Map args
        end local 2 // freemarker.template.TemplateDirectiveModel directiveModel
        end local 1 // freemarker.core.TemplateElement[] childBuffer
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   33     0                this  Lfreemarker/core/Environment;
            0   33     1         childBuffer  [Lfreemarker/core/TemplateElement;
            0   33     2      directiveModel  Lfreemarker/template/TemplateDirectiveModel;
            0   33     3                args  Ljava/util/Map;
            0   33     4  bodyParameterNames  Ljava/util/List;
            2    3     5              nested  Lfreemarker/template/TemplateDirectiveBody;
            4   33     5              nested  Lfreemarker/template/TemplateDirectiveBody;
            6    7     6             outArgs  [Lfreemarker/template/TemplateModel;
            8   33     6             outArgs  [Lfreemarker/template/TemplateModel;
           13   14     7                   e  Lfreemarker/core/FlowControlException;
           15   16     7                   e  Lfreemarker/template/TemplateException;
           17   18     7                   e  Ljava/io/IOException;
           19   26     7                   e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    11      12  Class freemarker.core.FlowControlException
          10    11      14  Class freemarker.template.TemplateException
          10    11      16  Class java.io.IOException
          10    11      18  Class java.lang.Exception
          10    26      26  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
                    Name  Flags
      childBuffer         final
      directiveModel      
      args                
      bodyParameterNames  final

  void visitAndTransform(freemarker.core.TemplateElement[], freemarker.template.TemplateTransformModel, java.util.Map);
    descriptor: ([Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateTransformModel;Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement[] elementBuffer
        start local 2 // freemarker.template.TemplateTransformModel transform
        start local 3 // java.util.Map args
         0: .line 484
            aload 2 /* transform */
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            aload 3 /* args */
            invokeinterface freemarker.template.TemplateTransformModel.getWriter:(Ljava/io/Writer;Ljava/util/Map;)Ljava/io/Writer;
            astore 4 /* tw */
        start local 4 // java.io.Writer tw
         1: .line 485
            aload 4 /* tw */
            ifnonnull 2
            getstatic freemarker.core.Environment.EMPTY_BODY_WRITER:Ljava/io/Writer;
            astore 4 /* tw */
         2: .line 486
      StackMap locals: java.io.Writer
      StackMap stack:
            aload 4 /* tw */
            instanceof freemarker.template.TransformControl
            ifeq 4
         3: .line 487
            aload 4 /* tw */
            checkcast freemarker.template.TransformControl
            goto 5
         4: .line 488
      StackMap locals:
      StackMap stack:
            aconst_null
         5: .line 486
      StackMap locals:
      StackMap stack: freemarker.template.TransformControl
            astore 5 /* tc */
        start local 5 // freemarker.template.TransformControl tc
         6: .line 490
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            astore 6 /* prevOut */
        start local 6 // java.io.Writer prevOut
         7: .line 491
            aload 0 /* this */
            aload 4 /* tw */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         8: .line 493
            aload 5 /* tc */
            ifnull 9
            aload 5 /* tc */
            invokeinterface freemarker.template.TransformControl.onStart:()I
            ifeq 42
         9: .line 495
      StackMap locals: freemarker.template.TransformControl java.io.Writer
      StackMap stack:
            aload 0 /* this */
            aload 1 /* elementBuffer */
            invokevirtual freemarker.core.Environment.visit:([Lfreemarker/core/TemplateElement;)V
        10: .line 496
            aload 5 /* tc */
            ifnull 42
            aload 5 /* tc */
            invokeinterface freemarker.template.TransformControl.afterBody:()I
            ifeq 9
        11: .line 498
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 7 /* t */
        start local 7 // java.lang.Throwable t
        13: .line 500
            aload 5 /* tc */
            ifnull 19
        14: .line 501
            aload 7 /* t */
            instanceof freemarker.core.FlowControlException
            ifeq 17
        15: .line 502
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getConfiguration:()Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
        16: .line 503
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_27:I
            if_icmpge 19
        17: .line 504
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5 /* tc */
            aload 7 /* t */
            invokeinterface freemarker.template.TransformControl.onError:(Ljava/lang/Throwable;)V
        18: .line 505
            goto 34
        19: .line 506
      StackMap locals:
      StackMap stack:
            aload 7 /* t */
            athrow
        20: .line 508
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            astore 8 /* e */
        start local 8 // freemarker.template.TemplateException e
        21: .line 509
            aload 8 /* e */
            athrow
        end local 8 // freemarker.template.TemplateException e
        22: .line 510
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        23: .line 511
            aload 8 /* e */
            athrow
        end local 8 // java.io.IOException e
        24: .line 512
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 8 /* e */
        start local 8 // java.lang.Error e
        25: .line 513
            aload 8 /* e */
            athrow
        end local 8 // java.lang.Error e
        26: .line 514
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8 /* e */
        start local 8 // java.lang.Throwable e
        27: .line 515
            aload 8 /* e */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.shouldWrapUncheckedException:(Ljava/lang/Throwable;Lfreemarker/core/Environment;)Z
            ifeq 31
        28: .line 516
            new freemarker.core._MiscTemplateException
            dup
        29: .line 517
            aload 8 /* e */
            aload 0 /* this */
            ldc "Transform has thrown an unchecked exception; see the cause exception."
        30: .line 516
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Ljava/lang/String;)V
            athrow
        31: .line 518
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8 /* e */
            instanceof java.lang.RuntimeException
            ifeq 33
        32: .line 519
            aload 8 /* e */
            checkcast java.lang.RuntimeException
            athrow
        33: .line 521
      StackMap locals:
      StackMap stack:
            new freemarker.template.utility.UndeclaredThrowableException
            dup
            aload 8 /* e */
            invokespecial freemarker.template.utility.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Throwable e
        end local 7 // java.lang.Throwable t
        34: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        35: .line 526
            aload 6 /* prevOut */
            aload 4 /* tw */
            if_acmpeq 48
        36: .line 527
            aload 4 /* tw */
            invokevirtual java.io.Writer.close:()V
            goto 48
        37: .line 524
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        38: .line 525
            aload 0 /* this */
            aload 6 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        39: .line 526
            aload 6 /* prevOut */
            aload 4 /* tw */
            if_acmpeq 41
        40: .line 527
            aload 4 /* tw */
            invokevirtual java.io.Writer.close:()V
        41: .line 529
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateTransformModel java.util.Map java.io.Writer freemarker.template.TransformControl java.io.Writer top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        42: .line 525
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateTransformModel java.util.Map java.io.Writer freemarker.template.TransformControl java.io.Writer
      StackMap stack:
            aload 0 /* this */
            aload 6 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        43: .line 526
            aload 6 /* prevOut */
            aload 4 /* tw */
            if_acmpeq 48
        44: .line 527
            aload 4 /* tw */
            invokevirtual java.io.Writer.close:()V
        end local 6 // java.io.Writer prevOut
        end local 5 // freemarker.template.TransformControl tc
        end local 4 // java.io.Writer tw
        45: .line 530
            goto 48
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement[] freemarker.template.TemplateTransformModel java.util.Map
      StackMap stack: freemarker.template.TemplateException
        46: astore 4 /* te */
        start local 4 // freemarker.template.TemplateException te
        47: .line 531
            aload 0 /* this */
            aload 4 /* te */
            invokevirtual freemarker.core.Environment.handleTemplateException:(Lfreemarker/template/TemplateException;)V
        end local 4 // freemarker.template.TemplateException te
        48: .line 533
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Map args
        end local 2 // freemarker.template.TemplateTransformModel transform
        end local 1 // freemarker.core.TemplateElement[] elementBuffer
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   49     0           this  Lfreemarker/core/Environment;
            0   49     1  elementBuffer  [Lfreemarker/core/TemplateElement;
            0   49     2      transform  Lfreemarker/template/TemplateTransformModel;
            0   49     3           args  Ljava/util/Map;
            1   45     4             tw  Ljava/io/Writer;
            6   45     5             tc  Lfreemarker/template/TransformControl;
            7   45     6        prevOut  Ljava/io/Writer;
           13   34     7              t  Ljava/lang/Throwable;
           21   22     8              e  Lfreemarker/template/TemplateException;
           23   24     8              e  Ljava/io/IOException;
           25   26     8              e  Ljava/lang/Error;
           27   34     8              e  Ljava/lang/Throwable;
           47   48     4             te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.Throwable
          13    20      20  Class freemarker.template.TemplateException
          13    20      22  Class java.io.IOException
          13    20      24  Class java.lang.Error
          13    20      26  Class java.lang.Throwable
           8    34      37  any
           0    45      46  Class freemarker.template.TemplateException
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
               Name  Flags
      elementBuffer  
      transform      
      args           

  void visitAttemptRecover(freemarker.core.AttemptBlock, freemarker.core.TemplateElement, freemarker.core.RecoveryBlock);
    descriptor: (Lfreemarker/core/AttemptBlock;Lfreemarker/core/TemplateElement;Lfreemarker/core/RecoveryBlock;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.AttemptBlock attemptBlock
        start local 2 // freemarker.core.TemplateElement attemptedSection
        start local 3 // freemarker.core.RecoveryBlock recoverySection
         0: .line 541
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            astore 4 /* prevOut */
        start local 4 // java.io.Writer prevOut
         1: .line 542
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 5 /* sw */
        start local 5 // java.io.StringWriter sw
         2: .line 543
            aload 0 /* this */
            aload 5 /* sw */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         3: .line 544
            aconst_null
            astore 6 /* thrownException */
        start local 6 // freemarker.template.TemplateException thrownException
         4: .line 545
            aload 0 /* this */
            iconst_0
            invokevirtual freemarker.core.Environment.setFastInvalidReferenceExceptions:(Z)Z
            istore 7 /* lastFIRE */
        start local 7 // boolean lastFIRE
         5: .line 546
            aload 0 /* this */
            getfield freemarker.core.Environment.inAttemptBlock:Z
            istore 8 /* lastInAttemptBlock */
        start local 8 // boolean lastInAttemptBlock
         6: .line 548
            aload 0 /* this */
            iconst_1
            putfield freemarker.core.Environment.inAttemptBlock:Z
         7: .line 549
            aload 0 /* this */
            aload 2 /* attemptedSection */
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
         8: .line 550
            goto 19
      StackMap locals: freemarker.core.Environment freemarker.core.AttemptBlock freemarker.core.TemplateElement freemarker.core.RecoveryBlock java.io.Writer java.io.StringWriter freemarker.template.TemplateException int int
      StackMap stack: freemarker.template.TemplateException
         9: astore 9 /* te */
        start local 9 // freemarker.template.TemplateException te
        10: .line 551
            aload 9 /* te */
            astore 6 /* thrownException */
        end local 9 // freemarker.template.TemplateException te
        11: .line 553
            aload 0 /* this */
            iload 8 /* lastInAttemptBlock */
            putfield freemarker.core.Environment.inAttemptBlock:Z
        12: .line 554
            aload 0 /* this */
            iload 7 /* lastFIRE */
            invokevirtual freemarker.core.Environment.setFastInvalidReferenceExceptions:(Z)Z
            pop
        13: .line 555
            aload 0 /* this */
            aload 4 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
            goto 22
        14: .line 552
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        15: .line 553
            aload 0 /* this */
            iload 8 /* lastInAttemptBlock */
            putfield freemarker.core.Environment.inAttemptBlock:Z
        16: .line 554
            aload 0 /* this */
            iload 7 /* lastFIRE */
            invokevirtual freemarker.core.Environment.setFastInvalidReferenceExceptions:(Z)Z
            pop
        17: .line 555
            aload 0 /* this */
            aload 4 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        18: .line 556
            aload 10
            athrow
        19: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* lastInAttemptBlock */
            putfield freemarker.core.Environment.inAttemptBlock:Z
        20: .line 554
            aload 0 /* this */
            iload 7 /* lastFIRE */
            invokevirtual freemarker.core.Environment.setFastInvalidReferenceExceptions:(Z)Z
            pop
        21: .line 555
            aload 0 /* this */
            aload 4 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        22: .line 557
      StackMap locals:
      StackMap stack:
            aload 6 /* thrownException */
            ifnull 35
        23: .line 558
            getstatic freemarker.core.Environment.ATTEMPT_LOGGER:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isDebugEnabled:()Z
            ifeq 27
        24: .line 559
            getstatic freemarker.core.Environment.ATTEMPT_LOGGER:Lfreemarker/log/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Error in attempt block "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 560
            aload 1 /* attemptBlock */
            invokevirtual freemarker.core.AttemptBlock.getStartLocationQuoted:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* thrownException */
        26: .line 559
            invokevirtual freemarker.log.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        27: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            aload 6 /* thrownException */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        28: .line 564
            aload 0 /* this */
            aload 3 /* recoverySection */
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
        29: .line 565
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 9
        31: .line 566
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        32: .line 567
            aload 9
            athrow
        33: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        34: .line 568
            goto 36
        35: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            aload 5 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        36: .line 571
      StackMap locals:
      StackMap stack:
            return
        end local 8 // boolean lastInAttemptBlock
        end local 7 // boolean lastFIRE
        end local 6 // freemarker.template.TemplateException thrownException
        end local 5 // java.io.StringWriter sw
        end local 4 // java.io.Writer prevOut
        end local 3 // freemarker.core.RecoveryBlock recoverySection
        end local 2 // freemarker.core.TemplateElement attemptedSection
        end local 1 // freemarker.core.AttemptBlock attemptBlock
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   37     0                this  Lfreemarker/core/Environment;
            0   37     1        attemptBlock  Lfreemarker/core/AttemptBlock;
            0   37     2    attemptedSection  Lfreemarker/core/TemplateElement;
            0   37     3     recoverySection  Lfreemarker/core/RecoveryBlock;
            1   37     4             prevOut  Ljava/io/Writer;
            2   37     5                  sw  Ljava/io/StringWriter;
            4   37     6     thrownException  Lfreemarker/template/TemplateException;
            5   37     7            lastFIRE  Z
            6   37     8  lastInAttemptBlock  Z
           10   11     9                  te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           6     8       9  Class freemarker.template.TemplateException
           6    11      14  any
          27    30      30  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
                  Name  Flags
      attemptBlock      
      attemptedSection  
      recoverySection   

  java.lang.String getCurrentRecoveredErrorMessage();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 574
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 2
         1: .line 575
            new freemarker.core._MiscTemplateException
            dup
            aload 0 /* this */
            ldc ".error is not available outside of a #recover block"
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;Ljava/lang/String;)V
            athrow
         2: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield freemarker.core.Environment.recoveredErrorStack:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Throwable
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;
    Exceptions:
      throws freemarker.template.TemplateException

  public boolean isInAttemptBlock();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 588
            aload 0 /* this */
            getfield freemarker.core.Environment.inAttemptBlock:Z
            ireturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  void invokeNestedContent(freemarker.core.BodyInstruction$Context);
    descriptor: (Lfreemarker/core/BodyInstruction$Context;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.BodyInstruction$Context bodyCtx
         0: .line 595
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getCurrentMacroContext:()Lfreemarker/core/Macro$Context;
            astore 2 /* invokingMacroContext */
        start local 2 // freemarker.core.Macro$Context invokingMacroContext
         1: .line 596
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            astore 3 /* prevLocalContextStack */
        start local 3 // freemarker.core.LocalContextStack prevLocalContextStack
         2: .line 597
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.callPlace:Lfreemarker/core/TemplateObject;
            astore 4 /* callPlace */
        start local 4 // freemarker.core.TemplateObject callPlace
         3: .line 598
            aload 4 /* callPlace */
            instanceof freemarker.core.TemplateElement
            ifeq 5
         4: .line 599
            aload 4 /* callPlace */
            checkcast freemarker.core.TemplateElement
            invokevirtual freemarker.core.TemplateElement.getChildBuffer:()[Lfreemarker/core/TemplateElement;
            goto 6
      StackMap locals: freemarker.core.Macro$Context freemarker.core.LocalContextStack freemarker.core.TemplateObject
      StackMap stack:
         5: aconst_null
         6: .line 598
      StackMap locals:
      StackMap stack: freemarker.core.TemplateElement[]
            astore 5 /* nestedContentBuffer */
        start local 5 // freemarker.core.TemplateElement[] nestedContentBuffer
         7: .line 600
            aload 5 /* nestedContentBuffer */
            ifnull 41
         8: .line 601
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.prevMacroContext:Lfreemarker/core/Macro$Context;
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
         9: .line 602
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.nestedContentNamespace:Lfreemarker/core/Environment$Namespace;
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        10: .line 605
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isBeforeIcI2322:()Z
            istore 7 /* parentReplacementOn */
        start local 7 // boolean parentReplacementOn
        11: .line 606
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getParent:()Lfreemarker/core/Configurable;
            astore 6 /* prevParent */
        start local 6 // freemarker.core.Configurable prevParent
        12: .line 607
            iload 7 /* parentReplacementOn */
            ifeq 15
        13: .line 608
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
        14: .line 609
            goto 16
        15: .line 610
      StackMap locals: freemarker.core.TemplateElement[] freemarker.core.Configurable int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
        16: .line 613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.prevLocalContextStack:Lfreemarker/core/LocalContextStack;
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        17: .line 614
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.nestedContentParameterNames:Ljava/util/List;
            ifnull 19
        18: .line 615
            aload 0 /* this */
            aload 1 /* bodyCtx */
            invokevirtual freemarker.core.Environment.pushLocalContext:(Lfreemarker/core/LocalContext;)V
        19: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* nestedContentBuffer */
            invokevirtual freemarker.core.Environment.visit:([Lfreemarker/core/TemplateElement;)V
        20: .line 619
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 8
        22: .line 620
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.nestedContentParameterNames:Ljava/util/List;
            ifnull 24
        23: .line 621
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
        24: .line 623
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        25: .line 624
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            invokevirtual freemarker.core.Macro$Context.getMacro:()Lfreemarker/core/Macro;
            invokevirtual freemarker.core.Environment.getMacroNamespace:(Lfreemarker/core/Macro;)Lfreemarker/core/Environment$Namespace;
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        26: .line 625
            iload 7 /* parentReplacementOn */
            ifeq 29
        27: .line 626
            aload 0 /* this */
            aload 6 /* prevParent */
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
        28: .line 627
            goto 30
        29: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* prevParent */
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
        30: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        31: .line 631
            aload 8
            athrow
        32: .line 620
      StackMap locals:
      StackMap stack:
            aload 2 /* invokingMacroContext */
            getfield freemarker.core.Macro$Context.nestedContentParameterNames:Ljava/util/List;
            ifnull 34
        33: .line 621
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
        34: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        35: .line 624
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* invokingMacroContext */
            invokevirtual freemarker.core.Macro$Context.getMacro:()Lfreemarker/core/Macro;
            invokevirtual freemarker.core.Environment.getMacroNamespace:(Lfreemarker/core/Macro;)Lfreemarker/core/Environment$Namespace;
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        36: .line 625
            iload 7 /* parentReplacementOn */
            ifeq 39
        37: .line 626
            aload 0 /* this */
            aload 6 /* prevParent */
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
        38: .line 627
            goto 40
        39: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* prevParent */
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
        40: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        end local 7 // boolean parentReplacementOn
        end local 6 // freemarker.core.Configurable prevParent
        41: .line 633
      StackMap locals:
      StackMap stack:
            return
        end local 5 // freemarker.core.TemplateElement[] nestedContentBuffer
        end local 4 // freemarker.core.TemplateObject callPlace
        end local 3 // freemarker.core.LocalContextStack prevLocalContextStack
        end local 2 // freemarker.core.Macro$Context invokingMacroContext
        end local 1 // freemarker.core.BodyInstruction$Context bodyCtx
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   42     0                   this  Lfreemarker/core/Environment;
            0   42     1                bodyCtx  Lfreemarker/core/BodyInstruction$Context;
            1   42     2   invokingMacroContext  Lfreemarker/core/Macro$Context;
            2   42     3  prevLocalContextStack  Lfreemarker/core/LocalContextStack;
            3   42     4              callPlace  Lfreemarker/core/TemplateObject;
            7   42     5    nestedContentBuffer  [Lfreemarker/core/TemplateElement;
           12   41     6             prevParent  Lfreemarker/core/Configurable;
           11   41     7    parentReplacementOn  Z
      Exception table:
        from    to  target  type
          19    21      21  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
         Name  Flags
      bodyCtx  

  boolean visitIteratorBlock(freemarker.core.IteratorBlock$IterationContext);
    descriptor: (Lfreemarker/core/IteratorBlock$IterationContext;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.IteratorBlock$IterationContext ictxt
         0: .line 640
            aload 0 /* this */
            aload 1 /* ictxt */
            invokevirtual freemarker.core.Environment.pushLocalContext:(Lfreemarker/core/LocalContext;)V
         1: .line 642
            aload 1 /* ictxt */
            aload 0 /* this */
            invokevirtual freemarker.core.IteratorBlock$IterationContext.accept:(Lfreemarker/core/Environment;)Z
            istore 4
         2: .line 647
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
         3: .line 642
            iload 4
            ireturn
         4: .line 643
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            astore 2 /* te */
        start local 2 // freemarker.template.TemplateException te
         5: .line 644
            aload 0 /* this */
            aload 2 /* te */
            invokevirtual freemarker.core.Environment.handleTemplateException:(Lfreemarker/template/TemplateException;)V
         6: .line 647
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
         7: .line 645
            iconst_1
            ireturn
        end local 2 // freemarker.template.TemplateException te
         8: .line 646
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         9: .line 647
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.pop:()V
        10: .line 648
            aload 3
            athrow
        end local 1 // freemarker.core.IteratorBlock$IterationContext ictxt
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lfreemarker/core/Environment;
            0   11     1  ictxt  Lfreemarker/core/IteratorBlock$IterationContext;
            5    8     2     te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           1     2       4  Class freemarker.template.TemplateException
           1     2       8  any
           4     6       8  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
       Name  Flags
      ictxt  

  void invokeNodeHandlerFor(freemarker.template.TemplateNodeModel, freemarker.template.TemplateSequenceModel);
    descriptor: (Lfreemarker/template/TemplateNodeModel;Lfreemarker/template/TemplateSequenceModel;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNodeModel node
        start local 2 // freemarker.template.TemplateSequenceModel namespaces
         0: .line 656
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
            ifnonnull 4
         1: .line 657
            new freemarker.template.SimpleSequence
            dup
            iconst_1
            invokespecial freemarker.template.SimpleSequence.<init>:(I)V
            astore 3 /* ss */
        start local 3 // freemarker.template.SimpleSequence ss
         2: .line 658
            aload 3 /* ss */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.template.SimpleSequence.add:(Ljava/lang/Object;)V
         3: .line 659
            aload 0 /* this */
            aload 3 /* ss */
            putfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
        end local 3 // freemarker.template.SimpleSequence ss
         4: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaceIndex:I
            istore 3 /* prevNodeNamespaceIndex */
        start local 3 // int prevNodeNamespaceIndex
         5: .line 662
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNodeName:Ljava/lang/String;
            astore 4 /* prevNodeName */
        start local 4 // java.lang.String prevNodeName
         6: .line 663
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNodeNS:Ljava/lang/String;
            astore 5 /* prevNodeNS */
        start local 5 // java.lang.String prevNodeNS
         7: .line 664
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
            astore 6 /* prevNodeNamespaces */
        start local 6 // freemarker.template.TemplateSequenceModel prevNodeNamespaces
         8: .line 665
            aload 0 /* this */
            getfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
            astore 7 /* prevVisitorNode */
        start local 7 // freemarker.template.TemplateNodeModel prevVisitorNode
         9: .line 666
            aload 0 /* this */
            aload 1 /* node */
            putfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
        10: .line 667
            aload 2 /* namespaces */
            ifnull 12
        11: .line 668
            aload 0 /* this */
            aload 2 /* namespaces */
            putfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
        12: .line 671
      StackMap locals: freemarker.core.Environment freemarker.template.TemplateNodeModel freemarker.template.TemplateSequenceModel int java.lang.String java.lang.String freemarker.template.TemplateSequenceModel freemarker.template.TemplateNodeModel
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual freemarker.core.Environment.getNodeProcessor:(Lfreemarker/template/TemplateNodeModel;)Lfreemarker/template/TemplateModel;
            astore 8 /* macroOrTransform */
        start local 8 // freemarker.template.TemplateModel macroOrTransform
        13: .line 672
            aload 8 /* macroOrTransform */
            instanceof freemarker.core.Macro
            ifeq 16
        14: .line 673
            aload 0 /* this */
            aload 8 /* macroOrTransform */
            checkcast freemarker.core.Macro
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            invokevirtual freemarker.core.Environment.invoke:(Lfreemarker/core/Macro;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Lfreemarker/core/TemplateObject;)V
        15: .line 674
            goto 43
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
        16: aload 8 /* macroOrTransform */
            instanceof freemarker.template.TemplateTransformModel
            ifeq 19
        17: .line 675
            aload 0 /* this */
            aconst_null
            aload 8 /* macroOrTransform */
            checkcast freemarker.template.TemplateTransformModel
            aconst_null
            invokevirtual freemarker.core.Environment.visitAndTransform:([Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateTransformModel;Ljava/util/Map;)V
        18: .line 676
            goto 43
        19: .line 677
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeType:()Ljava/lang/String;
            astore 9 /* nodeType */
        start local 9 // java.lang.String nodeType
        20: .line 678
            aload 9 /* nodeType */
            ifnull 33
        21: .line 680
            aload 9 /* nodeType */
            ldc "text"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
            aload 1 /* node */
            instanceof freemarker.template.TemplateScalarModel
            ifeq 24
        22: .line 681
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            aload 1 /* node */
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        23: .line 682
            goto 43
      StackMap locals: java.lang.String
      StackMap stack:
        24: aload 9 /* nodeType */
            ldc "document"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 683
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* namespaces */
            invokevirtual freemarker.core.Environment.recurse:(Lfreemarker/template/TemplateNodeModel;Lfreemarker/template/TemplateSequenceModel;)V
        26: .line 684
            goto 43
        27: .line 687
      StackMap locals:
      StackMap stack:
            aload 9 /* nodeType */
            ldc "pi"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
        28: .line 688
            aload 9 /* nodeType */
            ldc "comment"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
        29: .line 689
            aload 9 /* nodeType */
            ldc "document_type"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
        30: .line 690
            new freemarker.core._MiscTemplateException
            dup
        31: .line 691
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* node */
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeNamespace:()Ljava/lang/String;
            aload 9 /* nodeType */
            invokevirtual freemarker.core.Environment.noNodeHandlerDefinedDescription:(Lfreemarker/template/TemplateNodeModel;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
        32: .line 690
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;[Ljava/lang/Object;)V
            athrow
        33: .line 694
      StackMap locals:
      StackMap stack:
            new freemarker.core._MiscTemplateException
            dup
        34: .line 695
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* node */
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeNamespace:()Ljava/lang/String;
            ldc "default"
            invokevirtual freemarker.core.Environment.noNodeHandlerDefinedDescription:(Lfreemarker/template/TemplateNodeModel;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
        35: .line 694
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;[Ljava/lang/Object;)V
            athrow
        end local 9 // java.lang.String nodeType
        end local 8 // freemarker.template.TemplateModel macroOrTransform
        36: .line 698
      StackMap locals: freemarker.core.Environment freemarker.template.TemplateNodeModel freemarker.template.TemplateSequenceModel int java.lang.String java.lang.String freemarker.template.TemplateSequenceModel freemarker.template.TemplateNodeModel
      StackMap stack: java.lang.Throwable
            astore 10
        37: .line 699
            aload 0 /* this */
            aload 7 /* prevVisitorNode */
            putfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
        38: .line 700
            aload 0 /* this */
            iload 3 /* prevNodeNamespaceIndex */
            putfield freemarker.core.Environment.nodeNamespaceIndex:I
        39: .line 701
            aload 0 /* this */
            aload 4 /* prevNodeName */
            putfield freemarker.core.Environment.currentNodeName:Ljava/lang/String;
        40: .line 702
            aload 0 /* this */
            aload 5 /* prevNodeNS */
            putfield freemarker.core.Environment.currentNodeNS:Ljava/lang/String;
        41: .line 703
            aload 0 /* this */
            aload 6 /* prevNodeNamespaces */
            putfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
        42: .line 704
            aload 10
            athrow
        43: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* prevVisitorNode */
            putfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
        44: .line 700
            aload 0 /* this */
            iload 3 /* prevNodeNamespaceIndex */
            putfield freemarker.core.Environment.nodeNamespaceIndex:I
        45: .line 701
            aload 0 /* this */
            aload 4 /* prevNodeName */
            putfield freemarker.core.Environment.currentNodeName:Ljava/lang/String;
        46: .line 702
            aload 0 /* this */
            aload 5 /* prevNodeNS */
            putfield freemarker.core.Environment.currentNodeNS:Ljava/lang/String;
        47: .line 703
            aload 0 /* this */
            aload 6 /* prevNodeNamespaces */
            putfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
        48: .line 705
            return
        end local 7 // freemarker.template.TemplateNodeModel prevVisitorNode
        end local 6 // freemarker.template.TemplateSequenceModel prevNodeNamespaces
        end local 5 // java.lang.String prevNodeNS
        end local 4 // java.lang.String prevNodeName
        end local 3 // int prevNodeNamespaceIndex
        end local 2 // freemarker.template.TemplateSequenceModel namespaces
        end local 1 // freemarker.template.TemplateNodeModel node
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   49     0                    this  Lfreemarker/core/Environment;
            0   49     1                    node  Lfreemarker/template/TemplateNodeModel;
            0   49     2              namespaces  Lfreemarker/template/TemplateSequenceModel;
            2    4     3                      ss  Lfreemarker/template/SimpleSequence;
            5   49     3  prevNodeNamespaceIndex  I
            6   49     4            prevNodeName  Ljava/lang/String;
            7   49     5              prevNodeNS  Ljava/lang/String;
            8   49     6      prevNodeNamespaces  Lfreemarker/template/TemplateSequenceModel;
            9   49     7         prevVisitorNode  Lfreemarker/template/TemplateNodeModel;
           13   36     8        macroOrTransform  Lfreemarker/template/TemplateModel;
           20   36     9                nodeType  Ljava/lang/String;
      Exception table:
        from    to  target  type
          12    36      36  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
            Name  Flags
      node        
      namespaces  

  private java.lang.Object[] noNodeHandlerDefinedDescription(freemarker.template.TemplateNodeModel, java.lang.String, java.lang.String);
    descriptor: (Lfreemarker/template/TemplateNodeModel;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNodeModel node
        start local 2 // java.lang.String ns
        start local 3 // java.lang.String nodeType
         0: .line 711
            aload 2 /* ns */
            ifnull 6
         1: .line 712
            aload 2 /* ns */
            invokevirtual java.lang.String.length:()I
            ifle 4
         2: .line 713
            ldc " and namespace "
            astore 4 /* nsPrefix */
        start local 4 // java.lang.String nsPrefix
         3: .line 714
            goto 8
        end local 4 // java.lang.String nsPrefix
         4: .line 715
      StackMap locals:
      StackMap stack:
            ldc " and no namespace"
            astore 4 /* nsPrefix */
        start local 4 // java.lang.String nsPrefix
         5: .line 717
            goto 8
        end local 4 // java.lang.String nsPrefix
         6: .line 718
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 4 /* nsPrefix */
        start local 4 // java.lang.String nsPrefix
         7: .line 719
            ldc ""
            astore 2 /* ns */
         8: .line 721
      StackMap locals: java.lang.String
      StackMap stack:
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "No macro or directive is defined for node named "
            aastore
            dup
            iconst_1
         9: .line 722
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeName:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            aload 4 /* nsPrefix */
            aastore
            dup
            iconst_3
            aload 2 /* ns */
            aastore
            dup
            iconst_4
        10: .line 723
            ldc ", and there is no fallback handler called @"
            aastore
            dup
            iconst_5
            aload 3 /* nodeType */
            aastore
            dup
            bipush 6
            ldc " either."
            aastore
        11: .line 721
            areturn
        end local 4 // java.lang.String nsPrefix
        end local 3 // java.lang.String nodeType
        end local 2 // java.lang.String ns
        end local 1 // freemarker.template.TemplateNodeModel node
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lfreemarker/core/Environment;
            0   12     1      node  Lfreemarker/template/TemplateNodeModel;
            0   12     2        ns  Ljava/lang/String;
            0   12     3  nodeType  Ljava/lang/String;
            3    4     4  nsPrefix  Ljava/lang/String;
            5    6     4  nsPrefix  Ljava/lang/String;
            7   12     4  nsPrefix  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
          Name  Flags
      node      
      ns        
      nodeType  

  void fallback();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 727
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNodeName:Ljava/lang/String;
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNodeNS:Ljava/lang/String;
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaceIndex:I
            invokevirtual freemarker.core.Environment.getNodeProcessor:(Ljava/lang/String;Ljava/lang/String;I)Lfreemarker/template/TemplateModel;
            astore 1 /* macroOrTransform */
        start local 1 // freemarker.template.TemplateModel macroOrTransform
         1: .line 728
            aload 1 /* macroOrTransform */
            instanceof freemarker.core.Macro
            ifeq 4
         2: .line 729
            aload 0 /* this */
            aload 1 /* macroOrTransform */
            checkcast freemarker.core.Macro
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            invokevirtual freemarker.core.Environment.invoke:(Lfreemarker/core/Macro;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Lfreemarker/core/TemplateObject;)V
         3: .line 730
            goto 6
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
         4: aload 1 /* macroOrTransform */
            instanceof freemarker.template.TemplateTransformModel
            ifeq 6
         5: .line 731
            aload 0 /* this */
            aconst_null
            aload 1 /* macroOrTransform */
            checkcast freemarker.template.TemplateTransformModel
            aconst_null
            invokevirtual freemarker.core.Environment.visitAndTransform:([Lfreemarker/core/TemplateElement;Lfreemarker/template/TemplateTransformModel;Ljava/util/Map;)V
         6: .line 733
      StackMap locals:
      StackMap stack:
            return
        end local 1 // freemarker.template.TemplateModel macroOrTransform
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lfreemarker/core/Environment;
            1    7     1  macroOrTransform  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException

  void invoke(freemarker.core.Macro, java.util.Map, java.util.List, java.util.List, freemarker.core.TemplateObject);
    descriptor: (Lfreemarker/core/Macro;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Lfreemarker/core/TemplateObject;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Macro macro
        start local 2 // java.util.Map namedArgs
        start local 3 // java.util.List positionalArgs
        start local 4 // java.util.List bodyParameterNames
        start local 5 // freemarker.core.TemplateObject callPlace
         0: .line 741
            aload 1 /* macro */
            getstatic freemarker.core.Macro.DO_NOTHING_MACRO:Lfreemarker/core/Macro;
            if_acmpne 2
         1: .line 742
            return
         2: .line 746
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.incompatibleImprovementsGE2328:Z
            ifne 6
         3: .line 749
            aload 0 /* this */
            aload 1 /* macro */
            invokevirtual freemarker.core.Environment.pushElement:(Lfreemarker/core/TemplateElement;)V
         4: .line 750
            iconst_1
            istore 6 /* elementPushed */
        start local 6 // boolean elementPushed
         5: .line 751
            goto 7
        end local 6 // boolean elementPushed
         6: .line 752
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* elementPushed */
        start local 6 // boolean elementPushed
         7: .line 755
      StackMap locals: int
      StackMap stack:
            new freemarker.core.Macro$Context
            dup
            aload 1 /* macro */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 0 /* this */
            aload 5 /* callPlace */
            aload 4 /* bodyParameterNames */
            invokespecial freemarker.core.Macro$Context.<init>:(Lfreemarker/core/Macro;Lfreemarker/core/Environment;Lfreemarker/core/TemplateObject;Ljava/util/List;)V
            astore 7 /* macroCtx */
        start local 7 // freemarker.core.Macro$Context macroCtx
         8: .line 757
            aload 0 /* this */
            aload 7 /* macroCtx */
            aload 1 /* macro */
            aload 2 /* namedArgs */
            aload 3 /* positionalArgs */
            invokevirtual freemarker.core.Environment.setMacroContextLocalsFromArguments:(Lfreemarker/core/Macro$Context;Lfreemarker/core/Macro;Ljava/util/Map;Ljava/util/List;)V
         9: .line 759
            iload 6 /* elementPushed */
            ifne 12
        10: .line 760
            aload 0 /* this */
            aload 1 /* macro */
            invokevirtual freemarker.core.Environment.pushElement:(Lfreemarker/core/TemplateElement;)V
        11: .line 761
            iconst_1
            istore 6 /* elementPushed */
        12: .line 764
      StackMap locals: freemarker.core.Macro$Context
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            astore 8 /* prevMacroCtx */
        start local 8 // freemarker.core.Macro$Context prevMacroCtx
        13: .line 765
            aload 0 /* this */
            aload 7 /* macroCtx */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        14: .line 767
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            astore 9 /* prevLocalContextStack */
        start local 9 // freemarker.core.LocalContextStack prevLocalContextStack
        15: .line 768
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        16: .line 770
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            astore 10 /* prevNamespace */
        start local 10 // freemarker.core.Environment$Namespace prevNamespace
        17: .line 771
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.macroToNamespaceLookup:Ljava/util/HashMap;
            aload 1 /* macro */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.Environment$Namespace
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        18: .line 774
            aload 7 /* macroCtx */
            aload 0 /* this */
            invokevirtual freemarker.core.Macro$Context.sanityCheck:(Lfreemarker/core/Environment;)V
        19: .line 775
            aload 0 /* this */
            aload 1 /* macro */
            invokevirtual freemarker.core.Macro.getChildBuffer:()[Lfreemarker/core/TemplateElement;
            invokevirtual freemarker.core.Environment.visit:([Lfreemarker/core/TemplateElement;)V
        20: .line 776
            goto 35
      StackMap locals: freemarker.core.Environment freemarker.core.Macro java.util.Map java.util.List java.util.List freemarker.core.TemplateObject int freemarker.core.Macro$Context freemarker.core.Macro$Context freemarker.core.LocalContextStack freemarker.core.Environment$Namespace
      StackMap stack: freemarker.core.ReturnInstruction$Return
        21: pop
        22: .line 781
            aload 0 /* this */
            aload 8 /* prevMacroCtx */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        23: .line 782
            aload 0 /* this */
            aload 9 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        24: .line 783
            aload 0 /* this */
            aload 10 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            goto 43
        25: .line 778
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            astore 11 /* te */
        start local 11 // freemarker.template.TemplateException te
        26: .line 779
            aload 0 /* this */
            aload 11 /* te */
            invokevirtual freemarker.core.Environment.handleTemplateException:(Lfreemarker/template/TemplateException;)V
        end local 11 // freemarker.template.TemplateException te
        27: .line 781
            aload 0 /* this */
            aload 8 /* prevMacroCtx */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        28: .line 782
            aload 0 /* this */
            aload 9 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        29: .line 783
            aload 0 /* this */
            aload 10 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            goto 43
        30: .line 780
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
        31: .line 781
            aload 0 /* this */
            aload 8 /* prevMacroCtx */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        32: .line 782
            aload 0 /* this */
            aload 9 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        33: .line 783
            aload 0 /* this */
            aload 10 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        34: .line 784
            aload 12
            athrow
        35: .line 781
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* prevMacroCtx */
            putfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
        36: .line 782
            aload 0 /* this */
            aload 9 /* prevLocalContextStack */
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
        37: .line 783
            aload 0 /* this */
            aload 10 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        end local 10 // freemarker.core.Environment$Namespace prevNamespace
        end local 9 // freemarker.core.LocalContextStack prevLocalContextStack
        end local 8 // freemarker.core.Macro$Context prevMacroCtx
        end local 7 // freemarker.core.Macro$Context macroCtx
        38: .line 785
            goto 43
      StackMap locals: freemarker.core.Environment freemarker.core.Macro java.util.Map java.util.List java.util.List freemarker.core.TemplateObject int
      StackMap stack: java.lang.Throwable
        39: astore 13
        40: .line 786
            iload 6 /* elementPushed */
            ifeq 42
        41: .line 787
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        42: .line 789
      StackMap locals: freemarker.core.Environment freemarker.core.Macro java.util.Map java.util.List java.util.List freemarker.core.TemplateObject int top top top top top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        43: .line 786
      StackMap locals: freemarker.core.Environment freemarker.core.Macro java.util.Map java.util.List java.util.List freemarker.core.TemplateObject int
      StackMap stack:
            iload 6 /* elementPushed */
            ifeq 45
        44: .line 787
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.popElement:()V
        45: .line 790
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean elementPushed
        end local 5 // freemarker.core.TemplateObject callPlace
        end local 4 // java.util.List bodyParameterNames
        end local 3 // java.util.List positionalArgs
        end local 2 // java.util.Map namedArgs
        end local 1 // freemarker.core.Macro macro
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   46     0                   this  Lfreemarker/core/Environment;
            0   46     1                  macro  Lfreemarker/core/Macro;
            0   46     2              namedArgs  Ljava/util/Map;
            0   46     3         positionalArgs  Ljava/util/List;
            0   46     4     bodyParameterNames  Ljava/util/List;
            0   46     5              callPlace  Lfreemarker/core/TemplateObject;
            5    6     6          elementPushed  Z
            7   46     6          elementPushed  Z
            8   38     7               macroCtx  Lfreemarker/core/Macro$Context;
           13   38     8           prevMacroCtx  Lfreemarker/core/Macro$Context;
           15   38     9  prevLocalContextStack  Lfreemarker/core/LocalContextStack;
           17   38    10          prevNamespace  Lfreemarker/core/Environment$Namespace;
           26   27    11                     te  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
          18    20      21  Class freemarker.core.ReturnInstruction$Return
          18    20      25  Class freemarker.template.TemplateException
          18    22      30  any
          25    27      30  any
           7    39      39  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
                    Name  Flags
      macro               
      namedArgs           
      positionalArgs      
      bodyParameterNames  
      callPlace           

  private void setMacroContextLocalsFromArguments(freemarker.core.Macro$Context, freemarker.core.Macro, java.util.Map, java.util.List);
    descriptor: (Lfreemarker/core/Macro$Context;Lfreemarker/core/Macro;Ljava/util/Map;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=13, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Macro$Context macroCtx
        start local 2 // freemarker.core.Macro macro
        start local 3 // java.util.Map namedArgs
        start local 4 // java.util.List positionalArgs
         0: .line 799
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.getCatchAll:()Ljava/lang/String;
            astore 5 /* catchAllParamName */
        start local 5 // java.lang.String catchAllParamName
         1: .line 800
            aload 3 /* namedArgs */
            ifnull 28
         2: .line 802
            aload 5 /* catchAllParamName */
            ifnull 6
         3: .line 803
            new freemarker.template.SimpleHash
            dup
            aconst_null
            invokespecial freemarker.template.SimpleHash.<init>:(Lfreemarker/template/ObjectWrapper;)V
            astore 6 /* catchAllParamValue */
        start local 6 // freemarker.template.SimpleHash catchAllParamValue
         4: .line 804
            aload 1 /* macroCtx */
            aload 5 /* catchAllParamName */
            aload 6 /* catchAllParamValue */
            invokevirtual freemarker.core.Macro$Context.setLocalVar:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
         5: .line 805
            goto 7
        end local 6 // freemarker.template.SimpleHash catchAllParamValue
         6: .line 806
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 6 /* catchAllParamValue */
        start local 6 // freemarker.template.SimpleHash catchAllParamValue
         7: .line 809
      StackMap locals: freemarker.template.SimpleHash
      StackMap stack:
            aload 3 /* namedArgs */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
         8: goto 26
         9: .line 810
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* argNameAndValExp */
        start local 8 // java.util.Map$Entry argNameAndValExp
        10: .line 811
            aload 8 /* argNameAndValExp */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* argName */
        start local 9 // java.lang.String argName
        11: .line 812
            aload 2 /* macro */
            aload 9 /* argName */
            invokevirtual freemarker.core.Macro.hasArgNamed:(Ljava/lang/String;)Z
            istore 10 /* isArgNameDeclared */
        start local 10 // boolean isArgNameDeclared
        12: .line 813
            iload 10 /* isArgNameDeclared */
            ifne 13
            aload 5 /* catchAllParamName */
            ifnull 20
        13: .line 814
      StackMap locals: java.util.Map$Entry java.lang.String int
      StackMap stack:
            aload 8 /* argNameAndValExp */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast freemarker.core.Expression
            astore 11 /* argValueExp */
        start local 11 // freemarker.core.Expression argValueExp
        14: .line 815
            aload 11 /* argValueExp */
            aload 0 /* this */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            astore 12 /* argValue */
        start local 12 // freemarker.template.TemplateModel argValue
        15: .line 816
            iload 10 /* isArgNameDeclared */
            ifeq 18
        16: .line 817
            aload 1 /* macroCtx */
            aload 9 /* argName */
            aload 12 /* argValue */
            invokevirtual freemarker.core.Macro$Context.setLocalVar:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
        17: .line 818
            goto 26
        18: .line 819
      StackMap locals: freemarker.core.Expression freemarker.template.TemplateModel
      StackMap stack:
            aload 6 /* catchAllParamValue */
            aload 9 /* argName */
            aload 12 /* argValue */
            invokevirtual freemarker.template.SimpleHash.put:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 12 // freemarker.template.TemplateModel argValue
        end local 11 // freemarker.core.Expression argValueExp
        19: .line 821
            goto 26
        20: .line 822
      StackMap locals:
      StackMap stack:
            new freemarker.core._MiscTemplateException
            dup
            aload 0 /* this */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        21: .line 823
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.isFunction:()Z
            ifeq 22
            ldc "Function "
            goto 23
      StackMap locals: freemarker.core.Environment freemarker.core.Macro$Context freemarker.core.Macro java.util.Map java.util.List java.lang.String freemarker.template.SimpleHash java.util.Iterator java.util.Map$Entry java.lang.String int
      StackMap stack: new 20 new 20 freemarker.core.Environment java.lang.Object[] java.lang.Object[] int
        22: ldc "Macro "
      StackMap locals: freemarker.core.Environment freemarker.core.Macro$Context freemarker.core.Macro java.util.Map java.util.List java.lang.String freemarker.template.SimpleHash java.util.Iterator java.util.Map$Entry java.lang.String int
      StackMap stack: new 20 new 20 freemarker.core.Environment java.lang.Object[] java.lang.Object[] int java.lang.String
        23: aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.getName:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
        24: .line 824
            ldc " has no parameter with name "
            aastore
            dup
            iconst_3
            new freemarker.core._DelayedJQuote
            dup
            aload 9 /* argName */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc "."
        25: .line 822
            aastore
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;[Ljava/lang/Object;)V
            athrow
        end local 10 // boolean isArgNameDeclared
        end local 9 // java.lang.String argName
        end local 8 // java.util.Map$Entry argNameAndValExp
        26: .line 809
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 7 // java.util.Iterator it
        end local 6 // freemarker.template.SimpleHash catchAllParamValue
        27: .line 827
            goto 58
      StackMap locals:
      StackMap stack:
        28: aload 4 /* positionalArgs */
            ifnull 58
        29: .line 829
            aload 5 /* catchAllParamName */
            ifnull 33
        30: .line 830
            new freemarker.template.SimpleSequence
            dup
            aconst_null
            invokespecial freemarker.template.SimpleSequence.<init>:(Lfreemarker/template/ObjectWrapper;)V
            astore 6 /* catchAllParamValue */
        start local 6 // freemarker.template.SimpleSequence catchAllParamValue
        31: .line 831
            aload 1 /* macroCtx */
            aload 5 /* catchAllParamName */
            aload 6 /* catchAllParamValue */
            invokevirtual freemarker.core.Macro$Context.setLocalVar:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
        32: .line 832
            goto 34
        end local 6 // freemarker.template.SimpleSequence catchAllParamValue
        33: .line 833
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* catchAllParamValue */
        start local 6 // freemarker.template.SimpleSequence catchAllParamValue
        34: .line 836
      StackMap locals: freemarker.template.SimpleSequence
      StackMap stack:
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.getArgumentNamesInternal:()[Ljava/lang/String;
            astore 7 /* argNames */
        start local 7 // java.lang.String[] argNames
        35: .line 837
            aload 4 /* positionalArgs */
            invokeinterface java.util.List.size:()I
            istore 8 /* argsCnt */
        start local 8 // int argsCnt
        36: .line 838
            aload 7 /* argNames */
            arraylength
            iload 8 /* argsCnt */
            if_icmpge 44
            aload 5 /* catchAllParamName */
            ifnonnull 44
        37: .line 839
            new freemarker.core._MiscTemplateException
            dup
            aload 0 /* this */
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
        38: .line 840
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.isFunction:()Z
            ifeq 39
            ldc "Function "
            goto 40
      StackMap locals: freemarker.core.Environment freemarker.core.Macro$Context freemarker.core.Macro java.util.Map java.util.List java.lang.String freemarker.template.SimpleSequence java.lang.String[] int
      StackMap stack: new 37 new 37 freemarker.core.Environment java.lang.Object[] java.lang.Object[] int
        39: ldc "Macro "
      StackMap locals: freemarker.core.Environment freemarker.core.Macro$Context freemarker.core.Macro java.util.Map java.util.List java.lang.String freemarker.template.SimpleSequence java.lang.String[] int
      StackMap stack: new 37 new 37 freemarker.core.Environment java.lang.Object[] java.lang.Object[] int java.lang.String
        40: aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 2 /* macro */
            invokevirtual freemarker.core.Macro.getName:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
        41: .line 841
            ldc " only accepts "
            aastore
            dup
            iconst_3
            new freemarker.core._DelayedToString
            dup
            aload 7 /* argNames */
            arraylength
            invokespecial freemarker.core._DelayedToString.<init>:(I)V
            aastore
            dup
            iconst_4
            ldc " parameters, but got "
            aastore
            dup
            iconst_5
        42: .line 842
            new freemarker.core._DelayedToString
            dup
            iload 8 /* argsCnt */
            invokespecial freemarker.core._DelayedToString.<init>:(I)V
            aastore
            dup
            bipush 6
            ldc "."
        43: .line 839
            aastore
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;[Ljava/lang/Object;)V
            athrow
        44: .line 844
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        45: goto 57
        46: .line 845
      StackMap locals: int
      StackMap stack:
            aload 4 /* positionalArgs */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast freemarker.core.Expression
            astore 10 /* argValueExp */
        start local 10 // freemarker.core.Expression argValueExp
        47: .line 846
            aload 10 /* argValueExp */
            aload 0 /* this */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            astore 11 /* argValue */
        start local 11 // freemarker.template.TemplateModel argValue
        48: .line 848
            iload 9 /* i */
            aload 7 /* argNames */
            arraylength
            if_icmpge 52
        49: .line 849
            aload 7 /* argNames */
            iload 9 /* i */
            aaload
            astore 12 /* argName */
        start local 12 // java.lang.String argName
        50: .line 850
            aload 1 /* macroCtx */
            aload 12 /* argName */
            aload 11 /* argValue */
            invokevirtual freemarker.core.Macro$Context.setLocalVar:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
        end local 12 // java.lang.String argName
        51: .line 851
            goto 56
        52: .line 852
      StackMap locals: freemarker.core.Expression freemarker.template.TemplateModel
      StackMap stack:
            aload 6 /* catchAllParamValue */
            aload 11 /* argValue */
            invokevirtual freemarker.template.SimpleSequence.add:(Ljava/lang/Object;)V
        53: .line 854
            goto 56
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        54: astore 12 /* re */
        start local 12 // java.lang.RuntimeException re
        55: .line 855
            new freemarker.core._MiscTemplateException
            dup
            aload 12 /* re */
            aload 0 /* this */
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;)V
            athrow
        end local 12 // java.lang.RuntimeException re
        end local 11 // freemarker.template.TemplateModel argValue
        end local 10 // freemarker.core.Expression argValueExp
        56: .line 844
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 9 /* i */
            iload 8 /* argsCnt */
            if_icmplt 46
        end local 9 // int i
        end local 8 // int argsCnt
        end local 7 // java.lang.String[] argNames
        end local 6 // freemarker.template.SimpleSequence catchAllParamValue
        58: .line 859
      StackMap locals: freemarker.core.Environment freemarker.core.Macro$Context freemarker.core.Macro java.util.Map java.util.List java.lang.String
      StackMap stack:
            return
        end local 5 // java.lang.String catchAllParamName
        end local 4 // java.util.List positionalArgs
        end local 3 // java.util.Map namedArgs
        end local 2 // freemarker.core.Macro macro
        end local 1 // freemarker.core.Macro$Context macroCtx
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   59     0                this  Lfreemarker/core/Environment;
            0   59     1            macroCtx  Lfreemarker/core/Macro$Context;
            0   59     2               macro  Lfreemarker/core/Macro;
            0   59     3           namedArgs  Ljava/util/Map;
            0   59     4      positionalArgs  Ljava/util/List;
            1   59     5   catchAllParamName  Ljava/lang/String;
            4    6     6  catchAllParamValue  Lfreemarker/template/SimpleHash;
            7   27     6  catchAllParamValue  Lfreemarker/template/SimpleHash;
            8   27     7                  it  Ljava/util/Iterator;
           10   26     8    argNameAndValExp  Ljava/util/Map$Entry;
           11   26     9             argName  Ljava/lang/String;
           12   26    10   isArgNameDeclared  Z
           14   19    11         argValueExp  Lfreemarker/core/Expression;
           15   19    12            argValue  Lfreemarker/template/TemplateModel;
           31   33     6  catchAllParamValue  Lfreemarker/template/SimpleSequence;
           34   58     6  catchAllParamValue  Lfreemarker/template/SimpleSequence;
           35   58     7            argNames  [Ljava/lang/String;
           36   58     8             argsCnt  I
           45   58     9                   i  I
           47   56    10         argValueExp  Lfreemarker/core/Expression;
           48   56    11            argValue  Lfreemarker/template/TemplateModel;
           50   51    12             argName  Ljava/lang/String;
           55   56    12                  re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          48    53      54  Class java.lang.RuntimeException
    Exceptions:
      throws freemarker.template.TemplateException, freemarker.core._MiscTemplateException
    MethodParameters:
                Name  Flags
      macroCtx        final
      macro           final
      namedArgs       final
      positionalArgs  final

  void visitMacroDef(freemarker.core.Macro);
    descriptor: (Lfreemarker/core/Macro;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Macro macro
         0: .line 865
            aload 0 /* this */
            getfield freemarker.core.Environment.macroToNamespaceLookup:Ljava/util/HashMap;
            aload 1 /* macro */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 866
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            aload 1 /* macro */
            invokevirtual freemarker.core.Macro.getName:()Ljava/lang/String;
            aload 1 /* macro */
            invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 867
            return
        end local 1 // freemarker.core.Macro macro
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lfreemarker/core/Environment;
            0    3     1  macro  Lfreemarker/core/Macro;
    MethodParameters:
       Name  Flags
      macro  

  freemarker.core.Environment$Namespace getMacroNamespace(freemarker.core.Macro);
    descriptor: (Lfreemarker/core/Macro;)Lfreemarker/core/Environment$Namespace;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Macro macro
         0: .line 870
            aload 0 /* this */
            getfield freemarker.core.Environment.macroToNamespaceLookup:Ljava/util/HashMap;
            aload 1 /* macro */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.Environment$Namespace
            areturn
        end local 1 // freemarker.core.Macro macro
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lfreemarker/core/Environment;
            0    1     1  macro  Lfreemarker/core/Macro;
    MethodParameters:
       Name  Flags
      macro  

  void recurse(freemarker.template.TemplateNodeModel, freemarker.template.TemplateSequenceModel);
    descriptor: (Lfreemarker/template/TemplateNodeModel;Lfreemarker/template/TemplateSequenceModel;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNodeModel node
        start local 2 // freemarker.template.TemplateSequenceModel namespaces
         0: .line 875
            aload 1 /* node */
            ifnonnull 6
         1: .line 876
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getCurrentVisitorNode:()Lfreemarker/template/TemplateNodeModel;
            astore 1 /* node */
         2: .line 877
            aload 1 /* node */
            ifnonnull 6
         3: .line 878
            new freemarker.core._TemplateModelException
            dup
         4: .line 879
            ldc "The target node of recursion is missing or null."
         5: .line 878
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 882
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getChildNodes:()Lfreemarker/template/TemplateSequenceModel;
            astore 3 /* children */
        start local 3 // freemarker.template.TemplateSequenceModel children
         7: .line 883
            aload 3 /* children */
            ifnonnull 9
         8: .line 884
            return
         9: .line 886
      StackMap locals: freemarker.template.TemplateSequenceModel
      StackMap stack:
            aload 3 /* children */
            invokeinterface freemarker.template.TemplateSequenceModel.size:()I
            istore 4 /* size */
        start local 4 // int size
        10: .line 887
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        11: goto 16
        12: .line 888
      StackMap locals: int int
      StackMap stack:
            aload 3 /* children */
            iload 5 /* i */
            invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
            checkcast freemarker.template.TemplateNodeModel
            astore 6 /* child */
        start local 6 // freemarker.template.TemplateNodeModel child
        13: .line 889
            aload 6 /* child */
            ifnull 15
        14: .line 890
            aload 0 /* this */
            aload 6 /* child */
            aload 2 /* namespaces */
            invokevirtual freemarker.core.Environment.invokeNodeHandlerFor:(Lfreemarker/template/TemplateNodeModel;Lfreemarker/template/TemplateSequenceModel;)V
        end local 6 // freemarker.template.TemplateNodeModel child
        15: .line 887
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 12
        end local 5 // int i
        17: .line 893
            return
        end local 4 // int size
        end local 3 // freemarker.template.TemplateSequenceModel children
        end local 2 // freemarker.template.TemplateSequenceModel namespaces
        end local 1 // freemarker.template.TemplateNodeModel node
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lfreemarker/core/Environment;
            0   18     1        node  Lfreemarker/template/TemplateNodeModel;
            0   18     2  namespaces  Lfreemarker/template/TemplateSequenceModel;
            7   18     3    children  Lfreemarker/template/TemplateSequenceModel;
           10   18     4        size  I
           11   17     5           i  I
           13   15     6       child  Lfreemarker/template/TemplateNodeModel;
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
            Name  Flags
      node        
      namespaces  

  freemarker.core.Macro$Context getCurrentMacroContext();
    descriptor: ()Lfreemarker/core/Macro$Context;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 896
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  private void handleTemplateException(freemarker.template.TemplateException);
    descriptor: (Lfreemarker/template/TemplateException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateException templateException
         0: .line 901
            aload 1 /* templateException */
            instanceof freemarker.template.TemplateModelException
            ifeq 4
         1: .line 902
            aload 1 /* templateException */
            checkcast freemarker.template.TemplateModelException
            invokevirtual freemarker.template.TemplateModelException.getReplaceWithCause:()Z
            ifeq 4
         2: .line 903
            aload 1 /* templateException */
            invokevirtual freemarker.template.TemplateException.getCause:()Ljava/lang/Throwable;
            instanceof freemarker.template.TemplateException
            ifeq 4
         3: .line 904
            aload 1 /* templateException */
            invokevirtual freemarker.template.TemplateException.getCause:()Ljava/lang/Throwable;
            checkcast freemarker.template.TemplateException
            astore 1 /* templateException */
         4: .line 909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.lastThrowable:Ljava/lang/Throwable;
            aload 1 /* templateException */
            if_acmpne 6
         5: .line 910
            aload 1 /* templateException */
            athrow
         6: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* templateException */
            putfield freemarker.core.Environment.lastThrowable:Ljava/lang/Throwable;
         7: .line 914
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLogTemplateExceptions:()Z
            ifeq 10
            getstatic freemarker.core.Environment.LOG:Lfreemarker/log/Logger;
            invokevirtual freemarker.log.Logger.isErrorEnabled:()Z
            ifeq 10
         8: .line 915
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isInAttemptBlock:()Z
            ifne 10
         9: .line 916
            getstatic freemarker.core.Environment.LOG:Lfreemarker/log/Logger;
            ldc "Error executing FreeMarker template"
            aload 1 /* templateException */
            invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        10: .line 922
      StackMap locals:
      StackMap stack:
            aload 1 /* templateException */
            instanceof freemarker.core.StopException
            ifeq 12
        11: .line 923
            aload 1 /* templateException */
            athrow
        12: .line 927
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplateExceptionHandler:()Lfreemarker/template/TemplateExceptionHandler;
            aload 1 /* templateException */
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            invokeinterface freemarker.template.TemplateExceptionHandler.handleTemplateException:(Lfreemarker/template/TemplateException;Lfreemarker/core/Environment;Ljava/io/Writer;)V
        13: .line 928
            goto 18
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
        14: astore 2 /* e */
        start local 2 // freemarker.template.TemplateException e
        15: .line 930
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isInAttemptBlock:()Z
            ifeq 17
        16: .line 931
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getAttemptExceptionReporter:()Lfreemarker/template/AttemptExceptionReporter;
            aload 1 /* templateException */
            aload 0 /* this */
            invokeinterface freemarker.template.AttemptExceptionReporter.report:(Lfreemarker/template/TemplateException;Lfreemarker/core/Environment;)V
        17: .line 933
      StackMap locals: freemarker.template.TemplateException
      StackMap stack:
            aload 2 /* e */
            athrow
        end local 2 // freemarker.template.TemplateException e
        18: .line 935
      StackMap locals:
      StackMap stack:
            return
        end local 1 // freemarker.template.TemplateException templateException
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lfreemarker/core/Environment;
            0   19     1  templateException  Lfreemarker/template/TemplateException;
           15   18     2                  e  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
          10    13      14  Class freemarker.template.TemplateException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                   Name  Flags
      templateException  

  public void setTemplateExceptionHandler(freemarker.template.TemplateExceptionHandler);
    descriptor: (Lfreemarker/template/TemplateExceptionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateExceptionHandler templateExceptionHandler
         0: .line 939
            aload 0 /* this */
            aload 1 /* templateExceptionHandler */
            invokespecial freemarker.core.Configurable.setTemplateExceptionHandler:(Lfreemarker/template/TemplateExceptionHandler;)V
         1: .line 940
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.lastThrowable:Ljava/lang/Throwable;
         2: .line 941
            return
        end local 1 // freemarker.template.TemplateExceptionHandler templateExceptionHandler
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    3     0                      this  Lfreemarker/core/Environment;
            0    3     1  templateExceptionHandler  Lfreemarker/template/TemplateExceptionHandler;
    MethodParameters:
                          Name  Flags
      templateExceptionHandler  

  public void setLocale(java.util.Locale);
    descriptor: (Ljava/util/Locale;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.util.Locale locale
         0: .line 945
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            astore 2 /* prevLocale */
        start local 2 // java.util.Locale prevLocale
         1: .line 946
            aload 0 /* this */
            aload 1 /* locale */
            invokespecial freemarker.core.Configurable.setLocale:(Ljava/util/Locale;)V
         2: .line 947
            aload 1 /* locale */
            aload 2 /* prevLocale */
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifne 16
         3: .line 948
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
         4: .line 949
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
            ifnull 6
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
            invokevirtual freemarker.core.TemplateNumberFormat.isLocaleBound:()Z
            ifeq 6
         5: .line 950
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
         6: .line 953
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 14
         7: .line 954
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 13
         9: .line 955
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aaload
            astore 4 /* f */
        start local 4 // freemarker.core.TemplateDateFormat f
        10: .line 956
            aload 4 /* f */
            ifnull 12
            aload 4 /* f */
            invokevirtual freemarker.core.TemplateDateFormat.isLocaleBound:()Z
            ifeq 12
        11: .line 957
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aconst_null
            aastore
        end local 4 // freemarker.core.TemplateDateFormat f
        12: .line 954
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            bipush 16
            if_icmplt 9
        end local 3 // int i
        14: .line 962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
        15: .line 964
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedCollator:Ljava/text/Collator;
        16: .line 966
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Locale prevLocale
        end local 1 // java.util.Locale locale
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lfreemarker/core/Environment;
            0   17     1      locale  Ljava/util/Locale;
            1   17     2  prevLocale  Ljava/util/Locale;
            8   14     3           i  I
           10   12     4           f  Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
        Name  Flags
      locale  

  public void setTimeZone(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.util.TimeZone timeZone
         0: .line 970
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeZone:()Ljava/util/TimeZone;
            astore 2 /* prevTimeZone */
        start local 2 // java.util.TimeZone prevTimeZone
         1: .line 971
            aload 0 /* this */
            aload 1 /* timeZone */
            invokespecial freemarker.core.Configurable.setTimeZone:(Ljava/util/TimeZone;)V
         2: .line 973
            aload 1 /* timeZone */
            aload 2 /* prevTimeZone */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 18
         3: .line 974
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 11
         4: .line 975
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 976
      StackMap locals: java.util.TimeZone int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aaload
            astore 4 /* f */
        start local 4 // freemarker.core.TemplateDateFormat f
         7: .line 977
            aload 4 /* f */
            ifnull 9
            aload 4 /* f */
            invokevirtual freemarker.core.TemplateDateFormat.isTimeZoneBound:()Z
            ifeq 9
         8: .line 978
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aconst_null
            aastore
        end local 4 // freemarker.core.TemplateDateFormat f
         9: .line 975
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            bipush 8
            if_icmplt 6
        end local 3 // int i
        11: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
            ifnull 17
        12: .line 983
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        13: goto 16
        14: .line 984
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
            iload 3 /* i */
            aconst_null
            aastore
        15: .line 983
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            bipush 8
            if_icmplt 14
        end local 3 // int i
        17: .line 988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedSQLDateAndTimeTimeZoneSameAsNormal:Ljava/lang/Boolean;
        18: .line 990
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.TimeZone prevTimeZone
        end local 1 // java.util.TimeZone timeZone
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lfreemarker/core/Environment;
            0   19     1      timeZone  Ljava/util/TimeZone;
            1   19     2  prevTimeZone  Ljava/util/TimeZone;
            5   11     3             i  I
            7    9     4             f  Lfreemarker/core/TemplateDateFormat;
           13   17     3             i  I
    MethodParameters:
          Name  Flags
      timeZone  

  public void setSQLDateAndTimeTimeZone(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.util.TimeZone timeZone
         0: .line 994
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            astore 2 /* prevTimeZone */
        start local 2 // java.util.TimeZone prevTimeZone
         1: .line 995
            aload 0 /* this */
            aload 1 /* timeZone */
            invokespecial freemarker.core.Configurable.setSQLDateAndTimeTimeZone:(Ljava/util/TimeZone;)V
         2: .line 997
            aload 1 /* timeZone */
            aload 2 /* prevTimeZone */
            invokestatic freemarker.core.Environment.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 18
         3: .line 998
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 11
         4: .line 999
            bipush 8
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 1000
      StackMap locals: java.util.TimeZone int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aaload
            astore 4 /* format */
        start local 4 // freemarker.core.TemplateDateFormat format
         7: .line 1001
            aload 4 /* format */
            ifnull 9
            aload 4 /* format */
            invokevirtual freemarker.core.TemplateDateFormat.isTimeZoneBound:()Z
            ifeq 9
         8: .line 1002
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            aconst_null
            aastore
        end local 4 // freemarker.core.TemplateDateFormat format
         9: .line 999
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            bipush 16
            if_icmplt 6
        end local 3 // int i
        11: .line 1006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
            ifnull 17
        12: .line 1007
            bipush 8
            istore 3 /* i */
        start local 3 // int i
        13: goto 16
        14: .line 1008
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
            iload 3 /* i */
            aconst_null
            aastore
        15: .line 1007
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            bipush 16
            if_icmplt 14
        end local 3 // int i
        17: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedSQLDateAndTimeTimeZoneSameAsNormal:Ljava/lang/Boolean;
        18: .line 1014
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.TimeZone prevTimeZone
        end local 1 // java.util.TimeZone timeZone
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lfreemarker/core/Environment;
            0   19     1      timeZone  Ljava/util/TimeZone;
            1   19     2  prevTimeZone  Ljava/util/TimeZone;
            5   11     3             i  I
            7    9     4        format  Lfreemarker/core/TemplateDateFormat;
           13   17     3             i  I
    MethodParameters:
          Name  Flags
      timeZone  

  private static boolean nullSafeEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object o1
        start local 1 // java.lang.Object o2
         0: .line 1018
            aload 0 /* o1 */
            aload 1 /* o2 */
            if_acmpne 1
            iconst_1
            ireturn
         1: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* o1 */
            ifnull 2
            aload 1 /* o2 */
            ifnonnull 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* o1 */
            aload 1 /* o2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object o2
        end local 0 // java.lang.Object o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    o1  Ljava/lang/Object;
            0    4     1    o2  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o1    
      o2    

  boolean isSQLDateAndTimeTimeZoneSameAsNormal();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1028
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedSQLDateAndTimeTimeZoneSameAsNormal:Ljava/lang/Boolean;
            ifnonnull 6
         1: .line 1029
            aload 0 /* this */
         2: .line 1030
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            ifnull 4
         3: .line 1031
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeZone:()Ljava/util/TimeZone;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack: freemarker.core.Environment
         4: iconst_1
         5: .line 1029
      StackMap locals: freemarker.core.Environment
      StackMap stack: freemarker.core.Environment int
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield freemarker.core.Environment.cachedSQLDateAndTimeTimeZoneSameAsNormal:Ljava/lang/Boolean;
         6: .line 1033
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedSQLDateAndTimeTimeZoneSameAsNormal:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lfreemarker/core/Environment;

  public void setURLEscapingCharset(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String urlEscapingCharset
         0: .line 1038
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.Environment.cachedURLEscapingCharsetSet:Z
         1: .line 1039
            aload 0 /* this */
            aload 1 /* urlEscapingCharset */
            invokespecial freemarker.core.Configurable.setURLEscapingCharset:(Ljava/lang/String;)V
         2: .line 1040
            return
        end local 1 // java.lang.String urlEscapingCharset
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lfreemarker/core/Environment;
            0    3     1  urlEscapingCharset  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      urlEscapingCharset  

  public void setOutputEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String outputEncoding
         0: .line 1049
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.Environment.cachedURLEscapingCharsetSet:Z
         1: .line 1050
            aload 0 /* this */
            aload 1 /* outputEncoding */
            invokespecial freemarker.core.Configurable.setOutputEncoding:(Ljava/lang/String;)V
         2: .line 1051
            return
        end local 1 // java.lang.String outputEncoding
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lfreemarker/core/Environment;
            0    3     1  outputEncoding  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      outputEncoding  

  java.lang.String getEffectiveURLEscapingCharset();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1058
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedURLEscapingCharsetSet:Z
            ifne 5
         1: .line 1059
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getURLEscapingCharset:()Ljava/lang/String;
            putfield freemarker.core.Environment.cachedURLEscapingCharset:Ljava/lang/String;
         2: .line 1060
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedURLEscapingCharset:Ljava/lang/String;
            ifnonnull 4
         3: .line 1061
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getOutputEncoding:()Ljava/lang/String;
            putfield freemarker.core.Environment.cachedURLEscapingCharset:Ljava/lang/String;
         4: .line 1063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield freemarker.core.Environment.cachedURLEscapingCharsetSet:Z
         5: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedURLEscapingCharset:Ljava/lang/String;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lfreemarker/core/Environment;

  java.text.Collator getCollator();
    descriptor: ()Ljava/text/Collator;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1069
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedCollator:Ljava/text/Collator;
            ifnonnull 2
         1: .line 1070
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokestatic java.text.Collator.getInstance:(Ljava/util/Locale;)Ljava/text/Collator;
            putfield freemarker.core.Environment.cachedCollator:Ljava/text/Collator;
         2: .line 1072
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedCollator:Ljava/text/Collator;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;

  public boolean applyEqualsOperator(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1082
            aload 1 /* leftValue */
            iconst_1
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public boolean applyEqualsOperatorLenient(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1094
            aload 1 /* leftValue */
            iconst_1
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compareLenient:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public boolean applyLessThanOperator(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1104
            aload 1 /* leftValue */
            iconst_3
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public boolean applyLessThanOrEqualsOperator(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1114
            aload 1 /* leftValue */
            iconst_5
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public boolean applyGreaterThanOperator(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1124
            aload 1 /* leftValue */
            iconst_4
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public boolean applyWithGreaterThanOrEqualsOperator(freemarker.template.TemplateModel, freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel leftValue
        start local 2 // freemarker.template.TemplateModel rightValue
         0: .line 1134
            aload 1 /* leftValue */
            bipush 6
            aload 2 /* rightValue */
            aload 0 /* this */
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
            ireturn
        end local 2 // freemarker.template.TemplateModel rightValue
        end local 1 // freemarker.template.TemplateModel leftValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lfreemarker/core/Environment;
            0    1     1   leftValue  Lfreemarker/template/TemplateModel;
            0    1     2  rightValue  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      leftValue   
      rightValue  

  public void setOut(java.io.Writer);
    descriptor: (Ljava/io/Writer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.io.Writer out
         0: .line 1138
            aload 0 /* this */
            aload 1 /* out */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         1: .line 1139
            return
        end local 1 // java.io.Writer out
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;
            0    2     1   out  Ljava/io/Writer;
    MethodParameters:
      Name  Flags
      out   

  public java.io.Writer getOut();
    descriptor: ()Ljava/io/Writer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1142
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public void setNumberFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatName
         0: .line 1147
            aload 0 /* this */
            aload 1 /* formatName */
            invokespecial freemarker.core.Configurable.setNumberFormat:(Ljava/lang/String;)V
         1: .line 1148
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
         2: .line 1149
            return
        end local 1 // java.lang.String formatName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lfreemarker/core/Environment;
            0    3     1  formatName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      formatName  

  java.lang.String formatNumberToPlainText(freemarker.template.TemplateNumberModel, freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;Z)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNumberModel number
        start local 2 // freemarker.core.Expression exp
        start local 3 // boolean useTempModelExc
         0: .line 1159
            aload 0 /* this */
            aload 1 /* number */
            aload 0 /* this */
            aload 2 /* exp */
            iload 3 /* useTempModelExc */
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateNumberFormat;
            aload 2 /* exp */
            iload 3 /* useTempModelExc */
            invokevirtual freemarker.core.Environment.formatNumberToPlainText:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/TemplateNumberFormat;Lfreemarker/core/Expression;Z)Ljava/lang/String;
            areturn
        end local 3 // boolean useTempModelExc
        end local 2 // freemarker.core.Expression exp
        end local 1 // freemarker.template.TemplateNumberModel number
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lfreemarker/core/Environment;
            0    1     1           number  Lfreemarker/template/TemplateNumberModel;
            0    1     2              exp  Lfreemarker/core/Expression;
            0    1     3  useTempModelExc  Z
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      number           
      exp              
      useTempModelExc  

  java.lang.String formatNumberToPlainText(freemarker.template.TemplateNumberModel, freemarker.core.TemplateNumberFormat, freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/TemplateNumberFormat;Lfreemarker/core/Expression;Z)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNumberModel number
        start local 2 // freemarker.core.TemplateNumberFormat format
        start local 3 // freemarker.core.Expression exp
        start local 4 // boolean useTempModelExc
         0: .line 1173
            aload 2 /* format */
            aload 1 /* number */
            invokevirtual freemarker.core.TemplateNumberFormat.formatToPlainText:(Lfreemarker/template/TemplateNumberModel;)Ljava/lang/String;
            invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 1174
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 5 /* e */
        start local 5 // freemarker.core.TemplateValueFormatException e
         3: .line 1175
            aload 2 /* format */
            aload 3 /* exp */
            aload 5 /* e */
            iload 4 /* useTempModelExc */
            invokestatic freemarker.core._MessageUtil.newCantFormatNumberException:(Lfreemarker/core/TemplateNumberFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
            athrow
        end local 5 // freemarker.core.TemplateValueFormatException e
        end local 4 // boolean useTempModelExc
        end local 3 // freemarker.core.Expression exp
        end local 2 // freemarker.core.TemplateNumberFormat format
        end local 1 // freemarker.template.TemplateNumberModel number
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lfreemarker/core/Environment;
            0    4     1           number  Lfreemarker/template/TemplateNumberModel;
            0    4     2           format  Lfreemarker/core/TemplateNumberFormat;
            0    4     3              exp  Lfreemarker/core/Expression;
            0    4     4  useTempModelExc  Z
            3    4     5                e  Lfreemarker/core/TemplateValueFormatException;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      number           
      format           
      exp              
      useTempModelExc  

  java.lang.String formatNumberToPlainText(java.lang.Number, freemarker.core.BackwardCompatibleTemplateNumberFormat, freemarker.core.Expression);
    descriptor: (Ljava/lang/Number;Lfreemarker/core/BackwardCompatibleTemplateNumberFormat;Lfreemarker/core/Expression;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=11, locals=5, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.Number number
        start local 2 // freemarker.core.BackwardCompatibleTemplateNumberFormat format
        start local 3 // freemarker.core.Expression exp
         0: .line 1188
            aload 2 /* format */
            aload 1 /* number */
            invokevirtual freemarker.core.BackwardCompatibleTemplateNumberFormat.format:(Ljava/lang/Number;)Ljava/lang/String;
         1: areturn
         2: .line 1189
      StackMap locals:
      StackMap stack: freemarker.core.UnformattableValueException
            astore 4 /* e */
        start local 4 // freemarker.core.UnformattableValueException e
         3: .line 1190
            new freemarker.core._MiscTemplateException
            dup
            aload 3 /* exp */
            aload 4 /* e */
            aload 0 /* this */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 1191
            ldc "Failed to format number with "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 2 /* format */
            invokevirtual freemarker.core.BackwardCompatibleTemplateNumberFormat.getDescription:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc ": "
            aastore
            dup
            iconst_3
         5: .line 1192
            aload 4 /* e */
            invokevirtual freemarker.core.UnformattableValueException.getMessage:()Ljava/lang/String;
         6: .line 1190
            aastore
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Ljava/lang/Throwable;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
            athrow
        end local 4 // freemarker.core.UnformattableValueException e
        end local 3 // freemarker.core.Expression exp
        end local 2 // freemarker.core.BackwardCompatibleTemplateNumberFormat format
        end local 1 // java.lang.Number number
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lfreemarker/core/Environment;
            0    7     1  number  Ljava/lang/Number;
            0    7     2  format  Lfreemarker/core/BackwardCompatibleTemplateNumberFormat;
            0    7     3     exp  Lfreemarker/core/Expression;
            3    7     4       e  Lfreemarker/core/UnformattableValueException;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.UnformattableValueException
    Exceptions:
      throws freemarker.template.TemplateModelException, freemarker.core._MiscTemplateException
    MethodParameters:
        Name  Flags
      number  
      format  
      exp     

  public freemarker.core.TemplateNumberFormat getTemplateNumberFormat();
    descriptor: ()Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1208
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
            astore 1 /* format */
        start local 1 // freemarker.core.TemplateNumberFormat format
         1: .line 1209
            aload 1 /* format */
            ifnonnull 4
         2: .line 1210
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getNumberFormat:()Ljava/lang/String;
            iconst_0
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Ljava/lang/String;Z)Lfreemarker/core/TemplateNumberFormat;
            astore 1 /* format */
         3: .line 1211
            aload 0 /* this */
            aload 1 /* format */
            putfield freemarker.core.Environment.cachedTemplateNumberFormat:Lfreemarker/core/TemplateNumberFormat;
         4: .line 1213
      StackMap locals: freemarker.core.TemplateNumberFormat
      StackMap stack:
            aload 1 /* format */
            areturn
        end local 1 // freemarker.core.TemplateNumberFormat format
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lfreemarker/core/Environment;
            1    5     1  format  Lfreemarker/core/TemplateNumberFormat;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException

  public freemarker.core.TemplateNumberFormat getTemplateNumberFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
         0: .line 1229
            aload 0 /* this */
            aload 1 /* formatString */
            iconst_1
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Ljava/lang/String;Z)Lfreemarker/core/TemplateNumberFormat;
            areturn
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lfreemarker/core/Environment;
            0    1     1  formatString  Ljava/lang/String;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
              Name  Flags
      formatString  

  public freemarker.core.TemplateNumberFormat getTemplateNumberFormat(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // java.util.Locale locale
         0: .line 1252
            aload 2 /* locale */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1253
            aload 0 /* this */
            aload 1 /* formatString */
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Ljava/lang/String;)Lfreemarker/core/TemplateNumberFormat;
            pop
         2: .line 1256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* formatString */
            aload 2 /* locale */
            invokevirtual freemarker.core.Environment.getTemplateNumberFormatWithoutCache:(Ljava/lang/String;Ljava/util/Locale;)Lfreemarker/core/TemplateNumberFormat;
            areturn
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lfreemarker/core/Environment;
            0    3     1  formatString  Ljava/lang/String;
            0    3     2        locale  Ljava/util/Locale;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
              Name  Flags
      formatString  
      locale        

  freemarker.core.TemplateNumberFormat getTemplateNumberFormat(freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0000) 
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Expression exp
        start local 2 // boolean useTempModelExc
         0: .line 1265
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:()Lfreemarker/core/TemplateNumberFormat;
            astore 3 /* format */
        start local 3 // freemarker.core.TemplateNumberFormat format
         1: .line 1266
            goto 13
        end local 3 // freemarker.core.TemplateNumberFormat format
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
         2: astore 4 /* e */
        start local 4 // freemarker.core.TemplateValueFormatException e
         3: .line 1267
            new freemarker.core._ErrorDescriptionBuilder
            dup
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 1268
            ldc "Failed to get number format object for the current number format string, "
            aastore
            dup
            iconst_1
         5: .line 1269
            new freemarker.core._DelayedJQuote
            dup
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getNumberFormat:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc ": "
            aastore
            dup
            iconst_3
            aload 4 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
         6: .line 1267
            aastore
            invokespecial freemarker.core._ErrorDescriptionBuilder.<init>:([Ljava/lang/Object;)V
         7: .line 1270
            aload 1 /* exp */
            invokevirtual freemarker.core._ErrorDescriptionBuilder.blame:(Lfreemarker/core/Expression;)Lfreemarker/core/_ErrorDescriptionBuilder;
         8: .line 1267
            astore 5 /* desc */
        start local 5 // freemarker.core._ErrorDescriptionBuilder desc
         9: .line 1271
            iload 2 /* useTempModelExc */
            ifeq 11
        10: .line 1272
            new freemarker.core._TemplateModelException
            dup
            aload 4 /* e */
            aload 0 /* this */
            aload 5 /* desc */
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Lfreemarker/core/_ErrorDescriptionBuilder;)V
            goto 12
      StackMap locals: freemarker.core.Environment freemarker.core.Expression int top freemarker.core.TemplateValueFormatException freemarker.core._ErrorDescriptionBuilder
      StackMap stack:
        11: new freemarker.core._MiscTemplateException
            dup
            aload 4 /* e */
            aload 0 /* this */
            aload 5 /* desc */
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Lfreemarker/core/_ErrorDescriptionBuilder;)V
        12: .line 1271
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            athrow
        end local 5 // freemarker.core._ErrorDescriptionBuilder desc
        end local 4 // freemarker.core.TemplateValueFormatException e
        start local 3 // freemarker.core.TemplateNumberFormat format
        13: .line 1274
      StackMap locals: freemarker.core.Environment freemarker.core.Expression int freemarker.core.TemplateNumberFormat
      StackMap stack:
            aload 3 /* format */
            areturn
        end local 3 // freemarker.core.TemplateNumberFormat format
        end local 2 // boolean useTempModelExc
        end local 1 // freemarker.core.Expression exp
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lfreemarker/core/Environment;
            0   14     1              exp  Lfreemarker/core/Expression;
            0   14     2  useTempModelExc  Z
            1    2     3           format  Lfreemarker/core/TemplateNumberFormat;
           13   14     3           format  Lfreemarker/core/TemplateNumberFormat;
            3   13     4                e  Lfreemarker/core/TemplateValueFormatException;
            9   13     5             desc  Lfreemarker/core/_ErrorDescriptionBuilder;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      exp              
      useTempModelExc  

  freemarker.core.TemplateNumberFormat getTemplateNumberFormat(java.lang.String, freemarker.core.Expression, boolean);
    descriptor: (Ljava/lang/String;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // freemarker.core.Expression exp
        start local 3 // boolean useTempModelExc
         0: .line 1287
            aload 0 /* this */
            aload 1 /* formatString */
            invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Ljava/lang/String;)Lfreemarker/core/TemplateNumberFormat;
            astore 4 /* format */
        start local 4 // freemarker.core.TemplateNumberFormat format
         1: .line 1288
            goto 13
        end local 4 // freemarker.core.TemplateNumberFormat format
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
         2: astore 5 /* e */
        start local 5 // freemarker.core.TemplateValueFormatException e
         3: .line 1289
            new freemarker.core._ErrorDescriptionBuilder
            dup
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 1290
            ldc "Failed to get number format object for the "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* formatString */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
         5: .line 1291
            ldc " number format string: "
            aastore
            dup
            iconst_3
            aload 5 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
         6: .line 1289
            aastore
            invokespecial freemarker.core._ErrorDescriptionBuilder.<init>:([Ljava/lang/Object;)V
         7: .line 1292
            aload 2 /* exp */
            invokevirtual freemarker.core._ErrorDescriptionBuilder.blame:(Lfreemarker/core/Expression;)Lfreemarker/core/_ErrorDescriptionBuilder;
         8: .line 1289
            astore 6 /* desc */
        start local 6 // freemarker.core._ErrorDescriptionBuilder desc
         9: .line 1293
            iload 3 /* useTempModelExc */
            ifeq 11
        10: .line 1294
            new freemarker.core._TemplateModelException
            dup
            aload 5 /* e */
            aload 0 /* this */
            aload 6 /* desc */
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Lfreemarker/core/_ErrorDescriptionBuilder;)V
            goto 12
      StackMap locals: freemarker.core.Environment java.lang.String freemarker.core.Expression int top freemarker.core.TemplateValueFormatException freemarker.core._ErrorDescriptionBuilder
      StackMap stack:
        11: new freemarker.core._MiscTemplateException
            dup
            aload 5 /* e */
            aload 0 /* this */
            aload 6 /* desc */
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;Lfreemarker/core/Environment;Lfreemarker/core/_ErrorDescriptionBuilder;)V
        12: .line 1293
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
            athrow
        end local 6 // freemarker.core._ErrorDescriptionBuilder desc
        end local 5 // freemarker.core.TemplateValueFormatException e
        start local 4 // freemarker.core.TemplateNumberFormat format
        13: .line 1296
      StackMap locals: freemarker.core.Environment java.lang.String freemarker.core.Expression int freemarker.core.TemplateNumberFormat
      StackMap stack:
            aload 4 /* format */
            areturn
        end local 4 // freemarker.core.TemplateNumberFormat format
        end local 3 // boolean useTempModelExc
        end local 2 // freemarker.core.Expression exp
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lfreemarker/core/Environment;
            0   14     1     formatString  Ljava/lang/String;
            0   14     2              exp  Lfreemarker/core/Expression;
            0   14     3  useTempModelExc  Z
            1    2     4           format  Lfreemarker/core/TemplateNumberFormat;
           13   14     4           format  Lfreemarker/core/TemplateNumberFormat;
            3   13     5                e  Lfreemarker/core/TemplateValueFormatException;
            9   13     6             desc  Lfreemarker/core/_ErrorDescriptionBuilder;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      formatString     
      exp              
      useTempModelExc  

  private freemarker.core.TemplateNumberFormat getTemplateNumberFormat(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // boolean cacheResult
         0: .line 1310
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
            ifnonnull 4
         1: .line 1311
            iload 2 /* cacheResult */
            ifeq 7
         2: .line 1312
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
         3: .line 1314
            goto 7
         4: .line 1315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
            aload 1 /* formatString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.TemplateNumberFormat
            astore 3 /* format */
        start local 3 // freemarker.core.TemplateNumberFormat format
         5: .line 1316
            aload 3 /* format */
            ifnull 7
         6: .line 1317
            aload 3 /* format */
            areturn
        end local 3 // freemarker.core.TemplateNumberFormat format
         7: .line 1321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* formatString */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokevirtual freemarker.core.Environment.getTemplateNumberFormatWithoutCache:(Ljava/lang/String;Ljava/util/Locale;)Lfreemarker/core/TemplateNumberFormat;
            astore 3 /* format */
        start local 3 // freemarker.core.TemplateNumberFormat format
         8: .line 1323
            iload 2 /* cacheResult */
            ifeq 10
         9: .line 1324
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTemplateNumberFormats:Ljava/util/Map;
            aload 1 /* formatString */
            aload 3 /* format */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1326
      StackMap locals: freemarker.core.TemplateNumberFormat
      StackMap stack:
            aload 3 /* format */
            areturn
        end local 3 // freemarker.core.TemplateNumberFormat format
        end local 2 // boolean cacheResult
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lfreemarker/core/Environment;
            0   11     1  formatString  Ljava/lang/String;
            0   11     2   cacheResult  Z
            5    7     3        format  Lfreemarker/core/TemplateNumberFormat;
            8   11     3        format  Lfreemarker/core/TemplateNumberFormat;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
              Name  Flags
      formatString  
      cacheResult   

  private freemarker.core.TemplateNumberFormat getTemplateNumberFormatWithoutCache(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Lfreemarker/core/TemplateNumberFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // java.util.Locale locale
         0: .line 1340
            aload 1 /* formatString */
            invokevirtual java.lang.String.length:()I
            istore 3 /* formatStringLen */
        start local 3 // int formatStringLen
         1: .line 1341
            iload 3 /* formatStringLen */
            iconst_1
            if_icmple 22
         2: .line 1342
            aload 1 /* formatString */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 64
            if_icmpne 22
         3: .line 1343
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isIcI2324OrLater:()Z
            ifne 4
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.hasCustomFormats:()Z
            ifeq 22
         4: .line 1344
      StackMap locals: int
      StackMap stack:
            aload 1 /* formatString */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetter:(C)Z
            ifeq 22
         5: .line 1349
            iconst_1
            istore 6 /* endIdx */
        start local 6 // int endIdx
         6: goto 11
         7: .line 1350
      StackMap locals: freemarker.core.Environment java.lang.String java.util.Locale int top top int
      StackMap stack:
            aload 1 /* formatString */
            iload 6 /* endIdx */
            invokevirtual java.lang.String.charAt:(I)C
            istore 7 /* c */
        start local 7 // char c
         8: .line 1351
            iload 7 /* c */
            bipush 32
            if_icmpeq 12
            iload 7 /* c */
            bipush 95
            if_icmpne 10
         9: .line 1352
            goto 12
        end local 7 // char c
        10: .line 1349
      StackMap locals:
      StackMap stack:
            iinc 6 /* endIdx */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* endIdx */
            iload 3 /* formatStringLen */
            if_icmplt 7
        12: .line 1355
      StackMap locals:
      StackMap stack:
            aload 1 /* formatString */
            iconst_1
            iload 6 /* endIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
        13: .line 1356
            iload 6 /* endIdx */
            iload 3 /* formatStringLen */
            if_icmpge 14
            aload 1 /* formatString */
            iload 6 /* endIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 15
      StackMap locals: freemarker.core.Environment java.lang.String java.util.Locale int java.lang.String top int
      StackMap stack:
        14: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        15: astore 5 /* params */
        end local 6 // int endIdx
        start local 5 // java.lang.String params
        16: .line 1359
            aload 0 /* this */
            aload 4 /* name */
            invokevirtual freemarker.core.Environment.getCustomNumberFormat:(Ljava/lang/String;)Lfreemarker/core/TemplateNumberFormatFactory;
            astore 6 /* formatFactory */
        start local 6 // freemarker.core.TemplateNumberFormatFactory formatFactory
        17: .line 1360
            aload 6 /* formatFactory */
            ifnonnull 21
        18: .line 1361
            new freemarker.core.UndefinedCustomFormatException
            dup
        19: .line 1362
            new java.lang.StringBuilder
            dup
            ldc "No custom number format was defined with name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokestatic freemarker.template.utility.StringUtil.jQuote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 1361
            invokespecial freemarker.core.UndefinedCustomFormatException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 1365
      StackMap locals: freemarker.core.Environment java.lang.String java.util.Locale int java.lang.String java.lang.String freemarker.core.TemplateNumberFormatFactory
      StackMap stack:
            aload 6 /* formatFactory */
            aload 5 /* params */
            aload 2 /* locale */
            aload 0 /* this */
            invokevirtual freemarker.core.TemplateNumberFormatFactory.get:(Ljava/lang/String;Ljava/util/Locale;Lfreemarker/core/Environment;)Lfreemarker/core/TemplateNumberFormat;
            areturn
        end local 6 // freemarker.core.TemplateNumberFormatFactory formatFactory
        end local 5 // java.lang.String params
        end local 4 // java.lang.String name
        22: .line 1367
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.JavaTemplateNumberFormatFactory.INSTANCE:Lfreemarker/core/JavaTemplateNumberFormatFactory;
            aload 1 /* formatString */
            aload 2 /* locale */
            aload 0 /* this */
            invokevirtual freemarker.core.JavaTemplateNumberFormatFactory.get:(Ljava/lang/String;Ljava/util/Locale;Lfreemarker/core/Environment;)Lfreemarker/core/TemplateNumberFormat;
            areturn
        end local 3 // int formatStringLen
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Lfreemarker/core/Environment;
            0   23     1     formatString  Ljava/lang/String;
            0   23     2           locale  Ljava/util/Locale;
            1   23     3  formatStringLen  I
           13   22     4             name  Ljava/lang/String;
           16   22     5           params  Ljava/lang/String;
            6   16     6           endIdx  I
            8   10     7                c  C
           17   22     6    formatFactory  Lfreemarker/core/TemplateNumberFormatFactory;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
              Name  Flags
      formatString  
      locale        

  public java.text.NumberFormat getCNumberFormat();
    descriptor: ()Ljava/text/NumberFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1378
            aload 0 /* this */
            getfield freemarker.core.Environment.cNumberFormat:Ljava/text/NumberFormat;
            ifnonnull 2
         1: .line 1379
            aload 0 /* this */
            getstatic freemarker.core.Environment.C_NUMBER_FORMAT:Ljava/text/DecimalFormat;
            invokevirtual java.text.DecimalFormat.clone:()Ljava/lang/Object;
            checkcast java.text.DecimalFormat
            putfield freemarker.core.Environment.cNumberFormat:Ljava/text/NumberFormat;
         2: .line 1381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cNumberFormat:Ljava/text/NumberFormat;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;

  public void setTimeFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String timeFormat
         0: .line 1386
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeFormat:()Ljava/lang/String;
            astore 2 /* prevTimeFormat */
        start local 2 // java.lang.String prevTimeFormat
         1: .line 1387
            aload 0 /* this */
            aload 1 /* timeFormat */
            invokespecial freemarker.core.Configurable.setTimeFormat:(Ljava/lang/String;)V
         2: .line 1388
            aload 1 /* timeFormat */
            aload 2 /* prevTimeFormat */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         3: .line 1389
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 9
         4: .line 1390
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 1391
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            iconst_1
            iadd
            aconst_null
            aastore
         7: .line 1390
            iinc 3 /* i */ 4
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            bipush 16
            if_icmplt 6
        end local 3 // int i
         9: .line 1395
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String prevTimeFormat
        end local 1 // java.lang.String timeFormat
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lfreemarker/core/Environment;
            0   10     1      timeFormat  Ljava/lang/String;
            1   10     2  prevTimeFormat  Ljava/lang/String;
            5    9     3               i  I
    MethodParameters:
            Name  Flags
      timeFormat  

  public void setDateFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String dateFormat
         0: .line 1399
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateFormat:()Ljava/lang/String;
            astore 2 /* prevDateFormat */
        start local 2 // java.lang.String prevDateFormat
         1: .line 1400
            aload 0 /* this */
            aload 1 /* dateFormat */
            invokespecial freemarker.core.Configurable.setDateFormat:(Ljava/lang/String;)V
         2: .line 1401
            aload 1 /* dateFormat */
            aload 2 /* prevDateFormat */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         3: .line 1402
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 9
         4: .line 1403
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 1404
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            iconst_2
            iadd
            aconst_null
            aastore
         7: .line 1403
            iinc 3 /* i */ 4
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            bipush 16
            if_icmplt 6
        end local 3 // int i
         9: .line 1408
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String prevDateFormat
        end local 1 // java.lang.String dateFormat
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lfreemarker/core/Environment;
            0   10     1      dateFormat  Ljava/lang/String;
            1   10     2  prevDateFormat  Ljava/lang/String;
            5    9     3               i  I
    MethodParameters:
            Name  Flags
      dateFormat  

  public void setDateTimeFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String dateTimeFormat
         0: .line 1412
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateTimeFormat:()Ljava/lang/String;
            astore 2 /* prevDateTimeFormat */
        start local 2 // java.lang.String prevDateTimeFormat
         1: .line 1413
            aload 0 /* this */
            aload 1 /* dateTimeFormat */
            invokespecial freemarker.core.Configurable.setDateTimeFormat:(Ljava/lang/String;)V
         2: .line 1414
            aload 1 /* dateTimeFormat */
            aload 2 /* prevDateTimeFormat */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         3: .line 1415
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            ifnull 9
         4: .line 1416
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 1417
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            iload 3 /* i */
            iconst_3
            iadd
            aconst_null
            aastore
         7: .line 1416
            iinc 3 /* i */ 4
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            bipush 16
            if_icmplt 6
        end local 3 // int i
         9: .line 1421
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String prevDateTimeFormat
        end local 1 // java.lang.String dateTimeFormat
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0                this  Lfreemarker/core/Environment;
            0   10     1      dateTimeFormat  Ljava/lang/String;
            1   10     2  prevDateTimeFormat  Ljava/lang/String;
            5    9     3                   i  I
    MethodParameters:
                Name  Flags
      dateTimeFormat  

  public freemarker.template.Configuration getConfiguration();
    descriptor: ()Lfreemarker/template/Configuration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1424
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  freemarker.template.TemplateModel getLastReturnValue();
    descriptor: ()Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1428
            aload 0 /* this */
            getfield freemarker.core.Environment.lastReturnValue:Lfreemarker/template/TemplateModel;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  void setLastReturnValue(freemarker.template.TemplateModel);
    descriptor: (Lfreemarker/template/TemplateModel;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateModel lastReturnValue
         0: .line 1432
            aload 0 /* this */
            aload 1 /* lastReturnValue */
            putfield freemarker.core.Environment.lastReturnValue:Lfreemarker/template/TemplateModel;
         1: .line 1433
            return
        end local 1 // freemarker.template.TemplateModel lastReturnValue
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lfreemarker/core/Environment;
            0    2     1  lastReturnValue  Lfreemarker/template/TemplateModel;
    MethodParameters:
                 Name  Flags
      lastReturnValue  

  void clearLastReturnValue();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1436
            aload 0 /* this */
            aconst_null
            putfield freemarker.core.Environment.lastReturnValue:Lfreemarker/template/TemplateModel;
         1: .line 1437
            return
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;

  java.lang.String formatDateToPlainText(freemarker.template.TemplateDateModel, freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateDateModel tdm
        start local 2 // freemarker.core.Expression tdmSourceExpr
        start local 3 // boolean useTempModelExc
         0: .line 1445
            aload 0 /* this */
            aload 1 /* tdm */
            aload 2 /* tdmSourceExpr */
            iload 3 /* useTempModelExc */
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
            astore 4 /* format */
        start local 4 // freemarker.core.TemplateDateFormat format
         1: .line 1448
            aload 4 /* format */
            aload 1 /* tdm */
            invokevirtual freemarker.core.TemplateDateFormat.formatToPlainText:(Lfreemarker/template/TemplateDateModel;)Ljava/lang/String;
            invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/String;)Ljava/lang/String;
         2: areturn
         3: .line 1449
      StackMap locals: freemarker.core.Environment freemarker.template.TemplateDateModel freemarker.core.Expression int freemarker.core.TemplateDateFormat
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 5 /* e */
        start local 5 // freemarker.core.TemplateValueFormatException e
         4: .line 1450
            aload 4 /* format */
            aload 2 /* tdmSourceExpr */
            aload 5 /* e */
            iload 3 /* useTempModelExc */
            invokestatic freemarker.core._MessageUtil.newCantFormatDateException:(Lfreemarker/core/TemplateDateFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
            athrow
        end local 5 // freemarker.core.TemplateValueFormatException e
        end local 4 // freemarker.core.TemplateDateFormat format
        end local 3 // boolean useTempModelExc
        end local 2 // freemarker.core.Expression tdmSourceExpr
        end local 1 // freemarker.template.TemplateDateModel tdm
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lfreemarker/core/Environment;
            0    5     1              tdm  Lfreemarker/template/TemplateDateModel;
            0    5     2    tdmSourceExpr  Lfreemarker/core/Expression;
            0    5     3  useTempModelExc  Z
            1    5     4           format  Lfreemarker/core/TemplateDateFormat;
            4    5     5                e  Lfreemarker/core/TemplateValueFormatException;
      Exception table:
        from    to  target  type
           1     2       3  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      tdm              
      tdmSourceExpr    
      useTempModelExc  

  java.lang.String formatDateToPlainText(freemarker.template.TemplateDateModel, java.lang.String, freemarker.core.Expression, freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/template/TemplateDateModel;Ljava/lang/String;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Z)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateDateModel tdm
        start local 2 // java.lang.String formatString
        start local 3 // freemarker.core.Expression blamedDateSourceExp
        start local 4 // freemarker.core.Expression blamedFormatterExp
        start local 5 // boolean useTempModelExc
         0: .line 1463
            aload 1 /* tdm */
            aload 3 /* blamedDateSourceExp */
            invokestatic freemarker.core.EvalUtil.modelToDate:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;)Ljava/util/Date;
            astore 6 /* date */
        start local 6 // java.util.Date date
         1: .line 1465
            aload 0 /* this */
         2: .line 1466
            aload 2 /* formatString */
            aload 1 /* tdm */
            invokeinterface freemarker.template.TemplateDateModel.getDateType:()I
            aload 6 /* date */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
         3: .line 1467
            aload 3 /* blamedDateSourceExp */
            aload 4 /* blamedFormatterExp */
         4: .line 1468
            iload 5 /* useTempModelExc */
         5: .line 1465
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;ILjava/lang/Class;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
            astore 7 /* format */
        start local 7 // freemarker.core.TemplateDateFormat format
         6: .line 1471
            aload 7 /* format */
            aload 1 /* tdm */
            invokevirtual freemarker.core.TemplateDateFormat.formatToPlainText:(Lfreemarker/template/TemplateDateModel;)Ljava/lang/String;
            invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/String;)Ljava/lang/String;
         7: areturn
         8: .line 1472
      StackMap locals: freemarker.core.Environment freemarker.template.TemplateDateModel java.lang.String freemarker.core.Expression freemarker.core.Expression int java.util.Date freemarker.core.TemplateDateFormat
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 8 /* e */
        start local 8 // freemarker.core.TemplateValueFormatException e
         9: .line 1473
            aload 7 /* format */
            aload 3 /* blamedDateSourceExp */
            aload 8 /* e */
            iload 5 /* useTempModelExc */
            invokestatic freemarker.core._MessageUtil.newCantFormatDateException:(Lfreemarker/core/TemplateDateFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
            athrow
        end local 8 // freemarker.core.TemplateValueFormatException e
        end local 7 // freemarker.core.TemplateDateFormat format
        end local 6 // java.util.Date date
        end local 5 // boolean useTempModelExc
        end local 4 // freemarker.core.Expression blamedFormatterExp
        end local 3 // freemarker.core.Expression blamedDateSourceExp
        end local 2 // java.lang.String formatString
        end local 1 // freemarker.template.TemplateDateModel tdm
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lfreemarker/core/Environment;
            0   10     1                  tdm  Lfreemarker/template/TemplateDateModel;
            0   10     2         formatString  Ljava/lang/String;
            0   10     3  blamedDateSourceExp  Lfreemarker/core/Expression;
            0   10     4   blamedFormatterExp  Lfreemarker/core/Expression;
            0   10     5      useTempModelExc  Z
            1   10     6                 date  Ljava/util/Date;
            6   10     7               format  Lfreemarker/core/TemplateDateFormat;
            9   10     8                    e  Lfreemarker/core/TemplateValueFormatException;
      Exception table:
        from    to  target  type
           6     7       8  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
                     Name  Flags
      tdm                  
      formatString         
      blamedDateSourceExp  
      blamedFormatterExp   
      useTempModelExc      

  public freemarker.core.TemplateDateFormat getTemplateDateFormat(int, java.lang.Class<? extends java.util.Date>);
    descriptor: (ILjava/lang/Class;)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // int dateType
        start local 2 // java.lang.Class dateClass
         0: .line 1491
            aload 2 /* dateClass */
            invokestatic freemarker.core.Environment.isSQLDateOrTimeClass:(Ljava/lang/Class;)Z
            istore 3 /* isSQLDateOrTime */
        start local 3 // boolean isSQLDateOrTime
         1: .line 1492
            aload 0 /* this */
            iload 1 /* dateType */
            aload 0 /* this */
            iload 3 /* isSQLDateOrTime */
            invokevirtual freemarker.core.Environment.shouldUseSQLDTTimeZone:(Z)Z
            iload 3 /* isSQLDateOrTime */
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(IZZ)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 3 // boolean isSQLDateOrTime
        end local 2 // java.lang.Class dateClass
        end local 1 // int dateType
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lfreemarker/core/Environment;
            0    2     1         dateType  I
            0    2     2        dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            1    2     3  isSQLDateOrTime  Z
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    Signature: (ILjava/lang/Class<+Ljava/util/Date;>;)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
           Name  Flags
      dateType   
      dateClass  

  public freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, java.lang.Class<? extends java.util.Date>);
    descriptor: (Ljava/lang/String;ILjava/lang/Class;)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.lang.Class dateClass
         0: .line 1514
            aload 3 /* dateClass */
            invokestatic freemarker.core.Environment.isSQLDateOrTimeClass:(Ljava/lang/Class;)Z
            istore 4 /* isSQLDateOrTime */
        start local 4 // boolean isSQLDateOrTime
         1: .line 1515
            aload 0 /* this */
         2: .line 1516
            aload 1 /* formatString */
            iload 2 /* dateType */
         3: .line 1517
            aload 0 /* this */
            iload 4 /* isSQLDateOrTime */
            invokevirtual freemarker.core.Environment.shouldUseSQLDTTimeZone:(Z)Z
            iload 4 /* isSQLDateOrTime */
            iconst_1
         4: .line 1515
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;IZZZ)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 4 // boolean isSQLDateOrTime
        end local 3 // java.lang.Class dateClass
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lfreemarker/core/Environment;
            0    5     1     formatString  Ljava/lang/String;
            0    5     2         dateType  I
            0    5     3        dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            1    5     4  isSQLDateOrTime  Z
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    Signature: (Ljava/lang/String;ILjava/lang/Class<+Ljava/util/Date;>;)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
              Name  Flags
      formatString  
      dateType      
      dateClass     

  public freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, java.lang.Class<? extends java.util.Date>, java.util.Locale);
    descriptor: (Ljava/lang/String;ILjava/lang/Class;Ljava/util/Locale;)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.lang.Class dateClass
        start local 4 // java.util.Locale locale
         0: .line 1542
            aload 3 /* dateClass */
            invokestatic freemarker.core.Environment.isSQLDateOrTimeClass:(Ljava/lang/Class;)Z
            istore 5 /* isSQLDateOrTime */
        start local 5 // boolean isSQLDateOrTime
         1: .line 1543
            aload 0 /* this */
            iload 5 /* isSQLDateOrTime */
            invokevirtual freemarker.core.Environment.shouldUseSQLDTTimeZone:(Z)Z
            istore 6 /* useSQLDTTZ */
        start local 6 // boolean useSQLDTTZ
         2: .line 1544
            aload 0 /* this */
         3: .line 1545
            aload 1 /* formatString */
         4: .line 1546
            iload 2 /* dateType */
            aload 4 /* locale */
            iload 6 /* useSQLDTTZ */
            ifeq 5
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            goto 6
      StackMap locals: freemarker.core.Environment java.lang.String int java.lang.Class java.util.Locale int int
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale
         5: aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeZone:()Ljava/util/TimeZone;
      StackMap locals: freemarker.core.Environment java.lang.String int java.lang.Class java.util.Locale int int
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone
         6: iload 5 /* isSQLDateOrTime */
         7: .line 1544
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 6 // boolean useSQLDTTZ
        end local 5 // boolean isSQLDateOrTime
        end local 4 // java.util.Locale locale
        end local 3 // java.lang.Class dateClass
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lfreemarker/core/Environment;
            0    8     1     formatString  Ljava/lang/String;
            0    8     2         dateType  I
            0    8     3        dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            0    8     4           locale  Ljava/util/Locale;
            1    8     5  isSQLDateOrTime  Z
            2    8     6       useSQLDTTZ  Z
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    Signature: (Ljava/lang/String;ILjava/lang/Class<+Ljava/util/Date;>;Ljava/util/Locale;)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
              Name  Flags
      formatString  
      dateType      
      dateClass     
      locale        

  public freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, java.lang.Class<? extends java.util.Date>, java.util.Locale, java.util.TimeZone, java.util.TimeZone);
    descriptor: (Ljava/lang/String;ILjava/lang/Class;Ljava/util/Locale;Ljava/util/TimeZone;Ljava/util/TimeZone;)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=7
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.lang.Class dateClass
        start local 4 // java.util.Locale locale
        start local 5 // java.util.TimeZone timeZone
        start local 6 // java.util.TimeZone sqlDateAndTimeTimeZone
         0: .line 1574
            aload 3 /* dateClass */
            invokestatic freemarker.core.Environment.isSQLDateOrTimeClass:(Ljava/lang/Class;)Z
            istore 7 /* isSQLDateOrTime */
        start local 7 // boolean isSQLDateOrTime
         1: .line 1575
            aload 0 /* this */
            iload 7 /* isSQLDateOrTime */
            invokevirtual freemarker.core.Environment.shouldUseSQLDTTimeZone:(Z)Z
            istore 8 /* useSQLDTTZ */
        start local 8 // boolean useSQLDTTZ
         2: .line 1576
            aload 0 /* this */
         3: .line 1577
            aload 1 /* formatString */
         4: .line 1578
            iload 2 /* dateType */
            aload 4 /* locale */
            iload 8 /* useSQLDTTZ */
            ifeq 5
            aload 6 /* sqlDateAndTimeTimeZone */
            goto 6
      StackMap locals: freemarker.core.Environment java.lang.String int java.lang.Class java.util.Locale java.util.TimeZone java.util.TimeZone int int
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale
         5: aload 5 /* timeZone */
      StackMap locals: freemarker.core.Environment java.lang.String int java.lang.Class java.util.Locale java.util.TimeZone java.util.TimeZone int int
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone
         6: iload 7 /* isSQLDateOrTime */
         7: .line 1576
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 8 // boolean useSQLDTTZ
        end local 7 // boolean isSQLDateOrTime
        end local 6 // java.util.TimeZone sqlDateAndTimeTimeZone
        end local 5 // java.util.TimeZone timeZone
        end local 4 // java.util.Locale locale
        end local 3 // java.lang.Class dateClass
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lfreemarker/core/Environment;
            0    8     1            formatString  Ljava/lang/String;
            0    8     2                dateType  I
            0    8     3               dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            0    8     4                  locale  Ljava/util/Locale;
            0    8     5                timeZone  Ljava/util/TimeZone;
            0    8     6  sqlDateAndTimeTimeZone  Ljava/util/TimeZone;
            1    8     7         isSQLDateOrTime  Z
            2    8     8              useSQLDTTZ  Z
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    Signature: (Ljava/lang/String;ILjava/lang/Class<+Ljava/util/Date;>;Ljava/util/Locale;Ljava/util/TimeZone;Ljava/util/TimeZone;)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
                        Name  Flags
      formatString            
      dateType                
      dateClass               
      locale                  
      timeZone                
      sqlDateAndTimeTimeZone  

  public freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, java.util.Locale, java.util.TimeZone, boolean);
    descriptor: (Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.util.Locale locale
        start local 4 // java.util.TimeZone timeZone
        start local 5 // boolean zonelessInput
         0: .line 1619
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            astore 6 /* currentLocale */
        start local 6 // java.util.Locale currentLocale
         1: .line 1620
            aload 3 /* locale */
            aload 6 /* currentLocale */
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifeq 15
         2: .line 1622
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeZone:()Ljava/util/TimeZone;
            astore 8 /* currentTimeZone */
        start local 8 // java.util.TimeZone currentTimeZone
         3: .line 1623
            aload 4 /* timeZone */
            aload 8 /* currentTimeZone */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 1624
            iconst_1
            istore 7 /* equalCurrentTZ */
        start local 7 // int equalCurrentTZ
         5: .line 1625
            goto 11
        end local 7 // int equalCurrentTZ
         6: .line 1626
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int java.util.Locale top java.util.TimeZone
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            astore 9 /* currentSQLDTTimeZone */
        start local 9 // java.util.TimeZone currentSQLDTTimeZone
         7: .line 1627
            aload 4 /* timeZone */
            aload 9 /* currentSQLDTTimeZone */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 1628
            iconst_2
            istore 7 /* equalCurrentTZ */
        start local 7 // int equalCurrentTZ
         9: .line 1629
            goto 11
        end local 7 // int equalCurrentTZ
        10: .line 1630
      StackMap locals: java.util.TimeZone
      StackMap stack:
            iconst_0
            istore 7 /* equalCurrentTZ */
        end local 9 // java.util.TimeZone currentSQLDTTimeZone
        start local 7 // int equalCurrentTZ
        11: .line 1633
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int java.util.Locale int java.util.TimeZone
      StackMap stack:
            iload 7 /* equalCurrentTZ */
            ifeq 15
        12: .line 1634
            aload 0 /* this */
            aload 1 /* formatString */
            iload 2 /* dateType */
            iload 7 /* equalCurrentTZ */
            iconst_2
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int java.util.Locale int java.util.TimeZone
      StackMap stack: freemarker.core.Environment java.lang.String int
        13: iconst_0
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int java.util.Locale int java.util.TimeZone
      StackMap stack: freemarker.core.Environment java.lang.String int int
        14: iload 5 /* zonelessInput */
            iconst_1
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;IZZZ)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 8 // java.util.TimeZone currentTimeZone
        end local 7 // int equalCurrentTZ
        15: .line 1638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* formatString */
            iload 2 /* dateType */
            aload 3 /* locale */
            aload 4 /* timeZone */
            iload 5 /* zonelessInput */
            invokevirtual freemarker.core.Environment.getTemplateDateFormatWithoutCache:(Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 6 // java.util.Locale currentLocale
        end local 5 // boolean zonelessInput
        end local 4 // java.util.TimeZone timeZone
        end local 3 // java.util.Locale locale
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lfreemarker/core/Environment;
            0   16     1          formatString  Ljava/lang/String;
            0   16     2              dateType  I
            0   16     3                locale  Ljava/util/Locale;
            0   16     4              timeZone  Ljava/util/TimeZone;
            0   16     5         zonelessInput  Z
            1   16     6         currentLocale  Ljava/util/Locale;
            5    6     7        equalCurrentTZ  I
            9   10     7        equalCurrentTZ  I
           11   15     7        equalCurrentTZ  I
            3   15     8       currentTimeZone  Ljava/util/TimeZone;
            7   11     9  currentSQLDTTimeZone  Ljava/util/TimeZone;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
               Name  Flags
      formatString   
      dateType       
      locale         
      timeZone       
      zonelessInput  

  freemarker.core.TemplateDateFormat getTemplateDateFormat(freemarker.template.TemplateDateModel, freemarker.core.Expression, boolean);
    descriptor: (Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateDateModel tdm
        start local 2 // freemarker.core.Expression tdmSourceExpr
        start local 3 // boolean useTempModelExc
         0: .line 1643
            aload 1 /* tdm */
            aload 2 /* tdmSourceExpr */
            invokestatic freemarker.core.EvalUtil.modelToDate:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;)Ljava/util/Date;
            astore 4 /* date */
        start local 4 // java.util.Date date
         1: .line 1645
            aload 0 /* this */
         2: .line 1646
            aload 1 /* tdm */
            invokeinterface freemarker.template.TemplateDateModel.getDateType:()I
            aload 4 /* date */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* tdmSourceExpr */
         3: .line 1647
            iload 3 /* useTempModelExc */
         4: .line 1645
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(ILjava/lang/Class;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
            astore 5 /* format */
        start local 5 // freemarker.core.TemplateDateFormat format
         5: .line 1648
            aload 5 /* format */
            areturn
        end local 5 // freemarker.core.TemplateDateFormat format
        end local 4 // java.util.Date date
        end local 3 // boolean useTempModelExc
        end local 2 // freemarker.core.Expression tdmSourceExpr
        end local 1 // freemarker.template.TemplateDateModel tdm
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lfreemarker/core/Environment;
            0    6     1              tdm  Lfreemarker/template/TemplateDateModel;
            0    6     2    tdmSourceExpr  Lfreemarker/core/Expression;
            0    6     3  useTempModelExc  Z
            1    6     4             date  Ljava/util/Date;
            5    6     5           format  Lfreemarker/core/TemplateDateFormat;
    Exceptions:
      throws freemarker.template.TemplateModelException, freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      tdm              
      tdmSourceExpr    
      useTempModelExc  

  freemarker.core.TemplateDateFormat getTemplateDateFormat(int, java.lang.Class<? extends java.util.Date>, freemarker.core.Expression, boolean);
    descriptor: (ILjava/lang/Class;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0000) 
    Code:
      stack=8, locals=9, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // int dateType
        start local 2 // java.lang.Class dateClass
        start local 3 // freemarker.core.Expression blamedDateSourceExp
        start local 4 // boolean useTempModelExc
         0: .line 1658
            aload 0 /* this */
            iload 1 /* dateType */
            aload 2 /* dateClass */
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(ILjava/lang/Class;)Lfreemarker/core/TemplateDateFormat;
         1: areturn
         2: .line 1659
      StackMap locals:
      StackMap stack: freemarker.core.UnknownDateTypeFormattingUnsupportedException
            astore 5 /* e */
        start local 5 // freemarker.core.UnknownDateTypeFormattingUnsupportedException e
         3: .line 1660
            aload 3 /* blamedDateSourceExp */
            aload 5 /* e */
            invokestatic freemarker.core._MessageUtil.newCantFormatUnknownTypeDateException:(Lfreemarker/core/Expression;Lfreemarker/core/UnknownDateTypeFormattingUnsupportedException;)Lfreemarker/core/_TemplateModelException;
            athrow
        end local 5 // freemarker.core.UnknownDateTypeFormattingUnsupportedException e
         4: .line 1661
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 5 /* e */
        start local 5 // freemarker.core.TemplateValueFormatException e
         5: .line 1664
            iload 1 /* dateType */
            tableswitch { // 1 - 3
                    1: 6
                    2: 9
                    3: 12
              default: 15
          }
         6: .line 1666
      StackMap locals: freemarker.core.TemplateValueFormatException
      StackMap stack:
            ldc "time_format"
            astore 6 /* settingName */
        start local 6 // java.lang.String settingName
         7: .line 1667
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeFormat:()Ljava/lang/String;
            astore 7 /* settingValue */
        start local 7 // java.lang.String settingValue
         8: .line 1668
            goto 17
        end local 7 // java.lang.String settingValue
        end local 6 // java.lang.String settingName
         9: .line 1670
      StackMap locals:
      StackMap stack:
            ldc "date_format"
            astore 6 /* settingName */
        start local 6 // java.lang.String settingName
        10: .line 1671
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateFormat:()Ljava/lang/String;
            astore 7 /* settingValue */
        start local 7 // java.lang.String settingValue
        11: .line 1672
            goto 17
        end local 7 // java.lang.String settingValue
        end local 6 // java.lang.String settingName
        12: .line 1674
      StackMap locals:
      StackMap stack:
            ldc "datetime_format"
            astore 6 /* settingName */
        start local 6 // java.lang.String settingName
        13: .line 1675
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateTimeFormat:()Ljava/lang/String;
            astore 7 /* settingValue */
        start local 7 // java.lang.String settingValue
        14: .line 1676
            goto 17
        end local 7 // java.lang.String settingValue
        end local 6 // java.lang.String settingName
        15: .line 1678
      StackMap locals:
      StackMap stack:
            ldc "???"
            astore 6 /* settingName */
        start local 6 // java.lang.String settingName
        16: .line 1679
            ldc "???"
            astore 7 /* settingValue */
        start local 7 // java.lang.String settingValue
        17: .line 1682
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new freemarker.core._ErrorDescriptionBuilder
            dup
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 1683
            ldc "The value of the \""
            aastore
            dup
            iconst_1
            aload 6 /* settingName */
            aastore
            dup
            iconst_2
        19: .line 1684
            ldc "\" FreeMarker configuration setting is a malformed date/time/datetime format string: "
            aastore
            dup
            iconst_3
        20: .line 1685
            new freemarker.core._DelayedJQuote
            dup
            aload 7 /* settingValue */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc ". Reason given: "
            aastore
            dup
            iconst_5
        21: .line 1686
            aload 5 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
        22: .line 1682
            aastore
            invokespecial freemarker.core._ErrorDescriptionBuilder.<init>:([Ljava/lang/Object;)V
            astore 8 /* desc */
        start local 8 // freemarker.core._ErrorDescriptionBuilder desc
        23: .line 1687
            iload 4 /* useTempModelExc */
            ifeq 24
            new freemarker.core._TemplateModelException
            dup
            aload 5 /* e */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* desc */
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            goto 25
      StackMap locals: freemarker.core._ErrorDescriptionBuilder
      StackMap stack:
        24: new freemarker.core._MiscTemplateException
            dup
            aload 5 /* e */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* desc */
            aastore
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
        25: athrow
        end local 8 // freemarker.core._ErrorDescriptionBuilder desc
        end local 7 // java.lang.String settingValue
        end local 6 // java.lang.String settingName
        end local 5 // freemarker.core.TemplateValueFormatException e
        end local 4 // boolean useTempModelExc
        end local 3 // freemarker.core.Expression blamedDateSourceExp
        end local 2 // java.lang.Class dateClass
        end local 1 // int dateType
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   26     0                 this  Lfreemarker/core/Environment;
            0   26     1             dateType  I
            0   26     2            dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            0   26     3  blamedDateSourceExp  Lfreemarker/core/Expression;
            0   26     4      useTempModelExc  Z
            3    4     5                    e  Lfreemarker/core/UnknownDateTypeFormattingUnsupportedException;
            5   26     5                    e  Lfreemarker/core/TemplateValueFormatException;
            7    9     6          settingName  Ljava/lang/String;
           10   12     6          settingName  Ljava/lang/String;
           13   15     6          settingName  Ljava/lang/String;
           16   26     6          settingName  Ljava/lang/String;
            8    9     7         settingValue  Ljava/lang/String;
           11   12     7         settingValue  Ljava/lang/String;
           14   15     7         settingValue  Ljava/lang/String;
           17   26     7         settingValue  Ljava/lang/String;
           23   26     8                 desc  Lfreemarker/core/_ErrorDescriptionBuilder;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.UnknownDateTypeFormattingUnsupportedException
           0     1       4  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    Signature: (ILjava/lang/Class<+Ljava/util/Date;>;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
                     Name  Flags
      dateType             
      dateClass            
      blamedDateSourceExp  
      useTempModelExc      

  freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, java.lang.Class<? extends java.util.Date>, freemarker.core.Expression, freemarker.core.Expression, boolean);
    descriptor: (Ljava/lang/String;ILjava/lang/Class;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0000) 
    Code:
      stack=8, locals=9, args_size=7
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.lang.Class dateClass
        start local 4 // freemarker.core.Expression blamedDateSourceExp
        start local 5 // freemarker.core.Expression blamedFormatterExp
        start local 6 // boolean useTempModelExc
         0: .line 1701
            aload 0 /* this */
            aload 1 /* formatString */
            iload 2 /* dateType */
            aload 3 /* dateClass */
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;ILjava/lang/Class;)Lfreemarker/core/TemplateDateFormat;
         1: areturn
         2: .line 1702
      StackMap locals:
      StackMap stack: freemarker.core.UnknownDateTypeFormattingUnsupportedException
            astore 7 /* e */
        start local 7 // freemarker.core.UnknownDateTypeFormattingUnsupportedException e
         3: .line 1703
            aload 4 /* blamedDateSourceExp */
            aload 7 /* e */
            invokestatic freemarker.core._MessageUtil.newCantFormatUnknownTypeDateException:(Lfreemarker/core/Expression;Lfreemarker/core/UnknownDateTypeFormattingUnsupportedException;)Lfreemarker/core/_TemplateModelException;
            athrow
        end local 7 // freemarker.core.UnknownDateTypeFormattingUnsupportedException e
         4: .line 1704
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 7 /* e */
        start local 7 // freemarker.core.TemplateValueFormatException e
         5: .line 1705
            new freemarker.core._ErrorDescriptionBuilder
            dup
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 1706
            ldc "Can't create date/time/datetime format based on format string "
            aastore
            dup
            iconst_1
         7: .line 1707
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* formatString */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc ". Reason given: "
            aastore
            dup
            iconst_3
         8: .line 1708
            aload 7 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
         9: .line 1705
            aastore
            invokespecial freemarker.core._ErrorDescriptionBuilder.<init>:([Ljava/lang/Object;)V
        10: .line 1709
            aload 5 /* blamedFormatterExp */
            invokevirtual freemarker.core._ErrorDescriptionBuilder.blame:(Lfreemarker/core/Expression;)Lfreemarker/core/_ErrorDescriptionBuilder;
        11: .line 1705
            astore 8 /* desc */
        start local 8 // freemarker.core._ErrorDescriptionBuilder desc
        12: .line 1710
            iload 6 /* useTempModelExc */
            ifeq 13
            new freemarker.core._TemplateModelException
            dup
            aload 7 /* e */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* desc */
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            goto 14
      StackMap locals: freemarker.core.TemplateValueFormatException freemarker.core._ErrorDescriptionBuilder
      StackMap stack:
        13: new freemarker.core._MiscTemplateException
            dup
            aload 7 /* e */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* desc */
            aastore
            invokespecial freemarker.core._MiscTemplateException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
        14: athrow
        end local 8 // freemarker.core._ErrorDescriptionBuilder desc
        end local 7 // freemarker.core.TemplateValueFormatException e
        end local 6 // boolean useTempModelExc
        end local 5 // freemarker.core.Expression blamedFormatterExp
        end local 4 // freemarker.core.Expression blamedDateSourceExp
        end local 3 // java.lang.Class dateClass
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Lfreemarker/core/Environment;
            0   15     1         formatString  Ljava/lang/String;
            0   15     2             dateType  I
            0   15     3            dateClass  Ljava/lang/Class<+Ljava/util/Date;>;
            0   15     4  blamedDateSourceExp  Lfreemarker/core/Expression;
            0   15     5   blamedFormatterExp  Lfreemarker/core/Expression;
            0   15     6      useTempModelExc  Z
            3    4     7                    e  Lfreemarker/core/UnknownDateTypeFormattingUnsupportedException;
            5   15     7                    e  Lfreemarker/core/TemplateValueFormatException;
           12   15     8                 desc  Lfreemarker/core/_ErrorDescriptionBuilder;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.UnknownDateTypeFormattingUnsupportedException
           0     1       4  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateException
    Signature: (Ljava/lang/String;ILjava/lang/Class<+Ljava/util/Date;>;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
    MethodParameters:
                     Name  Flags
      formatString         
      dateType             
      dateClass            
      blamedDateSourceExp  
      blamedFormatterExp   
      useTempModelExc      

  private freemarker.core.TemplateDateFormat getTemplateDateFormat(int, boolean, boolean);
    descriptor: (IZZ)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // int dateType
        start local 2 // boolean useSQLDTTZ
        start local 3 // boolean zonelessInput
         0: .line 1721
            iload 1 /* dateType */
            ifne 2
         1: .line 1722
            new freemarker.core.UnknownDateTypeFormattingUnsupportedException
            dup
            invokespecial freemarker.core.UnknownDateTypeFormattingUnsupportedException.<init>:()V
            athrow
         2: .line 1724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* dateType */
            iload 3 /* zonelessInput */
            iload 2 /* useSQLDTTZ */
            invokevirtual freemarker.core.Environment.getTemplateDateFormatCacheArrayIndex:(IZZ)I
            istore 4 /* cacheIdx */
        start local 4 // int cacheIdx
         3: .line 1725
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
            astore 5 /* cachedTemplateDateFormats */
        start local 5 // freemarker.core.TemplateDateFormat[] cachedTemplateDateFormats
         4: .line 1726
            aload 5 /* cachedTemplateDateFormats */
            ifnonnull 7
         5: .line 1727
            bipush 16
            anewarray freemarker.core.TemplateDateFormat
            astore 5 /* cachedTemplateDateFormats */
         6: .line 1728
            aload 0 /* this */
            aload 5 /* cachedTemplateDateFormats */
            putfield freemarker.core.Environment.cachedTempDateFormatArray:[Lfreemarker/core/TemplateDateFormat;
         7: .line 1730
      StackMap locals: int freemarker.core.TemplateDateFormat[]
      StackMap stack:
            aload 5 /* cachedTemplateDateFormats */
            iload 4 /* cacheIdx */
            aaload
            astore 6 /* format */
        start local 6 // freemarker.core.TemplateDateFormat format
         8: .line 1731
            aload 6 /* format */
            ifnonnull 19
         9: .line 1733
            iload 1 /* dateType */
            tableswitch { // 1 - 3
                    1: 10
                    2: 12
                    3: 14
              default: 16
          }
        10: .line 1735
      StackMap locals: freemarker.core.TemplateDateFormat
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeFormat:()Ljava/lang/String;
            astore 7 /* formatString */
        start local 7 // java.lang.String formatString
        11: .line 1736
            goto 17
        end local 7 // java.lang.String formatString
        12: .line 1738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateFormat:()Ljava/lang/String;
            astore 7 /* formatString */
        start local 7 // java.lang.String formatString
        13: .line 1739
            goto 17
        end local 7 // java.lang.String formatString
        14: .line 1741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getDateTimeFormat:()Ljava/lang/String;
            astore 7 /* formatString */
        start local 7 // java.lang.String formatString
        15: .line 1742
            goto 17
        end local 7 // java.lang.String formatString
        16: .line 1744
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid date type enum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* dateType */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // java.lang.String formatString
        17: .line 1747
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 7 /* formatString */
            iload 1 /* dateType */
            iload 2 /* useSQLDTTZ */
            iload 3 /* zonelessInput */
            iconst_0
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;IZZZ)Lfreemarker/core/TemplateDateFormat;
            astore 6 /* format */
        18: .line 1749
            aload 5 /* cachedTemplateDateFormats */
            iload 4 /* cacheIdx */
            aload 6 /* format */
            aastore
        end local 7 // java.lang.String formatString
        19: .line 1751
      StackMap locals:
      StackMap stack:
            aload 6 /* format */
            areturn
        end local 6 // freemarker.core.TemplateDateFormat format
        end local 5 // freemarker.core.TemplateDateFormat[] cachedTemplateDateFormats
        end local 4 // int cacheIdx
        end local 3 // boolean zonelessInput
        end local 2 // boolean useSQLDTTZ
        end local 1 // int dateType
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   20     0                       this  Lfreemarker/core/Environment;
            0   20     1                   dateType  I
            0   20     2                 useSQLDTTZ  Z
            0   20     3              zonelessInput  Z
            3   20     4                   cacheIdx  I
            4   20     5  cachedTemplateDateFormats  [Lfreemarker/core/TemplateDateFormat;
            8   20     6                     format  Lfreemarker/core/TemplateDateFormat;
           11   12     7               formatString  Ljava/lang/String;
           13   14     7               formatString  Ljava/lang/String;
           15   16     7               formatString  Ljava/lang/String;
           17   19     7               formatString  Ljava/lang/String;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
               Name  Flags
      dateType       
      useSQLDTTZ     
      zonelessInput  

  private freemarker.core.TemplateDateFormat getTemplateDateFormat(java.lang.String, int, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;IZZZ)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // boolean useSQLDTTimeZone
        start local 4 // boolean zonelessInput
        start local 5 // boolean cacheResult
         0: .line 1769
            aload 0 /* this */
            getfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
            astore 7 /* cachedTempDateFormatsByFmtStrArray */
        start local 7 // java.util.HashMap[] cachedTempDateFormatsByFmtStrArray
         1: .line 1770
            aload 7 /* cachedTempDateFormatsByFmtStrArray */
            ifnonnull 8
         2: .line 1771
            iload 5 /* cacheResult */
            ifeq 6
         3: .line 1772
            bipush 16
            anewarray java.util.HashMap
            astore 7 /* cachedTempDateFormatsByFmtStrArray */
         4: .line 1773
            aload 0 /* this */
            aload 7 /* cachedTempDateFormatsByFmtStrArray */
            putfield freemarker.core.Environment.cachedTempDateFormatsByFmtStrArray:[Ljava/util/HashMap;
         5: .line 1774
            goto 8
         6: .line 1775
      StackMap locals: freemarker.core.Environment java.lang.String int int int int top java.util.HashMap[]
      StackMap stack:
            aconst_null
            astore 6 /* cachedFormatsByFormatString */
        start local 6 // java.util.HashMap cachedFormatsByFormatString
         7: .line 1776
            goto 19
        end local 6 // java.util.HashMap cachedFormatsByFormatString
         8: .line 1782
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* dateType */
            iload 4 /* zonelessInput */
            iload 3 /* useSQLDTTimeZone */
            invokevirtual freemarker.core.Environment.getTemplateDateFormatCacheArrayIndex:(IZZ)I
            istore 9 /* cacheArrIdx */
        start local 9 // int cacheArrIdx
         9: .line 1783
            aload 7 /* cachedTempDateFormatsByFmtStrArray */
            iload 9 /* cacheArrIdx */
            aaload
            astore 6 /* cachedFormatsByFormatString */
        start local 6 // java.util.HashMap cachedFormatsByFormatString
        10: .line 1784
            aload 6 /* cachedFormatsByFormatString */
            ifnonnull 16
        11: .line 1785
            iload 5 /* cacheResult */
            ifeq 19
        12: .line 1786
            new java.util.HashMap
            dup
            iconst_4
            invokespecial java.util.HashMap.<init>:(I)V
            astore 6 /* cachedFormatsByFormatString */
        13: .line 1787
            aload 7 /* cachedTempDateFormatsByFmtStrArray */
            iload 9 /* cacheArrIdx */
            aload 6 /* cachedFormatsByFormatString */
            aastore
        14: .line 1788
            aconst_null
            astore 8 /* format */
        start local 8 // freemarker.core.TemplateDateFormat format
        15: .line 1792
            goto 17
        end local 8 // freemarker.core.TemplateDateFormat format
        16: .line 1793
      StackMap locals: freemarker.core.Environment java.lang.String int int int int java.util.HashMap java.util.HashMap[] top int
      StackMap stack:
            aload 6 /* cachedFormatsByFormatString */
            aload 1 /* formatString */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.TemplateDateFormat
            astore 8 /* format */
        end local 9 // int cacheArrIdx
        start local 8 // freemarker.core.TemplateDateFormat format
        17: .line 1797
      StackMap locals: freemarker.core.Environment java.lang.String int int int int java.util.HashMap java.util.HashMap[] freemarker.core.TemplateDateFormat
      StackMap stack:
            aload 8 /* format */
            ifnull 19
        18: .line 1798
            aload 8 /* format */
            areturn
        end local 8 // freemarker.core.TemplateDateFormat format
        end local 7 // java.util.HashMap[] cachedTempDateFormatsByFmtStrArray
        19: .line 1803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        20: .line 1804
            aload 1 /* formatString */
        21: .line 1805
            iload 2 /* dateType */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            iload 3 /* useSQLDTTimeZone */
            ifeq 22
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getSQLDateAndTimeTimeZone:()Ljava/util/TimeZone;
            goto 23
      StackMap locals: freemarker.core.Environment java.lang.String int int int int java.util.HashMap
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale
        22: aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTimeZone:()Ljava/util/TimeZone;
        23: .line 1806
      StackMap locals: freemarker.core.Environment java.lang.String int int int int java.util.HashMap
      StackMap stack: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone
            iload 4 /* zonelessInput */
        24: .line 1803
            invokevirtual freemarker.core.Environment.getTemplateDateFormatWithoutCache:(Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
            astore 7 /* format */
        start local 7 // freemarker.core.TemplateDateFormat format
        25: .line 1807
            iload 5 /* cacheResult */
            ifeq 27
        26: .line 1809
            aload 6 /* cachedFormatsByFormatString */
            aload 1 /* formatString */
            aload 7 /* format */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 1811
      StackMap locals: freemarker.core.TemplateDateFormat
      StackMap stack:
            aload 7 /* format */
            areturn
        end local 7 // freemarker.core.TemplateDateFormat format
        end local 6 // java.util.HashMap cachedFormatsByFormatString
        end local 5 // boolean cacheResult
        end local 4 // boolean zonelessInput
        end local 3 // boolean useSQLDTTimeZone
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0   28     0                                this  Lfreemarker/core/Environment;
            0   28     1                        formatString  Ljava/lang/String;
            0   28     2                            dateType  I
            0   28     3                    useSQLDTTimeZone  Z
            0   28     4                       zonelessInput  Z
            0   28     5                         cacheResult  Z
            7    8     6         cachedFormatsByFormatString  Ljava/util/HashMap<Ljava/lang/String;Lfreemarker/core/TemplateDateFormat;>;
           10   28     6         cachedFormatsByFormatString  Ljava/util/HashMap<Ljava/lang/String;Lfreemarker/core/TemplateDateFormat;>;
            1   19     7  cachedTempDateFormatsByFmtStrArray  [Ljava/util/HashMap;
           15   16     8                              format  Lfreemarker/core/TemplateDateFormat;
           17   19     8                              format  Lfreemarker/core/TemplateDateFormat;
            9   17     9                         cacheArrIdx  I
           25   28     7                              format  Lfreemarker/core/TemplateDateFormat;
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
                  Name  Flags
      formatString      
      dateType          
      useSQLDTTimeZone  
      zonelessInput     
      cacheResult       

  private freemarker.core.TemplateDateFormat getTemplateDateFormatWithoutCache(java.lang.String, int, java.util.Locale, java.util.TimeZone, boolean);
    descriptor: (Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;Z)Lfreemarker/core/TemplateDateFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=6
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String formatString
        start local 2 // int dateType
        start local 3 // java.util.Locale locale
        start local 4 // java.util.TimeZone timeZone
        start local 5 // boolean zonelessInput
         0: .line 1829
            aload 1 /* formatString */
            invokevirtual java.lang.String.length:()I
            istore 6 /* formatStringLen */
        start local 6 // int formatStringLen
         1: .line 1833
            iload 6 /* formatStringLen */
            ifeq 2
            aload 1 /* formatString */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 9 /* firstChar */
        start local 9 // char firstChar
         4: .line 1836
            iload 9 /* firstChar */
            bipush 120
            if_icmpne 10
         5: .line 1837
            iload 6 /* formatStringLen */
            iconst_1
            if_icmple 10
         6: .line 1838
            aload 1 /* formatString */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            bipush 115
            if_icmpne 10
         7: .line 1839
            getstatic freemarker.core.XSTemplateDateFormatFactory.INSTANCE:Lfreemarker/core/XSTemplateDateFormatFactory;
            astore 8 /* formatFactory */
        start local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
         8: .line 1840
            aload 1 /* formatString */
            astore 7 /* formatParams */
        start local 7 // java.lang.String formatParams
         9: .line 1841
            goto 39
        end local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        end local 7 // java.lang.String formatParams
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int int top top int
      StackMap stack:
        10: iload 9 /* firstChar */
            bipush 105
            if_icmpne 17
        11: .line 1842
            iload 6 /* formatStringLen */
            iconst_2
            if_icmple 17
        12: .line 1843
            aload 1 /* formatString */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            bipush 115
            if_icmpne 17
        13: .line 1844
            aload 1 /* formatString */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 111
            if_icmpne 17
        14: .line 1845
            getstatic freemarker.core.ISOTemplateDateFormatFactory.INSTANCE:Lfreemarker/core/ISOTemplateDateFormatFactory;
            astore 8 /* formatFactory */
        start local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        15: .line 1846
            aload 1 /* formatString */
            astore 7 /* formatParams */
        start local 7 // java.lang.String formatParams
        16: .line 1847
            goto 39
        end local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        end local 7 // java.lang.String formatParams
      StackMap locals:
      StackMap stack:
        17: iload 9 /* firstChar */
            bipush 64
            if_icmpne 37
        18: .line 1848
            iload 6 /* formatStringLen */
            iconst_1
            if_icmple 37
        19: .line 1849
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isIcI2324OrLater:()Z
            ifne 20
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.hasCustomFormats:()Z
            ifeq 37
        20: .line 1850
      StackMap locals:
      StackMap stack:
            aload 1 /* formatString */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetter:(C)Z
            ifeq 37
        21: .line 1854
            iconst_1
            istore 11 /* endIdx */
        start local 11 // int endIdx
        22: goto 27
        23: .line 1855
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int int top top int top int
      StackMap stack:
            aload 1 /* formatString */
            iload 11 /* endIdx */
            invokevirtual java.lang.String.charAt:(I)C
            istore 12 /* c */
        start local 12 // char c
        24: .line 1856
            iload 12 /* c */
            bipush 32
            if_icmpeq 28
            iload 12 /* c */
            bipush 95
            if_icmpne 26
        25: .line 1857
            goto 28
        end local 12 // char c
        26: .line 1854
      StackMap locals:
      StackMap stack:
            iinc 11 /* endIdx */ 1
      StackMap locals:
      StackMap stack:
        27: iload 11 /* endIdx */
            iload 6 /* formatStringLen */
            if_icmplt 23
        28: .line 1860
      StackMap locals:
      StackMap stack:
            aload 1 /* formatString */
            iconst_1
            iload 11 /* endIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 10 /* name */
        start local 10 // java.lang.String name
        29: .line 1861
            iload 11 /* endIdx */
            iload 6 /* formatStringLen */
            if_icmpge 30
            aload 1 /* formatString */
            iload 11 /* endIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 31
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int int top top int java.lang.String int
      StackMap stack:
        30: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        31: astore 7 /* formatParams */
        end local 11 // int endIdx
        start local 7 // java.lang.String formatParams
        32: .line 1864
            aload 0 /* this */
            aload 10 /* name */
            invokevirtual freemarker.core.Environment.getCustomDateFormat:(Ljava/lang/String;)Lfreemarker/core/TemplateDateFormatFactory;
            astore 8 /* formatFactory */
        start local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        33: .line 1865
            aload 8 /* formatFactory */
            ifnonnull 39
        34: .line 1866
            new freemarker.core.UndefinedCustomFormatException
            dup
        35: .line 1867
            new java.lang.StringBuilder
            dup
            ldc "No custom date format was defined with name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* name */
            invokestatic freemarker.template.utility.StringUtil.jQuote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 1866
            invokespecial freemarker.core.UndefinedCustomFormatException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.lang.String name
        end local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        end local 7 // java.lang.String formatParams
        37: .line 1870
      StackMap locals:
      StackMap stack:
            aload 1 /* formatString */
            astore 7 /* formatParams */
        start local 7 // java.lang.String formatParams
        38: .line 1871
            getstatic freemarker.core.JavaTemplateDateFormatFactory.INSTANCE:Lfreemarker/core/JavaTemplateDateFormatFactory;
            astore 8 /* formatFactory */
        start local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        39: .line 1874
      StackMap locals: freemarker.core.Environment java.lang.String int java.util.Locale java.util.TimeZone int int java.lang.String freemarker.core.TemplateDateFormatFactory int
      StackMap stack:
            aload 8 /* formatFactory */
            aload 7 /* formatParams */
            iload 2 /* dateType */
            aload 3 /* locale */
            aload 4 /* timeZone */
        40: .line 1875
            iload 5 /* zonelessInput */
            aload 0 /* this */
        41: .line 1874
            invokevirtual freemarker.core.TemplateDateFormatFactory.get:(Ljava/lang/String;ILjava/util/Locale;Ljava/util/TimeZone;ZLfreemarker/core/Environment;)Lfreemarker/core/TemplateDateFormat;
            areturn
        end local 9 // char firstChar
        end local 8 // freemarker.core.TemplateDateFormatFactory formatFactory
        end local 7 // java.lang.String formatParams
        end local 6 // int formatStringLen
        end local 5 // boolean zonelessInput
        end local 4 // java.util.TimeZone timeZone
        end local 3 // java.util.Locale locale
        end local 2 // int dateType
        end local 1 // java.lang.String formatString
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lfreemarker/core/Environment;
            0   42     1     formatString  Ljava/lang/String;
            0   42     2         dateType  I
            0   42     3           locale  Ljava/util/Locale;
            0   42     4         timeZone  Ljava/util/TimeZone;
            0   42     5    zonelessInput  Z
            1   42     6  formatStringLen  I
            9   10     7     formatParams  Ljava/lang/String;
           16   17     7     formatParams  Ljava/lang/String;
           32   37     7     formatParams  Ljava/lang/String;
           38   42     7     formatParams  Ljava/lang/String;
            8   10     8    formatFactory  Lfreemarker/core/TemplateDateFormatFactory;
           15   17     8    formatFactory  Lfreemarker/core/TemplateDateFormatFactory;
           33   37     8    formatFactory  Lfreemarker/core/TemplateDateFormatFactory;
           39   42     8    formatFactory  Lfreemarker/core/TemplateDateFormatFactory;
            4   42     9        firstChar  C
           29   37    10             name  Ljava/lang/String;
           22   32    11           endIdx  I
           24   26    12                c  C
    Exceptions:
      throws freemarker.core.TemplateValueFormatException
    MethodParameters:
               Name  Flags
      formatString   
      dateType       
      locale         
      timeZone       
      zonelessInput  

  boolean shouldUseSQLDTTZ(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.Class dateClass
         0: .line 1880
            aload 1 /* dateClass */
            ldc Ljava/util/Date;
            if_acmpeq 4
         1: .line 1881
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isSQLDateAndTimeTimeZoneSameAsNormal:()Z
            ifne 4
         2: .line 1882
            aload 1 /* dateClass */
            invokestatic freemarker.core.Environment.isSQLDateOrTimeClass:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 1880
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // java.lang.Class dateClass
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lfreemarker/core/Environment;
            0    5     1  dateClass  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      dateClass  

  private boolean shouldUseSQLDTTimeZone(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // boolean sqlDateOrTime
         0: .line 1887
            iload 1 /* sqlDateOrTime */
            ifeq 1
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isSQLDateAndTimeTimeZoneSameAsNormal:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // boolean sqlDateOrTime
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lfreemarker/core/Environment;
            0    2     1  sqlDateOrTime  Z
    MethodParameters:
               Name  Flags
      sqlDateOrTime  

  private static boolean isSQLDateOrTimeClass(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class dateClass
         0: .line 1895
            aload 0 /* dateClass */
            ldc Ljava/util/Date;
            if_acmpeq 6
         1: .line 1896
            aload 0 /* dateClass */
            ldc Ljava/sql/Date;
            if_acmpeq 5
            aload 0 /* dateClass */
            ldc Ljava/sql/Time;
            if_acmpeq 5
         2: .line 1897
            aload 0 /* dateClass */
            ldc Ljava/sql/Timestamp;
            if_acmpeq 6
         3: .line 1898
            ldc Ljava/sql/Date;
            aload 0 /* dateClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 5
         4: .line 1899
            ldc Ljava/sql/Time;
            aload 0 /* dateClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         5: .line 1895
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 0 // java.lang.Class dateClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  dateClass  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      dateClass  

  private int getTemplateDateFormatCacheArrayIndex(int, boolean, boolean);
    descriptor: (IZZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // int dateType
        start local 2 // boolean zonelessInput
        start local 3 // boolean sqlDTTZ
         0: .line 1903
            iload 1 /* dateType */
         1: .line 1904
            iload 2 /* zonelessInput */
            ifeq 2
            iconst_4
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_0
         3: .line 1903
      StackMap locals: freemarker.core.Environment int int int
      StackMap stack: int int
            iadd
         4: .line 1905
            iload 3 /* sqlDTTZ */
            ifeq 5
            bipush 8
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
         6: .line 1903
      StackMap locals: freemarker.core.Environment int int int
      StackMap stack: int int
            iadd
            ireturn
        end local 3 // boolean sqlDTTZ
        end local 2 // boolean zonelessInput
        end local 1 // int dateType
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lfreemarker/core/Environment;
            0    7     1       dateType  I
            0    7     2  zonelessInput  Z
            0    7     3        sqlDTTZ  Z
    MethodParameters:
               Name  Flags
      dateType       
      zonelessInput  
      sqlDTTZ        

  freemarker.template.utility.DateUtil$DateToISO8601CalendarFactory getISOBuiltInCalendarFactory();
    descriptor: ()Lfreemarker/template/utility/DateUtil$DateToISO8601CalendarFactory;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 1916
            aload 0 /* this */
            getfield freemarker.core.Environment.isoBuiltInCalendarFactory:Lfreemarker/template/utility/DateUtil$DateToISO8601CalendarFactory;
            ifnonnull 2
         1: .line 1917
            aload 0 /* this */
            new freemarker.template.utility.DateUtil$TrivialDateToISO8601CalendarFactory
            dup
            invokespecial freemarker.template.utility.DateUtil$TrivialDateToISO8601CalendarFactory.<init>:()V
            putfield freemarker.core.Environment.isoBuiltInCalendarFactory:Lfreemarker/template/utility/DateUtil$DateToISO8601CalendarFactory;
         2: .line 1919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.isoBuiltInCalendarFactory:Lfreemarker/template/utility/DateUtil$DateToISO8601CalendarFactory;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;

  freemarker.template.TemplateTransformModel getTransform(freemarker.core.Expression);
    descriptor: (Lfreemarker/core/Expression;)Lfreemarker/template/TemplateTransformModel;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Expression exp
         0: .line 1923
            aconst_null
            astore 2 /* ttm */
        start local 2 // freemarker.template.TemplateTransformModel ttm
         1: .line 1924
            aload 1 /* exp */
            aload 0 /* this */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            astore 3 /* tm */
        start local 3 // freemarker.template.TemplateModel tm
         2: .line 1925
            aload 3 /* tm */
            instanceof freemarker.template.TemplateTransformModel
            ifeq 5
         3: .line 1926
            aload 3 /* tm */
            checkcast freemarker.template.TemplateTransformModel
            astore 2 /* ttm */
         4: .line 1927
            goto 9
      StackMap locals: freemarker.template.TemplateTransformModel freemarker.template.TemplateModel
      StackMap stack:
         5: aload 1 /* exp */
            instanceof freemarker.core.Identifier
            ifeq 9
         6: .line 1928
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            aload 1 /* exp */
            invokevirtual freemarker.core.Expression.toString:()Ljava/lang/String;
            invokevirtual freemarker.template.Configuration.getSharedVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 3 /* tm */
         7: .line 1929
            aload 3 /* tm */
            instanceof freemarker.template.TemplateTransformModel
            ifeq 9
         8: .line 1930
            aload 3 /* tm */
            checkcast freemarker.template.TemplateTransformModel
            astore 2 /* ttm */
         9: .line 1933
      StackMap locals:
      StackMap stack:
            aload 2 /* ttm */
            areturn
        end local 3 // freemarker.template.TemplateModel tm
        end local 2 // freemarker.template.TemplateTransformModel ttm
        end local 1 // freemarker.core.Expression exp
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lfreemarker/core/Environment;
            0   10     1   exp  Lfreemarker/core/Expression;
            1   10     2   ttm  Lfreemarker/template/TemplateTransformModel;
            2   10     3    tm  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      exp   

  public freemarker.template.TemplateModel getLocalVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
         0: .line 1942
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            ifnull 9
         1: .line 1943
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 8
         3: .line 1944
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            iload 2 /* i */
            invokevirtual freemarker.core.LocalContextStack.get:(I)Lfreemarker/core/LocalContext;
            astore 3 /* lc */
        start local 3 // freemarker.core.LocalContext lc
         4: .line 1945
            aload 3 /* lc */
            aload 1 /* name */
            invokeinterface freemarker.core.LocalContext.getLocalVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* tm */
        start local 4 // freemarker.template.TemplateModel tm
         5: .line 1946
            aload 4 /* tm */
            ifnull 7
         6: .line 1947
            aload 4 /* tm */
            areturn
        end local 4 // freemarker.template.TemplateModel tm
        end local 3 // freemarker.core.LocalContext lc
         7: .line 1943
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            ifge 3
        end local 2 // int i
         9: .line 1951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            ifnonnull 10
            aconst_null
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            aload 1 /* name */
            invokevirtual freemarker.core.Macro$Context.getLocalVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
      StackMap locals:
      StackMap stack: freemarker.template.TemplateModel
        11: areturn
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lfreemarker/core/Environment;
            0   12     1  name  Ljava/lang/String;
            2    9     2     i  I
            4    7     3    lc  Lfreemarker/core/LocalContext;
            5    7     4    tm  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      name  

  public freemarker.template.TemplateModel getVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
         0: .line 1972
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual freemarker.core.Environment.getLocalVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
        start local 2 // freemarker.template.TemplateModel result
         1: .line 1973
            aload 2 /* result */
            ifnonnull 3
         2: .line 1974
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            aload 1 /* name */
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
         3: .line 1976
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 2 /* result */
            ifnonnull 5
         4: .line 1977
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual freemarker.core.Environment.getGlobalVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
         5: .line 1979
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // freemarker.template.TemplateModel result
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lfreemarker/core/Environment;
            0    6     1    name  Ljava/lang/String;
            1    6     2  result  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      name  

  public freemarker.template.TemplateModel getGlobalVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
         0: .line 1988
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            aload 1 /* name */
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
        start local 2 // freemarker.template.TemplateModel result
         1: .line 1989
            aload 2 /* result */
            ifnonnull 3
         2: .line 1990
            aload 0 /* this */
            getfield freemarker.core.Environment.rootDataModel:Lfreemarker/template/TemplateHashModel;
            aload 1 /* name */
            invokeinterface freemarker.template.TemplateHashModel.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
         3: .line 1992
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 2 /* result */
            ifnonnull 5
         4: .line 1993
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            aload 1 /* name */
            invokevirtual freemarker.template.Configuration.getSharedVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 2 /* result */
         5: .line 1995
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // freemarker.template.TemplateModel result
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lfreemarker/core/Environment;
            0    6     1    name  Ljava/lang/String;
            1    6     2  result  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      name  

  public void setGlobalVariable(java.lang.String, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // freemarker.template.TemplateModel model
         0: .line 2004
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            aload 1 /* name */
            aload 2 /* model */
            invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 2005
            return
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lfreemarker/core/Environment;
            0    2     1   name  Ljava/lang/String;
            0    2     2  model  Lfreemarker/template/TemplateModel;
    MethodParameters:
       Name  Flags
      name   
      model  

  public void setVariable(java.lang.String, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // freemarker.template.TemplateModel model
         0: .line 2013
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            aload 1 /* name */
            aload 2 /* model */
            invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 2014
            return
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lfreemarker/core/Environment;
            0    2     1   name  Ljava/lang/String;
            0    2     2  model  Lfreemarker/template/TemplateModel;
    MethodParameters:
       Name  Flags
      name   
      model  

  public void setLocalVariable(java.lang.String, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // freemarker.template.TemplateModel model
         0: .line 2028
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            ifnonnull 2
         1: .line 2029
            new java.lang.IllegalStateException
            dup
            ldc "Not executing macro body"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2031
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            aload 1 /* name */
            aload 2 /* model */
            invokevirtual freemarker.core.Macro$Context.setLocalVar:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
         3: .line 2032
            return
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lfreemarker/core/Environment;
            0    4     1   name  Ljava/lang/String;
            0    4     2  model  Lfreemarker/template/TemplateModel;
    MethodParameters:
       Name  Flags
      name   
      model  

  public java.util.Set getKnownVariableNames();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2045
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getSharedVariableNames:()Ljava/util/Set;
            astore 1 /* set */
        start local 1 // java.util.Set set
         1: .line 2048
            aload 0 /* this */
            getfield freemarker.core.Environment.rootDataModel:Lfreemarker/template/TemplateHashModel;
            instanceof freemarker.template.TemplateHashModelEx
            ifeq 6
         2: .line 2049
            aload 0 /* this */
            getfield freemarker.core.Environment.rootDataModel:Lfreemarker/template/TemplateHashModel;
            checkcast freemarker.template.TemplateHashModelEx
            invokeinterface freemarker.template.TemplateHashModelEx.keys:()Lfreemarker/template/TemplateCollectionModel;
            invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
            astore 2 /* rootNames */
        start local 2 // freemarker.template.TemplateModelIterator rootNames
         3: .line 2050
            goto 5
         4: .line 2051
      StackMap locals: java.util.Set freemarker.template.TemplateModelIterator
      StackMap stack:
            aload 1 /* set */
            aload 2 /* rootNames */
            invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2050
      StackMap locals:
      StackMap stack:
            aload 2 /* rootNames */
            invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
            ifne 4
        end local 2 // freemarker.template.TemplateModelIterator rootNames
         6: .line 2056
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.keys:()Lfreemarker/template/TemplateCollectionModel;
            invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
            astore 2 /* tmi */
        start local 2 // freemarker.template.TemplateModelIterator tmi
         7: goto 9
         8: .line 2057
      StackMap locals: freemarker.template.TemplateModelIterator
      StackMap stack:
            aload 1 /* set */
            aload 2 /* tmi */
            invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 2056
      StackMap locals:
      StackMap stack:
            aload 2 /* tmi */
            invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
            ifne 8
        end local 2 // freemarker.template.TemplateModelIterator tmi
        10: .line 2061
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.keys:()Lfreemarker/template/TemplateCollectionModel;
            invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
            astore 2 /* tmi */
        start local 2 // freemarker.template.TemplateModelIterator tmi
        11: goto 13
        12: .line 2062
      StackMap locals:
      StackMap stack:
            aload 1 /* set */
            aload 2 /* tmi */
            invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 2061
      StackMap locals:
      StackMap stack:
            aload 2 /* tmi */
            invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
            ifne 12
        end local 2 // freemarker.template.TemplateModelIterator tmi
        14: .line 2066
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            ifnull 16
        15: .line 2067
            aload 1 /* set */
            aload 0 /* this */
            getfield freemarker.core.Environment.currentMacroContext:Lfreemarker/core/Macro$Context;
            invokevirtual freemarker.core.Macro$Context.getLocalVariableNames:()Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        16: .line 2069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            ifnull 23
        17: .line 2070
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            invokevirtual freemarker.core.LocalContextStack.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
        18: goto 22
        19: .line 2071
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            iload 2 /* i */
            invokevirtual freemarker.core.LocalContextStack.get:(I)Lfreemarker/core/LocalContext;
            astore 3 /* lc */
        start local 3 // freemarker.core.LocalContext lc
        20: .line 2072
            aload 1 /* set */
            aload 3 /* lc */
            invokeinterface freemarker.core.LocalContext.getLocalVariableNames:()Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 3 // freemarker.core.LocalContext lc
        21: .line 2070
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
        22: iload 2 /* i */
            ifge 19
        end local 2 // int i
        23: .line 2075
      StackMap locals:
      StackMap stack:
            aload 1 /* set */
            areturn
        end local 1 // java.util.Set set
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lfreemarker/core/Environment;
            1   24     1        set  Ljava/util/Set;
            3    6     2  rootNames  Lfreemarker/template/TemplateModelIterator;
            7   10     2        tmi  Lfreemarker/template/TemplateModelIterator;
           11   14     2        tmi  Lfreemarker/template/TemplateModelIterator;
           18   23     2          i  I
           20   21     3         lc  Lfreemarker/core/LocalContext;
    Exceptions:
      throws freemarker.template.TemplateModelException

  public void outputInstructionStack(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.io.PrintWriter pw
         0: .line 2083
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getInstructionStackSnapshot:()[Lfreemarker/core/TemplateElement;
            iconst_0
            aload 1 /* pw */
            invokestatic freemarker.core.Environment.outputInstructionStack:([Lfreemarker/core/TemplateElement;ZLjava/io/Writer;)V
         1: .line 2084
            aload 1 /* pw */
            invokevirtual java.io.PrintWriter.flush:()V
         2: .line 2085
            return
        end local 1 // java.io.PrintWriter pw
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;
            0    3     1    pw  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      pw    

  static void outputInstructionStack(freemarker.core.TemplateElement[], boolean, java.io.Writer);
    descriptor: ([Lfreemarker/core/TemplateElement;ZLjava/io/Writer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // freemarker.core.TemplateElement[] instructionStackSnapshot
        start local 1 // boolean terseMode
        start local 2 // java.io.Writer w
         0: .line 2099
            aload 2 /* w */
            instanceof java.io.PrintWriter
            ifeq 1
            aload 2 /* w */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.io.Writer
         2: checkcast java.io.PrintWriter
            astore 3 /* pw */
        start local 3 // java.io.PrintWriter pw
         3: .line 2101
            aload 0 /* instructionStackSnapshot */
            ifnull 62
         4: .line 2102
            aload 0 /* instructionStackSnapshot */
            arraylength
            istore 4 /* totalFrames */
        start local 4 // int totalFrames
         5: .line 2103
            iload 1 /* terseMode */
            ifeq 9
         6: .line 2104
            iload 4 /* totalFrames */
            bipush 10
            if_icmpgt 8
         7: .line 2105
            iload 4 /* totalFrames */
            goto 10
         8: .line 2106
      StackMap locals: java.io.PrintWriter int
      StackMap stack:
            bipush 9
            goto 10
         9: .line 2107
      StackMap locals:
      StackMap stack:
            iload 4 /* totalFrames */
        10: .line 2103
      StackMap locals:
      StackMap stack: int
            istore 5 /* framesToPrint */
        start local 5 // int framesToPrint
        11: .line 2108
            iload 1 /* terseMode */
            ifeq 12
            iload 5 /* framesToPrint */
            iload 4 /* totalFrames */
            if_icmpge 12
            iconst_1
            goto 13
      StackMap locals: int
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 6 /* hideNestringRelatedFrames */
        start local 6 // boolean hideNestringRelatedFrames
        14: .line 2109
            iconst_0
            istore 7 /* nestingRelatedFramesHidden */
        start local 7 // int nestingRelatedFramesHidden
        15: .line 2110
            iconst_0
            istore 8 /* trailingFramesHidden */
        start local 8 // int trailingFramesHidden
        16: .line 2111
            iconst_0
            istore 9 /* framesPrinted */
        start local 9 // int framesPrinted
        17: .line 2112
            iconst_0
            istore 10 /* frameIdx */
        start local 10 // int frameIdx
        18: goto 42
        19: .line 2113
      StackMap locals: freemarker.core.TemplateElement[] int java.io.Writer java.io.PrintWriter int int int int int int int
      StackMap stack:
            aload 0 /* instructionStackSnapshot */
            iload 10 /* frameIdx */
            aaload
            astore 11 /* stackEl */
        start local 11 // freemarker.core.TemplateElement stackEl
        20: .line 2114
            iload 10 /* frameIdx */
            ifle 21
            aload 11 /* stackEl */
            instanceof freemarker.core.BodyInstruction
            ifne 23
        21: .line 2115
      StackMap locals: freemarker.core.TemplateElement
      StackMap stack:
            iload 10 /* frameIdx */
            iconst_1
            if_icmple 22
            aload 0 /* instructionStackSnapshot */
            iload 10 /* frameIdx */
            iconst_1
            isub
            aaload
            instanceof freemarker.core.BodyInstruction
            ifne 23
        22: .line 2114
      StackMap locals:
      StackMap stack:
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_1
      StackMap locals:
      StackMap stack: int
        24: istore 12 /* nestingRelatedElement */
        start local 12 // boolean nestingRelatedElement
        25: .line 2116
            iload 9 /* framesPrinted */
            iload 5 /* framesToPrint */
            if_icmpge 40
        26: .line 2117
            iload 12 /* nestingRelatedElement */
            ifeq 27
            iload 6 /* hideNestringRelatedFrames */
            ifne 38
        27: .line 2118
      StackMap locals: int
      StackMap stack:
            aload 2 /* w */
            iload 10 /* frameIdx */
            ifne 29
        28: .line 2119
            ldc "\t- Failed at: "
            goto 32
        29: .line 2120
      StackMap locals:
      StackMap stack: java.io.Writer
            iload 12 /* nestingRelatedElement */
            ifeq 31
        30: .line 2121
            ldc "\t~ Reached through: "
            goto 32
        31: .line 2122
      StackMap locals:
      StackMap stack: java.io.Writer
            ldc "\t- Reached through: "
        32: .line 2118
      StackMap locals: freemarker.core.TemplateElement[] int java.io.Writer java.io.PrintWriter int int int int int int int freemarker.core.TemplateElement int
      StackMap stack: java.io.Writer java.lang.String
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        33: .line 2123
            aload 2 /* w */
            aload 11 /* stackEl */
            invokestatic freemarker.core.Environment.instructionStackItemToString:(Lfreemarker/core/TemplateElement;)Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        34: .line 2124
            aload 3 /* pw */
            ifnull 35
            aload 3 /* pw */
            invokevirtual java.io.PrintWriter.println:()V
            goto 36
        35: .line 2126
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            bipush 10
            invokevirtual java.io.Writer.write:(I)V
        36: .line 2127
      StackMap locals:
      StackMap stack:
            iinc 9 /* framesPrinted */ 1
        37: .line 2128
            goto 41
        38: .line 2129
      StackMap locals:
      StackMap stack:
            iinc 7 /* nestingRelatedFramesHidden */ 1
        39: .line 2131
            goto 41
        40: .line 2132
      StackMap locals:
      StackMap stack:
            iinc 8 /* trailingFramesHidden */ 1
        end local 12 // boolean nestingRelatedElement
        end local 11 // freemarker.core.TemplateElement stackEl
        41: .line 2112
      StackMap locals:
      StackMap stack:
            iinc 10 /* frameIdx */ 1
      StackMap locals:
      StackMap stack:
        42: iload 10 /* frameIdx */
            iload 4 /* totalFrames */
            if_icmplt 19
        end local 10 // int frameIdx
        43: .line 2136
            iconst_0
            istore 10 /* hadClosingNotes */
        start local 10 // boolean hadClosingNotes
        44: .line 2137
            iload 8 /* trailingFramesHidden */
            ifle 49
        45: .line 2138
            aload 2 /* w */
            ldc "\t... (Had "
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        46: .line 2139
            aload 2 /* w */
            iload 8 /* trailingFramesHidden */
            iload 7 /* nestingRelatedFramesHidden */
            iadd
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        47: .line 2140
            aload 2 /* w */
            ldc " more, hidden for tersenes)"
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        48: .line 2141
            iconst_1
            istore 10 /* hadClosingNotes */
        49: .line 2143
      StackMap locals: freemarker.core.TemplateElement[] int java.io.Writer java.io.PrintWriter int int int int int int int
      StackMap stack:
            iload 7 /* nestingRelatedFramesHidden */
            ifle 58
        50: .line 2144
            iload 10 /* hadClosingNotes */
            ifeq 53
        51: .line 2145
            aload 2 /* w */
            bipush 32
            invokevirtual java.io.Writer.write:(I)V
        52: .line 2146
            goto 54
        53: .line 2147
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            bipush 9
            invokevirtual java.io.Writer.write:(I)V
        54: .line 2149
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            new java.lang.StringBuilder
            dup
            ldc "(Hidden "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* nestingRelatedFramesHidden */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " \"~\" lines for terseness)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        55: .line 2150
            aload 3 /* pw */
            ifnull 56
            aload 3 /* pw */
            invokevirtual java.io.PrintWriter.println:()V
            goto 57
        56: .line 2152
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            bipush 10
            invokevirtual java.io.Writer.write:(I)V
        57: .line 2153
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* hadClosingNotes */
        58: .line 2155
      StackMap locals:
      StackMap stack:
            iload 10 /* hadClosingNotes */
            ifeq 68
        59: .line 2156
            aload 3 /* pw */
            ifnull 60
            aload 3 /* pw */
            invokevirtual java.io.PrintWriter.println:()V
            goto 68
        60: .line 2158
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            bipush 10
            invokevirtual java.io.Writer.write:(I)V
        end local 10 // boolean hadClosingNotes
        end local 9 // int framesPrinted
        end local 8 // int trailingFramesHidden
        end local 7 // int nestingRelatedFramesHidden
        end local 6 // boolean hideNestringRelatedFrames
        end local 5 // int framesToPrint
        end local 4 // int totalFrames
        61: .line 2160
            goto 68
        62: .line 2161
      StackMap locals: freemarker.core.TemplateElement[] int java.io.Writer java.io.PrintWriter
      StackMap stack:
            aload 2 /* w */
            ldc "(The stack was empty)"
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        63: .line 2162
            aload 3 /* pw */
            ifnull 64
            aload 3 /* pw */
            invokevirtual java.io.PrintWriter.println:()V
            goto 68
        64: .line 2164
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            bipush 10
            invokevirtual java.io.Writer.write:(I)V
        65: .line 2166
            goto 68
      StackMap locals:
      StackMap stack: java.io.IOException
        66: astore 4 /* e */
        start local 4 // java.io.IOException e
        67: .line 2167
            getstatic freemarker.core.Environment.LOG:Lfreemarker/log/Logger;
            ldc "Failed to print FTL stack trace"
            aload 4 /* e */
            invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException e
        68: .line 2169
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.PrintWriter pw
        end local 2 // java.io.Writer w
        end local 1 // boolean terseMode
        end local 0 // freemarker.core.TemplateElement[] instructionStackSnapshot
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   69     0    instructionStackSnapshot  [Lfreemarker/core/TemplateElement;
            0   69     1                   terseMode  Z
            0   69     2                           w  Ljava/io/Writer;
            3   69     3                          pw  Ljava/io/PrintWriter;
            5   61     4                 totalFrames  I
           11   61     5               framesToPrint  I
           14   61     6   hideNestringRelatedFrames  Z
           15   61     7  nestingRelatedFramesHidden  I
           16   61     8        trailingFramesHidden  I
           17   61     9               framesPrinted  I
           18   43    10                    frameIdx  I
           20   41    11                     stackEl  Lfreemarker/core/TemplateElement;
           25   41    12       nestingRelatedElement  Z
           44   61    10             hadClosingNotes  Z
           67   68     4                           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    65      66  Class java.io.IOException
    MethodParameters:
                          Name  Flags
      instructionStackSnapshot  
      terseMode                 
      w                         

  freemarker.core.TemplateElement[] getInstructionStackSnapshot();
    descriptor: ()[Lfreemarker/core/TemplateElement;
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2177
            iconst_0
            istore 1 /* requiredLength */
        start local 1 // int requiredLength
         1: .line 2178
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStackSize:I
            istore 2 /* ln */
        start local 2 // int ln
         2: .line 2180
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 2181
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
            iload 3 /* i */
            aaload
            astore 4 /* stackEl */
        start local 4 // freemarker.core.TemplateElement stackEl
         5: .line 2182
            iload 3 /* i */
            iload 2 /* ln */
            iconst_1
            isub
            if_icmpeq 6
            aload 4 /* stackEl */
            invokevirtual freemarker.core.TemplateElement.isShownInStackTrace:()Z
            ifeq 7
         6: .line 2183
      StackMap locals: freemarker.core.TemplateElement
      StackMap stack:
            iinc 1 /* requiredLength */ 1
        end local 4 // freemarker.core.TemplateElement stackEl
         7: .line 2180
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* ln */
            if_icmplt 4
        end local 3 // int i
         9: .line 2187
            iload 1 /* requiredLength */
            ifne 10
            aconst_null
            areturn
        10: .line 2189
      StackMap locals:
      StackMap stack:
            iload 1 /* requiredLength */
            anewarray freemarker.core.TemplateElement
            astore 3 /* result */
        start local 3 // freemarker.core.TemplateElement[] result
        11: .line 2190
            iload 1 /* requiredLength */
            iconst_1
            isub
            istore 4 /* dstIdx */
        start local 4 // int dstIdx
        12: .line 2191
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 18
        14: .line 2192
      StackMap locals: freemarker.core.TemplateElement[] int int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
            iload 5 /* i */
            aaload
            astore 6 /* stackEl */
        start local 6 // freemarker.core.TemplateElement stackEl
        15: .line 2193
            iload 5 /* i */
            iload 2 /* ln */
            iconst_1
            isub
            if_icmpeq 16
            aload 6 /* stackEl */
            invokevirtual freemarker.core.TemplateElement.isShownInStackTrace:()Z
            ifeq 17
        16: .line 2194
      StackMap locals: freemarker.core.TemplateElement
      StackMap stack:
            aload 3 /* result */
            iload 4 /* dstIdx */
            iinc 4 /* dstIdx */ -1
            aload 6 /* stackEl */
            aastore
        end local 6 // freemarker.core.TemplateElement stackEl
        17: .line 2191
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            iload 2 /* ln */
            if_icmplt 14
        end local 5 // int i
        19: .line 2198
            aload 3 /* result */
            areturn
        end local 4 // int dstIdx
        end local 3 // freemarker.core.TemplateElement[] result
        end local 2 // int ln
        end local 1 // int requiredLength
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lfreemarker/core/Environment;
            1   20     1  requiredLength  I
            2   20     2              ln  I
            3    9     3               i  I
            5    7     4         stackEl  Lfreemarker/core/TemplateElement;
           11   20     3          result  [Lfreemarker/core/TemplateElement;
           12   20     4          dstIdx  I
           13   19     5               i  I
           15   17     6         stackEl  Lfreemarker/core/TemplateElement;

  static java.lang.String instructionStackItemToString(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // freemarker.core.TemplateElement stackEl
         0: .line 2202
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2203
            aload 0 /* stackEl */
            aload 1 /* sb */
            invokestatic freemarker.core.Environment.appendInstructionStackItem:(Lfreemarker/core/TemplateElement;Ljava/lang/StringBuilder;)V
         2: .line 2204
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // freemarker.core.TemplateElement stackEl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  stackEl  Lfreemarker/core/TemplateElement;
            1    3     1       sb  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      stackEl  

  static void appendInstructionStackItem(freemarker.core.TemplateElement, java.lang.StringBuilder);
    descriptor: (Lfreemarker/core/TemplateElement;Ljava/lang/StringBuilder;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.core.TemplateElement stackEl
        start local 1 // java.lang.StringBuilder sb
         0: .line 2208
            aload 1 /* sb */
            aload 0 /* stackEl */
            invokevirtual freemarker.core.TemplateElement.getDescription:()Ljava/lang/String;
            bipush 40
            invokestatic freemarker.core._MessageUtil.shorten:(Ljava/lang/String;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 2210
            aload 1 /* sb */
            ldc "  ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 2211
            aload 0 /* stackEl */
            invokestatic freemarker.core.Environment.getEnclosingMacro:(Lfreemarker/core/TemplateElement;)Lfreemarker/core/Macro;
            astore 2 /* enclosingMacro */
        start local 2 // freemarker.core.Macro enclosingMacro
         3: .line 2212
            aload 2 /* enclosingMacro */
            ifnull 8
         4: .line 2213
            aload 1 /* sb */
         5: .line 2214
            aload 2 /* enclosingMacro */
            aload 0 /* stackEl */
            getfield freemarker.core.TemplateElement.beginLine:I
            aload 0 /* stackEl */
            getfield freemarker.core.TemplateElement.beginColumn:I
         6: .line 2213
            invokestatic freemarker.core._MessageUtil.formatLocationForEvaluationError:(Lfreemarker/core/Macro;II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2215
            goto 11
         8: .line 2216
      StackMap locals: freemarker.core.Macro
      StackMap stack:
            aload 1 /* sb */
         9: .line 2217
            aload 0 /* stackEl */
            invokevirtual freemarker.core.TemplateElement.getTemplate:()Lfreemarker/template/Template;
            aload 0 /* stackEl */
            getfield freemarker.core.TemplateElement.beginLine:I
            aload 0 /* stackEl */
            getfield freemarker.core.TemplateElement.beginColumn:I
        10: .line 2216
            invokestatic freemarker.core._MessageUtil.formatLocationForEvaluationError:(Lfreemarker/template/Template;II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 2219
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 2220
            return
        end local 2 // freemarker.core.Macro enclosingMacro
        end local 1 // java.lang.StringBuilder sb
        end local 0 // freemarker.core.TemplateElement stackEl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0         stackEl  Lfreemarker/core/TemplateElement;
            0   13     1              sb  Ljava/lang/StringBuilder;
            3   13     2  enclosingMacro  Lfreemarker/core/Macro;
    MethodParameters:
         Name  Flags
      stackEl  
      sb       

  private static freemarker.core.Macro getEnclosingMacro(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)Lfreemarker/core/Macro;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.TemplateElement stackEl
         0: .line 2223
            goto 3
         1: .line 2224
      StackMap locals:
      StackMap stack:
            aload 0 /* stackEl */
            instanceof freemarker.core.Macro
            ifeq 2
            aload 0 /* stackEl */
            checkcast freemarker.core.Macro
            areturn
         2: .line 2225
      StackMap locals:
      StackMap stack:
            aload 0 /* stackEl */
            invokevirtual freemarker.core.TemplateElement.getParentElement:()Lfreemarker/core/TemplateElement;
            astore 0 /* stackEl */
         3: .line 2223
      StackMap locals:
      StackMap stack:
            aload 0 /* stackEl */
            ifnonnull 1
         4: .line 2227
            aconst_null
            areturn
        end local 0 // freemarker.core.TemplateElement stackEl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  stackEl  Lfreemarker/core/TemplateElement;
    MethodParameters:
         Name  Flags
      stackEl  

  private void pushLocalContext(freemarker.core.LocalContext);
    descriptor: (Lfreemarker/core/LocalContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.LocalContext localContext
         0: .line 2231
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            ifnonnull 2
         1: .line 2232
            aload 0 /* this */
            new freemarker.core.LocalContextStack
            dup
            invokespecial freemarker.core.LocalContextStack.<init>:()V
            putfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
         2: .line 2234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            aload 1 /* localContext */
            invokevirtual freemarker.core.LocalContextStack.push:(Lfreemarker/core/LocalContext;)V
         3: .line 2235
            return
        end local 1 // freemarker.core.LocalContext localContext
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lfreemarker/core/Environment;
            0    4     1  localContext  Lfreemarker/core/LocalContext;
    MethodParameters:
              Name  Flags
      localContext  

  freemarker.core.LocalContextStack getLocalContextStack();
    descriptor: ()Lfreemarker/core/LocalContextStack;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2238
            aload 0 /* this */
            getfield freemarker.core.Environment.localContextStack:Lfreemarker/core/LocalContextStack;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public freemarker.core.Environment$Namespace getNamespace(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
         0: .line 2250
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 1
            aload 1 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
         1: .line 2251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            ifnull 3
         2: .line 2252
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.Environment$Namespace
            areturn
         3: .line 2254
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lfreemarker/core/Environment;
            0    4     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public freemarker.core.Environment$Namespace getMainNamespace();
    descriptor: ()Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2262
            aload 0 /* this */
            getfield freemarker.core.Environment.mainNamespace:Lfreemarker/core/Environment$Namespace;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public freemarker.core.Environment$Namespace getCurrentNamespace();
    descriptor: ()Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2273
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public freemarker.core.Environment$Namespace getGlobalNamespace();
    descriptor: ()Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2281
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public freemarker.template.TemplateHashModel getDataModel();
    descriptor: ()Lfreemarker/template/TemplateHashModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2289
            aload 0 /* this */
            getfield freemarker.core.Environment.rootDataModel:Lfreemarker/template/TemplateHashModel;
            instanceof freemarker.template.TemplateHashModelEx
            ifeq 3
         1: .line 2290
            new freemarker.core.Environment$3
            dup
            aload 0 /* this */
            invokespecial freemarker.core.Environment$3.<init>:(Lfreemarker/core/Environment;)V
         2: .line 2314
            goto 4
         3: .line 2315
      StackMap locals:
      StackMap stack:
            new freemarker.core.Environment$4
            dup
            aload 0 /* this */
            invokespecial freemarker.core.Environment$4.<init>:(Lfreemarker/core/Environment;)V
         4: .line 2289
      StackMap locals:
      StackMap stack: freemarker.template.TemplateHashModel
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lfreemarker/core/Environment;

  public freemarker.template.TemplateHashModel getGlobalVariables();
    descriptor: ()Lfreemarker/template/TemplateHashModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2333
            new freemarker.core.Environment$5
            dup
            aload 0 /* this */
            invokespecial freemarker.core.Environment$5.<init>:(Lfreemarker/core/Environment;)V
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  private void pushElement(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement element
         0: .line 2353
            aload 0 /* this */
            dup
            getfield freemarker.core.Environment.instructionStackSize:I
            iconst_1
            iadd
            dup_x1
            putfield freemarker.core.Environment.instructionStackSize:I
            istore 2 /* newSize */
        start local 2 // int newSize
         1: .line 2354
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
            astore 3 /* instructionStack */
        start local 3 // freemarker.core.TemplateElement[] instructionStack
         2: .line 2355
            iload 2 /* newSize */
            aload 3 /* instructionStack */
            arraylength
            if_icmple 11
         3: .line 2356
            iload 2 /* newSize */
            iconst_2
            imul
            anewarray freemarker.core.TemplateElement
            astore 4 /* newInstructionStack */
        start local 4 // freemarker.core.TemplateElement[] newInstructionStack
         4: .line 2357
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 2358
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement int freemarker.core.TemplateElement[] freemarker.core.TemplateElement[] int
      StackMap stack:
            aload 4 /* newInstructionStack */
            iload 5 /* i */
            aload 3 /* instructionStack */
            iload 5 /* i */
            aaload
            aastore
         7: .line 2357
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 3 /* instructionStack */
            arraylength
            if_icmplt 6
        end local 5 // int i
         9: .line 2360
            aload 4 /* newInstructionStack */
            astore 3 /* instructionStack */
        10: .line 2361
            aload 0 /* this */
            aload 3 /* instructionStack */
            putfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
        end local 4 // freemarker.core.TemplateElement[] newInstructionStack
        11: .line 2363
      StackMap locals:
      StackMap stack:
            aload 3 /* instructionStack */
            iload 2 /* newSize */
            iconst_1
            isub
            aload 1 /* element */
            aastore
        12: .line 2364
            return
        end local 3 // freemarker.core.TemplateElement[] instructionStack
        end local 2 // int newSize
        end local 1 // freemarker.core.TemplateElement element
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lfreemarker/core/Environment;
            0   13     1              element  Lfreemarker/core/TemplateElement;
            1   13     2              newSize  I
            2   13     3     instructionStack  [Lfreemarker/core/TemplateElement;
            4   11     4  newInstructionStack  [Lfreemarker/core/TemplateElement;
            5    9     5                    i  I
    MethodParameters:
         Name  Flags
      element  

  private void popElement();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2367
            aload 0 /* this */
            dup
            getfield freemarker.core.Environment.instructionStackSize:I
            iconst_1
            isub
            putfield freemarker.core.Environment.instructionStackSize:I
         1: .line 2368
            return
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;

  void replaceElementStackTop(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement instr
         0: .line 2371
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStack:[Lfreemarker/core/TemplateElement;
            aload 0 /* this */
            getfield freemarker.core.Environment.instructionStackSize:I
            iconst_1
            isub
            aload 1 /* instr */
            aastore
         1: .line 2372
            return
        end local 1 // freemarker.core.TemplateElement instr
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lfreemarker/core/Environment;
            0    2     1  instr  Lfreemarker/core/TemplateElement;
    MethodParameters:
       Name  Flags
      instr  

  public freemarker.template.TemplateNodeModel getCurrentVisitorNode();
    descriptor: ()Lfreemarker/template/TemplateNodeModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2375
            aload 0 /* this */
            getfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public void setCurrentVisitorNode(freemarker.template.TemplateNodeModel);
    descriptor: (Lfreemarker/template/TemplateNodeModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNodeModel node
         0: .line 2382
            aload 0 /* this */
            aload 1 /* node */
            putfield freemarker.core.Environment.currentVisitorNode:Lfreemarker/template/TemplateNodeModel;
         1: .line 2383
            return
        end local 1 // freemarker.template.TemplateNodeModel node
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;
            0    2     1  node  Lfreemarker/template/TemplateNodeModel;
    MethodParameters:
      Name  Flags
      node  

  freemarker.template.TemplateModel getNodeProcessor(freemarker.template.TemplateNodeModel);
    descriptor: (Lfreemarker/template/TemplateNodeModel;)Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.TemplateNodeModel node
         0: .line 2386
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeName:()Ljava/lang/String;
            astore 2 /* nodeName */
        start local 2 // java.lang.String nodeName
         1: .line 2387
            aload 2 /* nodeName */
            ifnonnull 3
         2: .line 2388
            new freemarker.core._MiscTemplateException
            dup
            aload 0 /* this */
            ldc "Node name is null."
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;Ljava/lang/String;)V
            athrow
         3: .line 2390
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* nodeName */
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeNamespace:()Ljava/lang/String;
            iconst_0
            invokevirtual freemarker.core.Environment.getNodeProcessor:(Ljava/lang/String;Ljava/lang/String;I)Lfreemarker/template/TemplateModel;
            astore 3 /* result */
        start local 3 // freemarker.template.TemplateModel result
         4: .line 2392
            aload 3 /* result */
            ifnonnull 9
         5: .line 2393
            aload 1 /* node */
            invokeinterface freemarker.template.TemplateNodeModel.getNodeType:()Ljava/lang/String;
            astore 4 /* type */
        start local 4 // java.lang.String type
         6: .line 2396
            aload 4 /* type */
            ifnonnull 8
         7: .line 2397
            ldc "default"
            astore 4 /* type */
         8: .line 2399
      StackMap locals: freemarker.template.TemplateModel java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokevirtual freemarker.core.Environment.getNodeProcessor:(Ljava/lang/String;Ljava/lang/String;I)Lfreemarker/template/TemplateModel;
            astore 3 /* result */
        end local 4 // java.lang.String type
         9: .line 2407
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // freemarker.template.TemplateModel result
        end local 2 // java.lang.String nodeName
        end local 1 // freemarker.template.TemplateNodeModel node
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lfreemarker/core/Environment;
            0   10     1      node  Lfreemarker/template/TemplateNodeModel;
            1   10     2  nodeName  Ljava/lang/String;
            4   10     3    result  Lfreemarker/template/TemplateModel;
            6    9     4      type  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      node  

  private freemarker.template.TemplateModel getNodeProcessor(java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;I)Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String nodeName
        start local 2 // java.lang.String nsURI
        start local 3 // int startIndex
         0: .line 2412
            aconst_null
            astore 4 /* result */
        start local 4 // freemarker.template.TemplateModel result
         1: .line 2414
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
            invokeinterface freemarker.template.TemplateSequenceModel.size:()I
            istore 6 /* size */
        start local 6 // int size
         2: .line 2415
            iload 3 /* startIndex */
            istore 5 /* i */
        start local 5 // int i
         3: goto 15
         4: .line 2416
      StackMap locals: freemarker.template.TemplateModel int int
      StackMap stack:
            aconst_null
            astore 7 /* ns */
        start local 7 // freemarker.core.Environment$Namespace ns
         5: .line 2418
            aload 0 /* this */
            getfield freemarker.core.Environment.nodeNamespaces:Lfreemarker/template/TemplateSequenceModel;
            iload 5 /* i */
            invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
            checkcast freemarker.core.Environment$Namespace
            astore 7 /* ns */
         6: .line 2419
            goto 11
      StackMap locals: freemarker.core.Environment java.lang.String java.lang.String int freemarker.template.TemplateModel int int freemarker.core.Environment$Namespace
      StackMap stack: java.lang.ClassCastException
         7: pop
         8: .line 2420
            new freemarker.core._MiscTemplateException
            dup
            aload 0 /* this */
         9: .line 2421
            ldc "A \"using\" clause should contain a sequence of namespaces or strings that indicate the location of importable macro libraries."
        10: .line 2420
            invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Environment;Ljava/lang/String;)V
            athrow
        11: .line 2424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* ns */
            aload 1 /* nodeName */
            aload 2 /* nsURI */
            invokevirtual freemarker.core.Environment.getNodeProcessor:(Lfreemarker/core/Environment$Namespace;Ljava/lang/String;Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
        12: .line 2425
            aload 4 /* result */
            ifnull 14
        13: .line 2426
            goto 16
        end local 7 // freemarker.core.Environment$Namespace ns
        14: .line 2415
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            iload 6 /* size */
            if_icmplt 4
        16: .line 2428
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            ifnull 20
        17: .line 2429
            aload 0 /* this */
            iload 5 /* i */
            iconst_1
            iadd
            putfield freemarker.core.Environment.nodeNamespaceIndex:I
        18: .line 2430
            aload 0 /* this */
            aload 1 /* nodeName */
            putfield freemarker.core.Environment.currentNodeName:Ljava/lang/String;
        19: .line 2431
            aload 0 /* this */
            aload 2 /* nsURI */
            putfield freemarker.core.Environment.currentNodeNS:Ljava/lang/String;
        20: .line 2433
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 6 // int size
        end local 5 // int i
        end local 4 // freemarker.template.TemplateModel result
        end local 3 // int startIndex
        end local 2 // java.lang.String nsURI
        end local 1 // java.lang.String nodeName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lfreemarker/core/Environment;
            0   21     1    nodeName  Ljava/lang/String;
            0   21     2       nsURI  Ljava/lang/String;
            0   21     3  startIndex  I
            1   21     4      result  Lfreemarker/template/TemplateModel;
            3   21     5           i  I
            2   21     6        size  I
            5   14     7          ns  Lfreemarker/core/Environment$Namespace;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.ClassCastException
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
            Name  Flags
      nodeName    final
      nsURI       final
      startIndex  

  private freemarker.template.TemplateModel getNodeProcessor(freemarker.core.Environment$Namespace, java.lang.String, java.lang.String);
    descriptor: (Lfreemarker/core/Environment$Namespace;Ljava/lang/String;Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Environment$Namespace ns
        start local 2 // java.lang.String localName
        start local 3 // java.lang.String nsURI
         0: .line 2437
            aconst_null
            astore 4 /* result */
        start local 4 // freemarker.template.TemplateModel result
         1: .line 2438
            aload 3 /* nsURI */
            ifnonnull 6
         2: .line 2439
            aload 1 /* ns */
            aload 2 /* localName */
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
         3: .line 2440
            aload 4 /* result */
            instanceof freemarker.core.Macro
            ifne 27
            aload 4 /* result */
            instanceof freemarker.template.TemplateTransformModel
            ifne 27
         4: .line 2441
            aconst_null
            astore 4 /* result */
         5: .line 2443
            goto 27
         6: .line 2444
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 1 /* ns */
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            astore 5 /* template */
        start local 5 // freemarker.template.Template template
         7: .line 2445
            aload 5 /* template */
            aload 3 /* nsURI */
            invokevirtual freemarker.template.Template.getPrefixForNamespace:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* prefix */
        start local 6 // java.lang.String prefix
         8: .line 2446
            aload 6 /* prefix */
            ifnonnull 10
         9: .line 2449
            aconst_null
            areturn
        10: .line 2451
      StackMap locals: freemarker.template.Template java.lang.String
      StackMap stack:
            aload 6 /* prefix */
            invokevirtual java.lang.String.length:()I
            ifle 15
        11: .line 2452
            aload 1 /* ns */
            new java.lang.StringBuilder
            dup
            aload 6 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* localName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
        12: .line 2453
            aload 4 /* result */
            instanceof freemarker.core.Macro
            ifne 27
            aload 4 /* result */
            instanceof freemarker.template.TemplateTransformModel
            ifne 27
        13: .line 2454
            aconst_null
            astore 4 /* result */
        14: .line 2456
            goto 27
        15: .line 2457
      StackMap locals:
      StackMap stack:
            aload 3 /* nsURI */
            invokevirtual java.lang.String.length:()I
            ifne 19
        16: .line 2458
            aload 1 /* ns */
            new java.lang.StringBuilder
            dup
            ldc "N:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* localName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
        17: .line 2459
            aload 4 /* result */
            instanceof freemarker.core.Macro
            ifne 19
            aload 4 /* result */
            instanceof freemarker.template.TemplateTransformModel
            ifne 19
        18: .line 2460
            aconst_null
            astore 4 /* result */
        19: .line 2463
      StackMap locals:
      StackMap stack:
            aload 3 /* nsURI */
            aload 5 /* template */
            invokevirtual freemarker.template.Template.getDefaultNS:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        20: .line 2464
            aload 1 /* ns */
            new java.lang.StringBuilder
            dup
            ldc "D:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* localName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
        21: .line 2465
            aload 4 /* result */
            instanceof freemarker.core.Macro
            ifne 23
            aload 4 /* result */
            instanceof freemarker.template.TemplateTransformModel
            ifne 23
        22: .line 2466
            aconst_null
            astore 4 /* result */
        23: .line 2469
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            ifnonnull 27
        24: .line 2470
            aload 1 /* ns */
            aload 2 /* localName */
            invokevirtual freemarker.core.Environment$Namespace.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            astore 4 /* result */
        25: .line 2471
            aload 4 /* result */
            instanceof freemarker.core.Macro
            ifne 27
            aload 4 /* result */
            instanceof freemarker.template.TemplateTransformModel
            ifne 27
        26: .line 2472
            aconst_null
            astore 4 /* result */
        end local 6 // java.lang.String prefix
        end local 5 // freemarker.template.Template template
        27: .line 2477
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // freemarker.template.TemplateModel result
        end local 3 // java.lang.String nsURI
        end local 2 // java.lang.String localName
        end local 1 // freemarker.core.Environment$Namespace ns
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lfreemarker/core/Environment;
            0   28     1         ns  Lfreemarker/core/Environment$Namespace;
            0   28     2  localName  Ljava/lang/String;
            0   28     3      nsURI  Ljava/lang/String;
            1   28     4     result  Lfreemarker/template/TemplateModel;
            7   27     5   template  Lfreemarker/template/Template;
            8   27     6     prefix  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
           Name  Flags
      ns         
      localName  
      nsURI      

  public void include(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String encoding
        start local 3 // boolean parse
         0: .line 2493
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* encoding */
            iload 3 /* parse */
            invokevirtual freemarker.core.Environment.getTemplateForInclusion:(Ljava/lang/String;Ljava/lang/String;Z)Lfreemarker/template/Template;
            invokevirtual freemarker.core.Environment.include:(Lfreemarker/template/Template;)V
         1: .line 2494
            return
        end local 3 // boolean parse
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lfreemarker/core/Environment;
            0    2     1      name  Ljava/lang/String;
            0    2     2  encoding  Ljava/lang/String;
            0    2     3     parse  Z
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
          Name  Flags
      name      
      encoding  
      parse     

  public freemarker.template.Template getTemplateForInclusion(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String encoding
        start local 3 // boolean parse
         0: .line 2502
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* encoding */
            iload 3 /* parse */
            iconst_0
            invokevirtual freemarker.core.Environment.getTemplateForInclusion:(Ljava/lang/String;Ljava/lang/String;ZZ)Lfreemarker/template/Template;
            areturn
        end local 3 // boolean parse
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lfreemarker/core/Environment;
            0    1     1      name  Ljava/lang/String;
            0    1     2  encoding  Ljava/lang/String;
            0    1     3     parse  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      name      
      encoding  
      parse     

  public freemarker.template.Template getTemplateForInclusion(java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZ)Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String encoding
        start local 3 // boolean parseAsFTL
        start local 4 // boolean ignoreMissing
         0: .line 2540
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
         1: .line 2541
            aload 1 /* name */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getIncludedTemplateCustomLookupCondition:()Ljava/lang/Object;
         2: .line 2542
            aload 2 /* encoding */
            ifnull 3
            aload 2 /* encoding */
            goto 4
      StackMap locals: freemarker.core.Environment java.lang.String java.lang.String int int
      StackMap stack: freemarker.template.Configuration java.lang.String java.util.Locale java.lang.Object
         3: aload 0 /* this */
            invokevirtual freemarker.core.Environment.getIncludedTemplateEncoding:()Ljava/lang/String;
         4: .line 2543
      StackMap locals: freemarker.core.Environment java.lang.String java.lang.String int int
      StackMap stack: freemarker.template.Configuration java.lang.String java.util.Locale java.lang.Object java.lang.String
            iload 3 /* parseAsFTL */
         5: .line 2544
            iload 4 /* ignoreMissing */
         6: .line 2540
            invokevirtual freemarker.template.Configuration.getTemplate:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Object;Ljava/lang/String;ZZ)Lfreemarker/template/Template;
            areturn
        end local 4 // boolean ignoreMissing
        end local 3 // boolean parseAsFTL
        end local 2 // java.lang.String encoding
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lfreemarker/core/Environment;
            0    7     1           name  Ljava/lang/String;
            0    7     2       encoding  Ljava/lang/String;
            0    7     3     parseAsFTL  Z
            0    7     4  ignoreMissing  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      name           
      encoding       
      parseAsFTL     
      ignoreMissing  

  private java.lang.Object getIncludedTemplateCustomLookupCondition();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2548
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getCustomLookupCondition:()Ljava/lang/Object;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  private java.lang.String getIncludedTemplateEncoding();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2554
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getEncoding:()Ljava/lang/String;
            astore 1 /* encoding */
        start local 1 // java.lang.String encoding
         1: .line 2555
            aload 1 /* encoding */
            ifnonnull 3
         2: .line 2556
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokevirtual freemarker.template.Configuration.getEncoding:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* encoding */
         3: .line 2558
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* encoding */
            areturn
        end local 1 // java.lang.String encoding
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lfreemarker/core/Environment;
            1    4     1  encoding  Ljava/lang/String;

  public void include(freemarker.template.Template);
    descriptor: (Lfreemarker/template/Template;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.Template includedTemplate
         0: .line 2572
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isBeforeIcI2322:()Z
            istore 3 /* parentReplacementOn */
        start local 3 // boolean parentReplacementOn
         1: .line 2573
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getTemplate:()Lfreemarker/template/Template;
            astore 2 /* prevTemplate */
        start local 2 // freemarker.template.Template prevTemplate
         2: .line 2574
            iload 3 /* parentReplacementOn */
            ifeq 5
         3: .line 2575
            aload 0 /* this */
            aload 1 /* includedTemplate */
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
         4: .line 2576
            goto 6
         5: .line 2577
      StackMap locals: freemarker.template.Template int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* includedTemplate */
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
         6: .line 2580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* includedTemplate */
            invokevirtual freemarker.core.Environment.importMacros:(Lfreemarker/template/Template;)V
         7: .line 2582
            aload 0 /* this */
            aload 1 /* includedTemplate */
            invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
         8: .line 2583
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 4
        10: .line 2584
            iload 3 /* parentReplacementOn */
            ifeq 13
        11: .line 2585
            aload 0 /* this */
            aload 2 /* prevTemplate */
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
        12: .line 2586
            goto 14
        13: .line 2587
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 2 /* prevTemplate */
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
        14: .line 2589
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        15: .line 2584
      StackMap locals:
      StackMap stack:
            iload 3 /* parentReplacementOn */
            ifeq 18
        16: .line 2585
            aload 0 /* this */
            aload 2 /* prevTemplate */
            invokevirtual freemarker.core.Environment.setParent:(Lfreemarker/core/Configurable;)V
        17: .line 2586
            goto 19
        18: .line 2587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* prevTemplate */
            putfield freemarker.core.Environment.legacyParent:Lfreemarker/core/Configurable;
        19: .line 2590
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean parentReplacementOn
        end local 2 // freemarker.template.Template prevTemplate
        end local 1 // freemarker.template.Template includedTemplate
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lfreemarker/core/Environment;
            0   20     1     includedTemplate  Lfreemarker/template/Template;
            2   20     2         prevTemplate  Lfreemarker/template/Template;
            1   20     3  parentReplacementOn  Z
      Exception table:
        from    to  target  type
           7     9       9  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
                  Name  Flags
      includedTemplate  

  public freemarker.core.Environment$Namespace importLib(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String templateName
        start local 2 // java.lang.String targetNsVarName
         0: .line 2613
            aload 0 /* this */
            aload 1 /* templateName */
            aload 2 /* targetNsVarName */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getLazyImports:()Z
            invokevirtual freemarker.core.Environment.importLib:(Ljava/lang/String;Ljava/lang/String;Z)Lfreemarker/core/Environment$Namespace;
            areturn
        end local 2 // java.lang.String targetNsVarName
        end local 1 // java.lang.String templateName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lfreemarker/core/Environment;
            0    1     1     templateName  Ljava/lang/String;
            0    1     2  targetNsVarName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      templateName     
      targetNsVarName  

  public freemarker.core.Environment$Namespace importLib(freemarker.template.Template, java.lang.String);
    descriptor: (Lfreemarker/template/Template;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.Template loadedTemplate
        start local 2 // java.lang.String targetNsVarName
         0: .line 2633
            aload 0 /* this */
            aconst_null
            aload 1 /* loadedTemplate */
            aload 2 /* targetNsVarName */
            invokevirtual freemarker.core.Environment.importLib:(Ljava/lang/String;Lfreemarker/template/Template;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
            areturn
        end local 2 // java.lang.String targetNsVarName
        end local 1 // freemarker.template.Template loadedTemplate
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lfreemarker/core/Environment;
            0    1     1   loadedTemplate  Lfreemarker/template/Template;
            0    1     2  targetNsVarName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      loadedTemplate   
      targetNsVarName  

  public freemarker.core.Environment$Namespace importLib(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lfreemarker/core/Environment$Namespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String templateName
        start local 2 // java.lang.String targetNsVarName
        start local 3 // boolean lazy
         0: .line 2647
            iload 3 /* lazy */
            ifeq 2
         1: .line 2648
            aload 0 /* this */
            aload 1 /* templateName */
            aconst_null
            aload 2 /* targetNsVarName */
            invokevirtual freemarker.core.Environment.importLib:(Ljava/lang/String;Lfreemarker/template/Template;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
            goto 3
         2: .line 2649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            aload 1 /* templateName */
            invokevirtual freemarker.core.Environment.getTemplateForImporting:(Ljava/lang/String;)Lfreemarker/template/Template;
            aload 2 /* targetNsVarName */
            invokevirtual freemarker.core.Environment.importLib:(Ljava/lang/String;Lfreemarker/template/Template;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
         3: .line 2647
      StackMap locals:
      StackMap stack: freemarker.core.Environment$Namespace
            areturn
        end local 3 // boolean lazy
        end local 2 // java.lang.String targetNsVarName
        end local 1 // java.lang.String templateName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lfreemarker/core/Environment;
            0    4     1     templateName  Ljava/lang/String;
            0    4     2  targetNsVarName  Ljava/lang/String;
            0    4     3             lazy  Z
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      templateName     
      targetNsVarName  
      lazy             

  public freemarker.template.Template getTemplateForImporting(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/Template;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String name
         0: .line 2664
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            iconst_1
            invokevirtual freemarker.core.Environment.getTemplateForInclusion:(Ljava/lang/String;Ljava/lang/String;Z)Lfreemarker/template/Template;
            areturn
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  private freemarker.core.Environment$Namespace importLib(java.lang.String, freemarker.template.Template, java.lang.String);
    descriptor: (Ljava/lang/String;Lfreemarker/template/Template;Ljava/lang/String;)Lfreemarker/core/Environment$Namespace;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String templateName
        start local 2 // freemarker.template.Template loadedTemplate
        start local 3 // java.lang.String targetNsVarName
         0: .line 2678
            aload 2 /* loadedTemplate */
            ifnull 4
         1: .line 2679
            iconst_0
            istore 4 /* lazyImport */
        start local 4 // boolean lazyImport
         2: .line 2683
            aload 2 /* loadedTemplate */
            invokevirtual freemarker.template.Template.getName:()Ljava/lang/String;
            astore 1 /* templateName */
         3: .line 2684
            goto 7
        end local 4 // boolean lazyImport
         4: .line 2685
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* lazyImport */
        start local 4 // boolean lazyImport
         5: .line 2689
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getConfiguration:()Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getTemplateNameFormat:()Lfreemarker/cache/TemplateNameFormat;
            astore 5 /* tnf */
        start local 5 // freemarker.cache.TemplateNameFormat tnf
         6: .line 2690
            aload 5 /* tnf */
            aload 1 /* templateName */
            invokestatic freemarker.cache._CacheAPI.normalizeRootBasedName:(Lfreemarker/cache/TemplateNameFormat;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* templateName */
        end local 5 // freemarker.cache.TemplateNameFormat tnf
         7: .line 2693
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            ifnonnull 9
         8: .line 2694
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
         9: .line 2696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            aload 1 /* templateName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.Environment$Namespace
            astore 5 /* existingNamespace */
        start local 5 // freemarker.core.Environment$Namespace existingNamespace
        10: .line 2697
            aload 5 /* existingNamespace */
            ifnull 18
        11: .line 2698
            aload 3 /* targetNsVarName */
            ifnull 15
        12: .line 2699
            aload 0 /* this */
            aload 3 /* targetNsVarName */
            aload 5 /* existingNamespace */
            invokevirtual freemarker.core.Environment.setVariable:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
        13: .line 2700
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isIcI2324OrLater:()Z
            ifeq 15
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            aload 0 /* this */
            getfield freemarker.core.Environment.mainNamespace:Lfreemarker/core/Environment$Namespace;
            if_acmpne 15
        14: .line 2701
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            aload 3 /* targetNsVarName */
            aload 5 /* existingNamespace */
            invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 2704
      StackMap locals: freemarker.core.Environment$Namespace
      StackMap stack:
            iload 4 /* lazyImport */
            ifne 28
            aload 5 /* existingNamespace */
            instanceof freemarker.core.Environment$LazilyInitializedNamespace
            ifeq 28
        16: .line 2705
            aload 5 /* existingNamespace */
            checkcast freemarker.core.Environment$LazilyInitializedNamespace
            invokevirtual freemarker.core.Environment$LazilyInitializedNamespace.ensureInitializedTME:()V
        17: .line 2707
            goto 28
        18: .line 2709
      StackMap locals:
      StackMap stack:
            iload 4 /* lazyImport */
            ifeq 19
            new freemarker.core.Environment$LazilyInitializedNamespace
            dup
            aload 0 /* this */
            aload 1 /* templateName */
            invokespecial freemarker.core.Environment$LazilyInitializedNamespace.<init>:(Lfreemarker/core/Environment;Ljava/lang/String;)V
            goto 20
      StackMap locals:
      StackMap stack:
        19: new freemarker.core.Environment$Namespace
            dup
            aload 0 /* this */
            aload 2 /* loadedTemplate */
            invokespecial freemarker.core.Environment$Namespace.<init>:(Lfreemarker/core/Environment;Lfreemarker/template/Template;)V
        20: .line 2708
      StackMap locals:
      StackMap stack: freemarker.core.Environment$Namespace
            astore 6 /* newNamespace */
        start local 6 // freemarker.core.Environment$Namespace newNamespace
        21: .line 2710
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            aload 1 /* templateName */
            aload 6 /* newNamespace */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 2712
            aload 3 /* targetNsVarName */
            ifnull 26
        23: .line 2713
            aload 0 /* this */
            aload 3 /* targetNsVarName */
            aload 6 /* newNamespace */
            invokevirtual freemarker.core.Environment.setVariable:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
        24: .line 2714
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            aload 0 /* this */
            getfield freemarker.core.Environment.mainNamespace:Lfreemarker/core/Environment$Namespace;
            if_acmpne 26
        25: .line 2715
            aload 0 /* this */
            getfield freemarker.core.Environment.globalNamespace:Lfreemarker/core/Environment$Namespace;
            aload 3 /* targetNsVarName */
            aload 6 /* newNamespace */
            invokevirtual freemarker.core.Environment$Namespace.put:(Ljava/lang/String;Ljava/lang/Object;)V
        26: .line 2719
      StackMap locals: freemarker.core.Environment$Namespace
      StackMap stack:
            iload 4 /* lazyImport */
            ifne 28
        27: .line 2720
            aload 0 /* this */
            aload 6 /* newNamespace */
            aload 2 /* loadedTemplate */
            invokevirtual freemarker.core.Environment.initializeImportLibNamespace:(Lfreemarker/core/Environment$Namespace;Lfreemarker/template/Template;)V
        end local 6 // freemarker.core.Environment$Namespace newNamespace
        28: .line 2723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.loadedLibs:Ljava/util/HashMap;
            aload 1 /* templateName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core.Environment$Namespace
            areturn
        end local 5 // freemarker.core.Environment$Namespace existingNamespace
        end local 4 // boolean lazyImport
        end local 3 // java.lang.String targetNsVarName
        end local 2 // freemarker.template.Template loadedTemplate
        end local 1 // java.lang.String templateName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lfreemarker/core/Environment;
            0   29     1       templateName  Ljava/lang/String;
            0   29     2     loadedTemplate  Lfreemarker/template/Template;
            0   29     3    targetNsVarName  Ljava/lang/String;
            2    4     4         lazyImport  Z
            5   29     4         lazyImport  Z
            6    7     5                tnf  Lfreemarker/cache/TemplateNameFormat;
           10   29     5  existingNamespace  Lfreemarker/core/Environment$Namespace;
           21   28     6       newNamespace  Lfreemarker/core/Environment$Namespace;
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
                 Name  Flags
      templateName     
      loadedTemplate   final
      targetNsVarName  final

  private void initializeImportLibNamespace(freemarker.core.Environment$Namespace, freemarker.template.Template);
    descriptor: (Lfreemarker/core/Environment$Namespace;Lfreemarker/template/Template;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.Environment$Namespace newNamespace
        start local 2 // freemarker.template.Template loadedTemplate
         0: .line 2728
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            astore 3 /* prevNamespace */
        start local 3 // freemarker.core.Environment$Namespace prevNamespace
         1: .line 2729
            aload 0 /* this */
            aload 1 /* newNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
         2: .line 2730
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            astore 4 /* prevOut */
        start local 4 // java.io.Writer prevOut
         3: .line 2731
            aload 0 /* this */
            getstatic freemarker.template.utility.NullWriter.INSTANCE:Lfreemarker/template/utility/NullWriter;
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         4: .line 2733
            aload 0 /* this */
            aload 2 /* loadedTemplate */
            invokevirtual freemarker.core.Environment.include:(Lfreemarker/template/Template;)V
         5: .line 2734
            goto 10
      StackMap locals: freemarker.core.Environment freemarker.core.Environment$Namespace freemarker.template.Template freemarker.core.Environment$Namespace java.io.Writer
      StackMap stack: java.lang.Throwable
         6: astore 5
         7: .line 2735
            aload 0 /* this */
            aload 4 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         8: .line 2736
            aload 0 /* this */
            aload 3 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
         9: .line 2737
            aload 5
            athrow
        10: .line 2735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
        11: .line 2736
            aload 0 /* this */
            aload 3 /* prevNamespace */
            putfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
        12: .line 2738
            return
        end local 4 // java.io.Writer prevOut
        end local 3 // freemarker.core.Environment$Namespace prevNamespace
        end local 2 // freemarker.template.Template loadedTemplate
        end local 1 // freemarker.core.Environment$Namespace newNamespace
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lfreemarker/core/Environment;
            0   13     1    newNamespace  Lfreemarker/core/Environment$Namespace;
            0   13     2  loadedTemplate  Lfreemarker/template/Template;
            1   13     3   prevNamespace  Lfreemarker/core/Environment$Namespace;
            3   13     4         prevOut  Ljava/io/Writer;
      Exception table:
        from    to  target  type
           4     6       6  any
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
                Name  Flags
      newNamespace    final
      loadedTemplate  

  public java.lang.String toFullTemplateName(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String baseName
        start local 2 // java.lang.String targetName
         0: .line 2771
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
            ifne 1
            aload 1 /* baseName */
            ifnonnull 2
         1: .line 2772
      StackMap locals:
      StackMap stack:
            aload 2 /* targetName */
            areturn
         2: .line 2775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getTemplateNameFormat:()Lfreemarker/cache/TemplateNameFormat;
            aload 1 /* baseName */
            aload 2 /* targetName */
            invokestatic freemarker.cache._CacheAPI.toRootBasedName:(Lfreemarker/cache/TemplateNameFormat;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String targetName
        end local 1 // java.lang.String baseName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lfreemarker/core/Environment;
            0    3     1    baseName  Ljava/lang/String;
            0    3     2  targetName  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.MalformedTemplateNameException
    MethodParameters:
            Name  Flags
      baseName    
      targetName  

  public java.lang.String rootBasedToAbsoluteTemplateName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String rootBasedName
         0: .line 2794
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getTemplateNameFormat:()Lfreemarker/cache/TemplateNameFormat;
            aload 1 /* rootBasedName */
            invokestatic freemarker.cache._CacheAPI.rootBasedNameToAbsoluteName:(Lfreemarker/cache/TemplateNameFormat;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String rootBasedName
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lfreemarker/core/Environment;
            0    1     1  rootBasedName  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.MalformedTemplateNameException
    MethodParameters:
               Name  Flags
      rootBasedName  

  java.lang.String renderElementToString(freemarker.core.TemplateElement);
    descriptor: (Lfreemarker/core/TemplateElement;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.core.TemplateElement te
         0: .line 2798
            aload 0 /* this */
            getfield freemarker.core.Environment.out:Ljava/io/Writer;
            astore 2 /* prevOut */
        start local 2 // java.io.Writer prevOut
         1: .line 2800
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 3 /* sw */
        start local 3 // java.io.StringWriter sw
         2: .line 2801
            aload 0 /* this */
            aload 3 /* sw */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         3: .line 2802
            aload 0 /* this */
            aload 1 /* te */
            invokevirtual freemarker.core.Environment.visit:(Lfreemarker/core/TemplateElement;)V
         4: .line 2803
            aload 3 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            astore 5
         5: .line 2805
            aload 0 /* this */
            aload 2 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         6: .line 2803
            aload 5
            areturn
        end local 3 // java.io.StringWriter sw
         7: .line 2804
      StackMap locals: freemarker.core.Environment freemarker.core.TemplateElement java.io.Writer
      StackMap stack: java.lang.Throwable
            astore 4
         8: .line 2805
            aload 0 /* this */
            aload 2 /* prevOut */
            putfield freemarker.core.Environment.out:Ljava/io/Writer;
         9: .line 2806
            aload 4
            athrow
        end local 2 // java.io.Writer prevOut
        end local 1 // freemarker.core.TemplateElement te
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lfreemarker/core/Environment;
            0   10     1       te  Lfreemarker/core/TemplateElement;
            1   10     2  prevOut  Ljava/io/Writer;
            2    7     3       sw  Ljava/io/StringWriter;
      Exception table:
        from    to  target  type
           1     5       7  any
    Exceptions:
      throws java.io.IOException, freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      te    

  void importMacros(freemarker.template.Template);
    descriptor: (Lfreemarker/template/Template;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // freemarker.template.Template template
         0: .line 2810
            aload 1 /* template */
            invokevirtual freemarker.template.Template.getMacros:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         1: goto 3
         2: .line 2811
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast freemarker.core.Macro
            invokevirtual freemarker.core.Environment.visitMacroDef:(Lfreemarker/core/Macro;)V
         3: .line 2810
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 2 // java.util.Iterator it
         4: .line 2813
            return
        end local 1 // freemarker.template.Template template
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lfreemarker/core/Environment;
            0    5     1  template  Lfreemarker/template/Template;
            1    4     2        it  Ljava/util/Iterator;
    MethodParameters:
          Name  Flags
      template  

  public java.lang.String getNamespaceForPrefix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String prefix
         0: .line 2820
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            aload 1 /* prefix */
            invokevirtual freemarker.template.Template.getNamespaceForPrefix:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String prefix
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lfreemarker/core/Environment;
            0    1     1  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  

  public java.lang.String getPrefixForNamespace(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String nsURI
         0: .line 2824
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            aload 1 /* nsURI */
            invokevirtual freemarker.template.Template.getPrefixForNamespace:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String nsURI
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lfreemarker/core/Environment;
            0    1     1  nsURI  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      nsURI  

  public java.lang.String getDefaultNS();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 2831
            aload 0 /* this */
            getfield freemarker.core.Environment.currentNamespace:Lfreemarker/core/Environment$Namespace;
            invokevirtual freemarker.core.Environment$Namespace.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getDefaultNS:()Ljava/lang/String;
            areturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  public java.lang.Object __getitem__(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String key
         0: .line 2838
            invokestatic freemarker.ext.beans.BeansWrapper.getDefaultInstance:()Lfreemarker/ext/beans/BeansWrapper;
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual freemarker.core.Environment.getVariable:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            invokevirtual freemarker.ext.beans.BeansWrapper.unwrap:(Lfreemarker/template/TemplateModel;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String key
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;
            0    1     1   key  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      key   

  public void __setitem__(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object o
         0: .line 2845
            aload 0 /* this */
            aload 1 /* key */
            aload 0 /* this */
            invokevirtual freemarker.core.Environment.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            aload 2 /* o */
            invokeinterface freemarker.template.ObjectWrapper.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
            invokevirtual freemarker.core.Environment.setGlobalVariable:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)V
         1: .line 2846
            return
        end local 2 // java.lang.Object o
        end local 1 // java.lang.String key
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;
            0    2     1   key  Ljava/lang/String;
            0    2     2     o  Ljava/lang/Object;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      key   
      o     

  public java.lang.Object getCustomState(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.Object identityKey
         0: .line 2857
            aload 0 /* this */
            getfield freemarker.core.Environment.customStateVariables:Ljava/util/IdentityHashMap;
            ifnonnull 2
         1: .line 2858
            aconst_null
            areturn
         2: .line 2860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.Environment.customStateVariables:Ljava/util/IdentityHashMap;
            aload 1 /* identityKey */
            invokevirtual java.util.IdentityHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object identityKey
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lfreemarker/core/Environment;
            0    3     1  identityKey  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      identityKey  

  public java.lang.Object setCustomState(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // freemarker.core.Environment this
        start local 1 // java.lang.Object identityKey
        start local 2 // java.lang.Object value
         0: .line 2880
            aload 0 /* this */
            getfield freemarker.core.Environment.customStateVariables:Ljava/util/IdentityHashMap;
            astore 3 /* customStateVariables */
        start local 3 // java.util.IdentityHashMap customStateVariables
         1: .line 2881
            aload 3 /* customStateVariables */
            ifnonnull 4
         2: .line 2882
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 3 /* customStateVariables */
         3: .line 2883
            aload 0 /* this */
            aload 3 /* customStateVariables */
            putfield freemarker.core.Environment.customStateVariables:Ljava/util/IdentityHashMap;
         4: .line 2885
      StackMap locals: java.util.IdentityHashMap
      StackMap stack:
            aload 3 /* customStateVariables */
            aload 1 /* identityKey */
            aload 2 /* value */
            invokevirtual java.util.IdentityHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.util.IdentityHashMap customStateVariables
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object identityKey
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lfreemarker/core/Environment;
            0    5     1           identityKey  Ljava/lang/Object;
            0    5     2                 value  Ljava/lang/Object;
            1    5     3  customStateVariables  Ljava/util/IdentityHashMap<Ljava/lang/Object;Ljava/lang/Object;>;
    MethodParameters:
             Name  Flags
      identityKey  
      value        

  private boolean isBeforeIcI2322();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 3124
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_22:I
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;

  boolean isIcI2324OrLater();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 3128
            aload 0 /* this */
            getfield freemarker.core.Environment.configuration:Lfreemarker/template/Configuration;
            invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
            invokevirtual freemarker.template.Version.intValue:()I
            getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_24:I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/Environment;

  boolean getFastInvalidReferenceExceptions();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.Environment this
         0: .line 3135
            aload 0 /* this */
            getfield freemarker.core.Environment.fastInvalidReferenceExceptions:Z
            ireturn
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/Environment;

  boolean setFastInvalidReferenceExceptions(boolean);
    descriptor: (Z)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // freemarker.core.Environment this
        start local 1 // boolean b
         0: .line 3144
            aload 0 /* this */
            getfield freemarker.core.Environment.fastInvalidReferenceExceptions:Z
            istore 2 /* res */
        start local 2 // boolean res
         1: .line 3145
            aload 0 /* this */
            iload 1 /* b */
            putfield freemarker.core.Environment.fastInvalidReferenceExceptions:Z
         2: .line 3146
            iload 2 /* res */
            ireturn
        end local 2 // boolean res
        end local 1 // boolean b
        end local 0 // freemarker.core.Environment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/Environment;
            0    3     1     b  Z
            1    3     2   res  Z
    MethodParameters:
      Name  Flags
      b     
}
SourceFile: "Environment.java"
NestMembers:
  freemarker.core.Environment$1  freemarker.core.Environment$2  freemarker.core.Environment$3  freemarker.core.Environment$4  freemarker.core.Environment$5  freemarker.core.Environment$InitializationStatus  freemarker.core.Environment$LazilyInitializedNamespace  freemarker.core.Environment$Namespace  freemarker.core.Environment$NestedElementTemplateDirectiveBody
InnerClasses:
  Context = freemarker.core.BodyInstruction$Context of freemarker.core.BodyInstruction
  freemarker.core.Environment$1
  freemarker.core.Environment$2
  freemarker.core.Environment$3
  freemarker.core.Environment$4
  freemarker.core.Environment$5
  private final InitializationStatus = freemarker.core.Environment$InitializationStatus of freemarker.core.Environment
  LazilyInitializedNamespace = freemarker.core.Environment$LazilyInitializedNamespace of freemarker.core.Environment
  public Namespace = freemarker.core.Environment$Namespace of freemarker.core.Environment
  final NestedElementTemplateDirectiveBody = freemarker.core.Environment$NestedElementTemplateDirectiveBody of freemarker.core.Environment
  IterationContext = freemarker.core.IteratorBlock$IterationContext of freemarker.core.IteratorBlock
  Context = freemarker.core.Macro$Context of freemarker.core.Macro
  public Return = freemarker.core.ReturnInstruction$Return of freemarker.core.ReturnInstruction
  public abstract DateToISO8601CalendarFactory = freemarker.template.utility.DateUtil$DateToISO8601CalendarFactory of freemarker.template.utility.DateUtil
  public final TrivialDateToISO8601CalendarFactory = freemarker.template.utility.DateUtil$TrivialDateToISO8601CalendarFactory of freemarker.template.utility.DateUtil
  public abstract Entry = java.util.Map$Entry of java.util.Map