=w  java/lang/Object()V   zombie/core/raknet/VoiceManagerisEnableZ    isModeVAD    isModePPT  vadModeI  agcMode  FMODChannelGroupJ  FMODRecordSound " # initialiseRecDev % & initialisedRecDev ( )indicatorIsVoice + , isDebug . / isDebugLoopback 1 2 isDebugLoopbackLong 4 56buf[B 8 9:notifierLjava/lang/Object; < =  bIsClient ? @ bTestingMicrophone B CtestingMicrophoneMSEjava/lang/Long DG H(J)V J KLrecBuf_Current_readLjava/lang/Long; N OPinstance!Lzombie/core/raknet/VoiceManager; RST UV fmod/javafmodFMOD_RecordSound_Release(J)I X YZFMODReceiveBufferLfmod/FMODSoundBuffer; \ ]FMODVoiceRecordDriverId R_ `aFMOD_System_RecordStop(I)I cde fgfmod/FMOD_RESULTFMOD_OKLfmod/FMOD_RESULT; ci jkordinal()I mno pqzombie/debug/DebugLogVoiceLzombie/debug/DebugLogStream;s FMOD_System_RecordStop result=%d uvw xyjava/lang/IntegervalueOf(I)Ljava/lang/Integer; {|} ~zombie/debug/DebugLogStreamwarn((Ljava/lang/String;[Ljava/lang/Object;)V  DeinitRecSound  fmod/fmod/FMODManagerFMOD_2D  FMOD_OPENUSER  FMOD_SOFTWARE FMOD_SOUND_FORMAT_PCM16   sampleRate R FMOD_System_CreateRecordSound(JJJJI)J!FMOD_System_CreateSound result=%d D x(J)Ljava/lang/Long;?ffffff   volumeMic  java/lang/Mathpow(DD)D round(D)J R FMOD_System_SetRecordVolume(J)J R FMOD_System_RecordStart(IJZ)I!FMOD_System_RecordStart result=%d R FMOD_System_SetVADMode(I)Jfmod/FMODSoundBuffer G  zombie/network/GameClient connection"Lzombie/core/raknet/UdpConnection;   loadConfig   zombie/core/raknet/UdpConnectiongetConnectedGUID()J  HVoiceConnectReq run7(Lzombie/core/raknet/VoiceManager;)Ljava/lang/Runnable;  threadSafeCode(Ljava/lang/Runnable;)V  HVoiceConnectClose  InitRecDeviceForTest  isServerjava/util/concurrent/Semaphore (I)V  recDevSemaphore Ljava/util/concurrent/Semaphore;  zombie/core/raknet/RakVoiceRVInit  SetComplexityInvalid period=%d { errorInvalid sample rate=%dInvalid quality=%dInvalid buffering=%d  RVInitServer (ZIIIIFFZ)Vuuid=%x { debugln'(Ljava/lang/String;Ljava/lang/Object;)Vuuid=%d   bClient   kjava/nio/ByteBuffergetInt   serverVOIPEnable  period   buffering   getFloat()F   ! minDistanceF # $! maxDistance & ' is3D ) *+GetServerVOIPEnable()Z - .k GetSampleRate 0 1kGetSendFramePeriod 3 4k GetBuffering 6 7GetMinDistance 9 :GetMaxDistance < =+GetIs3D?java/lang/ExceptionARakVoice params set failed CDE FGzombie/debug/LogSeverityErrorLzombie/debug/LogSeverity; {I JKprintExceptionD(Ljava/lang/Throwable;Ljava/lang/String;Lzombie/debug/LogSeverity;)VMKenabled=%b, sample-rate=%d, period=%d, complexity=%d, buffering=%d, is3D=%b OPQ xRjava/lang/Boolean(Z)Ljava/lang/Boolean; {T U(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V W XacquireZjava/lang/InterruptedException Y\ ]printStackTrace _ `FMOD_3D b cFMOD_SOUND_MODE efg hi#zombie/core/raknet/VoiceManagerDatadataLjava/util/ArrayList; klm nojava/util/ArrayListiterator()Ljava/util/Iterator; qrs t+java/util/IteratorhasNext qv wxnext()Ljava/lang/Object; ez { userplaysound R} ~FMOD_Sound_SetMode(JI)I R %FMOD_System_SetRawPlayBufferingPeriod/FMOD_System_SetRawPlayBufferingPeriod result=%d   ResetRecSound  release  zombie/core/raknet/VoiceDebugcreateAndShowGui k clear  HRequestVoiceChannel  HCloseVoiceChannel   volumePlayers k ksize k get(I)Ljava/lang/Object; e userplaychannel?ə R FMOD_Channel_SetVolume(JF)I  OLzombie/network/GameClient;   getPlayers()Ljava/util/ArrayList;zombie/characters/IsoPlayer  usernameLjava/lang/String;  java/lang/Stringequals(Ljava/lang/Object;)Z  OnlineIDS e ((S)Lzombie/core/raknet/VoiceManagerData; e   userplaymute    isVoiceMute  se/krka/kahlua/vm/PlatformnewTable!()Lse/krka/kahlua/vm/KahluaTable; playerSetMute!zombie/core/raknet/VoiceManager$1  $(Lzombie/core/raknet/VoiceManager;)V  se/krka/kahlua/vm/KahluaTablerawset'(Ljava/lang/Object;Ljava/lang/Object;)V playerGetMute!zombie/core/raknet/VoiceManager$2  RecordDevices!zombie/core/raknet/VoiceManager$3  VoiceManagerA@  zombie/iso/IsoUtilslerp(FFF)F  clamp R FMOD_System_CreateRAWPlaySound(JJJ)J R FMOD_System_PlaySound(JZ)JFMOD_System_PlaySound result=%d R  FMOD_Channel_Set3DMinMaxDistance(JFF)I R FMOD_Channel_SetChannelGroup(JJ)I     zombie/core/Core SoundDisabled    VoipDisabledDisabled { (Ljava/lang/String;)V R kFMOD_System_GetRecordNumDrivers    getInstance()Lzombie/core/Core;   kgetOptionVoiceRecordDevice  ! "setOptionVoiceRecordDevice$Microphone not found&Invalid record device {( ~)(Ljava/lang/Object;)V  + ,+getOptionVoiceEnable  . /kgetOptionVoiceMode 1 2setMode  4 5kgetOptionVoiceVADMode  7 8kgetOptionVoiceVolumeMic  : ;kgetOptionVoiceVolumePlayers=VOIP R? @AFMOD_System_CreateChannelGroup(Ljava/lang/String;)J C DVoiceInitClient FGH Ijava/lang/SystemcurrentTimeMillis K LtimeLast N O bQuitQ!zombie/core/raknet/VoiceManager$4 P T UVthreadLjava/lang/Thread;XVoiceManagerClient Z[\ ]java/lang/ThreadsetName Z_ `startcNo record device found {e ) g hnotify Zj k+isAlive Zo pHsleep Rr sVFMOD_Channel_Stop Ru vVFMOD_RAWPlaySound_Release x y notifyThread {|} ~ zombie/network/GameServerbServer  setTestingMicrophone(Z)V  + zombie/network/FakeClientManager isVOIPEnabled>L  java/lang/Runnable  wait  ()Lzombie/characters/IsoPlayer;,   isSpeek R FMOD_System_GetRecordPosition(ILjava/lang/Long;)I D  longValue  pull(J)Z  +isDeadEnable voice transmit   getKey(Ljava/lang/String;)I  zombie/input/GameKeyboard isKeyDown(I)Z   connectedGUID  5()[B  get_size   SendFrame(JJ[BJ)V    getOnlineID  get_vad   IDToPlayerMapLjava/util/HashMap;  java/util/HashMapvalues()Ljava/util/Collection; java/util/Collection   updateGui+(Lfmod/SoundBuffer;Lfmod/FMODSoundBuffer;)V  getUserPlaySound(S)J R FMOD_System_RAWPlayData(J[BJ)I e index  3zombie/core/raknet/VoiceManagerData$VoiceDataSourceUnknown5Lzombie/core/raknet/VoiceManagerData$VoiceDataSource;  ()S   ReceiveFrame(J[B)Z e  voicetimeout  getX  getY   DistanceTo(FFFF)F  + isCanHearAll  fmod/javafmodJNIFMOD_Channel_Set3DLevel  !x   !y  !z R FMOD_Channel_Set3DAttributes (JFFFFFF)I  getCanHearAllVolume(F)F  setUserPlaySound(JF)V  Cheat   !checkForNearbyRadiosV(Lzombie/core/raknet/VoiceManagerData;)Lzombie/core/raknet/VoiceManagerData$RadioData; #$% &'-zombie/core/raknet/VoiceManagerData$RadioData deviceData!Lzombie/radio/devices/DeviceData; )*+ ,zombie/radio/devices/DeviceDatagetDeviceVolume #. /!lastReceiveDistance )1 23doReceiveMPSignal(F)V 5 6Radio #8 9freq ; < smoothstep > p @ ABlogFrame>(Lzombie/characters/IsoPlayer;Lzombie/characters/IsoPlayer;F)V DEF GHzombie/network/MPStatistics setVOIPSource9(Lzombie/core/raknet/VoiceManagerData$VoiceDataSource;I)V J K timestamp mO Pq MultiplayerR;"%s" (%b) received VOIP frame from "%s" (%b) at distance=%f T UV getUsername()Ljava/lang/String; XYZ x[java/lang/Float(F)Ljava/lang/Float; ] ^_format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; ea  ec di radioData #f  #h   j klsqrt(D)D #n o!distance kq r+isEmpty t u numPlayers w xyplayers[Lzombie/characters/IsoPlayer; #{ |(FFF)V k~ add   getInventory"()Lzombie/inventory/ItemContainer;  zombie/inventory/ItemContainergetItemszombie/inventory/InventoryItemzombie/inventory/types/Radio   getDeviceData#()Lzombie/radio/devices/DeviceData; ) + getIsTurnedOn # &(Lzombie/radio/devices/DeviceData;FF)V@  getZ  zombie/iso/IsoCell()Lzombie/iso/IsoCell;   getGridSquare(III)Lzombie/iso/IsoGridSquare;  zombie/iso/IsoGridSquare getObjects ()Lzombie/util/list/PZArrayList; zombie/util/list/PZArrayList zombie/iso/IsoObjectzombie/iso/objects/IsoRadio        getWorldObjects*zombie/iso/objects/IsoWorldInventoryObject  getItem"()Lzombie/inventory/InventoryItem;  getVehicleContainer()Lzombie/vehicles/BaseVehicle;  zombie/vehicles/BaseVehicle getSquare()Lzombie/iso/IsoGridSquare;6   getPartById1(Ljava/lang/String;)Lzombie/vehicles/VehiclePart; zombie/vehicles/VehiclePart   startPacket(()Lzombie/core/network/ByteBufferWriter;  %zombie/network/PacketTypes$PacketType SyncRadioData'Lzombie/network/PacketTypes$PacketType;  doPacket)(Lzombie/core/network/ByteBufferWriter;)V  $zombie/core/network/ByteBufferWriterputByte(B)V  putInt  send%(Lzombie/core/raknet/UdpConnection;)V  Ozombie/network/ServerOptionsLzombie/network/ServerOptions;   VoiceEnable2Lzombie/network/ServerOptions$BooleanServerOption;  +0zombie/network/ServerOptions$BooleanServerOptiongetValue  VoiceMinDistance1Lzombie/network/ServerOptions$DoubleServerOption;  /zombie/network/ServerOptions$DoubleServerOption()D  VoiceMaxDistance   Voice3D    VoiceInitServer (ZIIIIDDZ)V   get_loudness  + get_interror   SetVoiceBan(JZ)V  FMOD_LOOP_NORMAL  FMOD_CREATESTREAM modePPT ConstantValuemodeVADmodeMuteVADModeQualityVADModeLowBitrateVADModeAggressiveVADModeVeryAggressiveAGCModeAdaptiveAnalogAGCModeAdaptiveDigitalAGCModeFixedDigital bufferSize complexityCodeLineNumberTable#()Lzombie/core/raknet/VoiceManager; StackMapTableVoiceRestartClientVoiceConnectAcceptVoiceOpenChannelReply(JLjava/nio/ByteBuffer;)V setVADMode setAGCModesetVolumePlayers setVolumeMic(Ljava/lang/String;)Z LuaRegister>(Lse/krka/kahlua/vm/Platform;Lse/krka/kahlua/vm/KahluaTable;)V InitVMClientUpdateRecordDeviceUpdateRecordDeviceInternalDeinitVMClientEjava/lang/ThrowableupdateUpdateVMClient ExceptionsUpdateChannelsRoaming InitVMServergetMicVolumeIndicatorgetMicVolumeErrorgetServerVOIPEnable VMServerBan(SZ)Vlambda$setVolumeMic$1lambda$setVADMode$0 SourceFileVoiceManager.java NestMembersBootstrapMethodsX YZ[ \]"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;b c Qe f Ph i B InnerClassesVoiceDataSource RadioDatanzombie/network/PacketTypes PacketTypeBooleanServerOptionDoubleServerOptions%java/lang/invoke/MethodHandles$Lookupujava/lang/invoke/MethodHandlesLookup!3c !" #$ %& !' #( %) *+ !, #- %. /0 !      ! $! '       YZ] # & )UVO L, / 2 OP569:= @ CKL K,1u*** **** * *!*$* '***-*0*3*Y7*;*>* A*DY FI2R)I JKLMX"Y'[,\1^6d;e@fE~NY^ch 31M2k1U *$* *QW* W2opqrtu41I *$1* (*[^<bhlrYtSz***[** lY*Sz  *deX*!-*[*<bhlYtSz*dXY*W*$2Fyz{"|59]f|4 5FG51P3**ƶ̧7***ƶ*ç* *ڧ **ӱ22  %/6:>EO4 D1L **YW2  1F * (<lYtS@>]lYtS lYtS}lYtS 2BM`a4@H J J J J  @J K @J @K 6H1>*l241' **ӱ2  781uq*ll*ݙ L- - - - W- --"- %-(,/258";%:l@BHlLNtttt%NS*V :[% ^aa6dj:p'ue:y y|Wղ7bhlYSz****>Y2,"18?DKRYkqw}    "-09F[_fm p#4*@5@)B>tYB q**H1P*ld2&'()+4H1F*l2./02421{4* *$* * * *2* 56 789:$;)<.=3?491}1**$**ӱ2BCEF%G&I0J4 @H :1}1**$**ӱ2MNPQ%R&T0U4 @H ;1v  * * *$dM>,5,e:  *kWɱ2:XY[\'^-`4a5c9dCeMf\goduj4# @I k3<1@  * * *$**ӱ2& mnpq's-u4v5x?y4@I  1SL=+D+N*-*-:Ț-ȵ˧ 2* |}~%.@IL}R4> k2keekee =1=M>,-,:*Ŵ<2"'35;4 k+>?1qE+N-ԻY*ع-Y*-Y*,-2):D1;%* j F%W21%M, , y% ^aa>,y,y lY,ySz,,y, lY,Sz,*kW%, n"W,*W,y2>'8AWcl4#eB0+' @1  **!*$l<*d[*[ *d[l#*!6*[*[l%'*!*!***-0*3*6*9*<>*B* *****EJ*M*PY*RS*SWY*S^2% $%)5<@GSXai    "#1234! - @KO 1_3***-0*3*6*926 789(:2;A1@*$**aӱ2>?AB4B1m*[^<bhlrYtSz*d[*[ lbd*[*<bhlYtSz2. HIJ%M1N8OAPBROSYTlV4%)C1K*S<*M*7YL*7f+çM+,*SilnL*S*dL=+9+eN- -qW-y -ytW- yŲd".47Y2^YZ [\]$^.`4b7a8b;d@gDiHjRk[ldmloup}qjtu4. DRY k!e1S *EA*> *>*w2 4 y1h*7YL*7f+çM+,24DF1Zz*>E@*Ae* *;*;*w*; *;*w2:$6=BIPUY4 1O # #"f  24@1)*VM+* N*- Y2*   &(4 IYOD G1 *M0*;)*>"*7YL*7M+çN+-ϲE*'e*!@*V*[*IWW W*I %*Z)WW*E'%²WW*E'* 1W &WW*E'**3ȶ̹ Wէ*- Wէ W*-*ٲWWW*LdM>,,e:66+'+: 6 *-~5 ~qW tE*JeB!t*YJ!aJ:6+j:pDu::  : *3 l ș  8  B  W      W* * :62* :  ] "U  W      W*  "( " -04: 76 :  W      W  W:z%3  W   W(  W      W* " -:=:6 "   ?**3*3W*0 *3*3   Y eC#&Y),,/,2#&'4:;A[biu{ %/8;B I W a h ry !"#$%&'($+, .&//05!;4D5M6W8]9^<c=f?ACDGIKMNQSUW Y[!\'`/b<dFfahrjlmqsuwy} %69<ADMVmt45%YDD[;!4 kke&Okke @Hkke" q- e"_f#;5$6HY AB1NEB!ID!LaINQY*SSY*NSY+SSY+NSY$WS\'2 !GM4M !1PM,N-`-b# --b#-bY:6-b+bY:6+b-b#7+b#7-b#e+b#ed8-b#g+b#gd8 -b#j  jbi--b#-+b#m-b#ð5ç :   ç :  -bY:+bY:+bp-bp-b#e+b#ed8-b#g+b#gd8-b#jjbi--b#-+b#m-b#ðç :  ç :   M$!$$)$68588=8PH 2~ ".6EM\},2@HPd4H.e /EDEDEDEDI1 M,,N6-bY:-b6sMv2:76-b#Y8 z}W6U:  5 :  & -b#Y  }Wd6bd6  brd6   bT  :  ; d6   T  :  7 :( -b#Y  }W  r6   b  :  E : :( -b#Y  }W  S  ĦF ʶ:  4 :  (  -b#Y   }W  dç :+:-bh-bj:p;u#:7meg+ 2@   '2:?BLh{',4DS[er"#$%&'(# /!0.132:3G4djpv|>@ABCDEFGHIJK4 e([ +W eWEDeeqAJ1b 2*]@ 2NOT"U+V.N1XKk15WW2 [\4L+14WW2 `a4M+12eNO1#2 ijP10  *deX2xQ1# *dX2IR1s;a>,@%YM I2& +@ABC$F(R,h6STU PV4W^_^W^`^W^a^W^d^W^g^jR Pek@#el mo@p q rtv