class com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet implements java.util.Set<K>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet
  super_class: java.lang.Object
{
  final com.sun.javafx.collections.ObservableMapWrapper this$0;
    descriptor: Lcom/sun/javafx/collections/ObservableMapWrapper;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(com.sun.javafx.collections.ObservableMapWrapper);
    descriptor: (Lcom/sun/javafx/collections/ObservableMapWrapper;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 246
            aload 0 /* this */
            aload 1
            putfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
    MethodParameters:
        Name  Flags
      this$0  final

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 250
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 255
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ireturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  public boolean contains(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.lang.Object o
         0: .line 260
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* o */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public java.util.Iterator<K> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 265
            new com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet$1
            dup
            aload 0 /* this */
            invokespecial com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet$1.<init>:(Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;)V
            areturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
    Signature: ()Ljava/util/Iterator<TK;>;

  public java.lang.Object[] toArray();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 294
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            areturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  public <T> T[] toArray();
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.lang.Object[] a
         0: .line 299
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* a */
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object[] a
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     a  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;)[TT;
    MethodParameters:
      Name  Flags
      a     

  public boolean add();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.lang.Object e
         0: .line 304
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Object e
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     e  TK;
    Signature: (TK;)Z
    MethodParameters:
      Name  Flags
      e     

  public boolean remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.lang.Object o
         0: .line 309
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            aload 1 /* o */
            invokevirtual com.sun.javafx.collections.ObservableMapWrapper.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    2     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public boolean containsAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.util.Collection c
         0: .line 314
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* c */
            invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
            ireturn
        end local 1 // java.util.Collection c
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     c  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  public boolean addAll(java.util.Collection<? extends K>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.util.Collection c
         0: .line 319
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.util.Collection c
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     c  Ljava/util/Collection<+TK;>;
    Signature: (Ljava/util/Collection<+TK;>;)Z
    MethodParameters:
      Name  Flags
      c     

  public boolean retainAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.util.Collection c
         0: .line 324
            aload 0 /* this */
            aload 1 /* c */
            iconst_0
            invokevirtual com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.removeRetain:(Ljava/util/Collection;Z)Z
            ireturn
        end local 1 // java.util.Collection c
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     c  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  private boolean removeRetain(java.util.Collection<?>, );
    descriptor: (Ljava/util/Collection;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=8, args_size=3
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.util.Collection c
        start local 2 // boolean remove
         0: .line 328
            iconst_0
            istore 3 /* removed */
        start local 3 // boolean removed
         1: .line 329
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* i */
        start local 4 // java.util.Iterator i
         2: goto 10
         3: .line 330
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 4 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* e */
        start local 5 // java.util.Map$Entry e
         4: .line 331
            iload 2 /* remove */
            aload 1 /* c */
            aload 5 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            if_icmpne 10
         5: .line 332
            iconst_1
            istore 3 /* removed */
         6: .line 333
            aload 5 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            astore 6 /* key */
        start local 6 // java.lang.Object key
         7: .line 334
            aload 5 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            astore 7 /* value */
        start local 7 // java.lang.Object value
         8: .line 335
            aload 4 /* i */
            invokeinterface java.util.Iterator.remove:()V
         9: .line 336
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            new com.sun.javafx.collections.ObservableMapWrapper$SimpleChange
            dup
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            aload 6 /* key */
            aload 7 /* value */
            aconst_null
            iconst_0
            iconst_1
            invokespecial com.sun.javafx.collections.ObservableMapWrapper$SimpleChange.<init>:(Lcom/sun/javafx/collections/ObservableMapWrapper;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZZ)V
            invokevirtual com.sun.javafx.collections.ObservableMapWrapper.callObservers:(Ljavafx/collections/MapChangeListener$Change;)V
        end local 7 // java.lang.Object value
        end local 6 // java.lang.Object key
        end local 5 // java.util.Map$Entry e
        10: .line 329
      StackMap locals:
      StackMap stack:
            aload 4 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 4 // java.util.Iterator i
        11: .line 339
            iload 3 /* removed */
            ireturn
        end local 3 // boolean removed
        end local 2 // boolean remove
        end local 1 // java.util.Collection c
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0   12     1        c  Ljava/util/Collection<*>;
            0   12     2   remove  Z
            1   12     3  removed  Z
            2   11     4        i  Ljava/util/Iterator<Ljava/util/Map$Entry<TK;TV;>;>;
            4   10     5        e  Ljava/util/Map$Entry<TK;TV;>;
            7   10     6      key  TK;
            8   10     7    value  TV;
    Signature: (Ljava/util/Collection<*>;Z)Z
    MethodParameters:
        Name  Flags
      c       
      remove  

  public boolean removeAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.util.Collection c
         0: .line 344
            aload 0 /* this */
            aload 1 /* c */
            iconst_1
            invokevirtual com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.removeRetain:(Ljava/util/Collection;Z)Z
            ireturn
        end local 1 // java.util.Collection c
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1     c  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 349
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            invokevirtual com.sun.javafx.collections.ObservableMapWrapper.clear:()V
         1: .line 350
            return
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 354
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
        start local 1 // java.lang.Object obj
         0: .line 359
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* obj */
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
         0: .line 364
            aload 0 /* this */
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            getfield com.sun.javafx.collections.ObservableMapWrapper.backingMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            ireturn
        end local 0 // com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;

  static com.sun.javafx.collections.ObservableMapWrapper access$0(com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet);
    descriptor: (Lcom/sun/javafx/collections/ObservableMapWrapper$ObservableKeySet;)Lcom/sun/javafx/collections/ObservableMapWrapper;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 246
            aload 0
            getfield com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet.this$0:Lcom/sun/javafx/collections/ObservableMapWrapper;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/Set<TK;>;
SourceFile: "ObservableMapWrapper.java"
NestHost: com.sun.javafx.collections.ObservableMapWrapper
InnerClasses:
  private ObservableKeySet = com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet of com.sun.javafx.collections.ObservableMapWrapper
  com.sun.javafx.collections.ObservableMapWrapper$ObservableKeySet$1
  private SimpleChange = com.sun.javafx.collections.ObservableMapWrapper$SimpleChange of com.sun.javafx.collections.ObservableMapWrapper
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract Change = javafx.collections.MapChangeListener$Change of javafx.collections.MapChangeListener