4M*com/hazelcast/crdt/pncounter/PNCounterImplLjava/lang/Object;Lcom/hazelcast/crdt/CRDT;Lcom/hazelcast/nio/serialization/IdentifiedDataSerializable;java/lang/Objectcom/hazelcast/crdt/CRDT:com/hazelcast/nio/serialization/IdentifiedDataSerializablePNCounterImpl.javajava/util/Map$Entry  java/util/Map EntrylocalReplicaIdLjava/lang/String;namestateLjava/util/Map;%Ljava/util/Map;stateVectorClock(Lcom/hazelcast/cluster/impl/VectorClock;migratedZstateReadWriteLock*Ljava/util/concurrent/locks/ReadWriteLock; stateReadLock!Ljava/util/concurrent/locks/Lock;stateWriteLock'(Ljava/lang/String;Ljava/lang/String;)V()V ! "&java/util/concurrent/ConcurrentHashMap$ %"  '&com/hazelcast/cluster/impl/VectorClock) *"  ,1java/util/concurrent/locks/ReentrantReadWriteLock. /"  1(java/util/concurrent/locks/ReadWriteLock3readLock#()Ljava/util/concurrent/locks/Lock; 56 47  9 writeLock ;6 4<  >  @setReplicaTimestamp(Ljava/lang/String;J)V DE *F  Hthis,Lcom/hazelcast/crdt/pncounter/PNCounterImpl;getg(Lcom/hazelcast/cluster/impl/VectorClock;)Lcom/hazelcast/crdt/pncounter/operations/CRDTTimestampedLong;checkSessionConsistency+(Lcom/hazelcast/cluster/impl/VectorClock;)V NO Pjava/util/concurrent/locks/LockRlock T! SUvalues()Ljava/util/Collection; WX Yjava/util/Collection[iterator()Ljava/util/Iterator; ]^ \_java/util/IteratorahasNext()Z cd benext()Ljava/lang/Object; gh bi[Jk;com/hazelcast/crdt/pncounter/operations/CRDTTimestampedLongm O *o,(JLcom/hazelcast/cluster/impl/VectorClock;)V q nrunlock t! Sujava/lang/ThrowablewpnValuevalueJobservedTimestamps getAndAddh(JLcom/hazelcast/cluster/impl/VectorClock;)Lcom/hazelcast/crdt/pncounter/operations/CRDTTimestampedLong;checkNotMigrated ! getAndSubtract ~  getAndUpdatei(JLcom/hazelcast/cluster/impl/VectorClock;Z)Lcom/hazelcast/crdt/pncounter/operations/CRDTTimestampedLong; delta addAndGetsubtractAndGet ~  updateAndGet  }~  ~ isAfter+(Lcom/hazelcast/cluster/impl/VectorClock;)Z *+com/hazelcast/core/ConsistencyLostException_This replica cannot provide the session guarantees for the PN counter since it's state is stale(Ljava/lang/String;)V  lastReadVectorClock"java/lang/IllegalArgumentException(Delta must be greater than or equal to 0 getTimestampForReplica$(Ljava/lang/String;)Ljava/lang/Long; *java/lang/Long longValue()J  containsKey(Ljava/lang/Object;)Z &(Ljava/lang/Object;)Ljava/lang/Object; L put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;  LM  isAddition nextTimestamppnValuesgetValue nsetValue(J)V ncurrent=Lcom/hazelcast/crdt/pncounter/operations/CRDTTimestampedLong;merge/(Lcom/hazelcast/crdt/pncounter/PNCounterImpl;)VentrySet()Ljava/util/Set;  java/util/Set _getKey h java/lang/String h java/lang/Mathmax(JJ)J O * replicaId pnOtherValuespnCounterEntry+Ljava/util/Map$Entry;Ljava/util/Map$Entry;othergetCurrentVectorClock*()Lcom/hazelcast/cluster/impl/VectorClock; getFactoryId()I)com/hazelcast/crdt/CRDTDataSerializerHookF_IDI getId writeData'(Lcom/hazelcast/nio/ObjectDataOutput;)Vjava/io/IOException"com/hazelcast/nio/ObjectDataOutput writeObject(Ljava/lang/Object;)V size writeInt(I)V  writeUTF   writeLong   replicaID replicaCounts replicaStateout$Lcom/hazelcast/nio/ObjectDataOutput;readData&(Lcom/hazelcast/nio/ObjectDataInput;)V!com/hazelcast/nio/ObjectDataInput readObject h readInt  com/hazelcast/util/MapUtil createHashMap(I)Ljava/util/Map;  readUTF()Ljava/lang/String;   readLong " #i stateSizein#Lcom/hazelcast/nio/ObjectDataInput; markMigratedequals * *+  - vectorClock.com/hazelcast/crdt/MutationDisallowedException0java/lang/StringBuilder2 3"The CRDT state for the 5append-(Ljava/lang/String;)Ljava/lang/StringBuilder; 78 39= + PN counter has already been migrated and cannot be updated;toString = 3> 1(Lcom/hazelcast/crdt/CRDT;)V B SignatureCodeLineNumberTableLocalVariableTable StackMapTableLocalVariableTypeTable Exceptions InnerClasses SourceFile! DB EU*#*%Y&(**Y+-*/Y02**28:**2=?*+A*-+BG*,IF* 9/15%627?:D;O<T=G UJKUU!E@*#*%Y&(**Y+-*/Y02**28:**2=?F?/15%627?@G @JKLMEv*+Q*:V A*(Z`:f jl: /aA /eAܻnY *Y*-ps:*:v:*:v\hhjhH b& *xF2 QRTU6V=WDXGY\[eYh[s\G*6ykXz{vJKv|}~EP*-Q*?V* *u-:*?v*-:*?v:*?v!B-6BBDBH-TxF2 oprst!x*t-v6x?vBxMyG PJKP{P|~EP*-Q*?V* *u-:*?v*-:*?v:*?v!B-6BBDBH-TxF2 !*-6?BMG PJKP{P|~EP*-Q*?V* *u-:*?v*-:*?v:*?v!B-6BBDBH-TxF2 !*-6?BMG PJKP{P|~EP*-Q*?V* *u-:*?v*-:*?v:*?v!B-6BBDBH-TxF2 !*-6?BMG PJKP{P|NOE_++*- YHFGJKE< Y*-*A a7*(*A*(*Al Y PY P:\/aP*(*AW*-*AG*-H84Jl *ll*llF""RcsG>JK{|"d{R4kE  Y*-*A a7*(*A*(*Al Y PY P:\/aP*(*AW*-*AG*-: e aHk4Jl *ll*ll9*lnn*lnnF*   "RcsGHJK{|"{RSkE*?V*+(M,f~,j N-:-l:*(*(l Y PY P://P//P*(W*-+-*?v:*?v H*bG lJl0Vx FB  /:!E"q#$%&')*)*+G>:cEXkq,k/nJKKI /nE6 *Y*-pF/G  JKE.F4G JKE,F9G JKEV*:V+*-+*(*(M,fB,j N-:-l:++/+/*:v:*:v yH1bGKx F>> @A"BDCODZEbFlGvHyJKJKLG4O' Z kD2 JK  I D2 JE/z*?V*+*-+=*(>6+!: Y+$PY+$P:*(W*?v:*?v _kkmkH'7Kx F:P RST%U,V4WKXYU_[h\k[v\y]G>4% K k'8%B&zJKz'(J)E5*?V*-+,*.*.=*?vN*?v- )HOxF"i klnp'n)p3qG5JK5/)!E~'*?V*.*?vL*?v+ HZx Fy {}~}$~&G 'JK!Eh-*.(1Y3Y46:*I:<:?@H,F,G -JKAAE3 *+CF*G  JKK   DL