package com.l7tech.server.policy.variable;

import com.l7tech.gateway.common.siteminder.SiteMinderContext;
import com.l7tech.gateway.common.siteminder.SiteMinderContext.Attribute;
import com.l7tech.gateway.common.siteminder.SiteMinderContext.AuthenticationScheme;
import com.l7tech.policy.variable.Syntax.SyntaxErrorHandler;
import com.l7tech.util.HexUtils;
import com.l7tech.util.Functions.Unary;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;

public class SiteMinderContextSelector implements ExpandVariables.Selector<SiteMinderContext> {
   protected static final Pattern ATTRUBUTES_PATTERN;
   protected static final Pattern AUTHSCHEME_PATTERN;
   protected static final Pattern REALMDEF_PATTERN;
   protected static final Pattern RESDEF_PATTERN;
   protected static final Pattern SESSDEF_PATTERN;
   private static final String[] a;

   public ExpandVariables.Selector.Selection select(String param1, SiteMinderContext param2, String param3, SyntaxErrorHandler param4, boolean param5) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 3
      // 001: invokevirtual java/lang/String.toLowerCase ()Ljava/lang/String;
      // 004: astore 6
      // 006: aconst_null
      // 007: aload 2
      // 008: if_acmpne 011
      // 00b: aconst_null
      // 00c: areturn
      // 00d: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 010: athrow
      // 011: aload 2
      // 012: astore 7
      // 014: aload 6
      // 016: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 019: astore 13
      // 01b: aload 13
      // 01d: bipush 7
      // 01f: aaload
      // 020: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 023: ifeq 1c7
      // 026: aload 0
      // 027: aload 7
      // 029: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Lcom/l7tech/gateway/common/siteminder/SiteMinderContext;)Ljava/util/List;
      // 02c: astore 8
      // 02e: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.ATTRUBUTES_PATTERN Ljava/util/regex/Pattern;
      // 031: aload 6
      // 033: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 036: astore 9
      // 038: aload 9
      // 03a: invokevirtual java/util/regex/Matcher.find ()Z
      // 03d: ifeq 1c4
      // 040: aload 9
      // 042: bipush 1
      // 043: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 046: invokestatic org/apache/commons/lang3/StringUtils.isNotEmpty (Ljava/lang/CharSequence;)Z
      // 049: ifeq 0e2
      // 04c: goto 053
      // 04f: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 052: athrow
      // 053: aload 9
      // 055: bipush 3
      // 056: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 059: invokestatic org/apache/commons/lang3/StringUtils.isNotEmpty (Ljava/lang/CharSequence;)Z
      // 05c: ifeq 1c4
      // 05f: goto 066
      // 062: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 065: athrow
      // 066: aload 8
      // 068: aload 9
      // 06a: aload 4
      // 06c: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/util/List;Ljava/util/regex/Matcher;Lcom/l7tech/policy/variable/Syntax$SyntaxErrorHandler;)Ljava/lang/Object;
      // 06f: checkcast com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute
      // 072: astore 10
      // 074: aload 9
      // 076: bipush 3
      // 077: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 07a: bipush 1
      // 07b: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 07e: astore 11
      // 080: aload 11
      // 082: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 085: bipush 23
      // 087: aaload
      // 088: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 08b: ifeq 09f
      // 08e: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 091: dup
      // 092: aload 10
      // 094: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getName ()Ljava/lang/String;
      // 097: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 09a: areturn
      // 09b: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 09e: athrow
      // 09f: aload 11
      // 0a1: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 0a4: bipush 2
      // 0a5: aaload
      // 0a6: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a9: ifeq 0bd
      // 0ac: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 0af: dup
      // 0b0: aload 10
      // 0b2: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getValue ()Ljava/lang/Object;
      // 0b5: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 0b8: areturn
      // 0b9: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 0bc: athrow
      // 0bd: aload 11
      // 0bf: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 0c2: bipush 22
      // 0c4: aaload
      // 0c5: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0c8: ifeq 0e0
      // 0cb: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 0ce: dup
      // 0cf: aload 0
      // 0d0: aload 10
      // 0d2: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getValue ()Ljava/lang/Object;
      // 0d5: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/Object;)Ljava/lang/String;
      // 0d8: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 0db: areturn
      // 0dc: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 0df: athrow
      // 0e0: aconst_null
      // 0e1: areturn
      // 0e2: aload 6
      // 0e4: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 0e7: bipush 6
      // 0e9: aaload
      // 0ea: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0ed: ifeq 106
      // 0f0: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 0f3: dup
      // 0f4: aload 8
      // 0f6: invokeinterface java/util/List.size ()I 1
      // 0fb: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 0fe: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 101: areturn
      // 102: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 105: athrow
      // 106: aload 6
      // 108: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 10b: bipush 19
      // 10d: aaload
      // 10e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 111: ifeq 12f
      // 114: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 117: dup
      // 118: aload 8
      // 11a: aload 3
      // 11b: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 11e: bipush 19
      // 120: aaload
      // 121: invokevirtual java/lang/String.length ()I
      // 124: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 127: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;Ljava/lang/String;)V
      // 12a: areturn
      // 12b: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 12e: athrow
      // 12f: aload 6
      // 131: invokevirtual java/lang/String.length ()I
      // 134: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 137: astore 13
      // 139: aload 13
      // 13b: bipush 19
      // 13d: aaload
      // 13e: invokevirtual java/lang/String.length ()I
      // 141: bipush 1
      // 142: iadd
      // 143: if_icmple 1c4
      // 146: aload 6
      // 148: aload 13
      // 14a: bipush 19
      // 14c: aaload
      // 14d: invokevirtual java/lang/String.length ()I
      // 150: bipush 1
      // 151: iadd
      // 152: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 155: astore 10
      // 157: aload 8
      // 159: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 15e: astore 11
      // 160: aload 11
      // 162: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 167: ifeq 1c4
      // 16a: aload 11
      // 16c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 171: checkcast com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute
      // 174: astore 12
      // 176: aload 10
      // 178: aload 12
      // 17a: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getName ()Ljava/lang/String;
      // 17d: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 180: bipush 11
      // 182: aaload
      // 183: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 188: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 18b: ifeq 1a3
      // 18e: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 191: dup
      // 192: aload 0
      // 193: aload 12
      // 195: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getValue ()Ljava/lang/Object;
      // 198: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/Object;)Ljava/lang/String;
      // 19b: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 19e: areturn
      // 19f: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 1a2: athrow
      // 1a3: aload 10
      // 1a5: aload 12
      // 1a7: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getName ()Ljava/lang/String;
      // 1aa: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 1ad: ifeq 1c1
      // 1b0: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 1b3: dup
      // 1b4: aload 12
      // 1b6: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.getValue ()Ljava/lang/Object;
      // 1b9: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 1bc: areturn
      // 1bd: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 1c0: athrow
      // 1c1: goto 160
      // 1c4: goto 339
      // 1c7: aload 6
      // 1c9: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 1cc: bipush 25
      // 1ce: aaload
      // 1cf: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1d2: ifeq 1e6
      // 1d5: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 1d8: dup
      // 1d9: aload 7
      // 1db: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext.getSsoToken ()Ljava/lang/String;
      // 1de: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 1e1: areturn
      // 1e2: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 1e5: athrow
      // 1e6: aload 6
      // 1e8: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 1eb: bipush 21
      // 1ed: aaload
      // 1ee: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1f1: ifeq 205
      // 1f4: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 1f7: dup
      // 1f8: aload 7
      // 1fa: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext.getTransactionId ()Ljava/lang/String;
      // 1fd: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 200: areturn
      // 201: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 204: athrow
      // 205: aload 6
      // 207: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 20a: bipush 3
      // 20b: aaload
      // 20c: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 20f: ifeq 223
      // 212: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 215: dup
      // 216: aload 7
      // 218: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext.getSourceIpAddress ()Ljava/lang/String;
      // 21b: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 21e: areturn
      // 21f: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 222: athrow
      // 223: aload 6
      // 225: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 228: astore 13
      // 22a: aload 13
      // 22c: bipush 4
      // 22d: aaload
      // 22e: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 231: ifeq 2b9
      // 234: aload 7
      // 236: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext.getAuthSchemes ()Ljava/util/List;
      // 239: astore 8
      // 23b: aload 6
      // 23d: aload 13
      // 23f: bipush 0
      // 240: aaload
      // 241: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 244: ifeq 25d
      // 247: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 24a: dup
      // 24b: aload 8
      // 24d: invokeinterface java/util/List.size ()I 1
      // 252: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 255: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 258: areturn
      // 259: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 25c: athrow
      // 25d: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.AUTHSCHEME_PATTERN Ljava/util/regex/Pattern;
      // 260: aload 6
      // 262: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 265: astore 9
      // 267: aload 9
      // 269: invokevirtual java/util/regex/Matcher.find ()Z
      // 26c: ifeq 2b6
      // 26f: aload 9
      // 271: bipush 2
      // 272: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 275: invokestatic org/apache/commons/lang3/StringUtils.isNotEmpty (Ljava/lang/CharSequence;)Z
      // 278: ifeq 29d
      // 27b: goto 282
      // 27e: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 281: athrow
      // 282: aload 8
      // 284: aload 9
      // 286: aload 4
      // 288: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/util/List;Ljava/util/regex/Matcher;Lcom/l7tech/policy/variable/Syntax$SyntaxErrorHandler;)Ljava/lang/Object;
      // 28b: checkcast com/l7tech/gateway/common/siteminder/SiteMinderContext$AuthenticationScheme
      // 28e: astore 10
      // 290: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 293: dup
      // 294: aload 10
      // 296: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext$AuthenticationScheme.toString ()Ljava/lang/String;
      // 299: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 29c: areturn
      // 29d: aload 9
      // 29f: bipush 1
      // 2a0: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 2a3: invokestatic org/apache/commons/lang3/StringUtils.isEmpty (Ljava/lang/CharSequence;)Z
      // 2a6: ifeq 2b6
      // 2a9: aload 0
      // 2aa: aload 6
      // 2ac: aload 8
      // 2ae: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/String;Ljava/util/List;)Lcom/l7tech/server/policy/variable/ExpandVariables$Selector$Selection;
      // 2b1: areturn
      // 2b2: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 2b5: athrow
      // 2b6: goto 339
      // 2b9: aload 6
      // 2bb: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 2be: bipush 1
      // 2bf: aaload
      // 2c0: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 2c3: ifeq 2de
      // 2c6: aload 0
      // 2c7: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.REALMDEF_PATTERN Ljava/util/regex/Pattern;
      // 2ca: aload 6
      // 2cc: new com/l7tech/server/policy/variable/fs
      // 2cf: dup
      // 2d0: aload 0
      // 2d1: aload 7
      // 2d3: invokespecial com/l7tech/server/policy/variable/fs.<init> (Lcom/l7tech/server/policy/variable/SiteMinderContextSelector;Lcom/l7tech/gateway/common/siteminder/SiteMinderContext;)V
      // 2d6: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/util/regex/Pattern;Ljava/lang/String;Lcom/l7tech/util/Functions$Unary;)Lcom/l7tech/server/policy/variable/ExpandVariables$Selector$Selection;
      // 2d9: areturn
      // 2da: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 2dd: athrow
      // 2de: aload 6
      // 2e0: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 2e3: bipush 13
      // 2e5: aaload
      // 2e6: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 2e9: ifeq 304
      // 2ec: aload 0
      // 2ed: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.RESDEF_PATTERN Ljava/util/regex/Pattern;
      // 2f0: aload 6
      // 2f2: new com/l7tech/server/policy/variable/ft
      // 2f5: dup
      // 2f6: aload 0
      // 2f7: aload 7
      // 2f9: invokespecial com/l7tech/server/policy/variable/ft.<init> (Lcom/l7tech/server/policy/variable/SiteMinderContextSelector;Lcom/l7tech/gateway/common/siteminder/SiteMinderContext;)V
      // 2fc: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/util/regex/Pattern;Ljava/lang/String;Lcom/l7tech/util/Functions$Unary;)Lcom/l7tech/server/policy/variable/ExpandVariables$Selector$Selection;
      // 2ff: areturn
      // 300: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 303: athrow
      // 304: aload 6
      // 306: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a [Ljava/lang/String;
      // 309: bipush 17
      // 30b: aaload
      // 30c: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 30f: ifeq 339
      // 312: aload 7
      // 314: invokevirtual com/l7tech/gateway/common/siteminder/SiteMinderContext.getSessionDef ()Lcom/l7tech/gateway/common/siteminder/SiteMinderContext$SessionDef;
      // 317: astore 8
      // 319: aconst_null
      // 31a: aload 8
      // 31c: if_acmpne 325
      // 31f: aconst_null
      // 320: areturn
      // 321: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 324: athrow
      // 325: aload 0
      // 326: getstatic com/l7tech/server/policy/variable/SiteMinderContextSelector.SESSDEF_PATTERN Ljava/util/regex/Pattern;
      // 329: aload 6
      // 32b: new com/l7tech/server/policy/variable/fu
      // 32e: dup
      // 32f: aload 0
      // 330: aload 8
      // 332: invokespecial com/l7tech/server/policy/variable/fu.<init> (Lcom/l7tech/server/policy/variable/SiteMinderContextSelector;Lcom/l7tech/gateway/common/siteminder/SiteMinderContext$SessionDef;)V
      // 335: invokevirtual com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/util/regex/Pattern;Ljava/lang/String;Lcom/l7tech/util/Functions$Unary;)Lcom/l7tech/server/policy/variable/ExpandVariables$Selector$Selection;
      // 338: areturn
      // 339: aconst_null
      // 33a: areturn
      // try (3 -> 8): 8 java/lang/NumberFormatException
      // try (28 -> 36): 37 java/lang/NumberFormatException
      // try (31 -> 44): 45 java/lang/NumberFormatException
      // try (59 -> 71): 71 java/lang/NumberFormatException
      // try (73 -> 85): 85 java/lang/NumberFormatException
      // try (87 -> 101): 101 java/lang/NumberFormatException
      // try (105 -> 118): 118 java/lang/NumberFormatException
      // try (120 -> 137): 137 java/lang/NumberFormatException
      // try (169 -> 186): 186 java/lang/NumberFormatException
      // try (188 -> 199): 199 java/lang/NumberFormatException
      // try (203 -> 215): 215 java/lang/NumberFormatException
      // try (217 -> 229): 229 java/lang/NumberFormatException
      // try (231 -> 243): 243 java/lang/NumberFormatException
      // try (256 -> 269): 269 java/lang/NumberFormatException
      // try (275 -> 283): 284 java/lang/NumberFormatException
      // try (298 -> 308): 308 java/lang/NumberFormatException
      // try (311 -> 327): 327 java/lang/NumberFormatException
      // try (329 -> 345): 345 java/lang/NumberFormatException
      // try (356 -> 361): 361 java/lang/NumberFormatException
   }

   private List<Attribute> a(SiteMinderContext var1) {
      List var10000;
      label26: {
         try {
            if (null != var1.getAttrList()) {
               var10000 = new ArrayList(var1.getAttrList());
               break label26;
            }
         } catch (NumberFormatException var4) {
            throw a(var4);
         }

         var10000 = Collections.EMPTY_LIST;
      }

      List var2 = var10000;

      try {
         if (null != var1.getSessionDef()) {
            var2.add(new Attribute(a[9], var1.getSessionDef().getId()));
            var2.add(new Attribute(a[10], var1.getSessionDef().getSpec()));
            var2.add(new Attribute(a[26], var1.getSessionDef().getSessionStartTime()));
            var2.add(new Attribute(a[24], var1.getSessionDef().getSessionLastTime()));
            var2.add(new Attribute(a[20], var1.getSessionDef().getMaxTimeout()));
            var2.add(new Attribute(a[15], var1.getSessionDef().getIdleTimeout()));
            var2.add(new Attribute(a[8], var1.getSessionDef().getCurrentServerTime()));
         }

         return var2;
      } catch (NumberFormatException var3) {
         throw a(var3);
      }
   }

   private ExpandVariables.Selector.Selection a(Pattern var1, String var2, Unary<ExpandVariables.Selector.Selection, String> var3) {
      Matcher var4 = var1.matcher(var2);
      if (var4.find()) {
         String var5 = var4.group(1);

         try {
            if (StringUtils.isNotEmpty(var5)) {
               return (ExpandVariables.Selector.Selection)var3.call(var5);
            }
         } catch (NumberFormatException var6) {
            throw a(var6);
         }
      }

      return null;
   }

   private ExpandVariables.Selector.Selection a(String var1, List<AuthenticationScheme> var2) {
      ArrayList var3 = new ArrayList(var2.size());

      for (AuthenticationScheme var5 : var2) {
         var3.add(var5.toString());
      }

      return new ExpandVariables.Selector.Selection(var3, var1.substring(a[5].length()));
   }

   private static <T> T a(List<T> param0, Matcher param1, SyntaxErrorHandler param2) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aconst_null
      // 01: astore 3
      // 02: aload 1
      // 03: bipush 2
      // 04: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 07: invokestatic java/lang/Integer.parseInt (Ljava/lang/String;)I
      // 0a: istore 4
      // 0c: goto 25
      // 0f: astore 5
      // 11: new java/lang/RuntimeException
      // 14: dup
      // 15: aload 2
      // 16: aload 1
      // 17: invokevirtual java/util/regex/Matcher.group ()Ljava/lang/String;
      // 1a: aload 5
      // 1c: invokeinterface com/l7tech/policy/variable/Syntax$SyntaxErrorHandler.handleBadVariable (Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/String; 3
      // 21: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 24: athrow
      // 25: aconst_null
      // 26: aload 0
      // 27: if_acmpeq 63
      // 2a: iload 4
      // 2c: aload 0
      // 2d: invokeinterface java/util/List.size ()I 1
      // 32: if_icmplt 5a
      // 35: goto 3c
      // 38: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 3b: athrow
      // 3c: new java/lang/RuntimeException
      // 3f: dup
      // 40: aload 2
      // 41: iload 4
      // 43: aload 1
      // 44: invokevirtual java/util/regex/Matcher.group ()Ljava/lang/String;
      // 47: aload 0
      // 48: invokeinterface java/util/List.size ()I 1
      // 4d: invokeinterface com/l7tech/policy/variable/Syntax$SyntaxErrorHandler.handleSubscriptOutOfRange (ILjava/lang/String;I)Ljava/lang/String; 4
      // 52: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 55: athrow
      // 56: invokestatic com/l7tech/server/policy/variable/SiteMinderContextSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 59: athrow
      // 5a: aload 0
      // 5b: iload 4
      // 5d: invokeinterface java/util/List.get (I)Ljava/lang/Object; 2
      // 62: astore 3
      // 63: aload 3
      // 64: areturn
      // try (2 -> 7): 8 java/lang/NumberFormatException
      // try (18 -> 25): 26 java/lang/NumberFormatException
      // try (21 -> 39): 39 java/lang/NumberFormatException
   }

   private String a(Object var1) {
      try {
         if (var1.getClass().isAssignableFrom(byte[].class)) {
            return HexUtils.hexDump((byte[])var1);
         }
      } catch (NumberFormatException var4) {
         throw a(var4);
      }

      try {
         if (var1.getClass().isAssignableFrom(int.class)) {
            return Integer.toString((Integer)var1);
         }
      } catch (NumberFormatException var2) {
         throw a(var2);
      }

      try {
         if (var1.getClass().isAssignableFrom(String.class)) {
            return (String)var1;
         }
      } catch (NumberFormatException var3) {
         throw a(var3);
      }

      return var1.toString();
   }

   @Override
   public Class<SiteMinderContext> getContextObjectClass() {
      return SiteMinderContext.class;
   }

   static {
      String[] var5 = new String[28];
      int var3 = 0;
      String var2 = "'\u0007z\u001e#c4#\u001fk\u0005~l9(\u0015z\u001e\b4\u0017o\u001a=d9 \u00050\u0013b\u00035\u000f5\u001d{\u00043e56\u0013j\u0012\"e/5\u000b'\u0007z\u001e#c4#\u001fk\u0005\u000b'\u0007z\u001e#c4#\u001fk\u0005\u0011'\u0006z\u00049b)2\u0017}X<e2!\u0006f\n'\u0006z\u00049b)2\u0017}\u0016\u0007&Z$\u000fC\t\u0014 K8\u0004S\u0019\u0014$K$\u0004I\u0011\u0003\u000e\u0007&Z$\u000fS\u0019\u0015!G9\u001eI\u0018\u0010\u0007&Z$\u000fS\u0019\u0015!G9\u001eS\f\u00031\th\u0006a%$r5(\u0015\u000e5\u0017}\u00054e:\u001a\\&*'+u\u000b4\u0017}\u0019%r?#\u0016k\u0010!'\u0006z\u00049b)2\u0017}^\f.t\u001a\u0016%_x(\u0000h.y\ra,!oX'_o\u0017\u0007&Z$\u000fI\u0018\n7]3\u0003S\u0015\t<Z?\u001dE\u0013\u0013&\u000f4\u0017o\u001a=d9 . ^\fwwo\u00075\u0017}\u00054e:\u0017'\u0007z\u001e#c4#\u001fk\u0005x\\\u0007n.j]y\\\u0001oM\n'\u0006z\u00049b)2\u0017}\u0016\u0007&Z$\u000fM\u001d\u001e!K%\u0003I\u0013\b&G;\u0015O\t\u0012\r2\u0000o\u0018#a?2\u001ba\u00189d\u000e0\u0013b\u00035.()\u0001z\u00049n;\u0004(\u0013c\u0013\u0014\u0007&Z$\u000fL\u001d\u0015&]3\u0003S\u0015\t<Z?\u001dE\b5\u0001a\u0002?k9(";
      int var4 = "'\u0007z\u001e#c4#\u001fk\u0005~l9(\u0015z\u001e\b4\u0017o\u001a=d9 \u00050\u0013b\u00035\u000f5\u001d{\u00043e56\u0013j\u0012\"e/5\u000b'\u0007z\u001e#c4#\u001fk\u0005\u000b'\u0007z\u001e#c4#\u001fk\u0005\u0011'\u0006z\u00049b)2\u0017}X<e2!\u0006f\n'\u0006z\u00049b)2\u0017}\u0016\u0007&Z$\u000fC\t\u0014 K8\u0004S\u0019\u0014$K$\u0004I\u0011\u0003\u000e\u0007&Z$\u000fS\u0019\u0015!G9\u001eI\u0018\u0010\u0007&Z$\u000fS\u0019\u0015!G9\u001eS\f\u00031\th\u0006a%$r5(\u0015\u000e5\u0017}\u00054e:\u001a\\&*'+u\u000b4\u0017}\u0019%r?#\u0016k\u0010!'\u0006z\u00049b)2\u0017}^\f.t\u001a\u0016%_x(\u0000h.y\ra,!oX'_o\u0017\u0007&Z$\u000fI\u0018\n7]3\u0003S\u0015\t<Z?\u001dE\u0013\u0013&\u000f4\u0017o\u001a=d9 . ^\fwwo\u00075\u0017}\u00054e:\u0017'\u0007z\u001e#c4#\u001fk\u0005x\\\u0007n.j]y\\\u0001oM\n'\u0006z\u00049b)2\u0017}\u0016\u0007&Z$\u000fM\u001d\u001e!K%\u0003I\u0013\b&G;\u0015O\t\u0012\r2\u0000o\u0018#a?2\u001ba\u00189d\u000e0\u0013b\u00035.()\u0001z\u00049n;\u0004(\u0013c\u0013\u0014\u0007&Z$\u000fL\u001d\u0015&]3\u0003S\u0015\t<Z?\u001dE\b5\u0001a\u0002?k9("
         .length();
      char var1 = 18;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 75;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     String[] var8 = a;
                     ATTRUBUTES_PATTERN = Pattern.compile(var8[14]);
                     AUTHSCHEME_PATTERN = Pattern.compile(var8[18]);
                     REALMDEF_PATTERN = Pattern.compile(var8[16]);
                     RESDEF_PATTERN = Pattern.compile(var8[27]);
                     SESSDEF_PATTERN = Pattern.compile(var8[12]);
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var9;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "_~\u0002|W\u000bP_x\u0002}M\u000bWWe\u0018zA\u0015A\u0012lO%A}*g{N3HTv,B]}\u0007";
                  var4 = "_~\u0002|W\u000bP_x\u0002}M\u000bWWe\u0018zA\u0015A\u0012lO%A}*g{N3HTv,B]}\u0007".length();
                  var1 = 21;
                  var7 = -1;
            }

            var10000 = 19;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static NumberFormatException a(NumberFormatException var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 23);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 13;
            case 1 -> 57;
            case 2 -> 69;
            case 3 -> 61;
            case 4 -> 27;
            case 5 -> 75;
            default -> 23;
         });
      }

      return new String(var10001).intern();
   }
}
