class org.springframework.boot.context.properties.ConfigurationPropertiesBinder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.boot.context.properties.ConfigurationPropertiesBinder
  super_class: java.lang.Object
{
  private static final java.lang.String BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.springframework.boot.context.internalConfigurationPropertiesBinder"

  private static final java.lang.String FACTORY_BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.springframework.boot.context.internalConfigurationPropertiesBinderFactory"

  private static final java.lang.String VALIDATOR_BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "configurationPropertiesValidator"

  private final org.springframework.context.ApplicationContext applicationContext;
    descriptor: Lorg/springframework/context/ApplicationContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.core.env.PropertySources propertySources;
    descriptor: Lorg/springframework/core/env/PropertySources;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.validation.Validator configurationPropertiesValidator;
    descriptor: Lorg/springframework/validation/Validator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private volatile org.springframework.validation.Validator jsr303Validator;
    descriptor: Lorg/springframework/validation/Validator;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile org.springframework.boot.context.properties.bind.Binder binder;
    descriptor: Lorg/springframework/boot/context/properties/bind/Binder;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  void <init>(org.springframework.context.ApplicationContext);
    descriptor: (Lorg/springframework/context/ApplicationContext;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.context.ApplicationContext applicationContext
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 0 /* this */
            aload 1 /* applicationContext */
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
         2: .line 82
            aload 0 /* this */
            new org.springframework.boot.context.properties.PropertySourcesDeducer
            dup
            aload 1 /* applicationContext */
            invokespecial org.springframework.boot.context.properties.PropertySourcesDeducer.<init>:(Lorg/springframework/context/ApplicationContext;)V
            invokevirtual org.springframework.boot.context.properties.PropertySourcesDeducer.getPropertySources:()Lorg/springframework/core/env/PropertySources;
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.propertySources:Lorg/springframework/core/env/PropertySources;
         3: .line 83
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* applicationContext */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getConfigurationPropertiesValidator:(Lorg/springframework/context/ApplicationContext;)Lorg/springframework/validation/Validator;
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.configurationPropertiesValidator:Lorg/springframework/validation/Validator;
         4: .line 84
            aload 0 /* this */
            aload 1 /* applicationContext */
            invokestatic org.springframework.boot.context.properties.ConfigurationPropertiesJsr303Validator.isJsr303Present:(Lorg/springframework/context/ApplicationContext;)Z
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.jsr303Present:Z
         5: .line 85
            return
        end local 1 // org.springframework.context.ApplicationContext applicationContext
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0    6     1  applicationContext  Lorg/springframework/context/ApplicationContext;
    MethodParameters:
                    Name  Flags
      applicationContext  

  org.springframework.boot.context.properties.bind.BindResult<?> bind(org.springframework.boot.context.properties.ConfigurationPropertiesBean);
    descriptor: (Lorg/springframework/boot/context/properties/ConfigurationPropertiesBean;)Lorg/springframework/boot/context/properties/bind/BindResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.boot.context.properties.ConfigurationPropertiesBean propertiesBean
         0: .line 88
            aload 1 /* propertiesBean */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBean.asBindTarget:()Lorg/springframework/boot/context/properties/bind/Bindable;
            astore 2 /* target */
        start local 2 // org.springframework.boot.context.properties.bind.Bindable target
         1: .line 89
            aload 1 /* propertiesBean */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBean.getAnnotation:()Lorg/springframework/boot/context/properties/ConfigurationProperties;
            astore 3 /* annotation */
        start local 3 // org.springframework.boot.context.properties.ConfigurationProperties annotation
         2: .line 90
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* annotation */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getBindHandler:(Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/ConfigurationProperties;)Lorg/springframework/boot/context/properties/bind/BindHandler;
            astore 4 /* bindHandler */
        start local 4 // org.springframework.boot.context.properties.bind.BindHandler bindHandler
         3: .line 91
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getBinder:()Lorg/springframework/boot/context/properties/bind/Binder;
            aload 3 /* annotation */
            invokeinterface org.springframework.boot.context.properties.ConfigurationProperties.prefix:()Ljava/lang/String;
            aload 2 /* target */
            aload 4 /* bindHandler */
            invokevirtual org.springframework.boot.context.properties.bind.Binder.bind:(Ljava/lang/String;Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/BindHandler;)Lorg/springframework/boot/context/properties/bind/BindResult;
            areturn
        end local 4 // org.springframework.boot.context.properties.bind.BindHandler bindHandler
        end local 3 // org.springframework.boot.context.properties.ConfigurationProperties annotation
        end local 2 // org.springframework.boot.context.properties.bind.Bindable target
        end local 1 // org.springframework.boot.context.properties.ConfigurationPropertiesBean propertiesBean
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0    4     1  propertiesBean  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBean;
            1    4     2          target  Lorg/springframework/boot/context/properties/bind/Bindable<*>;
            2    4     3      annotation  Lorg/springframework/boot/context/properties/ConfigurationProperties;
            3    4     4     bindHandler  Lorg/springframework/boot/context/properties/bind/BindHandler;
    Signature: (Lorg/springframework/boot/context/properties/ConfigurationPropertiesBean;)Lorg/springframework/boot/context/properties/bind/BindResult<*>;
    MethodParameters:
                Name  Flags
      propertiesBean  

  java.lang.Object bindOrCreate(org.springframework.boot.context.properties.ConfigurationPropertiesBean);
    descriptor: (Lorg/springframework/boot/context/properties/ConfigurationPropertiesBean;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.boot.context.properties.ConfigurationPropertiesBean propertiesBean
         0: .line 95
            aload 1 /* propertiesBean */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBean.asBindTarget:()Lorg/springframework/boot/context/properties/bind/Bindable;
            astore 2 /* target */
        start local 2 // org.springframework.boot.context.properties.bind.Bindable target
         1: .line 96
            aload 1 /* propertiesBean */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBean.getAnnotation:()Lorg/springframework/boot/context/properties/ConfigurationProperties;
            astore 3 /* annotation */
        start local 3 // org.springframework.boot.context.properties.ConfigurationProperties annotation
         2: .line 97
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* annotation */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getBindHandler:(Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/ConfigurationProperties;)Lorg/springframework/boot/context/properties/bind/BindHandler;
            astore 4 /* bindHandler */
        start local 4 // org.springframework.boot.context.properties.bind.BindHandler bindHandler
         3: .line 98
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getBinder:()Lorg/springframework/boot/context/properties/bind/Binder;
            aload 3 /* annotation */
            invokeinterface org.springframework.boot.context.properties.ConfigurationProperties.prefix:()Ljava/lang/String;
            aload 2 /* target */
            aload 4 /* bindHandler */
            invokevirtual org.springframework.boot.context.properties.bind.Binder.bindOrCreate:(Ljava/lang/String;Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/BindHandler;)Ljava/lang/Object;
            areturn
        end local 4 // org.springframework.boot.context.properties.bind.BindHandler bindHandler
        end local 3 // org.springframework.boot.context.properties.ConfigurationProperties annotation
        end local 2 // org.springframework.boot.context.properties.bind.Bindable target
        end local 1 // org.springframework.boot.context.properties.ConfigurationPropertiesBean propertiesBean
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0    4     1  propertiesBean  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBean;
            1    4     2          target  Lorg/springframework/boot/context/properties/bind/Bindable<*>;
            2    4     3      annotation  Lorg/springframework/boot/context/properties/ConfigurationProperties;
            3    4     4     bindHandler  Lorg/springframework/boot/context/properties/bind/BindHandler;
    MethodParameters:
                Name  Flags
      propertiesBean  

  private org.springframework.validation.Validator getConfigurationPropertiesValidator(org.springframework.context.ApplicationContext);
    descriptor: (Lorg/springframework/context/ApplicationContext;)Lorg/springframework/validation/Validator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.context.ApplicationContext applicationContext
         0: .line 102
            aload 1 /* applicationContext */
            ldc "configurationPropertiesValidator"
            invokeinterface org.springframework.context.ApplicationContext.containsBean:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 103
            aload 1 /* applicationContext */
            ldc "configurationPropertiesValidator"
            ldc Lorg/springframework/validation/Validator;
            invokeinterface org.springframework.context.ApplicationContext.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.validation.Validator
            areturn
         2: .line 105
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.springframework.context.ApplicationContext applicationContext
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0    3     1  applicationContext  Lorg/springframework/context/ApplicationContext;
    MethodParameters:
                    Name  Flags
      applicationContext  

  private <T> org.springframework.boot.context.properties.bind.BindHandler getBindHandler(org.springframework.boot.context.properties.bind.Bindable<T>, org.springframework.boot.context.properties.ConfigurationProperties);
    descriptor: (Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/ConfigurationProperties;)Lorg/springframework/boot/context/properties/bind/BindHandler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.boot.context.properties.bind.Bindable target
        start local 2 // org.springframework.boot.context.properties.ConfigurationProperties annotation
         0: .line 109
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getValidators:(Lorg/springframework/boot/context/properties/bind/Bindable;)Ljava/util/List;
            astore 3 /* validators */
        start local 3 // java.util.List validators
         1: .line 110
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getHandler:()Lorg/springframework/boot/context/properties/bind/handler/IgnoreTopLevelConverterNotFoundBindHandler;
            astore 4 /* handler */
        start local 4 // org.springframework.boot.context.properties.bind.BindHandler handler
         2: .line 111
            aload 2 /* annotation */
            invokeinterface org.springframework.boot.context.properties.ConfigurationProperties.ignoreInvalidFields:()Z
            ifeq 4
         3: .line 112
            new org.springframework.boot.context.properties.bind.handler.IgnoreErrorsBindHandler
            dup
            aload 4 /* handler */
            invokespecial org.springframework.boot.context.properties.bind.handler.IgnoreErrorsBindHandler.<init>:(Lorg/springframework/boot/context/properties/bind/BindHandler;)V
            astore 4 /* handler */
         4: .line 114
      StackMap locals: java.util.List org.springframework.boot.context.properties.bind.BindHandler
      StackMap stack:
            aload 2 /* annotation */
            invokeinterface org.springframework.boot.context.properties.ConfigurationProperties.ignoreUnknownFields:()Z
            ifne 7
         5: .line 115
            new org.springframework.boot.context.properties.source.UnboundElementsSourceFilter
            dup
            invokespecial org.springframework.boot.context.properties.source.UnboundElementsSourceFilter.<init>:()V
            astore 5 /* filter */
        start local 5 // org.springframework.boot.context.properties.source.UnboundElementsSourceFilter filter
         6: .line 116
            new org.springframework.boot.context.properties.bind.handler.NoUnboundElementsBindHandler
            dup
            aload 4 /* handler */
            aload 5 /* filter */
            invokespecial org.springframework.boot.context.properties.bind.handler.NoUnboundElementsBindHandler.<init>:(Lorg/springframework/boot/context/properties/bind/BindHandler;Ljava/util/function/Function;)V
            astore 4 /* handler */
        end local 5 // org.springframework.boot.context.properties.source.UnboundElementsSourceFilter filter
         7: .line 118
      StackMap locals:
      StackMap stack:
            aload 3 /* validators */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 9
         8: .line 119
            new org.springframework.boot.context.properties.bind.validation.ValidationBindHandler
            dup
            aload 4 /* handler */
            aload 3 /* validators */
            iconst_0
            anewarray org.springframework.validation.Validator
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.validation.Validator[]
            invokespecial org.springframework.boot.context.properties.bind.validation.ValidationBindHandler.<init>:(Lorg/springframework/boot/context/properties/bind/BindHandler;[Lorg/springframework/validation/Validator;)V
            astore 4 /* handler */
         9: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getBindHandlerAdvisors:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: org.springframework.boot.context.properties.ConfigurationPropertiesBinder org.springframework.boot.context.properties.bind.Bindable org.springframework.boot.context.properties.ConfigurationProperties java.util.List org.springframework.boot.context.properties.bind.BindHandler top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.boot.context.properties.ConfigurationPropertiesBindHandlerAdvisor
            astore 5 /* advisor */
        start local 5 // org.springframework.boot.context.properties.ConfigurationPropertiesBindHandlerAdvisor advisor
        11: .line 122
            aload 5 /* advisor */
            aload 4 /* handler */
            invokeinterface org.springframework.boot.context.properties.ConfigurationPropertiesBindHandlerAdvisor.apply:(Lorg/springframework/boot/context/properties/bind/BindHandler;)Lorg/springframework/boot/context/properties/bind/BindHandler;
            astore 4 /* handler */
        end local 5 // org.springframework.boot.context.properties.ConfigurationPropertiesBindHandlerAdvisor advisor
        12: .line 121
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 124
            aload 4 /* handler */
            areturn
        end local 4 // org.springframework.boot.context.properties.bind.BindHandler handler
        end local 3 // java.util.List validators
        end local 2 // org.springframework.boot.context.properties.ConfigurationProperties annotation
        end local 1 // org.springframework.boot.context.properties.bind.Bindable target
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0   14     1      target  Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;
            0   14     2  annotation  Lorg/springframework/boot/context/properties/ConfigurationProperties;
            1   14     3  validators  Ljava/util/List<Lorg/springframework/validation/Validator;>;
            2   14     4     handler  Lorg/springframework/boot/context/properties/bind/BindHandler;
            6    7     5      filter  Lorg/springframework/boot/context/properties/source/UnboundElementsSourceFilter;
           11   12     5     advisor  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBindHandlerAdvisor;
    Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;Lorg/springframework/boot/context/properties/ConfigurationProperties;)Lorg/springframework/boot/context/properties/bind/BindHandler;
    MethodParameters:
            Name  Flags
      target      
      annotation  

  private org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler getHandler();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/handler/IgnoreTopLevelConverterNotFoundBindHandler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 128
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            invokestatic org.springframework.boot.context.properties.BoundConfigurationProperties.get:(Lorg/springframework/context/ApplicationContext;)Lorg/springframework/boot/context/properties/BoundConfigurationProperties;
            astore 1 /* bound */
        start local 1 // org.springframework.boot.context.properties.BoundConfigurationProperties bound
         1: .line 129
            aload 1 /* bound */
            ifnull 3
         2: .line 130
            new org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler
            dup
            new org.springframework.boot.context.properties.bind.BoundPropertiesTrackingBindHandler
            dup
            aload 1 /* bound */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/springframework/boot/context/properties/BoundConfigurationProperties;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/springframework/boot/context/properties/BoundConfigurationProperties.add(Lorg/springframework/boot/context/properties/source/ConfigurationProperty;)V (5)
                  (Lorg/springframework/boot/context/properties/source/ConfigurationProperty;)V
            invokespecial org.springframework.boot.context.properties.bind.BoundPropertiesTrackingBindHandler.<init>:(Ljava/util/function/Consumer;)V
            invokespecial org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler.<init>:(Lorg/springframework/boot/context/properties/bind/BindHandler;)V
            goto 4
         3: .line 131
      StackMap locals: org.springframework.boot.context.properties.BoundConfigurationProperties
      StackMap stack:
            new org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler
            dup
            invokespecial org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler.<init>:()V
         4: .line 129
      StackMap locals:
      StackMap stack: org.springframework.boot.context.properties.bind.handler.IgnoreTopLevelConverterNotFoundBindHandler
            areturn
        end local 1 // org.springframework.boot.context.properties.BoundConfigurationProperties bound
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            1    5     1  bound  Lorg/springframework/boot/context/properties/BoundConfigurationProperties;

  private java.util.List<org.springframework.validation.Validator> getValidators(org.springframework.boot.context.properties.bind.Bindable<?>);
    descriptor: (Lorg/springframework/boot/context/properties/bind/Bindable;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
        start local 1 // org.springframework.boot.context.properties.bind.Bindable target
         0: .line 135
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* validators */
        start local 2 // java.util.List validators
         1: .line 136
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.configurationPropertiesValidator:Lorg/springframework/validation/Validator;
            ifnull 3
         2: .line 137
            aload 2 /* validators */
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.configurationPropertiesValidator:Lorg/springframework/validation/Validator;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 139
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.jsr303Present:Z
            ifeq 5
            aload 1 /* target */
            ldc Lorg/springframework/validation/annotation/Validated;
            invokevirtual org.springframework.boot.context.properties.bind.Bindable.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 5
         4: .line 140
            aload 2 /* validators */
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getJsr303Validator:()Lorg/springframework/validation/Validator;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            invokevirtual org.springframework.boot.context.properties.bind.Bindable.getValue:()Ljava/util/function/Supplier;
            ifnull 7
            aload 1 /* target */
            invokevirtual org.springframework.boot.context.properties.bind.Bindable.getValue:()Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            instanceof org.springframework.validation.Validator
            ifeq 7
         6: .line 143
            aload 2 /* validators */
            aload 1 /* target */
            invokevirtual org.springframework.boot.context.properties.bind.Bindable.getValue:()Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast org.springframework.validation.Validator
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 145
      StackMap locals:
      StackMap stack:
            aload 2 /* validators */
            areturn
        end local 2 // java.util.List validators
        end local 1 // org.springframework.boot.context.properties.bind.Bindable target
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            0    8     1      target  Lorg/springframework/boot/context/properties/bind/Bindable<*>;
            1    8     2  validators  Ljava/util/List<Lorg/springframework/validation/Validator;>;
    Signature: (Lorg/springframework/boot/context/properties/bind/Bindable<*>;)Ljava/util/List<Lorg/springframework/validation/Validator;>;
    MethodParameters:
        Name  Flags
      target  

  private org.springframework.validation.Validator getJsr303Validator();
    descriptor: ()Lorg/springframework/validation/Validator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 149
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.jsr303Validator:Lorg/springframework/validation/Validator;
            ifnonnull 2
         1: .line 150
            aload 0 /* this */
            new org.springframework.boot.context.properties.ConfigurationPropertiesJsr303Validator
            dup
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            invokespecial org.springframework.boot.context.properties.ConfigurationPropertiesJsr303Validator.<init>:(Lorg/springframework/context/ApplicationContext;)V
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.jsr303Validator:Lorg/springframework/validation/Validator;
         2: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.jsr303Validator:Lorg/springframework/validation/Validator;
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;

  private java.util.List<org.springframework.boot.context.properties.ConfigurationPropertiesBindHandlerAdvisor> getBindHandlerAdvisors();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 156
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            ldc Lorg/springframework/boot/context/properties/ConfigurationPropertiesBindHandlerAdvisor;
            invokeinterface org.springframework.context.ApplicationContext.getBeanProvider:(Ljava/lang/Class;)Lorg/springframework/beans/factory/ObjectProvider;
            invokeinterface org.springframework.beans.factory.ObjectProvider.orderedStream:()Ljava/util/stream/Stream;
         1: .line 157
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         2: .line 156
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
    Signature: ()Ljava/util/List<Lorg/springframework/boot/context/properties/ConfigurationPropertiesBindHandlerAdvisor;>;

  private org.springframework.boot.context.properties.bind.Binder getBinder();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/Binder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 161
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.binder:Lorg/springframework/boot/context/properties/bind/Binder;
            ifnonnull 5
         1: .line 162
            aload 0 /* this */
            new org.springframework.boot.context.properties.bind.Binder
            dup
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getConfigurationPropertySources:()Ljava/lang/Iterable;
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getPropertySourcesPlaceholdersResolver:()Lorg/springframework/boot/context/properties/bind/PropertySourcesPlaceholdersResolver;
         2: .line 163
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getConversionService:()Lorg/springframework/core/convert/ConversionService;
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder.getPropertyEditorInitializer:()Ljava/util/function/Consumer;
            aconst_null
         3: .line 164
            getstatic org.springframework.boot.context.properties.ConfigurationPropertiesBindConstructorProvider.INSTANCE:Lorg/springframework/boot/context/properties/ConfigurationPropertiesBindConstructorProvider;
            invokespecial org.springframework.boot.context.properties.bind.Binder.<init>:(Ljava/lang/Iterable;Lorg/springframework/boot/context/properties/bind/PlaceholdersResolver;Lorg/springframework/core/convert/ConversionService;Ljava/util/function/Consumer;Lorg/springframework/boot/context/properties/bind/BindHandler;Lorg/springframework/boot/context/properties/bind/BindConstructorProvider;)V
         4: .line 162
            putfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.binder:Lorg/springframework/boot/context/properties/bind/Binder;
         5: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.binder:Lorg/springframework/boot/context/properties/bind/Binder;
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;

  private java.lang.Iterable<org.springframework.boot.context.properties.source.ConfigurationPropertySource> getConfigurationPropertySources();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 170
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.propertySources:Lorg/springframework/core/env/PropertySources;
            invokestatic org.springframework.boot.context.properties.source.ConfigurationPropertySources.from:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
    Signature: ()Ljava/lang/Iterable<Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;>;

  private org.springframework.boot.context.properties.bind.PropertySourcesPlaceholdersResolver getPropertySourcesPlaceholdersResolver();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/PropertySourcesPlaceholdersResolver;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 174
            new org.springframework.boot.context.properties.bind.PropertySourcesPlaceholdersResolver
            dup
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.propertySources:Lorg/springframework/core/env/PropertySources;
            invokespecial org.springframework.boot.context.properties.bind.PropertySourcesPlaceholdersResolver.<init>:(Ljava/lang/Iterable;)V
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;

  private org.springframework.core.convert.ConversionService getConversionService();
    descriptor: ()Lorg/springframework/core/convert/ConversionService;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 178
            new org.springframework.boot.context.properties.ConversionServiceDeducer
            dup
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            invokespecial org.springframework.boot.context.properties.ConversionServiceDeducer.<init>:(Lorg/springframework/context/ApplicationContext;)V
            invokevirtual org.springframework.boot.context.properties.ConversionServiceDeducer.getConversionService:()Lorg/springframework/core/convert/ConversionService;
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;

  private java.util.function.Consumer<org.springframework.beans.PropertyEditorRegistry> getPropertyEditorInitializer();
    descriptor: ()Ljava/util/function/Consumer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
         0: .line 182
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            instanceof org.springframework.context.ConfigurableApplicationContext
            ifeq 2
         1: .line 183
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.ConfigurationPropertiesBinder.applicationContext:Lorg/springframework/context/ApplicationContext;
            checkcast org.springframework.context.ConfigurableApplicationContext
            invokeinterface org.springframework.context.ConfigurableApplicationContext.getBeanFactory:()Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/springframework/beans/factory/config/ConfigurableBeanFactory.copyRegisteredEditorsTo(Lorg/springframework/beans/PropertyEditorRegistry;)V (9 itf)
                  (Lorg/springframework/beans/PropertyEditorRegistry;)V
            areturn
         2: .line 185
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.springframework.boot.context.properties.ConfigurationPropertiesBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
    Signature: ()Ljava/util/function/Consumer<Lorg/springframework/beans/PropertyEditorRegistry;>;

  static void register(org.springframework.beans.factory.support.BeanDefinitionRegistry);
    descriptor: (Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
         0: .line 189
            aload 0 /* registry */
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinderFactory"
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.containsBeanDefinition:(Ljava/lang/String;)Z
            ifne 8
         1: .line 191
            ldc Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder$Factory;
         2: .line 192
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/boot/context/properties/ConfigurationPropertiesBinder$Factory.<init>()V (8)
                  ()Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder$Factory;
         3: .line 191
            invokestatic org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition:(Ljava/lang/Class;Ljava/util/function/Supplier;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
         4: .line 193
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.getBeanDefinition:()Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
         5: .line 190
            astore 1 /* definition */
        start local 1 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
         6: .line 194
            aload 1 /* definition */
            iconst_2
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setRole:(I)V
         7: .line 195
            aload 0 /* registry */
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinderFactory"
            aload 1 /* definition */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.registerBeanDefinition:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)V
        end local 1 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
         8: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* registry */
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinder"
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.containsBeanDefinition:(Ljava/lang/String;)Z
            ifne 16
         9: .line 199
            ldc Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
        10: .line 200
            aload 0 /* registry */
            invokedynamic get(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/boot/context/properties/ConfigurationPropertiesBinder.lambda$3(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder; (6)
                  ()Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
        11: .line 199
            invokestatic org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition:(Ljava/lang/Class;Ljava/util/function/Supplier;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
        12: .line 202
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.getBeanDefinition:()Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
        13: .line 198
            astore 1 /* definition */
        start local 1 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
        14: .line 203
            aload 1 /* definition */
            iconst_2
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setRole:(I)V
        15: .line 204
            aload 0 /* registry */
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinder"
            aload 1 /* definition */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.registerBeanDefinition:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)V
        end local 1 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
        16: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0    registry  Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;
            6    8     1  definition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
           14   16     1  definition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    MethodParameters:
          Name  Flags
      registry  

  static org.springframework.boot.context.properties.ConfigurationPropertiesBinder get(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 209
            aload 0 /* beanFactory */
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinder"
            ldc Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.boot.context.properties.ConfigurationPropertiesBinder
            areturn
        end local 0 // org.springframework.beans.factory.BeanFactory beanFactory
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    MethodParameters:
             Name  Flags
      beanFactory  

  private static org.springframework.boot.context.properties.ConfigurationPropertiesBinder lambda$3(org.springframework.beans.factory.support.BeanDefinitionRegistry);
    descriptor: (Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 200
            aload 0
            checkcast org.springframework.beans.factory.BeanFactory
         1: .line 201
            ldc "org.springframework.boot.context.internalConfigurationPropertiesBinderFactory"
            ldc Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder$Factory;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.boot.context.properties.ConfigurationPropertiesBinder$Factory
            invokevirtual org.springframework.boot.context.properties.ConfigurationPropertiesBinder$Factory.create:()Lorg/springframework/boot/context/properties/ConfigurationPropertiesBinder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ConfigurationPropertiesBinder.java"
NestMembers:
  org.springframework.boot.context.properties.ConfigurationPropertiesBinder$Factory
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  Factory = org.springframework.boot.context.properties.ConfigurationPropertiesBinder$Factory of org.springframework.boot.context.properties.ConfigurationPropertiesBinder