rpc.pb.go 126 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321
  1. // Code generated by protoc-gen-gogo. DO NOT EDIT.
  2. // source: rpcpb/rpc.proto
  3. /*
  4. Package rpcpb is a generated protocol buffer package.
  5. It is generated from these files:
  6. rpcpb/rpc.proto
  7. It has these top-level messages:
  8. Request
  9. Response
  10. Member
  11. Tester
  12. Etcd
  13. */
  14. package rpcpb
  15. import proto "github.com/golang/protobuf/proto"
  16. import fmt "fmt"
  17. import math "math"
  18. import _ "github.com/gogo/protobuf/gogoproto"
  19. import context "golang.org/x/net/context"
  20. import grpc "google.golang.org/grpc"
  21. import io "io"
  22. // Reference imports to suppress errors if they are not otherwise used.
  23. var _ = proto.Marshal
  24. var _ = fmt.Errorf
  25. var _ = math.Inf
  26. // This is a compile-time assertion to ensure that this generated file
  27. // is compatible with the proto package it is being compiled against.
  28. // A compilation error at this line likely means your copy of the
  29. // proto package needs to be updated.
  30. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  31. type Operation int32
  32. const (
  33. // NOT_STARTED is the agent status before etcd first start.
  34. Operation_NOT_STARTED Operation = 0
  35. // INITIAL_START_ETCD is only called to start etcd, the very first time.
  36. Operation_INITIAL_START_ETCD Operation = 10
  37. // RESTART_ETCD is sent to restart killed etcd.
  38. Operation_RESTART_ETCD Operation = 11
  39. // SIGTERM_ETCD pauses etcd process while keeping data directories
  40. // and previous etcd configurations.
  41. Operation_SIGTERM_ETCD Operation = 20
  42. // SIGQUIT_ETCD_AND_REMOVE_DATA kills etcd process and removes all data
  43. // directories to simulate destroying the whole machine.
  44. Operation_SIGQUIT_ETCD_AND_REMOVE_DATA Operation = 21
  45. // SIGQUIT_ETCD_AND_ARCHIVE_DATA is sent when consistency check failed,
  46. // thus need to archive etcd data directories.
  47. Operation_SIGQUIT_ETCD_AND_ARCHIVE_DATA Operation = 30
  48. // SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT destroys etcd process,
  49. // etcd data, and agent server.
  50. Operation_SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT Operation = 31
  51. // BLACKHOLE_PEER_PORT_TX_RX drops all outgoing/incoming packets from/to
  52. // the peer port on target member's peer port.
  53. Operation_BLACKHOLE_PEER_PORT_TX_RX Operation = 100
  54. // UNBLACKHOLE_PEER_PORT_TX_RX removes outgoing/incoming packet dropping.
  55. Operation_UNBLACKHOLE_PEER_PORT_TX_RX Operation = 101
  56. // DELAY_PEER_PORT_TX_RX delays all outgoing/incoming packets from/to
  57. // the peer port on target member's peer port.
  58. Operation_DELAY_PEER_PORT_TX_RX Operation = 200
  59. // UNDELAY_PEER_PORT_TX_RX removes all outgoing/incoming delays.
  60. Operation_UNDELAY_PEER_PORT_TX_RX Operation = 201
  61. )
  62. var Operation_name = map[int32]string{
  63. 0: "NOT_STARTED",
  64. 10: "INITIAL_START_ETCD",
  65. 11: "RESTART_ETCD",
  66. 20: "SIGTERM_ETCD",
  67. 21: "SIGQUIT_ETCD_AND_REMOVE_DATA",
  68. 30: "SIGQUIT_ETCD_AND_ARCHIVE_DATA",
  69. 31: "SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT",
  70. 100: "BLACKHOLE_PEER_PORT_TX_RX",
  71. 101: "UNBLACKHOLE_PEER_PORT_TX_RX",
  72. 200: "DELAY_PEER_PORT_TX_RX",
  73. 201: "UNDELAY_PEER_PORT_TX_RX",
  74. }
  75. var Operation_value = map[string]int32{
  76. "NOT_STARTED": 0,
  77. "INITIAL_START_ETCD": 10,
  78. "RESTART_ETCD": 11,
  79. "SIGTERM_ETCD": 20,
  80. "SIGQUIT_ETCD_AND_REMOVE_DATA": 21,
  81. "SIGQUIT_ETCD_AND_ARCHIVE_DATA": 30,
  82. "SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT": 31,
  83. "BLACKHOLE_PEER_PORT_TX_RX": 100,
  84. "UNBLACKHOLE_PEER_PORT_TX_RX": 101,
  85. "DELAY_PEER_PORT_TX_RX": 200,
  86. "UNDELAY_PEER_PORT_TX_RX": 201,
  87. }
  88. func (x Operation) String() string {
  89. return proto.EnumName(Operation_name, int32(x))
  90. }
  91. func (Operation) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{0} }
  92. // FailureCase defines various system faults in distributed systems,
  93. // in order to verify correct behavior of etcd servers and clients.
  94. type FailureCase int32
  95. const (
  96. // SIGTERM_ONE_FOLLOWER stops a randomly chosen follower (non-leader)
  97. // but does not delete its data directories on disk for next restart.
  98. // It waits "failure-delay-ms" before recovering this failure.
  99. // The expected behavior is that the follower comes back online
  100. // and rejoins the cluster, and then each member continues to process
  101. // client requests ('Put' request that requires Raft consensus).
  102. FailureCase_SIGTERM_ONE_FOLLOWER FailureCase = 0
  103. // SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT stops a randomly chosen
  104. // follower but does not delete its data directories on disk for next
  105. // restart. And waits until most up-to-date node (leader) applies the
  106. // snapshot count of entries since the stop operation.
  107. // The expected behavior is that the follower comes back online and
  108. // rejoins the cluster, and then active leader sends snapshot
  109. // to the follower to force it to follow the leader's log.
  110. // As always, after recovery, each member must be able to process
  111. // client requests.
  112. FailureCase_SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 1
  113. // SIGTERM_LEADER stops the active leader node but does not delete its
  114. // data directories on disk for next restart. Then it waits
  115. // "failure-delay-ms" before recovering this failure, in order to
  116. // trigger election timeouts.
  117. // The expected behavior is that a new leader gets elected, and the
  118. // old leader comes back online and rejoins the cluster as a follower.
  119. // As always, after recovery, each member must be able to process
  120. // client requests.
  121. FailureCase_SIGTERM_LEADER FailureCase = 2
  122. // SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT stops the active leader node
  123. // but does not delete its data directories on disk for next restart.
  124. // And waits until most up-to-date node ("new" leader) applies the
  125. // snapshot count of entries since the stop operation.
  126. // The expected behavior is that cluster elects a new leader, and the
  127. // old leader comes back online and rejoins the cluster as a follower.
  128. // And it receives the snapshot from the new leader to overwrite its
  129. // store. As always, after recovery, each member must be able to
  130. // process client requests.
  131. FailureCase_SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 3
  132. // SIGTERM_QUORUM stops majority number of nodes to make the whole cluster
  133. // inoperable but does not delete data directories on stopped nodes
  134. // for next restart. And it waits "failure-delay-ms" before recovering
  135. // this failure.
  136. // The expected behavior is that nodes come back online, thus cluster
  137. // comes back operative as well. As always, after recovery, each member
  138. // must be able to process client requests.
  139. FailureCase_SIGTERM_QUORUM FailureCase = 4
  140. // SIGTERM_ALL stops the whole cluster but does not delete data directories
  141. // on disk for next restart. And it waits "failure-delay-ms" before
  142. // recovering this failure.
  143. // The expected behavior is that nodes come back online, thus cluster
  144. // comes back operative as well. As always, after recovery, each member
  145. // must be able to process client requests.
  146. FailureCase_SIGTERM_ALL FailureCase = 5
  147. // BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER drops all outgoing/incoming
  148. // packets from/to the peer port on a randomly chosen follower
  149. // (non-leader), and waits for "failure-delay-ms" until recovery.
  150. // The expected behavior is that once dropping operation is undone,
  151. // each member must be able to process client requests.
  152. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER FailureCase = 100
  153. // BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT drops
  154. // all outgoing/incoming packets from/to the peer port on a randomly
  155. // chosen follower (non-leader), and waits for most up-to-date node
  156. // (leader) applies the snapshot count of entries since the blackhole
  157. // operation.
  158. // The expected behavior is that once packet drop operation is undone,
  159. // the slow follower tries to catch up, possibly receiving the snapshot
  160. // from the active leader. As always, after recovery, each member must
  161. // be able to process client requests.
  162. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 101
  163. // BLACKHOLE_PEER_PORT_TX_RX_LEADER drops all outgoing/incoming packets
  164. // from/to the peer port on the active leader (isolated), and waits for
  165. // "failure-delay-ms" until recovery, in order to trigger election timeout.
  166. // The expected behavior is that after election timeout, a new leader gets
  167. // elected, and once dropping operation is undone, the old leader comes
  168. // back and rejoins the cluster as a follower. As always, after recovery,
  169. // each member must be able to process client requests.
  170. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_LEADER FailureCase = 102
  171. // BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT drops all
  172. // outgoing/incoming packets from/to the peer port on the active leader,
  173. // and waits for most up-to-date node (leader) applies the snapshot
  174. // count of entries since the blackhole operation.
  175. // The expected behavior is that cluster elects a new leader, and once
  176. // dropping operation is undone, the old leader comes back and rejoins
  177. // the cluster as a follower. The slow follower tries to catch up, likely
  178. // receiving the snapshot from the new active leader. As always, after
  179. // recovery, each member must be able to process client requests.
  180. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 103
  181. // BLACKHOLE_PEER_PORT_TX_RX_QUORUM drops all outgoing/incoming packets
  182. // from/to the peer ports on majority nodes of cluster, thus losing its
  183. // leader and cluster being inoperable. And it waits for "failure-delay-ms"
  184. // until recovery.
  185. // The expected behavior is that once packet drop operation is undone,
  186. // nodes come back online, thus cluster comes back operative. As always,
  187. // after recovery, each member must be able to process client requests.
  188. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_QUORUM FailureCase = 104
  189. // BLACKHOLE_PEER_PORT_TX_RX_ALL drops all outgoing/incoming packets
  190. // from/to the peer ports on all nodes, thus making cluster totally
  191. // inoperable. It waits for "failure-delay-ms" until recovery.
  192. // The expected behavior is that once packet drop operation is undone,
  193. // nodes come back online, thus cluster comes back operative. As always,
  194. // after recovery, each member must be able to process client requests.
  195. FailureCase_BLACKHOLE_PEER_PORT_TX_RX_ALL FailureCase = 105
  196. // DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming packets
  197. // from/to the peer port on a randomly chosen follower (non-leader).
  198. // It waits for "failure-delay-ms" until recovery.
  199. // The expected behavior is that once packet delay operation is undone,
  200. // the follower comes back and tries to catch up with latest changes from
  201. // cluster. And as always, after recovery, each member must be able to
  202. // process client requests.
  203. FailureCase_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER FailureCase = 200
  204. // RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming
  205. // packets from/to the peer port on a randomly chosen follower
  206. // (non-leader) with a randomized time duration (thus isolated). It waits
  207. // for "failure-delay-ms" until recovery.
  208. // The expected behavior is that once packet delay operation is undone,
  209. // each member must be able to process client requests.
  210. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER FailureCase = 201
  211. // DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays
  212. // outgoing/incoming packets from/to the peer port on a randomly chosen
  213. // follower (non-leader), and waits for most up-to-date node (leader)
  214. // applies the snapshot count of entries since the delay operation.
  215. // The expected behavior is that the delayed follower gets isolated
  216. // and behind the current active leader, and once delay operation is undone,
  217. // the slow follower comes back and catches up possibly receiving snapshot
  218. // from the active leader. As always, after recovery, each member must be
  219. // able to process client requests.
  220. FailureCase_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 202
  221. // RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays
  222. // outgoing/incoming packets from/to the peer port on a randomly chosen
  223. // follower (non-leader) with a randomized time duration, and waits for
  224. // most up-to-date node (leader) applies the snapshot count of entries
  225. // since the delay operation.
  226. // The expected behavior is that the delayed follower gets isolated
  227. // and behind the current active leader, and once delay operation is undone,
  228. // the slow follower comes back and catches up, possibly receiving a
  229. // snapshot from the active leader. As always, after recovery, each member
  230. // must be able to process client requests.
  231. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 203
  232. // DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets from/to
  233. // the peer port on the active leader. And waits for "failure-delay-ms"
  234. // until recovery.
  235. // The expected behavior is that cluster may elect a new leader, and
  236. // once packet delay operation is undone, the (old) leader comes back
  237. // and tries to catch up with latest changes from cluster. As always,
  238. // after recovery, each member must be able to process client requests.
  239. FailureCase_DELAY_PEER_PORT_TX_RX_LEADER FailureCase = 204
  240. // RANDOM_DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets
  241. // from/to the peer port on the active leader with a randomized time
  242. // duration. And waits for "failure-delay-ms" until recovery.
  243. // The expected behavior is that cluster may elect a new leader, and
  244. // once packet delay operation is undone, the (old) leader comes back
  245. // and tries to catch up with latest changes from cluster. As always,
  246. // after recovery, each member must be able to process client requests.
  247. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER FailureCase = 205
  248. // DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays
  249. // outgoing/incoming packets from/to the peer port on the active leader,
  250. // and waits for most up-to-date node (current or new leader) applies the
  251. // snapshot count of entries since the delay operation.
  252. // The expected behavior is that cluster may elect a new leader, and
  253. // the old leader gets isolated and behind the current active leader,
  254. // and once delay operation is undone, the slow follower comes back
  255. // and catches up, likely receiving a snapshot from the active leader.
  256. // As always, after recovery, each member must be able to process client
  257. // requests.
  258. FailureCase_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 206
  259. // RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays
  260. // outgoing/incoming packets from/to the peer port on the active leader,
  261. // with a randomized time duration. And it waits for most up-to-date node
  262. // (current or new leader) applies the snapshot count of entries since the
  263. // delay operation.
  264. // The expected behavior is that cluster may elect a new leader, and
  265. // the old leader gets isolated and behind the current active leader,
  266. // and once delay operation is undone, the slow follower comes back
  267. // and catches up, likely receiving a snapshot from the active leader.
  268. // As always, after recovery, each member must be able to process client
  269. // requests.
  270. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT FailureCase = 207
  271. // DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets from/to
  272. // the peer ports on majority nodes of cluster. And it waits for
  273. // "failure-delay-ms" until recovery, likely to trigger election timeouts.
  274. // The expected behavior is that cluster may elect a new leader, while
  275. // quorum of nodes struggle with slow networks, and once delay operation
  276. // is undone, nodes come back and cluster comes back operative. As always,
  277. // after recovery, each member must be able to process client requests.
  278. FailureCase_DELAY_PEER_PORT_TX_RX_QUORUM FailureCase = 208
  279. // RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets
  280. // from/to the peer ports on majority nodes of cluster, with randomized
  281. // time durations. And it waits for "failure-delay-ms" until recovery,
  282. // likely to trigger election timeouts.
  283. // The expected behavior is that cluster may elect a new leader, while
  284. // quorum of nodes struggle with slow networks, and once delay operation
  285. // is undone, nodes come back and cluster comes back operative. As always,
  286. // after recovery, each member must be able to process client requests.
  287. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM FailureCase = 209
  288. // DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets from/to the
  289. // peer ports on all nodes. And it waits for "failure-delay-ms" until
  290. // recovery, likely to trigger election timeouts.
  291. // The expected behavior is that cluster may become totally inoperable,
  292. // struggling with slow networks across the whole cluster. Once delay
  293. // operation is undone, nodes come back and cluster comes back operative.
  294. // As always, after recovery, each member must be able to process client
  295. // requests.
  296. FailureCase_DELAY_PEER_PORT_TX_RX_ALL FailureCase = 210
  297. // RANDOM_DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets
  298. // from/to the peer ports on all nodes, with randomized time durations.
  299. // And it waits for "failure-delay-ms" until recovery, likely to trigger
  300. // election timeouts.
  301. // The expected behavior is that cluster may become totally inoperable,
  302. // struggling with slow networks across the whole cluster. Once delay
  303. // operation is undone, nodes come back and cluster comes back operative.
  304. // As always, after recovery, each member must be able to process client
  305. // requests.
  306. FailureCase_RANDOM_DELAY_PEER_PORT_TX_RX_ALL FailureCase = 211
  307. // NO_FAIL_WITH_STRESS runs no-op failure injection that does not do
  308. // anything against cluster for "failure-delay-ms" duration, while
  309. // stressers are still sending requests.
  310. FailureCase_NO_FAIL_WITH_STRESS FailureCase = 300
  311. // NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS runs no-op failure injection
  312. // that does not do anything against cluster for "failure-delay-ms"
  313. // duration, while all stressers are stopped.
  314. FailureCase_NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS FailureCase = 301
  315. // FAILPOINTS injects failpoints to etcd server runtime, triggering panics
  316. // in critical code paths.
  317. FailureCase_FAILPOINTS FailureCase = 400
  318. // EXTERNAL runs external failure injection scripts.
  319. FailureCase_EXTERNAL FailureCase = 500
  320. )
  321. var FailureCase_name = map[int32]string{
  322. 0: "SIGTERM_ONE_FOLLOWER",
  323. 1: "SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
  324. 2: "SIGTERM_LEADER",
  325. 3: "SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT",
  326. 4: "SIGTERM_QUORUM",
  327. 5: "SIGTERM_ALL",
  328. 100: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER",
  329. 101: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
  330. 102: "BLACKHOLE_PEER_PORT_TX_RX_LEADER",
  331. 103: "BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
  332. 104: "BLACKHOLE_PEER_PORT_TX_RX_QUORUM",
  333. 105: "BLACKHOLE_PEER_PORT_TX_RX_ALL",
  334. 200: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER",
  335. 201: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER",
  336. 202: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
  337. 203: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
  338. 204: "DELAY_PEER_PORT_TX_RX_LEADER",
  339. 205: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER",
  340. 206: "DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
  341. 207: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
  342. 208: "DELAY_PEER_PORT_TX_RX_QUORUM",
  343. 209: "RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM",
  344. 210: "DELAY_PEER_PORT_TX_RX_ALL",
  345. 211: "RANDOM_DELAY_PEER_PORT_TX_RX_ALL",
  346. 300: "NO_FAIL_WITH_STRESS",
  347. 301: "NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS",
  348. 400: "FAILPOINTS",
  349. 500: "EXTERNAL",
  350. }
  351. var FailureCase_value = map[string]int32{
  352. "SIGTERM_ONE_FOLLOWER": 0,
  353. "SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 1,
  354. "SIGTERM_LEADER": 2,
  355. "SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT": 3,
  356. "SIGTERM_QUORUM": 4,
  357. "SIGTERM_ALL": 5,
  358. "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER": 100,
  359. "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 101,
  360. "BLACKHOLE_PEER_PORT_TX_RX_LEADER": 102,
  361. "BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 103,
  362. "BLACKHOLE_PEER_PORT_TX_RX_QUORUM": 104,
  363. "BLACKHOLE_PEER_PORT_TX_RX_ALL": 105,
  364. "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER": 200,
  365. "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER": 201,
  366. "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 202,
  367. "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 203,
  368. "DELAY_PEER_PORT_TX_RX_LEADER": 204,
  369. "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER": 205,
  370. "DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 206,
  371. "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 207,
  372. "DELAY_PEER_PORT_TX_RX_QUORUM": 208,
  373. "RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM": 209,
  374. "DELAY_PEER_PORT_TX_RX_ALL": 210,
  375. "RANDOM_DELAY_PEER_PORT_TX_RX_ALL": 211,
  376. "NO_FAIL_WITH_STRESS": 300,
  377. "NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS": 301,
  378. "FAILPOINTS": 400,
  379. "EXTERNAL": 500,
  380. }
  381. func (x FailureCase) String() string {
  382. return proto.EnumName(FailureCase_name, int32(x))
  383. }
  384. func (FailureCase) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{1} }
  385. type StressType int32
  386. const (
  387. StressType_KV StressType = 0
  388. StressType_LEASE StressType = 1
  389. StressType_ELECTION_RUNNER StressType = 2
  390. StressType_WATCH_RUNNER StressType = 3
  391. StressType_LOCK_RACER_RUNNER StressType = 4
  392. StressType_LEASE_RUNNER StressType = 5
  393. )
  394. var StressType_name = map[int32]string{
  395. 0: "KV",
  396. 1: "LEASE",
  397. 2: "ELECTION_RUNNER",
  398. 3: "WATCH_RUNNER",
  399. 4: "LOCK_RACER_RUNNER",
  400. 5: "LEASE_RUNNER",
  401. }
  402. var StressType_value = map[string]int32{
  403. "KV": 0,
  404. "LEASE": 1,
  405. "ELECTION_RUNNER": 2,
  406. "WATCH_RUNNER": 3,
  407. "LOCK_RACER_RUNNER": 4,
  408. "LEASE_RUNNER": 5,
  409. }
  410. func (x StressType) String() string {
  411. return proto.EnumName(StressType_name, int32(x))
  412. }
  413. func (StressType) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} }
  414. type Request struct {
  415. Operation Operation `protobuf:"varint,1,opt,name=Operation,proto3,enum=rpcpb.Operation" json:"Operation,omitempty"`
  416. // Member contains the same Member object from tester configuration.
  417. Member *Member `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"`
  418. // Tester contains tester configuration.
  419. Tester *Tester `protobuf:"bytes,3,opt,name=Tester" json:"Tester,omitempty"`
  420. }
  421. func (m *Request) Reset() { *m = Request{} }
  422. func (m *Request) String() string { return proto.CompactTextString(m) }
  423. func (*Request) ProtoMessage() {}
  424. func (*Request) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{0} }
  425. type Response struct {
  426. Success bool `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"`
  427. Status string `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"`
  428. // Member contains the same Member object from tester request.
  429. Member *Member `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"`
  430. }
  431. func (m *Response) Reset() { *m = Response{} }
  432. func (m *Response) String() string { return proto.CompactTextString(m) }
  433. func (*Response) ProtoMessage() {}
  434. func (*Response) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{1} }
  435. type Member struct {
  436. // EtcdExecPath is the executable etcd binary path in agent server.
  437. EtcdExecPath string `protobuf:"bytes,1,opt,name=EtcdExecPath,proto3" json:"EtcdExecPath,omitempty" yaml:"etcd-exec-path"`
  438. // AgentAddr is the agent HTTP server address.
  439. AgentAddr string `protobuf:"bytes,11,opt,name=AgentAddr,proto3" json:"AgentAddr,omitempty" yaml:"agent-addr"`
  440. // FailpointHTTPAddr is the agent's failpoints HTTP server address.
  441. FailpointHTTPAddr string `protobuf:"bytes,12,opt,name=FailpointHTTPAddr,proto3" json:"FailpointHTTPAddr,omitempty" yaml:"failpoint-http-addr"`
  442. // BaseDir is the base directory where all logs and etcd data are stored.
  443. BaseDir string `protobuf:"bytes,101,opt,name=BaseDir,proto3" json:"BaseDir,omitempty" yaml:"base-dir"`
  444. // EtcdLogPath is the log file to store current etcd server logs.
  445. EtcdLogPath string `protobuf:"bytes,102,opt,name=EtcdLogPath,proto3" json:"EtcdLogPath,omitempty" yaml:"etcd-log-path"`
  446. // EtcdClientProxy is true when client traffic needs to be proxied.
  447. // If true, listen client URL port must be different than advertise client URL port.
  448. EtcdClientProxy bool `protobuf:"varint,201,opt,name=EtcdClientProxy,proto3" json:"EtcdClientProxy,omitempty" yaml:"etcd-client-proxy"`
  449. // EtcdPeerProxy is true when peer traffic needs to be proxied.
  450. // If true, listen peer URL port must be different than advertise peer URL port.
  451. EtcdPeerProxy bool `protobuf:"varint,202,opt,name=EtcdPeerProxy,proto3" json:"EtcdPeerProxy,omitempty" yaml:"etcd-peer-proxy"`
  452. // EtcdClientEndpoint is the etcd client endpoint.
  453. EtcdClientEndpoint string `protobuf:"bytes,301,opt,name=EtcdClientEndpoint,proto3" json:"EtcdClientEndpoint,omitempty" yaml:"etcd-client-endpoint"`
  454. // Etcd defines etcd binary configuration flags.
  455. Etcd *Etcd `protobuf:"bytes,302,opt,name=Etcd" json:"Etcd,omitempty" yaml:"etcd"`
  456. // ClientCertData contains cert file contents from this member's etcd server.
  457. ClientCertData string `protobuf:"bytes,401,opt,name=ClientCertData,proto3" json:"ClientCertData,omitempty" yaml:"client-cert-data"`
  458. ClientCertPath string `protobuf:"bytes,402,opt,name=ClientCertPath,proto3" json:"ClientCertPath,omitempty" yaml:"client-cert-path"`
  459. // ClientKeyData contains key file contents from this member's etcd server.
  460. ClientKeyData string `protobuf:"bytes,403,opt,name=ClientKeyData,proto3" json:"ClientKeyData,omitempty" yaml:"client-key-data"`
  461. ClientKeyPath string `protobuf:"bytes,404,opt,name=ClientKeyPath,proto3" json:"ClientKeyPath,omitempty" yaml:"client-key-path"`
  462. // ClientTrustedCAData contains trusted CA file contents from this member's etcd server.
  463. ClientTrustedCAData string `protobuf:"bytes,405,opt,name=ClientTrustedCAData,proto3" json:"ClientTrustedCAData,omitempty" yaml:"client-trusted-ca-data"`
  464. ClientTrustedCAPath string `protobuf:"bytes,406,opt,name=ClientTrustedCAPath,proto3" json:"ClientTrustedCAPath,omitempty" yaml:"client-trusted-ca-path"`
  465. // PeerCertData contains cert file contents from this member's etcd server.
  466. PeerCertData string `protobuf:"bytes,501,opt,name=PeerCertData,proto3" json:"PeerCertData,omitempty" yaml:"peer-cert-data"`
  467. PeerCertPath string `protobuf:"bytes,502,opt,name=PeerCertPath,proto3" json:"PeerCertPath,omitempty" yaml:"peer-cert-path"`
  468. // PeerKeyData contains key file contents from this member's etcd server.
  469. PeerKeyData string `protobuf:"bytes,503,opt,name=PeerKeyData,proto3" json:"PeerKeyData,omitempty" yaml:"peer-key-data"`
  470. PeerKeyPath string `protobuf:"bytes,504,opt,name=PeerKeyPath,proto3" json:"PeerKeyPath,omitempty" yaml:"peer-key-path"`
  471. // PeerTrustedCAData contains trusted CA file contents from this member's etcd server.
  472. PeerTrustedCAData string `protobuf:"bytes,505,opt,name=PeerTrustedCAData,proto3" json:"PeerTrustedCAData,omitempty" yaml:"peer-trusted-ca-data"`
  473. PeerTrustedCAPath string `protobuf:"bytes,506,opt,name=PeerTrustedCAPath,proto3" json:"PeerTrustedCAPath,omitempty" yaml:"peer-trusted-ca-path"`
  474. }
  475. func (m *Member) Reset() { *m = Member{} }
  476. func (m *Member) String() string { return proto.CompactTextString(m) }
  477. func (*Member) ProtoMessage() {}
  478. func (*Member) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} }
  479. type Tester struct {
  480. DataDir string `protobuf:"bytes,1,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"`
  481. Network string `protobuf:"bytes,2,opt,name=Network,proto3" json:"Network,omitempty" yaml:"network"`
  482. Addr string `protobuf:"bytes,3,opt,name=Addr,proto3" json:"Addr,omitempty" yaml:"addr"`
  483. // DelayLatencyMsRv is the delay latency in milliseconds,
  484. // to inject to simulated slow network.
  485. DelayLatencyMs uint32 `protobuf:"varint,11,opt,name=DelayLatencyMs,proto3" json:"DelayLatencyMs,omitempty" yaml:"delay-latency-ms"`
  486. // DelayLatencyMsRv is the delay latency random variable in milliseconds.
  487. DelayLatencyMsRv uint32 `protobuf:"varint,12,opt,name=DelayLatencyMsRv,proto3" json:"DelayLatencyMsRv,omitempty" yaml:"delay-latency-ms-rv"`
  488. // UpdatedDelayLatencyMs is the update delay latency in milliseconds,
  489. // to inject to simulated slow network. It's the final latency to apply,
  490. // in case the latency numbers are randomly generated from given delay latency field.
  491. UpdatedDelayLatencyMs uint32 `protobuf:"varint,13,opt,name=UpdatedDelayLatencyMs,proto3" json:"UpdatedDelayLatencyMs,omitempty" yaml:"updated-delay-latency-ms"`
  492. // RoundLimit is the limit of rounds to run failure set (-1 to run without limits).
  493. RoundLimit int32 `protobuf:"varint,21,opt,name=RoundLimit,proto3" json:"RoundLimit,omitempty" yaml:"round-limit"`
  494. // ExitOnFailure is true, then exit tester on first failure.
  495. ExitOnFailure bool `protobuf:"varint,22,opt,name=ExitOnFailure,proto3" json:"ExitOnFailure,omitempty" yaml:"exit-on-failure"`
  496. // ConsistencyCheck is true to check consistency (revision, hash).
  497. ConsistencyCheck bool `protobuf:"varint,23,opt,name=ConsistencyCheck,proto3" json:"ConsistencyCheck,omitempty" yaml:"consistency-check"`
  498. // EnablePprof is true to enable profiler.
  499. EnablePprof bool `protobuf:"varint,24,opt,name=EnablePprof,proto3" json:"EnablePprof,omitempty" yaml:"enable-pprof"`
  500. // FailureDelayMs is the delay duration after failure is injected.
  501. // Useful when triggering snapshot or no-op failure cases.
  502. FailureDelayMs uint32 `protobuf:"varint,31,opt,name=FailureDelayMs,proto3" json:"FailureDelayMs,omitempty" yaml:"failure-delay-ms"`
  503. // FailureShuffle is true to randomize failure injecting order.
  504. FailureShuffle bool `protobuf:"varint,32,opt,name=FailureShuffle,proto3" json:"FailureShuffle,omitempty" yaml:"failure-shuffle"`
  505. // FailureCases is the selected test cases to schedule.
  506. // If empty, run all failure cases.
  507. FailureCases []string `protobuf:"bytes,33,rep,name=FailureCases" json:"FailureCases,omitempty" yaml:"failure-cases"`
  508. // Failpoinommands is the list of "gofail" commands (e.g. panic("etcd-tester"),1*sleep(1000)
  509. FailpointCommands []string `protobuf:"bytes,34,rep,name=FailpointCommands" json:"FailpointCommands,omitempty" yaml:"failpoint-commands"`
  510. // RunnerExecPath is a path of etcd-runner binary.
  511. RunnerExecPath string `protobuf:"bytes,41,opt,name=RunnerExecPath,proto3" json:"RunnerExecPath,omitempty" yaml:"runner-exec-path"`
  512. // ExternalExecPath is a path of script for enabling/disabling an external fault injector.
  513. ExternalExecPath string `protobuf:"bytes,42,opt,name=ExternalExecPath,proto3" json:"ExternalExecPath,omitempty" yaml:"external-exec-path"`
  514. // StressTypes is the list of stresser names:
  515. // keys, lease, nop, election-runner, watch-runner, lock-racer-runner, lease-runner.
  516. StressTypes []string `protobuf:"bytes,101,rep,name=StressTypes" json:"StressTypes,omitempty" yaml:"stress-types"`
  517. // StressKeySize is the size of each small key written into etcd.
  518. StressKeySize int32 `protobuf:"varint,102,opt,name=StressKeySize,proto3" json:"StressKeySize,omitempty" yaml:"stress-key-size"`
  519. // StressKeySizeLarge is the size of each large key written into etcd.
  520. StressKeySizeLarge int32 `protobuf:"varint,103,opt,name=StressKeySizeLarge,proto3" json:"StressKeySizeLarge,omitempty" yaml:"stress-key-size-large"`
  521. // StressKeySuffixRange is the count of key range written into etcd.
  522. // Stress keys are created with "fmt.Sprintf("foo%016x", rand.Intn(keySuffixRange)".
  523. StressKeySuffixRange int32 `protobuf:"varint,104,opt,name=StressKeySuffixRange,proto3" json:"StressKeySuffixRange,omitempty" yaml:"stress-key-suffix-range"`
  524. // StressKeySuffixRangeTxn is the count of key range written into etcd txn (max 100).
  525. // Stress keys are created with "fmt.Sprintf("/k%03d", i)".
  526. StressKeySuffixRangeTxn int32 `protobuf:"varint,105,opt,name=StressKeySuffixRangeTxn,proto3" json:"StressKeySuffixRangeTxn,omitempty" yaml:"stress-key-suffix-range-txn"`
  527. // StressKeyTxnOps is the number of operations per a transaction (max 64).
  528. StressKeyTxnOps int32 `protobuf:"varint,106,opt,name=StressKeyTxnOps,proto3" json:"StressKeyTxnOps,omitempty" yaml:"stress-key-txn-ops"`
  529. // StressClients is the number of concurrent stressing clients
  530. // with "one" shared TCP connection.
  531. StressClients int32 `protobuf:"varint,201,opt,name=StressClients,proto3" json:"StressClients,omitempty" yaml:"stress-clients"`
  532. // StressQPS is the maximum number of stresser requests per second.
  533. StressQPS int32 `protobuf:"varint,202,opt,name=StressQPS,proto3" json:"StressQPS,omitempty" yaml:"stress-qps"`
  534. }
  535. func (m *Tester) Reset() { *m = Tester{} }
  536. func (m *Tester) String() string { return proto.CompactTextString(m) }
  537. func (*Tester) ProtoMessage() {}
  538. func (*Tester) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{3} }
  539. type Etcd struct {
  540. Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty" yaml:"name"`
  541. DataDir string `protobuf:"bytes,2,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"`
  542. WALDir string `protobuf:"bytes,3,opt,name=WALDir,proto3" json:"WALDir,omitempty" yaml:"wal-dir"`
  543. // HeartbeatIntervalMs is the time (in milliseconds) of a heartbeat interval.
  544. // Default value is 100, which is 100ms.
  545. HeartbeatIntervalMs int64 `protobuf:"varint,11,opt,name=HeartbeatIntervalMs,proto3" json:"HeartbeatIntervalMs,omitempty" yaml:"heartbeat-interval"`
  546. // ElectionTimeoutMs is the time (in milliseconds) for an election to timeout.
  547. // Default value is 1000, which is 1s.
  548. ElectionTimeoutMs int64 `protobuf:"varint,12,opt,name=ElectionTimeoutMs,proto3" json:"ElectionTimeoutMs,omitempty" yaml:"election-timeout"`
  549. ListenClientURLs []string `protobuf:"bytes,21,rep,name=ListenClientURLs" json:"ListenClientURLs,omitempty" yaml:"listen-client-urls"`
  550. AdvertiseClientURLs []string `protobuf:"bytes,22,rep,name=AdvertiseClientURLs" json:"AdvertiseClientURLs,omitempty" yaml:"advertise-client-urls"`
  551. ClientAutoTLS bool `protobuf:"varint,23,opt,name=ClientAutoTLS,proto3" json:"ClientAutoTLS,omitempty" yaml:"auto-tls"`
  552. ClientCertAuth bool `protobuf:"varint,24,opt,name=ClientCertAuth,proto3" json:"ClientCertAuth,omitempty" yaml:"client-cert-auth"`
  553. ClientCertFile string `protobuf:"bytes,25,opt,name=ClientCertFile,proto3" json:"ClientCertFile,omitempty" yaml:"cert-file"`
  554. ClientKeyFile string `protobuf:"bytes,26,opt,name=ClientKeyFile,proto3" json:"ClientKeyFile,omitempty" yaml:"key-file"`
  555. ClientTrustedCAFile string `protobuf:"bytes,27,opt,name=ClientTrustedCAFile,proto3" json:"ClientTrustedCAFile,omitempty" yaml:"trusted-ca-file"`
  556. ListenPeerURLs []string `protobuf:"bytes,31,rep,name=ListenPeerURLs" json:"ListenPeerURLs,omitempty" yaml:"listen-peer-urls"`
  557. AdvertisePeerURLs []string `protobuf:"bytes,32,rep,name=AdvertisePeerURLs" json:"AdvertisePeerURLs,omitempty" yaml:"initial-advertise-peer-urls"`
  558. PeerAutoTLS bool `protobuf:"varint,33,opt,name=PeerAutoTLS,proto3" json:"PeerAutoTLS,omitempty" yaml:"peer-auto-tls"`
  559. PeerClientCertAuth bool `protobuf:"varint,34,opt,name=PeerClientCertAuth,proto3" json:"PeerClientCertAuth,omitempty" yaml:"peer-client-cert-auth"`
  560. PeerCertFile string `protobuf:"bytes,35,opt,name=PeerCertFile,proto3" json:"PeerCertFile,omitempty" yaml:"peer-cert-file"`
  561. PeerKeyFile string `protobuf:"bytes,36,opt,name=PeerKeyFile,proto3" json:"PeerKeyFile,omitempty" yaml:"peer-key-file"`
  562. PeerTrustedCAFile string `protobuf:"bytes,37,opt,name=PeerTrustedCAFile,proto3" json:"PeerTrustedCAFile,omitempty" yaml:"peer-trusted-ca-file"`
  563. InitialCluster string `protobuf:"bytes,41,opt,name=InitialCluster,proto3" json:"InitialCluster,omitempty" yaml:"initial-cluster"`
  564. InitialClusterState string `protobuf:"bytes,42,opt,name=InitialClusterState,proto3" json:"InitialClusterState,omitempty" yaml:"initial-cluster-state"`
  565. InitialClusterToken string `protobuf:"bytes,43,opt,name=InitialClusterToken,proto3" json:"InitialClusterToken,omitempty" yaml:"initial-cluster-token"`
  566. SnapshotCount int64 `protobuf:"varint,51,opt,name=SnapshotCount,proto3" json:"SnapshotCount,omitempty" yaml:"snapshot-count"`
  567. QuotaBackendBytes int64 `protobuf:"varint,52,opt,name=QuotaBackendBytes,proto3" json:"QuotaBackendBytes,omitempty" yaml:"quota-backend-bytes"`
  568. PreVote bool `protobuf:"varint,63,opt,name=PreVote,proto3" json:"PreVote,omitempty" yaml:"pre-vote"`
  569. InitialCorruptCheck bool `protobuf:"varint,64,opt,name=InitialCorruptCheck,proto3" json:"InitialCorruptCheck,omitempty" yaml:"initial-corrupt-check"`
  570. }
  571. func (m *Etcd) Reset() { *m = Etcd{} }
  572. func (m *Etcd) String() string { return proto.CompactTextString(m) }
  573. func (*Etcd) ProtoMessage() {}
  574. func (*Etcd) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{4} }
  575. func init() {
  576. proto.RegisterType((*Request)(nil), "rpcpb.Request")
  577. proto.RegisterType((*Response)(nil), "rpcpb.Response")
  578. proto.RegisterType((*Member)(nil), "rpcpb.Member")
  579. proto.RegisterType((*Tester)(nil), "rpcpb.Tester")
  580. proto.RegisterType((*Etcd)(nil), "rpcpb.Etcd")
  581. proto.RegisterEnum("rpcpb.Operation", Operation_name, Operation_value)
  582. proto.RegisterEnum("rpcpb.FailureCase", FailureCase_name, FailureCase_value)
  583. proto.RegisterEnum("rpcpb.StressType", StressType_name, StressType_value)
  584. }
  585. // Reference imports to suppress errors if they are not otherwise used.
  586. var _ context.Context
  587. var _ grpc.ClientConn
  588. // This is a compile-time assertion to ensure that this generated file
  589. // is compatible with the grpc package it is being compiled against.
  590. const _ = grpc.SupportPackageIsVersion4
  591. // Client API for Transport service
  592. type TransportClient interface {
  593. Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error)
  594. }
  595. type transportClient struct {
  596. cc *grpc.ClientConn
  597. }
  598. func NewTransportClient(cc *grpc.ClientConn) TransportClient {
  599. return &transportClient{cc}
  600. }
  601. func (c *transportClient) Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error) {
  602. stream, err := grpc.NewClientStream(ctx, &_Transport_serviceDesc.Streams[0], c.cc, "/rpcpb.Transport/Transport", opts...)
  603. if err != nil {
  604. return nil, err
  605. }
  606. x := &transportTransportClient{stream}
  607. return x, nil
  608. }
  609. type Transport_TransportClient interface {
  610. Send(*Request) error
  611. Recv() (*Response, error)
  612. grpc.ClientStream
  613. }
  614. type transportTransportClient struct {
  615. grpc.ClientStream
  616. }
  617. func (x *transportTransportClient) Send(m *Request) error {
  618. return x.ClientStream.SendMsg(m)
  619. }
  620. func (x *transportTransportClient) Recv() (*Response, error) {
  621. m := new(Response)
  622. if err := x.ClientStream.RecvMsg(m); err != nil {
  623. return nil, err
  624. }
  625. return m, nil
  626. }
  627. // Server API for Transport service
  628. type TransportServer interface {
  629. Transport(Transport_TransportServer) error
  630. }
  631. func RegisterTransportServer(s *grpc.Server, srv TransportServer) {
  632. s.RegisterService(&_Transport_serviceDesc, srv)
  633. }
  634. func _Transport_Transport_Handler(srv interface{}, stream grpc.ServerStream) error {
  635. return srv.(TransportServer).Transport(&transportTransportServer{stream})
  636. }
  637. type Transport_TransportServer interface {
  638. Send(*Response) error
  639. Recv() (*Request, error)
  640. grpc.ServerStream
  641. }
  642. type transportTransportServer struct {
  643. grpc.ServerStream
  644. }
  645. func (x *transportTransportServer) Send(m *Response) error {
  646. return x.ServerStream.SendMsg(m)
  647. }
  648. func (x *transportTransportServer) Recv() (*Request, error) {
  649. m := new(Request)
  650. if err := x.ServerStream.RecvMsg(m); err != nil {
  651. return nil, err
  652. }
  653. return m, nil
  654. }
  655. var _Transport_serviceDesc = grpc.ServiceDesc{
  656. ServiceName: "rpcpb.Transport",
  657. HandlerType: (*TransportServer)(nil),
  658. Methods: []grpc.MethodDesc{},
  659. Streams: []grpc.StreamDesc{
  660. {
  661. StreamName: "Transport",
  662. Handler: _Transport_Transport_Handler,
  663. ServerStreams: true,
  664. ClientStreams: true,
  665. },
  666. },
  667. Metadata: "rpcpb/rpc.proto",
  668. }
  669. func (m *Request) Marshal() (dAtA []byte, err error) {
  670. size := m.Size()
  671. dAtA = make([]byte, size)
  672. n, err := m.MarshalTo(dAtA)
  673. if err != nil {
  674. return nil, err
  675. }
  676. return dAtA[:n], nil
  677. }
  678. func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  679. var i int
  680. _ = i
  681. var l int
  682. _ = l
  683. if m.Operation != 0 {
  684. dAtA[i] = 0x8
  685. i++
  686. i = encodeVarintRpc(dAtA, i, uint64(m.Operation))
  687. }
  688. if m.Member != nil {
  689. dAtA[i] = 0x12
  690. i++
  691. i = encodeVarintRpc(dAtA, i, uint64(m.Member.Size()))
  692. n1, err := m.Member.MarshalTo(dAtA[i:])
  693. if err != nil {
  694. return 0, err
  695. }
  696. i += n1
  697. }
  698. if m.Tester != nil {
  699. dAtA[i] = 0x1a
  700. i++
  701. i = encodeVarintRpc(dAtA, i, uint64(m.Tester.Size()))
  702. n2, err := m.Tester.MarshalTo(dAtA[i:])
  703. if err != nil {
  704. return 0, err
  705. }
  706. i += n2
  707. }
  708. return i, nil
  709. }
  710. func (m *Response) Marshal() (dAtA []byte, err error) {
  711. size := m.Size()
  712. dAtA = make([]byte, size)
  713. n, err := m.MarshalTo(dAtA)
  714. if err != nil {
  715. return nil, err
  716. }
  717. return dAtA[:n], nil
  718. }
  719. func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  720. var i int
  721. _ = i
  722. var l int
  723. _ = l
  724. if m.Success {
  725. dAtA[i] = 0x8
  726. i++
  727. if m.Success {
  728. dAtA[i] = 1
  729. } else {
  730. dAtA[i] = 0
  731. }
  732. i++
  733. }
  734. if len(m.Status) > 0 {
  735. dAtA[i] = 0x12
  736. i++
  737. i = encodeVarintRpc(dAtA, i, uint64(len(m.Status)))
  738. i += copy(dAtA[i:], m.Status)
  739. }
  740. if m.Member != nil {
  741. dAtA[i] = 0x1a
  742. i++
  743. i = encodeVarintRpc(dAtA, i, uint64(m.Member.Size()))
  744. n3, err := m.Member.MarshalTo(dAtA[i:])
  745. if err != nil {
  746. return 0, err
  747. }
  748. i += n3
  749. }
  750. return i, nil
  751. }
  752. func (m *Member) Marshal() (dAtA []byte, err error) {
  753. size := m.Size()
  754. dAtA = make([]byte, size)
  755. n, err := m.MarshalTo(dAtA)
  756. if err != nil {
  757. return nil, err
  758. }
  759. return dAtA[:n], nil
  760. }
  761. func (m *Member) MarshalTo(dAtA []byte) (int, error) {
  762. var i int
  763. _ = i
  764. var l int
  765. _ = l
  766. if len(m.EtcdExecPath) > 0 {
  767. dAtA[i] = 0xa
  768. i++
  769. i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdExecPath)))
  770. i += copy(dAtA[i:], m.EtcdExecPath)
  771. }
  772. if len(m.AgentAddr) > 0 {
  773. dAtA[i] = 0x5a
  774. i++
  775. i = encodeVarintRpc(dAtA, i, uint64(len(m.AgentAddr)))
  776. i += copy(dAtA[i:], m.AgentAddr)
  777. }
  778. if len(m.FailpointHTTPAddr) > 0 {
  779. dAtA[i] = 0x62
  780. i++
  781. i = encodeVarintRpc(dAtA, i, uint64(len(m.FailpointHTTPAddr)))
  782. i += copy(dAtA[i:], m.FailpointHTTPAddr)
  783. }
  784. if len(m.BaseDir) > 0 {
  785. dAtA[i] = 0xaa
  786. i++
  787. dAtA[i] = 0x6
  788. i++
  789. i = encodeVarintRpc(dAtA, i, uint64(len(m.BaseDir)))
  790. i += copy(dAtA[i:], m.BaseDir)
  791. }
  792. if len(m.EtcdLogPath) > 0 {
  793. dAtA[i] = 0xb2
  794. i++
  795. dAtA[i] = 0x6
  796. i++
  797. i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdLogPath)))
  798. i += copy(dAtA[i:], m.EtcdLogPath)
  799. }
  800. if m.EtcdClientProxy {
  801. dAtA[i] = 0xc8
  802. i++
  803. dAtA[i] = 0xc
  804. i++
  805. if m.EtcdClientProxy {
  806. dAtA[i] = 1
  807. } else {
  808. dAtA[i] = 0
  809. }
  810. i++
  811. }
  812. if m.EtcdPeerProxy {
  813. dAtA[i] = 0xd0
  814. i++
  815. dAtA[i] = 0xc
  816. i++
  817. if m.EtcdPeerProxy {
  818. dAtA[i] = 1
  819. } else {
  820. dAtA[i] = 0
  821. }
  822. i++
  823. }
  824. if len(m.EtcdClientEndpoint) > 0 {
  825. dAtA[i] = 0xea
  826. i++
  827. dAtA[i] = 0x12
  828. i++
  829. i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdClientEndpoint)))
  830. i += copy(dAtA[i:], m.EtcdClientEndpoint)
  831. }
  832. if m.Etcd != nil {
  833. dAtA[i] = 0xf2
  834. i++
  835. dAtA[i] = 0x12
  836. i++
  837. i = encodeVarintRpc(dAtA, i, uint64(m.Etcd.Size()))
  838. n4, err := m.Etcd.MarshalTo(dAtA[i:])
  839. if err != nil {
  840. return 0, err
  841. }
  842. i += n4
  843. }
  844. if len(m.ClientCertData) > 0 {
  845. dAtA[i] = 0x8a
  846. i++
  847. dAtA[i] = 0x19
  848. i++
  849. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertData)))
  850. i += copy(dAtA[i:], m.ClientCertData)
  851. }
  852. if len(m.ClientCertPath) > 0 {
  853. dAtA[i] = 0x92
  854. i++
  855. dAtA[i] = 0x19
  856. i++
  857. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertPath)))
  858. i += copy(dAtA[i:], m.ClientCertPath)
  859. }
  860. if len(m.ClientKeyData) > 0 {
  861. dAtA[i] = 0x9a
  862. i++
  863. dAtA[i] = 0x19
  864. i++
  865. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyData)))
  866. i += copy(dAtA[i:], m.ClientKeyData)
  867. }
  868. if len(m.ClientKeyPath) > 0 {
  869. dAtA[i] = 0xa2
  870. i++
  871. dAtA[i] = 0x19
  872. i++
  873. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyPath)))
  874. i += copy(dAtA[i:], m.ClientKeyPath)
  875. }
  876. if len(m.ClientTrustedCAData) > 0 {
  877. dAtA[i] = 0xaa
  878. i++
  879. dAtA[i] = 0x19
  880. i++
  881. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAData)))
  882. i += copy(dAtA[i:], m.ClientTrustedCAData)
  883. }
  884. if len(m.ClientTrustedCAPath) > 0 {
  885. dAtA[i] = 0xb2
  886. i++
  887. dAtA[i] = 0x19
  888. i++
  889. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAPath)))
  890. i += copy(dAtA[i:], m.ClientTrustedCAPath)
  891. }
  892. if len(m.PeerCertData) > 0 {
  893. dAtA[i] = 0xaa
  894. i++
  895. dAtA[i] = 0x1f
  896. i++
  897. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertData)))
  898. i += copy(dAtA[i:], m.PeerCertData)
  899. }
  900. if len(m.PeerCertPath) > 0 {
  901. dAtA[i] = 0xb2
  902. i++
  903. dAtA[i] = 0x1f
  904. i++
  905. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertPath)))
  906. i += copy(dAtA[i:], m.PeerCertPath)
  907. }
  908. if len(m.PeerKeyData) > 0 {
  909. dAtA[i] = 0xba
  910. i++
  911. dAtA[i] = 0x1f
  912. i++
  913. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyData)))
  914. i += copy(dAtA[i:], m.PeerKeyData)
  915. }
  916. if len(m.PeerKeyPath) > 0 {
  917. dAtA[i] = 0xc2
  918. i++
  919. dAtA[i] = 0x1f
  920. i++
  921. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyPath)))
  922. i += copy(dAtA[i:], m.PeerKeyPath)
  923. }
  924. if len(m.PeerTrustedCAData) > 0 {
  925. dAtA[i] = 0xca
  926. i++
  927. dAtA[i] = 0x1f
  928. i++
  929. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAData)))
  930. i += copy(dAtA[i:], m.PeerTrustedCAData)
  931. }
  932. if len(m.PeerTrustedCAPath) > 0 {
  933. dAtA[i] = 0xd2
  934. i++
  935. dAtA[i] = 0x1f
  936. i++
  937. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAPath)))
  938. i += copy(dAtA[i:], m.PeerTrustedCAPath)
  939. }
  940. return i, nil
  941. }
  942. func (m *Tester) Marshal() (dAtA []byte, err error) {
  943. size := m.Size()
  944. dAtA = make([]byte, size)
  945. n, err := m.MarshalTo(dAtA)
  946. if err != nil {
  947. return nil, err
  948. }
  949. return dAtA[:n], nil
  950. }
  951. func (m *Tester) MarshalTo(dAtA []byte) (int, error) {
  952. var i int
  953. _ = i
  954. var l int
  955. _ = l
  956. if len(m.DataDir) > 0 {
  957. dAtA[i] = 0xa
  958. i++
  959. i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir)))
  960. i += copy(dAtA[i:], m.DataDir)
  961. }
  962. if len(m.Network) > 0 {
  963. dAtA[i] = 0x12
  964. i++
  965. i = encodeVarintRpc(dAtA, i, uint64(len(m.Network)))
  966. i += copy(dAtA[i:], m.Network)
  967. }
  968. if len(m.Addr) > 0 {
  969. dAtA[i] = 0x1a
  970. i++
  971. i = encodeVarintRpc(dAtA, i, uint64(len(m.Addr)))
  972. i += copy(dAtA[i:], m.Addr)
  973. }
  974. if m.DelayLatencyMs != 0 {
  975. dAtA[i] = 0x58
  976. i++
  977. i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMs))
  978. }
  979. if m.DelayLatencyMsRv != 0 {
  980. dAtA[i] = 0x60
  981. i++
  982. i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMsRv))
  983. }
  984. if m.UpdatedDelayLatencyMs != 0 {
  985. dAtA[i] = 0x68
  986. i++
  987. i = encodeVarintRpc(dAtA, i, uint64(m.UpdatedDelayLatencyMs))
  988. }
  989. if m.RoundLimit != 0 {
  990. dAtA[i] = 0xa8
  991. i++
  992. dAtA[i] = 0x1
  993. i++
  994. i = encodeVarintRpc(dAtA, i, uint64(m.RoundLimit))
  995. }
  996. if m.ExitOnFailure {
  997. dAtA[i] = 0xb0
  998. i++
  999. dAtA[i] = 0x1
  1000. i++
  1001. if m.ExitOnFailure {
  1002. dAtA[i] = 1
  1003. } else {
  1004. dAtA[i] = 0
  1005. }
  1006. i++
  1007. }
  1008. if m.ConsistencyCheck {
  1009. dAtA[i] = 0xb8
  1010. i++
  1011. dAtA[i] = 0x1
  1012. i++
  1013. if m.ConsistencyCheck {
  1014. dAtA[i] = 1
  1015. } else {
  1016. dAtA[i] = 0
  1017. }
  1018. i++
  1019. }
  1020. if m.EnablePprof {
  1021. dAtA[i] = 0xc0
  1022. i++
  1023. dAtA[i] = 0x1
  1024. i++
  1025. if m.EnablePprof {
  1026. dAtA[i] = 1
  1027. } else {
  1028. dAtA[i] = 0
  1029. }
  1030. i++
  1031. }
  1032. if m.FailureDelayMs != 0 {
  1033. dAtA[i] = 0xf8
  1034. i++
  1035. dAtA[i] = 0x1
  1036. i++
  1037. i = encodeVarintRpc(dAtA, i, uint64(m.FailureDelayMs))
  1038. }
  1039. if m.FailureShuffle {
  1040. dAtA[i] = 0x80
  1041. i++
  1042. dAtA[i] = 0x2
  1043. i++
  1044. if m.FailureShuffle {
  1045. dAtA[i] = 1
  1046. } else {
  1047. dAtA[i] = 0
  1048. }
  1049. i++
  1050. }
  1051. if len(m.FailureCases) > 0 {
  1052. for _, s := range m.FailureCases {
  1053. dAtA[i] = 0x8a
  1054. i++
  1055. dAtA[i] = 0x2
  1056. i++
  1057. l = len(s)
  1058. for l >= 1<<7 {
  1059. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1060. l >>= 7
  1061. i++
  1062. }
  1063. dAtA[i] = uint8(l)
  1064. i++
  1065. i += copy(dAtA[i:], s)
  1066. }
  1067. }
  1068. if len(m.FailpointCommands) > 0 {
  1069. for _, s := range m.FailpointCommands {
  1070. dAtA[i] = 0x92
  1071. i++
  1072. dAtA[i] = 0x2
  1073. i++
  1074. l = len(s)
  1075. for l >= 1<<7 {
  1076. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1077. l >>= 7
  1078. i++
  1079. }
  1080. dAtA[i] = uint8(l)
  1081. i++
  1082. i += copy(dAtA[i:], s)
  1083. }
  1084. }
  1085. if len(m.RunnerExecPath) > 0 {
  1086. dAtA[i] = 0xca
  1087. i++
  1088. dAtA[i] = 0x2
  1089. i++
  1090. i = encodeVarintRpc(dAtA, i, uint64(len(m.RunnerExecPath)))
  1091. i += copy(dAtA[i:], m.RunnerExecPath)
  1092. }
  1093. if len(m.ExternalExecPath) > 0 {
  1094. dAtA[i] = 0xd2
  1095. i++
  1096. dAtA[i] = 0x2
  1097. i++
  1098. i = encodeVarintRpc(dAtA, i, uint64(len(m.ExternalExecPath)))
  1099. i += copy(dAtA[i:], m.ExternalExecPath)
  1100. }
  1101. if len(m.StressTypes) > 0 {
  1102. for _, s := range m.StressTypes {
  1103. dAtA[i] = 0xaa
  1104. i++
  1105. dAtA[i] = 0x6
  1106. i++
  1107. l = len(s)
  1108. for l >= 1<<7 {
  1109. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1110. l >>= 7
  1111. i++
  1112. }
  1113. dAtA[i] = uint8(l)
  1114. i++
  1115. i += copy(dAtA[i:], s)
  1116. }
  1117. }
  1118. if m.StressKeySize != 0 {
  1119. dAtA[i] = 0xb0
  1120. i++
  1121. dAtA[i] = 0x6
  1122. i++
  1123. i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySize))
  1124. }
  1125. if m.StressKeySizeLarge != 0 {
  1126. dAtA[i] = 0xb8
  1127. i++
  1128. dAtA[i] = 0x6
  1129. i++
  1130. i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySizeLarge))
  1131. }
  1132. if m.StressKeySuffixRange != 0 {
  1133. dAtA[i] = 0xc0
  1134. i++
  1135. dAtA[i] = 0x6
  1136. i++
  1137. i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRange))
  1138. }
  1139. if m.StressKeySuffixRangeTxn != 0 {
  1140. dAtA[i] = 0xc8
  1141. i++
  1142. dAtA[i] = 0x6
  1143. i++
  1144. i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRangeTxn))
  1145. }
  1146. if m.StressKeyTxnOps != 0 {
  1147. dAtA[i] = 0xd0
  1148. i++
  1149. dAtA[i] = 0x6
  1150. i++
  1151. i = encodeVarintRpc(dAtA, i, uint64(m.StressKeyTxnOps))
  1152. }
  1153. if m.StressClients != 0 {
  1154. dAtA[i] = 0xc8
  1155. i++
  1156. dAtA[i] = 0xc
  1157. i++
  1158. i = encodeVarintRpc(dAtA, i, uint64(m.StressClients))
  1159. }
  1160. if m.StressQPS != 0 {
  1161. dAtA[i] = 0xd0
  1162. i++
  1163. dAtA[i] = 0xc
  1164. i++
  1165. i = encodeVarintRpc(dAtA, i, uint64(m.StressQPS))
  1166. }
  1167. return i, nil
  1168. }
  1169. func (m *Etcd) Marshal() (dAtA []byte, err error) {
  1170. size := m.Size()
  1171. dAtA = make([]byte, size)
  1172. n, err := m.MarshalTo(dAtA)
  1173. if err != nil {
  1174. return nil, err
  1175. }
  1176. return dAtA[:n], nil
  1177. }
  1178. func (m *Etcd) MarshalTo(dAtA []byte) (int, error) {
  1179. var i int
  1180. _ = i
  1181. var l int
  1182. _ = l
  1183. if len(m.Name) > 0 {
  1184. dAtA[i] = 0xa
  1185. i++
  1186. i = encodeVarintRpc(dAtA, i, uint64(len(m.Name)))
  1187. i += copy(dAtA[i:], m.Name)
  1188. }
  1189. if len(m.DataDir) > 0 {
  1190. dAtA[i] = 0x12
  1191. i++
  1192. i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir)))
  1193. i += copy(dAtA[i:], m.DataDir)
  1194. }
  1195. if len(m.WALDir) > 0 {
  1196. dAtA[i] = 0x1a
  1197. i++
  1198. i = encodeVarintRpc(dAtA, i, uint64(len(m.WALDir)))
  1199. i += copy(dAtA[i:], m.WALDir)
  1200. }
  1201. if m.HeartbeatIntervalMs != 0 {
  1202. dAtA[i] = 0x58
  1203. i++
  1204. i = encodeVarintRpc(dAtA, i, uint64(m.HeartbeatIntervalMs))
  1205. }
  1206. if m.ElectionTimeoutMs != 0 {
  1207. dAtA[i] = 0x60
  1208. i++
  1209. i = encodeVarintRpc(dAtA, i, uint64(m.ElectionTimeoutMs))
  1210. }
  1211. if len(m.ListenClientURLs) > 0 {
  1212. for _, s := range m.ListenClientURLs {
  1213. dAtA[i] = 0xaa
  1214. i++
  1215. dAtA[i] = 0x1
  1216. i++
  1217. l = len(s)
  1218. for l >= 1<<7 {
  1219. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1220. l >>= 7
  1221. i++
  1222. }
  1223. dAtA[i] = uint8(l)
  1224. i++
  1225. i += copy(dAtA[i:], s)
  1226. }
  1227. }
  1228. if len(m.AdvertiseClientURLs) > 0 {
  1229. for _, s := range m.AdvertiseClientURLs {
  1230. dAtA[i] = 0xb2
  1231. i++
  1232. dAtA[i] = 0x1
  1233. i++
  1234. l = len(s)
  1235. for l >= 1<<7 {
  1236. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1237. l >>= 7
  1238. i++
  1239. }
  1240. dAtA[i] = uint8(l)
  1241. i++
  1242. i += copy(dAtA[i:], s)
  1243. }
  1244. }
  1245. if m.ClientAutoTLS {
  1246. dAtA[i] = 0xb8
  1247. i++
  1248. dAtA[i] = 0x1
  1249. i++
  1250. if m.ClientAutoTLS {
  1251. dAtA[i] = 1
  1252. } else {
  1253. dAtA[i] = 0
  1254. }
  1255. i++
  1256. }
  1257. if m.ClientCertAuth {
  1258. dAtA[i] = 0xc0
  1259. i++
  1260. dAtA[i] = 0x1
  1261. i++
  1262. if m.ClientCertAuth {
  1263. dAtA[i] = 1
  1264. } else {
  1265. dAtA[i] = 0
  1266. }
  1267. i++
  1268. }
  1269. if len(m.ClientCertFile) > 0 {
  1270. dAtA[i] = 0xca
  1271. i++
  1272. dAtA[i] = 0x1
  1273. i++
  1274. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertFile)))
  1275. i += copy(dAtA[i:], m.ClientCertFile)
  1276. }
  1277. if len(m.ClientKeyFile) > 0 {
  1278. dAtA[i] = 0xd2
  1279. i++
  1280. dAtA[i] = 0x1
  1281. i++
  1282. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyFile)))
  1283. i += copy(dAtA[i:], m.ClientKeyFile)
  1284. }
  1285. if len(m.ClientTrustedCAFile) > 0 {
  1286. dAtA[i] = 0xda
  1287. i++
  1288. dAtA[i] = 0x1
  1289. i++
  1290. i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAFile)))
  1291. i += copy(dAtA[i:], m.ClientTrustedCAFile)
  1292. }
  1293. if len(m.ListenPeerURLs) > 0 {
  1294. for _, s := range m.ListenPeerURLs {
  1295. dAtA[i] = 0xfa
  1296. i++
  1297. dAtA[i] = 0x1
  1298. i++
  1299. l = len(s)
  1300. for l >= 1<<7 {
  1301. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1302. l >>= 7
  1303. i++
  1304. }
  1305. dAtA[i] = uint8(l)
  1306. i++
  1307. i += copy(dAtA[i:], s)
  1308. }
  1309. }
  1310. if len(m.AdvertisePeerURLs) > 0 {
  1311. for _, s := range m.AdvertisePeerURLs {
  1312. dAtA[i] = 0x82
  1313. i++
  1314. dAtA[i] = 0x2
  1315. i++
  1316. l = len(s)
  1317. for l >= 1<<7 {
  1318. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  1319. l >>= 7
  1320. i++
  1321. }
  1322. dAtA[i] = uint8(l)
  1323. i++
  1324. i += copy(dAtA[i:], s)
  1325. }
  1326. }
  1327. if m.PeerAutoTLS {
  1328. dAtA[i] = 0x88
  1329. i++
  1330. dAtA[i] = 0x2
  1331. i++
  1332. if m.PeerAutoTLS {
  1333. dAtA[i] = 1
  1334. } else {
  1335. dAtA[i] = 0
  1336. }
  1337. i++
  1338. }
  1339. if m.PeerClientCertAuth {
  1340. dAtA[i] = 0x90
  1341. i++
  1342. dAtA[i] = 0x2
  1343. i++
  1344. if m.PeerClientCertAuth {
  1345. dAtA[i] = 1
  1346. } else {
  1347. dAtA[i] = 0
  1348. }
  1349. i++
  1350. }
  1351. if len(m.PeerCertFile) > 0 {
  1352. dAtA[i] = 0x9a
  1353. i++
  1354. dAtA[i] = 0x2
  1355. i++
  1356. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertFile)))
  1357. i += copy(dAtA[i:], m.PeerCertFile)
  1358. }
  1359. if len(m.PeerKeyFile) > 0 {
  1360. dAtA[i] = 0xa2
  1361. i++
  1362. dAtA[i] = 0x2
  1363. i++
  1364. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyFile)))
  1365. i += copy(dAtA[i:], m.PeerKeyFile)
  1366. }
  1367. if len(m.PeerTrustedCAFile) > 0 {
  1368. dAtA[i] = 0xaa
  1369. i++
  1370. dAtA[i] = 0x2
  1371. i++
  1372. i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAFile)))
  1373. i += copy(dAtA[i:], m.PeerTrustedCAFile)
  1374. }
  1375. if len(m.InitialCluster) > 0 {
  1376. dAtA[i] = 0xca
  1377. i++
  1378. dAtA[i] = 0x2
  1379. i++
  1380. i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialCluster)))
  1381. i += copy(dAtA[i:], m.InitialCluster)
  1382. }
  1383. if len(m.InitialClusterState) > 0 {
  1384. dAtA[i] = 0xd2
  1385. i++
  1386. dAtA[i] = 0x2
  1387. i++
  1388. i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterState)))
  1389. i += copy(dAtA[i:], m.InitialClusterState)
  1390. }
  1391. if len(m.InitialClusterToken) > 0 {
  1392. dAtA[i] = 0xda
  1393. i++
  1394. dAtA[i] = 0x2
  1395. i++
  1396. i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterToken)))
  1397. i += copy(dAtA[i:], m.InitialClusterToken)
  1398. }
  1399. if m.SnapshotCount != 0 {
  1400. dAtA[i] = 0x98
  1401. i++
  1402. dAtA[i] = 0x3
  1403. i++
  1404. i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotCount))
  1405. }
  1406. if m.QuotaBackendBytes != 0 {
  1407. dAtA[i] = 0xa0
  1408. i++
  1409. dAtA[i] = 0x3
  1410. i++
  1411. i = encodeVarintRpc(dAtA, i, uint64(m.QuotaBackendBytes))
  1412. }
  1413. if m.PreVote {
  1414. dAtA[i] = 0xf8
  1415. i++
  1416. dAtA[i] = 0x3
  1417. i++
  1418. if m.PreVote {
  1419. dAtA[i] = 1
  1420. } else {
  1421. dAtA[i] = 0
  1422. }
  1423. i++
  1424. }
  1425. if m.InitialCorruptCheck {
  1426. dAtA[i] = 0x80
  1427. i++
  1428. dAtA[i] = 0x4
  1429. i++
  1430. if m.InitialCorruptCheck {
  1431. dAtA[i] = 1
  1432. } else {
  1433. dAtA[i] = 0
  1434. }
  1435. i++
  1436. }
  1437. return i, nil
  1438. }
  1439. func encodeVarintRpc(dAtA []byte, offset int, v uint64) int {
  1440. for v >= 1<<7 {
  1441. dAtA[offset] = uint8(v&0x7f | 0x80)
  1442. v >>= 7
  1443. offset++
  1444. }
  1445. dAtA[offset] = uint8(v)
  1446. return offset + 1
  1447. }
  1448. func (m *Request) Size() (n int) {
  1449. var l int
  1450. _ = l
  1451. if m.Operation != 0 {
  1452. n += 1 + sovRpc(uint64(m.Operation))
  1453. }
  1454. if m.Member != nil {
  1455. l = m.Member.Size()
  1456. n += 1 + l + sovRpc(uint64(l))
  1457. }
  1458. if m.Tester != nil {
  1459. l = m.Tester.Size()
  1460. n += 1 + l + sovRpc(uint64(l))
  1461. }
  1462. return n
  1463. }
  1464. func (m *Response) Size() (n int) {
  1465. var l int
  1466. _ = l
  1467. if m.Success {
  1468. n += 2
  1469. }
  1470. l = len(m.Status)
  1471. if l > 0 {
  1472. n += 1 + l + sovRpc(uint64(l))
  1473. }
  1474. if m.Member != nil {
  1475. l = m.Member.Size()
  1476. n += 1 + l + sovRpc(uint64(l))
  1477. }
  1478. return n
  1479. }
  1480. func (m *Member) Size() (n int) {
  1481. var l int
  1482. _ = l
  1483. l = len(m.EtcdExecPath)
  1484. if l > 0 {
  1485. n += 1 + l + sovRpc(uint64(l))
  1486. }
  1487. l = len(m.AgentAddr)
  1488. if l > 0 {
  1489. n += 1 + l + sovRpc(uint64(l))
  1490. }
  1491. l = len(m.FailpointHTTPAddr)
  1492. if l > 0 {
  1493. n += 1 + l + sovRpc(uint64(l))
  1494. }
  1495. l = len(m.BaseDir)
  1496. if l > 0 {
  1497. n += 2 + l + sovRpc(uint64(l))
  1498. }
  1499. l = len(m.EtcdLogPath)
  1500. if l > 0 {
  1501. n += 2 + l + sovRpc(uint64(l))
  1502. }
  1503. if m.EtcdClientProxy {
  1504. n += 3
  1505. }
  1506. if m.EtcdPeerProxy {
  1507. n += 3
  1508. }
  1509. l = len(m.EtcdClientEndpoint)
  1510. if l > 0 {
  1511. n += 2 + l + sovRpc(uint64(l))
  1512. }
  1513. if m.Etcd != nil {
  1514. l = m.Etcd.Size()
  1515. n += 2 + l + sovRpc(uint64(l))
  1516. }
  1517. l = len(m.ClientCertData)
  1518. if l > 0 {
  1519. n += 2 + l + sovRpc(uint64(l))
  1520. }
  1521. l = len(m.ClientCertPath)
  1522. if l > 0 {
  1523. n += 2 + l + sovRpc(uint64(l))
  1524. }
  1525. l = len(m.ClientKeyData)
  1526. if l > 0 {
  1527. n += 2 + l + sovRpc(uint64(l))
  1528. }
  1529. l = len(m.ClientKeyPath)
  1530. if l > 0 {
  1531. n += 2 + l + sovRpc(uint64(l))
  1532. }
  1533. l = len(m.ClientTrustedCAData)
  1534. if l > 0 {
  1535. n += 2 + l + sovRpc(uint64(l))
  1536. }
  1537. l = len(m.ClientTrustedCAPath)
  1538. if l > 0 {
  1539. n += 2 + l + sovRpc(uint64(l))
  1540. }
  1541. l = len(m.PeerCertData)
  1542. if l > 0 {
  1543. n += 2 + l + sovRpc(uint64(l))
  1544. }
  1545. l = len(m.PeerCertPath)
  1546. if l > 0 {
  1547. n += 2 + l + sovRpc(uint64(l))
  1548. }
  1549. l = len(m.PeerKeyData)
  1550. if l > 0 {
  1551. n += 2 + l + sovRpc(uint64(l))
  1552. }
  1553. l = len(m.PeerKeyPath)
  1554. if l > 0 {
  1555. n += 2 + l + sovRpc(uint64(l))
  1556. }
  1557. l = len(m.PeerTrustedCAData)
  1558. if l > 0 {
  1559. n += 2 + l + sovRpc(uint64(l))
  1560. }
  1561. l = len(m.PeerTrustedCAPath)
  1562. if l > 0 {
  1563. n += 2 + l + sovRpc(uint64(l))
  1564. }
  1565. return n
  1566. }
  1567. func (m *Tester) Size() (n int) {
  1568. var l int
  1569. _ = l
  1570. l = len(m.DataDir)
  1571. if l > 0 {
  1572. n += 1 + l + sovRpc(uint64(l))
  1573. }
  1574. l = len(m.Network)
  1575. if l > 0 {
  1576. n += 1 + l + sovRpc(uint64(l))
  1577. }
  1578. l = len(m.Addr)
  1579. if l > 0 {
  1580. n += 1 + l + sovRpc(uint64(l))
  1581. }
  1582. if m.DelayLatencyMs != 0 {
  1583. n += 1 + sovRpc(uint64(m.DelayLatencyMs))
  1584. }
  1585. if m.DelayLatencyMsRv != 0 {
  1586. n += 1 + sovRpc(uint64(m.DelayLatencyMsRv))
  1587. }
  1588. if m.UpdatedDelayLatencyMs != 0 {
  1589. n += 1 + sovRpc(uint64(m.UpdatedDelayLatencyMs))
  1590. }
  1591. if m.RoundLimit != 0 {
  1592. n += 2 + sovRpc(uint64(m.RoundLimit))
  1593. }
  1594. if m.ExitOnFailure {
  1595. n += 3
  1596. }
  1597. if m.ConsistencyCheck {
  1598. n += 3
  1599. }
  1600. if m.EnablePprof {
  1601. n += 3
  1602. }
  1603. if m.FailureDelayMs != 0 {
  1604. n += 2 + sovRpc(uint64(m.FailureDelayMs))
  1605. }
  1606. if m.FailureShuffle {
  1607. n += 3
  1608. }
  1609. if len(m.FailureCases) > 0 {
  1610. for _, s := range m.FailureCases {
  1611. l = len(s)
  1612. n += 2 + l + sovRpc(uint64(l))
  1613. }
  1614. }
  1615. if len(m.FailpointCommands) > 0 {
  1616. for _, s := range m.FailpointCommands {
  1617. l = len(s)
  1618. n += 2 + l + sovRpc(uint64(l))
  1619. }
  1620. }
  1621. l = len(m.RunnerExecPath)
  1622. if l > 0 {
  1623. n += 2 + l + sovRpc(uint64(l))
  1624. }
  1625. l = len(m.ExternalExecPath)
  1626. if l > 0 {
  1627. n += 2 + l + sovRpc(uint64(l))
  1628. }
  1629. if len(m.StressTypes) > 0 {
  1630. for _, s := range m.StressTypes {
  1631. l = len(s)
  1632. n += 2 + l + sovRpc(uint64(l))
  1633. }
  1634. }
  1635. if m.StressKeySize != 0 {
  1636. n += 2 + sovRpc(uint64(m.StressKeySize))
  1637. }
  1638. if m.StressKeySizeLarge != 0 {
  1639. n += 2 + sovRpc(uint64(m.StressKeySizeLarge))
  1640. }
  1641. if m.StressKeySuffixRange != 0 {
  1642. n += 2 + sovRpc(uint64(m.StressKeySuffixRange))
  1643. }
  1644. if m.StressKeySuffixRangeTxn != 0 {
  1645. n += 2 + sovRpc(uint64(m.StressKeySuffixRangeTxn))
  1646. }
  1647. if m.StressKeyTxnOps != 0 {
  1648. n += 2 + sovRpc(uint64(m.StressKeyTxnOps))
  1649. }
  1650. if m.StressClients != 0 {
  1651. n += 2 + sovRpc(uint64(m.StressClients))
  1652. }
  1653. if m.StressQPS != 0 {
  1654. n += 2 + sovRpc(uint64(m.StressQPS))
  1655. }
  1656. return n
  1657. }
  1658. func (m *Etcd) Size() (n int) {
  1659. var l int
  1660. _ = l
  1661. l = len(m.Name)
  1662. if l > 0 {
  1663. n += 1 + l + sovRpc(uint64(l))
  1664. }
  1665. l = len(m.DataDir)
  1666. if l > 0 {
  1667. n += 1 + l + sovRpc(uint64(l))
  1668. }
  1669. l = len(m.WALDir)
  1670. if l > 0 {
  1671. n += 1 + l + sovRpc(uint64(l))
  1672. }
  1673. if m.HeartbeatIntervalMs != 0 {
  1674. n += 1 + sovRpc(uint64(m.HeartbeatIntervalMs))
  1675. }
  1676. if m.ElectionTimeoutMs != 0 {
  1677. n += 1 + sovRpc(uint64(m.ElectionTimeoutMs))
  1678. }
  1679. if len(m.ListenClientURLs) > 0 {
  1680. for _, s := range m.ListenClientURLs {
  1681. l = len(s)
  1682. n += 2 + l + sovRpc(uint64(l))
  1683. }
  1684. }
  1685. if len(m.AdvertiseClientURLs) > 0 {
  1686. for _, s := range m.AdvertiseClientURLs {
  1687. l = len(s)
  1688. n += 2 + l + sovRpc(uint64(l))
  1689. }
  1690. }
  1691. if m.ClientAutoTLS {
  1692. n += 3
  1693. }
  1694. if m.ClientCertAuth {
  1695. n += 3
  1696. }
  1697. l = len(m.ClientCertFile)
  1698. if l > 0 {
  1699. n += 2 + l + sovRpc(uint64(l))
  1700. }
  1701. l = len(m.ClientKeyFile)
  1702. if l > 0 {
  1703. n += 2 + l + sovRpc(uint64(l))
  1704. }
  1705. l = len(m.ClientTrustedCAFile)
  1706. if l > 0 {
  1707. n += 2 + l + sovRpc(uint64(l))
  1708. }
  1709. if len(m.ListenPeerURLs) > 0 {
  1710. for _, s := range m.ListenPeerURLs {
  1711. l = len(s)
  1712. n += 2 + l + sovRpc(uint64(l))
  1713. }
  1714. }
  1715. if len(m.AdvertisePeerURLs) > 0 {
  1716. for _, s := range m.AdvertisePeerURLs {
  1717. l = len(s)
  1718. n += 2 + l + sovRpc(uint64(l))
  1719. }
  1720. }
  1721. if m.PeerAutoTLS {
  1722. n += 3
  1723. }
  1724. if m.PeerClientCertAuth {
  1725. n += 3
  1726. }
  1727. l = len(m.PeerCertFile)
  1728. if l > 0 {
  1729. n += 2 + l + sovRpc(uint64(l))
  1730. }
  1731. l = len(m.PeerKeyFile)
  1732. if l > 0 {
  1733. n += 2 + l + sovRpc(uint64(l))
  1734. }
  1735. l = len(m.PeerTrustedCAFile)
  1736. if l > 0 {
  1737. n += 2 + l + sovRpc(uint64(l))
  1738. }
  1739. l = len(m.InitialCluster)
  1740. if l > 0 {
  1741. n += 2 + l + sovRpc(uint64(l))
  1742. }
  1743. l = len(m.InitialClusterState)
  1744. if l > 0 {
  1745. n += 2 + l + sovRpc(uint64(l))
  1746. }
  1747. l = len(m.InitialClusterToken)
  1748. if l > 0 {
  1749. n += 2 + l + sovRpc(uint64(l))
  1750. }
  1751. if m.SnapshotCount != 0 {
  1752. n += 2 + sovRpc(uint64(m.SnapshotCount))
  1753. }
  1754. if m.QuotaBackendBytes != 0 {
  1755. n += 2 + sovRpc(uint64(m.QuotaBackendBytes))
  1756. }
  1757. if m.PreVote {
  1758. n += 3
  1759. }
  1760. if m.InitialCorruptCheck {
  1761. n += 3
  1762. }
  1763. return n
  1764. }
  1765. func sovRpc(x uint64) (n int) {
  1766. for {
  1767. n++
  1768. x >>= 7
  1769. if x == 0 {
  1770. break
  1771. }
  1772. }
  1773. return n
  1774. }
  1775. func sozRpc(x uint64) (n int) {
  1776. return sovRpc(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1777. }
  1778. func (m *Request) Unmarshal(dAtA []byte) error {
  1779. l := len(dAtA)
  1780. iNdEx := 0
  1781. for iNdEx < l {
  1782. preIndex := iNdEx
  1783. var wire uint64
  1784. for shift := uint(0); ; shift += 7 {
  1785. if shift >= 64 {
  1786. return ErrIntOverflowRpc
  1787. }
  1788. if iNdEx >= l {
  1789. return io.ErrUnexpectedEOF
  1790. }
  1791. b := dAtA[iNdEx]
  1792. iNdEx++
  1793. wire |= (uint64(b) & 0x7F) << shift
  1794. if b < 0x80 {
  1795. break
  1796. }
  1797. }
  1798. fieldNum := int32(wire >> 3)
  1799. wireType := int(wire & 0x7)
  1800. if wireType == 4 {
  1801. return fmt.Errorf("proto: Request: wiretype end group for non-group")
  1802. }
  1803. if fieldNum <= 0 {
  1804. return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  1805. }
  1806. switch fieldNum {
  1807. case 1:
  1808. if wireType != 0 {
  1809. return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType)
  1810. }
  1811. m.Operation = 0
  1812. for shift := uint(0); ; shift += 7 {
  1813. if shift >= 64 {
  1814. return ErrIntOverflowRpc
  1815. }
  1816. if iNdEx >= l {
  1817. return io.ErrUnexpectedEOF
  1818. }
  1819. b := dAtA[iNdEx]
  1820. iNdEx++
  1821. m.Operation |= (Operation(b) & 0x7F) << shift
  1822. if b < 0x80 {
  1823. break
  1824. }
  1825. }
  1826. case 2:
  1827. if wireType != 2 {
  1828. return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType)
  1829. }
  1830. var msglen int
  1831. for shift := uint(0); ; shift += 7 {
  1832. if shift >= 64 {
  1833. return ErrIntOverflowRpc
  1834. }
  1835. if iNdEx >= l {
  1836. return io.ErrUnexpectedEOF
  1837. }
  1838. b := dAtA[iNdEx]
  1839. iNdEx++
  1840. msglen |= (int(b) & 0x7F) << shift
  1841. if b < 0x80 {
  1842. break
  1843. }
  1844. }
  1845. if msglen < 0 {
  1846. return ErrInvalidLengthRpc
  1847. }
  1848. postIndex := iNdEx + msglen
  1849. if postIndex > l {
  1850. return io.ErrUnexpectedEOF
  1851. }
  1852. if m.Member == nil {
  1853. m.Member = &Member{}
  1854. }
  1855. if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1856. return err
  1857. }
  1858. iNdEx = postIndex
  1859. case 3:
  1860. if wireType != 2 {
  1861. return fmt.Errorf("proto: wrong wireType = %d for field Tester", wireType)
  1862. }
  1863. var msglen int
  1864. for shift := uint(0); ; shift += 7 {
  1865. if shift >= 64 {
  1866. return ErrIntOverflowRpc
  1867. }
  1868. if iNdEx >= l {
  1869. return io.ErrUnexpectedEOF
  1870. }
  1871. b := dAtA[iNdEx]
  1872. iNdEx++
  1873. msglen |= (int(b) & 0x7F) << shift
  1874. if b < 0x80 {
  1875. break
  1876. }
  1877. }
  1878. if msglen < 0 {
  1879. return ErrInvalidLengthRpc
  1880. }
  1881. postIndex := iNdEx + msglen
  1882. if postIndex > l {
  1883. return io.ErrUnexpectedEOF
  1884. }
  1885. if m.Tester == nil {
  1886. m.Tester = &Tester{}
  1887. }
  1888. if err := m.Tester.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1889. return err
  1890. }
  1891. iNdEx = postIndex
  1892. default:
  1893. iNdEx = preIndex
  1894. skippy, err := skipRpc(dAtA[iNdEx:])
  1895. if err != nil {
  1896. return err
  1897. }
  1898. if skippy < 0 {
  1899. return ErrInvalidLengthRpc
  1900. }
  1901. if (iNdEx + skippy) > l {
  1902. return io.ErrUnexpectedEOF
  1903. }
  1904. iNdEx += skippy
  1905. }
  1906. }
  1907. if iNdEx > l {
  1908. return io.ErrUnexpectedEOF
  1909. }
  1910. return nil
  1911. }
  1912. func (m *Response) Unmarshal(dAtA []byte) error {
  1913. l := len(dAtA)
  1914. iNdEx := 0
  1915. for iNdEx < l {
  1916. preIndex := iNdEx
  1917. var wire uint64
  1918. for shift := uint(0); ; shift += 7 {
  1919. if shift >= 64 {
  1920. return ErrIntOverflowRpc
  1921. }
  1922. if iNdEx >= l {
  1923. return io.ErrUnexpectedEOF
  1924. }
  1925. b := dAtA[iNdEx]
  1926. iNdEx++
  1927. wire |= (uint64(b) & 0x7F) << shift
  1928. if b < 0x80 {
  1929. break
  1930. }
  1931. }
  1932. fieldNum := int32(wire >> 3)
  1933. wireType := int(wire & 0x7)
  1934. if wireType == 4 {
  1935. return fmt.Errorf("proto: Response: wiretype end group for non-group")
  1936. }
  1937. if fieldNum <= 0 {
  1938. return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  1939. }
  1940. switch fieldNum {
  1941. case 1:
  1942. if wireType != 0 {
  1943. return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType)
  1944. }
  1945. var v int
  1946. for shift := uint(0); ; shift += 7 {
  1947. if shift >= 64 {
  1948. return ErrIntOverflowRpc
  1949. }
  1950. if iNdEx >= l {
  1951. return io.ErrUnexpectedEOF
  1952. }
  1953. b := dAtA[iNdEx]
  1954. iNdEx++
  1955. v |= (int(b) & 0x7F) << shift
  1956. if b < 0x80 {
  1957. break
  1958. }
  1959. }
  1960. m.Success = bool(v != 0)
  1961. case 2:
  1962. if wireType != 2 {
  1963. return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
  1964. }
  1965. var stringLen uint64
  1966. for shift := uint(0); ; shift += 7 {
  1967. if shift >= 64 {
  1968. return ErrIntOverflowRpc
  1969. }
  1970. if iNdEx >= l {
  1971. return io.ErrUnexpectedEOF
  1972. }
  1973. b := dAtA[iNdEx]
  1974. iNdEx++
  1975. stringLen |= (uint64(b) & 0x7F) << shift
  1976. if b < 0x80 {
  1977. break
  1978. }
  1979. }
  1980. intStringLen := int(stringLen)
  1981. if intStringLen < 0 {
  1982. return ErrInvalidLengthRpc
  1983. }
  1984. postIndex := iNdEx + intStringLen
  1985. if postIndex > l {
  1986. return io.ErrUnexpectedEOF
  1987. }
  1988. m.Status = string(dAtA[iNdEx:postIndex])
  1989. iNdEx = postIndex
  1990. case 3:
  1991. if wireType != 2 {
  1992. return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType)
  1993. }
  1994. var msglen int
  1995. for shift := uint(0); ; shift += 7 {
  1996. if shift >= 64 {
  1997. return ErrIntOverflowRpc
  1998. }
  1999. if iNdEx >= l {
  2000. return io.ErrUnexpectedEOF
  2001. }
  2002. b := dAtA[iNdEx]
  2003. iNdEx++
  2004. msglen |= (int(b) & 0x7F) << shift
  2005. if b < 0x80 {
  2006. break
  2007. }
  2008. }
  2009. if msglen < 0 {
  2010. return ErrInvalidLengthRpc
  2011. }
  2012. postIndex := iNdEx + msglen
  2013. if postIndex > l {
  2014. return io.ErrUnexpectedEOF
  2015. }
  2016. if m.Member == nil {
  2017. m.Member = &Member{}
  2018. }
  2019. if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2020. return err
  2021. }
  2022. iNdEx = postIndex
  2023. default:
  2024. iNdEx = preIndex
  2025. skippy, err := skipRpc(dAtA[iNdEx:])
  2026. if err != nil {
  2027. return err
  2028. }
  2029. if skippy < 0 {
  2030. return ErrInvalidLengthRpc
  2031. }
  2032. if (iNdEx + skippy) > l {
  2033. return io.ErrUnexpectedEOF
  2034. }
  2035. iNdEx += skippy
  2036. }
  2037. }
  2038. if iNdEx > l {
  2039. return io.ErrUnexpectedEOF
  2040. }
  2041. return nil
  2042. }
  2043. func (m *Member) Unmarshal(dAtA []byte) error {
  2044. l := len(dAtA)
  2045. iNdEx := 0
  2046. for iNdEx < l {
  2047. preIndex := iNdEx
  2048. var wire uint64
  2049. for shift := uint(0); ; shift += 7 {
  2050. if shift >= 64 {
  2051. return ErrIntOverflowRpc
  2052. }
  2053. if iNdEx >= l {
  2054. return io.ErrUnexpectedEOF
  2055. }
  2056. b := dAtA[iNdEx]
  2057. iNdEx++
  2058. wire |= (uint64(b) & 0x7F) << shift
  2059. if b < 0x80 {
  2060. break
  2061. }
  2062. }
  2063. fieldNum := int32(wire >> 3)
  2064. wireType := int(wire & 0x7)
  2065. if wireType == 4 {
  2066. return fmt.Errorf("proto: Member: wiretype end group for non-group")
  2067. }
  2068. if fieldNum <= 0 {
  2069. return fmt.Errorf("proto: Member: illegal tag %d (wire type %d)", fieldNum, wire)
  2070. }
  2071. switch fieldNum {
  2072. case 1:
  2073. if wireType != 2 {
  2074. return fmt.Errorf("proto: wrong wireType = %d for field EtcdExecPath", wireType)
  2075. }
  2076. var stringLen uint64
  2077. for shift := uint(0); ; shift += 7 {
  2078. if shift >= 64 {
  2079. return ErrIntOverflowRpc
  2080. }
  2081. if iNdEx >= l {
  2082. return io.ErrUnexpectedEOF
  2083. }
  2084. b := dAtA[iNdEx]
  2085. iNdEx++
  2086. stringLen |= (uint64(b) & 0x7F) << shift
  2087. if b < 0x80 {
  2088. break
  2089. }
  2090. }
  2091. intStringLen := int(stringLen)
  2092. if intStringLen < 0 {
  2093. return ErrInvalidLengthRpc
  2094. }
  2095. postIndex := iNdEx + intStringLen
  2096. if postIndex > l {
  2097. return io.ErrUnexpectedEOF
  2098. }
  2099. m.EtcdExecPath = string(dAtA[iNdEx:postIndex])
  2100. iNdEx = postIndex
  2101. case 11:
  2102. if wireType != 2 {
  2103. return fmt.Errorf("proto: wrong wireType = %d for field AgentAddr", wireType)
  2104. }
  2105. var stringLen uint64
  2106. for shift := uint(0); ; shift += 7 {
  2107. if shift >= 64 {
  2108. return ErrIntOverflowRpc
  2109. }
  2110. if iNdEx >= l {
  2111. return io.ErrUnexpectedEOF
  2112. }
  2113. b := dAtA[iNdEx]
  2114. iNdEx++
  2115. stringLen |= (uint64(b) & 0x7F) << shift
  2116. if b < 0x80 {
  2117. break
  2118. }
  2119. }
  2120. intStringLen := int(stringLen)
  2121. if intStringLen < 0 {
  2122. return ErrInvalidLengthRpc
  2123. }
  2124. postIndex := iNdEx + intStringLen
  2125. if postIndex > l {
  2126. return io.ErrUnexpectedEOF
  2127. }
  2128. m.AgentAddr = string(dAtA[iNdEx:postIndex])
  2129. iNdEx = postIndex
  2130. case 12:
  2131. if wireType != 2 {
  2132. return fmt.Errorf("proto: wrong wireType = %d for field FailpointHTTPAddr", wireType)
  2133. }
  2134. var stringLen uint64
  2135. for shift := uint(0); ; shift += 7 {
  2136. if shift >= 64 {
  2137. return ErrIntOverflowRpc
  2138. }
  2139. if iNdEx >= l {
  2140. return io.ErrUnexpectedEOF
  2141. }
  2142. b := dAtA[iNdEx]
  2143. iNdEx++
  2144. stringLen |= (uint64(b) & 0x7F) << shift
  2145. if b < 0x80 {
  2146. break
  2147. }
  2148. }
  2149. intStringLen := int(stringLen)
  2150. if intStringLen < 0 {
  2151. return ErrInvalidLengthRpc
  2152. }
  2153. postIndex := iNdEx + intStringLen
  2154. if postIndex > l {
  2155. return io.ErrUnexpectedEOF
  2156. }
  2157. m.FailpointHTTPAddr = string(dAtA[iNdEx:postIndex])
  2158. iNdEx = postIndex
  2159. case 101:
  2160. if wireType != 2 {
  2161. return fmt.Errorf("proto: wrong wireType = %d for field BaseDir", wireType)
  2162. }
  2163. var stringLen uint64
  2164. for shift := uint(0); ; shift += 7 {
  2165. if shift >= 64 {
  2166. return ErrIntOverflowRpc
  2167. }
  2168. if iNdEx >= l {
  2169. return io.ErrUnexpectedEOF
  2170. }
  2171. b := dAtA[iNdEx]
  2172. iNdEx++
  2173. stringLen |= (uint64(b) & 0x7F) << shift
  2174. if b < 0x80 {
  2175. break
  2176. }
  2177. }
  2178. intStringLen := int(stringLen)
  2179. if intStringLen < 0 {
  2180. return ErrInvalidLengthRpc
  2181. }
  2182. postIndex := iNdEx + intStringLen
  2183. if postIndex > l {
  2184. return io.ErrUnexpectedEOF
  2185. }
  2186. m.BaseDir = string(dAtA[iNdEx:postIndex])
  2187. iNdEx = postIndex
  2188. case 102:
  2189. if wireType != 2 {
  2190. return fmt.Errorf("proto: wrong wireType = %d for field EtcdLogPath", wireType)
  2191. }
  2192. var stringLen uint64
  2193. for shift := uint(0); ; shift += 7 {
  2194. if shift >= 64 {
  2195. return ErrIntOverflowRpc
  2196. }
  2197. if iNdEx >= l {
  2198. return io.ErrUnexpectedEOF
  2199. }
  2200. b := dAtA[iNdEx]
  2201. iNdEx++
  2202. stringLen |= (uint64(b) & 0x7F) << shift
  2203. if b < 0x80 {
  2204. break
  2205. }
  2206. }
  2207. intStringLen := int(stringLen)
  2208. if intStringLen < 0 {
  2209. return ErrInvalidLengthRpc
  2210. }
  2211. postIndex := iNdEx + intStringLen
  2212. if postIndex > l {
  2213. return io.ErrUnexpectedEOF
  2214. }
  2215. m.EtcdLogPath = string(dAtA[iNdEx:postIndex])
  2216. iNdEx = postIndex
  2217. case 201:
  2218. if wireType != 0 {
  2219. return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientProxy", wireType)
  2220. }
  2221. var v int
  2222. for shift := uint(0); ; shift += 7 {
  2223. if shift >= 64 {
  2224. return ErrIntOverflowRpc
  2225. }
  2226. if iNdEx >= l {
  2227. return io.ErrUnexpectedEOF
  2228. }
  2229. b := dAtA[iNdEx]
  2230. iNdEx++
  2231. v |= (int(b) & 0x7F) << shift
  2232. if b < 0x80 {
  2233. break
  2234. }
  2235. }
  2236. m.EtcdClientProxy = bool(v != 0)
  2237. case 202:
  2238. if wireType != 0 {
  2239. return fmt.Errorf("proto: wrong wireType = %d for field EtcdPeerProxy", wireType)
  2240. }
  2241. var v int
  2242. for shift := uint(0); ; shift += 7 {
  2243. if shift >= 64 {
  2244. return ErrIntOverflowRpc
  2245. }
  2246. if iNdEx >= l {
  2247. return io.ErrUnexpectedEOF
  2248. }
  2249. b := dAtA[iNdEx]
  2250. iNdEx++
  2251. v |= (int(b) & 0x7F) << shift
  2252. if b < 0x80 {
  2253. break
  2254. }
  2255. }
  2256. m.EtcdPeerProxy = bool(v != 0)
  2257. case 301:
  2258. if wireType != 2 {
  2259. return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientEndpoint", wireType)
  2260. }
  2261. var stringLen uint64
  2262. for shift := uint(0); ; shift += 7 {
  2263. if shift >= 64 {
  2264. return ErrIntOverflowRpc
  2265. }
  2266. if iNdEx >= l {
  2267. return io.ErrUnexpectedEOF
  2268. }
  2269. b := dAtA[iNdEx]
  2270. iNdEx++
  2271. stringLen |= (uint64(b) & 0x7F) << shift
  2272. if b < 0x80 {
  2273. break
  2274. }
  2275. }
  2276. intStringLen := int(stringLen)
  2277. if intStringLen < 0 {
  2278. return ErrInvalidLengthRpc
  2279. }
  2280. postIndex := iNdEx + intStringLen
  2281. if postIndex > l {
  2282. return io.ErrUnexpectedEOF
  2283. }
  2284. m.EtcdClientEndpoint = string(dAtA[iNdEx:postIndex])
  2285. iNdEx = postIndex
  2286. case 302:
  2287. if wireType != 2 {
  2288. return fmt.Errorf("proto: wrong wireType = %d for field Etcd", wireType)
  2289. }
  2290. var msglen int
  2291. for shift := uint(0); ; shift += 7 {
  2292. if shift >= 64 {
  2293. return ErrIntOverflowRpc
  2294. }
  2295. if iNdEx >= l {
  2296. return io.ErrUnexpectedEOF
  2297. }
  2298. b := dAtA[iNdEx]
  2299. iNdEx++
  2300. msglen |= (int(b) & 0x7F) << shift
  2301. if b < 0x80 {
  2302. break
  2303. }
  2304. }
  2305. if msglen < 0 {
  2306. return ErrInvalidLengthRpc
  2307. }
  2308. postIndex := iNdEx + msglen
  2309. if postIndex > l {
  2310. return io.ErrUnexpectedEOF
  2311. }
  2312. if m.Etcd == nil {
  2313. m.Etcd = &Etcd{}
  2314. }
  2315. if err := m.Etcd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2316. return err
  2317. }
  2318. iNdEx = postIndex
  2319. case 401:
  2320. if wireType != 2 {
  2321. return fmt.Errorf("proto: wrong wireType = %d for field ClientCertData", wireType)
  2322. }
  2323. var stringLen uint64
  2324. for shift := uint(0); ; shift += 7 {
  2325. if shift >= 64 {
  2326. return ErrIntOverflowRpc
  2327. }
  2328. if iNdEx >= l {
  2329. return io.ErrUnexpectedEOF
  2330. }
  2331. b := dAtA[iNdEx]
  2332. iNdEx++
  2333. stringLen |= (uint64(b) & 0x7F) << shift
  2334. if b < 0x80 {
  2335. break
  2336. }
  2337. }
  2338. intStringLen := int(stringLen)
  2339. if intStringLen < 0 {
  2340. return ErrInvalidLengthRpc
  2341. }
  2342. postIndex := iNdEx + intStringLen
  2343. if postIndex > l {
  2344. return io.ErrUnexpectedEOF
  2345. }
  2346. m.ClientCertData = string(dAtA[iNdEx:postIndex])
  2347. iNdEx = postIndex
  2348. case 402:
  2349. if wireType != 2 {
  2350. return fmt.Errorf("proto: wrong wireType = %d for field ClientCertPath", wireType)
  2351. }
  2352. var stringLen uint64
  2353. for shift := uint(0); ; shift += 7 {
  2354. if shift >= 64 {
  2355. return ErrIntOverflowRpc
  2356. }
  2357. if iNdEx >= l {
  2358. return io.ErrUnexpectedEOF
  2359. }
  2360. b := dAtA[iNdEx]
  2361. iNdEx++
  2362. stringLen |= (uint64(b) & 0x7F) << shift
  2363. if b < 0x80 {
  2364. break
  2365. }
  2366. }
  2367. intStringLen := int(stringLen)
  2368. if intStringLen < 0 {
  2369. return ErrInvalidLengthRpc
  2370. }
  2371. postIndex := iNdEx + intStringLen
  2372. if postIndex > l {
  2373. return io.ErrUnexpectedEOF
  2374. }
  2375. m.ClientCertPath = string(dAtA[iNdEx:postIndex])
  2376. iNdEx = postIndex
  2377. case 403:
  2378. if wireType != 2 {
  2379. return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyData", wireType)
  2380. }
  2381. var stringLen uint64
  2382. for shift := uint(0); ; shift += 7 {
  2383. if shift >= 64 {
  2384. return ErrIntOverflowRpc
  2385. }
  2386. if iNdEx >= l {
  2387. return io.ErrUnexpectedEOF
  2388. }
  2389. b := dAtA[iNdEx]
  2390. iNdEx++
  2391. stringLen |= (uint64(b) & 0x7F) << shift
  2392. if b < 0x80 {
  2393. break
  2394. }
  2395. }
  2396. intStringLen := int(stringLen)
  2397. if intStringLen < 0 {
  2398. return ErrInvalidLengthRpc
  2399. }
  2400. postIndex := iNdEx + intStringLen
  2401. if postIndex > l {
  2402. return io.ErrUnexpectedEOF
  2403. }
  2404. m.ClientKeyData = string(dAtA[iNdEx:postIndex])
  2405. iNdEx = postIndex
  2406. case 404:
  2407. if wireType != 2 {
  2408. return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyPath", wireType)
  2409. }
  2410. var stringLen uint64
  2411. for shift := uint(0); ; shift += 7 {
  2412. if shift >= 64 {
  2413. return ErrIntOverflowRpc
  2414. }
  2415. if iNdEx >= l {
  2416. return io.ErrUnexpectedEOF
  2417. }
  2418. b := dAtA[iNdEx]
  2419. iNdEx++
  2420. stringLen |= (uint64(b) & 0x7F) << shift
  2421. if b < 0x80 {
  2422. break
  2423. }
  2424. }
  2425. intStringLen := int(stringLen)
  2426. if intStringLen < 0 {
  2427. return ErrInvalidLengthRpc
  2428. }
  2429. postIndex := iNdEx + intStringLen
  2430. if postIndex > l {
  2431. return io.ErrUnexpectedEOF
  2432. }
  2433. m.ClientKeyPath = string(dAtA[iNdEx:postIndex])
  2434. iNdEx = postIndex
  2435. case 405:
  2436. if wireType != 2 {
  2437. return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAData", wireType)
  2438. }
  2439. var stringLen uint64
  2440. for shift := uint(0); ; shift += 7 {
  2441. if shift >= 64 {
  2442. return ErrIntOverflowRpc
  2443. }
  2444. if iNdEx >= l {
  2445. return io.ErrUnexpectedEOF
  2446. }
  2447. b := dAtA[iNdEx]
  2448. iNdEx++
  2449. stringLen |= (uint64(b) & 0x7F) << shift
  2450. if b < 0x80 {
  2451. break
  2452. }
  2453. }
  2454. intStringLen := int(stringLen)
  2455. if intStringLen < 0 {
  2456. return ErrInvalidLengthRpc
  2457. }
  2458. postIndex := iNdEx + intStringLen
  2459. if postIndex > l {
  2460. return io.ErrUnexpectedEOF
  2461. }
  2462. m.ClientTrustedCAData = string(dAtA[iNdEx:postIndex])
  2463. iNdEx = postIndex
  2464. case 406:
  2465. if wireType != 2 {
  2466. return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAPath", wireType)
  2467. }
  2468. var stringLen uint64
  2469. for shift := uint(0); ; shift += 7 {
  2470. if shift >= 64 {
  2471. return ErrIntOverflowRpc
  2472. }
  2473. if iNdEx >= l {
  2474. return io.ErrUnexpectedEOF
  2475. }
  2476. b := dAtA[iNdEx]
  2477. iNdEx++
  2478. stringLen |= (uint64(b) & 0x7F) << shift
  2479. if b < 0x80 {
  2480. break
  2481. }
  2482. }
  2483. intStringLen := int(stringLen)
  2484. if intStringLen < 0 {
  2485. return ErrInvalidLengthRpc
  2486. }
  2487. postIndex := iNdEx + intStringLen
  2488. if postIndex > l {
  2489. return io.ErrUnexpectedEOF
  2490. }
  2491. m.ClientTrustedCAPath = string(dAtA[iNdEx:postIndex])
  2492. iNdEx = postIndex
  2493. case 501:
  2494. if wireType != 2 {
  2495. return fmt.Errorf("proto: wrong wireType = %d for field PeerCertData", wireType)
  2496. }
  2497. var stringLen uint64
  2498. for shift := uint(0); ; shift += 7 {
  2499. if shift >= 64 {
  2500. return ErrIntOverflowRpc
  2501. }
  2502. if iNdEx >= l {
  2503. return io.ErrUnexpectedEOF
  2504. }
  2505. b := dAtA[iNdEx]
  2506. iNdEx++
  2507. stringLen |= (uint64(b) & 0x7F) << shift
  2508. if b < 0x80 {
  2509. break
  2510. }
  2511. }
  2512. intStringLen := int(stringLen)
  2513. if intStringLen < 0 {
  2514. return ErrInvalidLengthRpc
  2515. }
  2516. postIndex := iNdEx + intStringLen
  2517. if postIndex > l {
  2518. return io.ErrUnexpectedEOF
  2519. }
  2520. m.PeerCertData = string(dAtA[iNdEx:postIndex])
  2521. iNdEx = postIndex
  2522. case 502:
  2523. if wireType != 2 {
  2524. return fmt.Errorf("proto: wrong wireType = %d for field PeerCertPath", wireType)
  2525. }
  2526. var stringLen uint64
  2527. for shift := uint(0); ; shift += 7 {
  2528. if shift >= 64 {
  2529. return ErrIntOverflowRpc
  2530. }
  2531. if iNdEx >= l {
  2532. return io.ErrUnexpectedEOF
  2533. }
  2534. b := dAtA[iNdEx]
  2535. iNdEx++
  2536. stringLen |= (uint64(b) & 0x7F) << shift
  2537. if b < 0x80 {
  2538. break
  2539. }
  2540. }
  2541. intStringLen := int(stringLen)
  2542. if intStringLen < 0 {
  2543. return ErrInvalidLengthRpc
  2544. }
  2545. postIndex := iNdEx + intStringLen
  2546. if postIndex > l {
  2547. return io.ErrUnexpectedEOF
  2548. }
  2549. m.PeerCertPath = string(dAtA[iNdEx:postIndex])
  2550. iNdEx = postIndex
  2551. case 503:
  2552. if wireType != 2 {
  2553. return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyData", wireType)
  2554. }
  2555. var stringLen uint64
  2556. for shift := uint(0); ; shift += 7 {
  2557. if shift >= 64 {
  2558. return ErrIntOverflowRpc
  2559. }
  2560. if iNdEx >= l {
  2561. return io.ErrUnexpectedEOF
  2562. }
  2563. b := dAtA[iNdEx]
  2564. iNdEx++
  2565. stringLen |= (uint64(b) & 0x7F) << shift
  2566. if b < 0x80 {
  2567. break
  2568. }
  2569. }
  2570. intStringLen := int(stringLen)
  2571. if intStringLen < 0 {
  2572. return ErrInvalidLengthRpc
  2573. }
  2574. postIndex := iNdEx + intStringLen
  2575. if postIndex > l {
  2576. return io.ErrUnexpectedEOF
  2577. }
  2578. m.PeerKeyData = string(dAtA[iNdEx:postIndex])
  2579. iNdEx = postIndex
  2580. case 504:
  2581. if wireType != 2 {
  2582. return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyPath", wireType)
  2583. }
  2584. var stringLen uint64
  2585. for shift := uint(0); ; shift += 7 {
  2586. if shift >= 64 {
  2587. return ErrIntOverflowRpc
  2588. }
  2589. if iNdEx >= l {
  2590. return io.ErrUnexpectedEOF
  2591. }
  2592. b := dAtA[iNdEx]
  2593. iNdEx++
  2594. stringLen |= (uint64(b) & 0x7F) << shift
  2595. if b < 0x80 {
  2596. break
  2597. }
  2598. }
  2599. intStringLen := int(stringLen)
  2600. if intStringLen < 0 {
  2601. return ErrInvalidLengthRpc
  2602. }
  2603. postIndex := iNdEx + intStringLen
  2604. if postIndex > l {
  2605. return io.ErrUnexpectedEOF
  2606. }
  2607. m.PeerKeyPath = string(dAtA[iNdEx:postIndex])
  2608. iNdEx = postIndex
  2609. case 505:
  2610. if wireType != 2 {
  2611. return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAData", wireType)
  2612. }
  2613. var stringLen uint64
  2614. for shift := uint(0); ; shift += 7 {
  2615. if shift >= 64 {
  2616. return ErrIntOverflowRpc
  2617. }
  2618. if iNdEx >= l {
  2619. return io.ErrUnexpectedEOF
  2620. }
  2621. b := dAtA[iNdEx]
  2622. iNdEx++
  2623. stringLen |= (uint64(b) & 0x7F) << shift
  2624. if b < 0x80 {
  2625. break
  2626. }
  2627. }
  2628. intStringLen := int(stringLen)
  2629. if intStringLen < 0 {
  2630. return ErrInvalidLengthRpc
  2631. }
  2632. postIndex := iNdEx + intStringLen
  2633. if postIndex > l {
  2634. return io.ErrUnexpectedEOF
  2635. }
  2636. m.PeerTrustedCAData = string(dAtA[iNdEx:postIndex])
  2637. iNdEx = postIndex
  2638. case 506:
  2639. if wireType != 2 {
  2640. return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAPath", wireType)
  2641. }
  2642. var stringLen uint64
  2643. for shift := uint(0); ; shift += 7 {
  2644. if shift >= 64 {
  2645. return ErrIntOverflowRpc
  2646. }
  2647. if iNdEx >= l {
  2648. return io.ErrUnexpectedEOF
  2649. }
  2650. b := dAtA[iNdEx]
  2651. iNdEx++
  2652. stringLen |= (uint64(b) & 0x7F) << shift
  2653. if b < 0x80 {
  2654. break
  2655. }
  2656. }
  2657. intStringLen := int(stringLen)
  2658. if intStringLen < 0 {
  2659. return ErrInvalidLengthRpc
  2660. }
  2661. postIndex := iNdEx + intStringLen
  2662. if postIndex > l {
  2663. return io.ErrUnexpectedEOF
  2664. }
  2665. m.PeerTrustedCAPath = string(dAtA[iNdEx:postIndex])
  2666. iNdEx = postIndex
  2667. default:
  2668. iNdEx = preIndex
  2669. skippy, err := skipRpc(dAtA[iNdEx:])
  2670. if err != nil {
  2671. return err
  2672. }
  2673. if skippy < 0 {
  2674. return ErrInvalidLengthRpc
  2675. }
  2676. if (iNdEx + skippy) > l {
  2677. return io.ErrUnexpectedEOF
  2678. }
  2679. iNdEx += skippy
  2680. }
  2681. }
  2682. if iNdEx > l {
  2683. return io.ErrUnexpectedEOF
  2684. }
  2685. return nil
  2686. }
  2687. func (m *Tester) Unmarshal(dAtA []byte) error {
  2688. l := len(dAtA)
  2689. iNdEx := 0
  2690. for iNdEx < l {
  2691. preIndex := iNdEx
  2692. var wire uint64
  2693. for shift := uint(0); ; shift += 7 {
  2694. if shift >= 64 {
  2695. return ErrIntOverflowRpc
  2696. }
  2697. if iNdEx >= l {
  2698. return io.ErrUnexpectedEOF
  2699. }
  2700. b := dAtA[iNdEx]
  2701. iNdEx++
  2702. wire |= (uint64(b) & 0x7F) << shift
  2703. if b < 0x80 {
  2704. break
  2705. }
  2706. }
  2707. fieldNum := int32(wire >> 3)
  2708. wireType := int(wire & 0x7)
  2709. if wireType == 4 {
  2710. return fmt.Errorf("proto: Tester: wiretype end group for non-group")
  2711. }
  2712. if fieldNum <= 0 {
  2713. return fmt.Errorf("proto: Tester: illegal tag %d (wire type %d)", fieldNum, wire)
  2714. }
  2715. switch fieldNum {
  2716. case 1:
  2717. if wireType != 2 {
  2718. return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType)
  2719. }
  2720. var stringLen uint64
  2721. for shift := uint(0); ; shift += 7 {
  2722. if shift >= 64 {
  2723. return ErrIntOverflowRpc
  2724. }
  2725. if iNdEx >= l {
  2726. return io.ErrUnexpectedEOF
  2727. }
  2728. b := dAtA[iNdEx]
  2729. iNdEx++
  2730. stringLen |= (uint64(b) & 0x7F) << shift
  2731. if b < 0x80 {
  2732. break
  2733. }
  2734. }
  2735. intStringLen := int(stringLen)
  2736. if intStringLen < 0 {
  2737. return ErrInvalidLengthRpc
  2738. }
  2739. postIndex := iNdEx + intStringLen
  2740. if postIndex > l {
  2741. return io.ErrUnexpectedEOF
  2742. }
  2743. m.DataDir = string(dAtA[iNdEx:postIndex])
  2744. iNdEx = postIndex
  2745. case 2:
  2746. if wireType != 2 {
  2747. return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
  2748. }
  2749. var stringLen uint64
  2750. for shift := uint(0); ; shift += 7 {
  2751. if shift >= 64 {
  2752. return ErrIntOverflowRpc
  2753. }
  2754. if iNdEx >= l {
  2755. return io.ErrUnexpectedEOF
  2756. }
  2757. b := dAtA[iNdEx]
  2758. iNdEx++
  2759. stringLen |= (uint64(b) & 0x7F) << shift
  2760. if b < 0x80 {
  2761. break
  2762. }
  2763. }
  2764. intStringLen := int(stringLen)
  2765. if intStringLen < 0 {
  2766. return ErrInvalidLengthRpc
  2767. }
  2768. postIndex := iNdEx + intStringLen
  2769. if postIndex > l {
  2770. return io.ErrUnexpectedEOF
  2771. }
  2772. m.Network = string(dAtA[iNdEx:postIndex])
  2773. iNdEx = postIndex
  2774. case 3:
  2775. if wireType != 2 {
  2776. return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
  2777. }
  2778. var stringLen uint64
  2779. for shift := uint(0); ; shift += 7 {
  2780. if shift >= 64 {
  2781. return ErrIntOverflowRpc
  2782. }
  2783. if iNdEx >= l {
  2784. return io.ErrUnexpectedEOF
  2785. }
  2786. b := dAtA[iNdEx]
  2787. iNdEx++
  2788. stringLen |= (uint64(b) & 0x7F) << shift
  2789. if b < 0x80 {
  2790. break
  2791. }
  2792. }
  2793. intStringLen := int(stringLen)
  2794. if intStringLen < 0 {
  2795. return ErrInvalidLengthRpc
  2796. }
  2797. postIndex := iNdEx + intStringLen
  2798. if postIndex > l {
  2799. return io.ErrUnexpectedEOF
  2800. }
  2801. m.Addr = string(dAtA[iNdEx:postIndex])
  2802. iNdEx = postIndex
  2803. case 11:
  2804. if wireType != 0 {
  2805. return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMs", wireType)
  2806. }
  2807. m.DelayLatencyMs = 0
  2808. for shift := uint(0); ; shift += 7 {
  2809. if shift >= 64 {
  2810. return ErrIntOverflowRpc
  2811. }
  2812. if iNdEx >= l {
  2813. return io.ErrUnexpectedEOF
  2814. }
  2815. b := dAtA[iNdEx]
  2816. iNdEx++
  2817. m.DelayLatencyMs |= (uint32(b) & 0x7F) << shift
  2818. if b < 0x80 {
  2819. break
  2820. }
  2821. }
  2822. case 12:
  2823. if wireType != 0 {
  2824. return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMsRv", wireType)
  2825. }
  2826. m.DelayLatencyMsRv = 0
  2827. for shift := uint(0); ; shift += 7 {
  2828. if shift >= 64 {
  2829. return ErrIntOverflowRpc
  2830. }
  2831. if iNdEx >= l {
  2832. return io.ErrUnexpectedEOF
  2833. }
  2834. b := dAtA[iNdEx]
  2835. iNdEx++
  2836. m.DelayLatencyMsRv |= (uint32(b) & 0x7F) << shift
  2837. if b < 0x80 {
  2838. break
  2839. }
  2840. }
  2841. case 13:
  2842. if wireType != 0 {
  2843. return fmt.Errorf("proto: wrong wireType = %d for field UpdatedDelayLatencyMs", wireType)
  2844. }
  2845. m.UpdatedDelayLatencyMs = 0
  2846. for shift := uint(0); ; shift += 7 {
  2847. if shift >= 64 {
  2848. return ErrIntOverflowRpc
  2849. }
  2850. if iNdEx >= l {
  2851. return io.ErrUnexpectedEOF
  2852. }
  2853. b := dAtA[iNdEx]
  2854. iNdEx++
  2855. m.UpdatedDelayLatencyMs |= (uint32(b) & 0x7F) << shift
  2856. if b < 0x80 {
  2857. break
  2858. }
  2859. }
  2860. case 21:
  2861. if wireType != 0 {
  2862. return fmt.Errorf("proto: wrong wireType = %d for field RoundLimit", wireType)
  2863. }
  2864. m.RoundLimit = 0
  2865. for shift := uint(0); ; shift += 7 {
  2866. if shift >= 64 {
  2867. return ErrIntOverflowRpc
  2868. }
  2869. if iNdEx >= l {
  2870. return io.ErrUnexpectedEOF
  2871. }
  2872. b := dAtA[iNdEx]
  2873. iNdEx++
  2874. m.RoundLimit |= (int32(b) & 0x7F) << shift
  2875. if b < 0x80 {
  2876. break
  2877. }
  2878. }
  2879. case 22:
  2880. if wireType != 0 {
  2881. return fmt.Errorf("proto: wrong wireType = %d for field ExitOnFailure", wireType)
  2882. }
  2883. var v int
  2884. for shift := uint(0); ; shift += 7 {
  2885. if shift >= 64 {
  2886. return ErrIntOverflowRpc
  2887. }
  2888. if iNdEx >= l {
  2889. return io.ErrUnexpectedEOF
  2890. }
  2891. b := dAtA[iNdEx]
  2892. iNdEx++
  2893. v |= (int(b) & 0x7F) << shift
  2894. if b < 0x80 {
  2895. break
  2896. }
  2897. }
  2898. m.ExitOnFailure = bool(v != 0)
  2899. case 23:
  2900. if wireType != 0 {
  2901. return fmt.Errorf("proto: wrong wireType = %d for field ConsistencyCheck", wireType)
  2902. }
  2903. var v int
  2904. for shift := uint(0); ; shift += 7 {
  2905. if shift >= 64 {
  2906. return ErrIntOverflowRpc
  2907. }
  2908. if iNdEx >= l {
  2909. return io.ErrUnexpectedEOF
  2910. }
  2911. b := dAtA[iNdEx]
  2912. iNdEx++
  2913. v |= (int(b) & 0x7F) << shift
  2914. if b < 0x80 {
  2915. break
  2916. }
  2917. }
  2918. m.ConsistencyCheck = bool(v != 0)
  2919. case 24:
  2920. if wireType != 0 {
  2921. return fmt.Errorf("proto: wrong wireType = %d for field EnablePprof", wireType)
  2922. }
  2923. var v int
  2924. for shift := uint(0); ; shift += 7 {
  2925. if shift >= 64 {
  2926. return ErrIntOverflowRpc
  2927. }
  2928. if iNdEx >= l {
  2929. return io.ErrUnexpectedEOF
  2930. }
  2931. b := dAtA[iNdEx]
  2932. iNdEx++
  2933. v |= (int(b) & 0x7F) << shift
  2934. if b < 0x80 {
  2935. break
  2936. }
  2937. }
  2938. m.EnablePprof = bool(v != 0)
  2939. case 31:
  2940. if wireType != 0 {
  2941. return fmt.Errorf("proto: wrong wireType = %d for field FailureDelayMs", wireType)
  2942. }
  2943. m.FailureDelayMs = 0
  2944. for shift := uint(0); ; shift += 7 {
  2945. if shift >= 64 {
  2946. return ErrIntOverflowRpc
  2947. }
  2948. if iNdEx >= l {
  2949. return io.ErrUnexpectedEOF
  2950. }
  2951. b := dAtA[iNdEx]
  2952. iNdEx++
  2953. m.FailureDelayMs |= (uint32(b) & 0x7F) << shift
  2954. if b < 0x80 {
  2955. break
  2956. }
  2957. }
  2958. case 32:
  2959. if wireType != 0 {
  2960. return fmt.Errorf("proto: wrong wireType = %d for field FailureShuffle", wireType)
  2961. }
  2962. var v int
  2963. for shift := uint(0); ; shift += 7 {
  2964. if shift >= 64 {
  2965. return ErrIntOverflowRpc
  2966. }
  2967. if iNdEx >= l {
  2968. return io.ErrUnexpectedEOF
  2969. }
  2970. b := dAtA[iNdEx]
  2971. iNdEx++
  2972. v |= (int(b) & 0x7F) << shift
  2973. if b < 0x80 {
  2974. break
  2975. }
  2976. }
  2977. m.FailureShuffle = bool(v != 0)
  2978. case 33:
  2979. if wireType != 2 {
  2980. return fmt.Errorf("proto: wrong wireType = %d for field FailureCases", wireType)
  2981. }
  2982. var stringLen uint64
  2983. for shift := uint(0); ; shift += 7 {
  2984. if shift >= 64 {
  2985. return ErrIntOverflowRpc
  2986. }
  2987. if iNdEx >= l {
  2988. return io.ErrUnexpectedEOF
  2989. }
  2990. b := dAtA[iNdEx]
  2991. iNdEx++
  2992. stringLen |= (uint64(b) & 0x7F) << shift
  2993. if b < 0x80 {
  2994. break
  2995. }
  2996. }
  2997. intStringLen := int(stringLen)
  2998. if intStringLen < 0 {
  2999. return ErrInvalidLengthRpc
  3000. }
  3001. postIndex := iNdEx + intStringLen
  3002. if postIndex > l {
  3003. return io.ErrUnexpectedEOF
  3004. }
  3005. m.FailureCases = append(m.FailureCases, string(dAtA[iNdEx:postIndex]))
  3006. iNdEx = postIndex
  3007. case 34:
  3008. if wireType != 2 {
  3009. return fmt.Errorf("proto: wrong wireType = %d for field FailpointCommands", wireType)
  3010. }
  3011. var stringLen uint64
  3012. for shift := uint(0); ; shift += 7 {
  3013. if shift >= 64 {
  3014. return ErrIntOverflowRpc
  3015. }
  3016. if iNdEx >= l {
  3017. return io.ErrUnexpectedEOF
  3018. }
  3019. b := dAtA[iNdEx]
  3020. iNdEx++
  3021. stringLen |= (uint64(b) & 0x7F) << shift
  3022. if b < 0x80 {
  3023. break
  3024. }
  3025. }
  3026. intStringLen := int(stringLen)
  3027. if intStringLen < 0 {
  3028. return ErrInvalidLengthRpc
  3029. }
  3030. postIndex := iNdEx + intStringLen
  3031. if postIndex > l {
  3032. return io.ErrUnexpectedEOF
  3033. }
  3034. m.FailpointCommands = append(m.FailpointCommands, string(dAtA[iNdEx:postIndex]))
  3035. iNdEx = postIndex
  3036. case 41:
  3037. if wireType != 2 {
  3038. return fmt.Errorf("proto: wrong wireType = %d for field RunnerExecPath", wireType)
  3039. }
  3040. var stringLen uint64
  3041. for shift := uint(0); ; shift += 7 {
  3042. if shift >= 64 {
  3043. return ErrIntOverflowRpc
  3044. }
  3045. if iNdEx >= l {
  3046. return io.ErrUnexpectedEOF
  3047. }
  3048. b := dAtA[iNdEx]
  3049. iNdEx++
  3050. stringLen |= (uint64(b) & 0x7F) << shift
  3051. if b < 0x80 {
  3052. break
  3053. }
  3054. }
  3055. intStringLen := int(stringLen)
  3056. if intStringLen < 0 {
  3057. return ErrInvalidLengthRpc
  3058. }
  3059. postIndex := iNdEx + intStringLen
  3060. if postIndex > l {
  3061. return io.ErrUnexpectedEOF
  3062. }
  3063. m.RunnerExecPath = string(dAtA[iNdEx:postIndex])
  3064. iNdEx = postIndex
  3065. case 42:
  3066. if wireType != 2 {
  3067. return fmt.Errorf("proto: wrong wireType = %d for field ExternalExecPath", wireType)
  3068. }
  3069. var stringLen uint64
  3070. for shift := uint(0); ; shift += 7 {
  3071. if shift >= 64 {
  3072. return ErrIntOverflowRpc
  3073. }
  3074. if iNdEx >= l {
  3075. return io.ErrUnexpectedEOF
  3076. }
  3077. b := dAtA[iNdEx]
  3078. iNdEx++
  3079. stringLen |= (uint64(b) & 0x7F) << shift
  3080. if b < 0x80 {
  3081. break
  3082. }
  3083. }
  3084. intStringLen := int(stringLen)
  3085. if intStringLen < 0 {
  3086. return ErrInvalidLengthRpc
  3087. }
  3088. postIndex := iNdEx + intStringLen
  3089. if postIndex > l {
  3090. return io.ErrUnexpectedEOF
  3091. }
  3092. m.ExternalExecPath = string(dAtA[iNdEx:postIndex])
  3093. iNdEx = postIndex
  3094. case 101:
  3095. if wireType != 2 {
  3096. return fmt.Errorf("proto: wrong wireType = %d for field StressTypes", wireType)
  3097. }
  3098. var stringLen uint64
  3099. for shift := uint(0); ; shift += 7 {
  3100. if shift >= 64 {
  3101. return ErrIntOverflowRpc
  3102. }
  3103. if iNdEx >= l {
  3104. return io.ErrUnexpectedEOF
  3105. }
  3106. b := dAtA[iNdEx]
  3107. iNdEx++
  3108. stringLen |= (uint64(b) & 0x7F) << shift
  3109. if b < 0x80 {
  3110. break
  3111. }
  3112. }
  3113. intStringLen := int(stringLen)
  3114. if intStringLen < 0 {
  3115. return ErrInvalidLengthRpc
  3116. }
  3117. postIndex := iNdEx + intStringLen
  3118. if postIndex > l {
  3119. return io.ErrUnexpectedEOF
  3120. }
  3121. m.StressTypes = append(m.StressTypes, string(dAtA[iNdEx:postIndex]))
  3122. iNdEx = postIndex
  3123. case 102:
  3124. if wireType != 0 {
  3125. return fmt.Errorf("proto: wrong wireType = %d for field StressKeySize", wireType)
  3126. }
  3127. m.StressKeySize = 0
  3128. for shift := uint(0); ; shift += 7 {
  3129. if shift >= 64 {
  3130. return ErrIntOverflowRpc
  3131. }
  3132. if iNdEx >= l {
  3133. return io.ErrUnexpectedEOF
  3134. }
  3135. b := dAtA[iNdEx]
  3136. iNdEx++
  3137. m.StressKeySize |= (int32(b) & 0x7F) << shift
  3138. if b < 0x80 {
  3139. break
  3140. }
  3141. }
  3142. case 103:
  3143. if wireType != 0 {
  3144. return fmt.Errorf("proto: wrong wireType = %d for field StressKeySizeLarge", wireType)
  3145. }
  3146. m.StressKeySizeLarge = 0
  3147. for shift := uint(0); ; shift += 7 {
  3148. if shift >= 64 {
  3149. return ErrIntOverflowRpc
  3150. }
  3151. if iNdEx >= l {
  3152. return io.ErrUnexpectedEOF
  3153. }
  3154. b := dAtA[iNdEx]
  3155. iNdEx++
  3156. m.StressKeySizeLarge |= (int32(b) & 0x7F) << shift
  3157. if b < 0x80 {
  3158. break
  3159. }
  3160. }
  3161. case 104:
  3162. if wireType != 0 {
  3163. return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRange", wireType)
  3164. }
  3165. m.StressKeySuffixRange = 0
  3166. for shift := uint(0); ; shift += 7 {
  3167. if shift >= 64 {
  3168. return ErrIntOverflowRpc
  3169. }
  3170. if iNdEx >= l {
  3171. return io.ErrUnexpectedEOF
  3172. }
  3173. b := dAtA[iNdEx]
  3174. iNdEx++
  3175. m.StressKeySuffixRange |= (int32(b) & 0x7F) << shift
  3176. if b < 0x80 {
  3177. break
  3178. }
  3179. }
  3180. case 105:
  3181. if wireType != 0 {
  3182. return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRangeTxn", wireType)
  3183. }
  3184. m.StressKeySuffixRangeTxn = 0
  3185. for shift := uint(0); ; shift += 7 {
  3186. if shift >= 64 {
  3187. return ErrIntOverflowRpc
  3188. }
  3189. if iNdEx >= l {
  3190. return io.ErrUnexpectedEOF
  3191. }
  3192. b := dAtA[iNdEx]
  3193. iNdEx++
  3194. m.StressKeySuffixRangeTxn |= (int32(b) & 0x7F) << shift
  3195. if b < 0x80 {
  3196. break
  3197. }
  3198. }
  3199. case 106:
  3200. if wireType != 0 {
  3201. return fmt.Errorf("proto: wrong wireType = %d for field StressKeyTxnOps", wireType)
  3202. }
  3203. m.StressKeyTxnOps = 0
  3204. for shift := uint(0); ; shift += 7 {
  3205. if shift >= 64 {
  3206. return ErrIntOverflowRpc
  3207. }
  3208. if iNdEx >= l {
  3209. return io.ErrUnexpectedEOF
  3210. }
  3211. b := dAtA[iNdEx]
  3212. iNdEx++
  3213. m.StressKeyTxnOps |= (int32(b) & 0x7F) << shift
  3214. if b < 0x80 {
  3215. break
  3216. }
  3217. }
  3218. case 201:
  3219. if wireType != 0 {
  3220. return fmt.Errorf("proto: wrong wireType = %d for field StressClients", wireType)
  3221. }
  3222. m.StressClients = 0
  3223. for shift := uint(0); ; shift += 7 {
  3224. if shift >= 64 {
  3225. return ErrIntOverflowRpc
  3226. }
  3227. if iNdEx >= l {
  3228. return io.ErrUnexpectedEOF
  3229. }
  3230. b := dAtA[iNdEx]
  3231. iNdEx++
  3232. m.StressClients |= (int32(b) & 0x7F) << shift
  3233. if b < 0x80 {
  3234. break
  3235. }
  3236. }
  3237. case 202:
  3238. if wireType != 0 {
  3239. return fmt.Errorf("proto: wrong wireType = %d for field StressQPS", wireType)
  3240. }
  3241. m.StressQPS = 0
  3242. for shift := uint(0); ; shift += 7 {
  3243. if shift >= 64 {
  3244. return ErrIntOverflowRpc
  3245. }
  3246. if iNdEx >= l {
  3247. return io.ErrUnexpectedEOF
  3248. }
  3249. b := dAtA[iNdEx]
  3250. iNdEx++
  3251. m.StressQPS |= (int32(b) & 0x7F) << shift
  3252. if b < 0x80 {
  3253. break
  3254. }
  3255. }
  3256. default:
  3257. iNdEx = preIndex
  3258. skippy, err := skipRpc(dAtA[iNdEx:])
  3259. if err != nil {
  3260. return err
  3261. }
  3262. if skippy < 0 {
  3263. return ErrInvalidLengthRpc
  3264. }
  3265. if (iNdEx + skippy) > l {
  3266. return io.ErrUnexpectedEOF
  3267. }
  3268. iNdEx += skippy
  3269. }
  3270. }
  3271. if iNdEx > l {
  3272. return io.ErrUnexpectedEOF
  3273. }
  3274. return nil
  3275. }
  3276. func (m *Etcd) Unmarshal(dAtA []byte) error {
  3277. l := len(dAtA)
  3278. iNdEx := 0
  3279. for iNdEx < l {
  3280. preIndex := iNdEx
  3281. var wire uint64
  3282. for shift := uint(0); ; shift += 7 {
  3283. if shift >= 64 {
  3284. return ErrIntOverflowRpc
  3285. }
  3286. if iNdEx >= l {
  3287. return io.ErrUnexpectedEOF
  3288. }
  3289. b := dAtA[iNdEx]
  3290. iNdEx++
  3291. wire |= (uint64(b) & 0x7F) << shift
  3292. if b < 0x80 {
  3293. break
  3294. }
  3295. }
  3296. fieldNum := int32(wire >> 3)
  3297. wireType := int(wire & 0x7)
  3298. if wireType == 4 {
  3299. return fmt.Errorf("proto: Etcd: wiretype end group for non-group")
  3300. }
  3301. if fieldNum <= 0 {
  3302. return fmt.Errorf("proto: Etcd: illegal tag %d (wire type %d)", fieldNum, wire)
  3303. }
  3304. switch fieldNum {
  3305. case 1:
  3306. if wireType != 2 {
  3307. return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
  3308. }
  3309. var stringLen uint64
  3310. for shift := uint(0); ; shift += 7 {
  3311. if shift >= 64 {
  3312. return ErrIntOverflowRpc
  3313. }
  3314. if iNdEx >= l {
  3315. return io.ErrUnexpectedEOF
  3316. }
  3317. b := dAtA[iNdEx]
  3318. iNdEx++
  3319. stringLen |= (uint64(b) & 0x7F) << shift
  3320. if b < 0x80 {
  3321. break
  3322. }
  3323. }
  3324. intStringLen := int(stringLen)
  3325. if intStringLen < 0 {
  3326. return ErrInvalidLengthRpc
  3327. }
  3328. postIndex := iNdEx + intStringLen
  3329. if postIndex > l {
  3330. return io.ErrUnexpectedEOF
  3331. }
  3332. m.Name = string(dAtA[iNdEx:postIndex])
  3333. iNdEx = postIndex
  3334. case 2:
  3335. if wireType != 2 {
  3336. return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType)
  3337. }
  3338. var stringLen uint64
  3339. for shift := uint(0); ; shift += 7 {
  3340. if shift >= 64 {
  3341. return ErrIntOverflowRpc
  3342. }
  3343. if iNdEx >= l {
  3344. return io.ErrUnexpectedEOF
  3345. }
  3346. b := dAtA[iNdEx]
  3347. iNdEx++
  3348. stringLen |= (uint64(b) & 0x7F) << shift
  3349. if b < 0x80 {
  3350. break
  3351. }
  3352. }
  3353. intStringLen := int(stringLen)
  3354. if intStringLen < 0 {
  3355. return ErrInvalidLengthRpc
  3356. }
  3357. postIndex := iNdEx + intStringLen
  3358. if postIndex > l {
  3359. return io.ErrUnexpectedEOF
  3360. }
  3361. m.DataDir = string(dAtA[iNdEx:postIndex])
  3362. iNdEx = postIndex
  3363. case 3:
  3364. if wireType != 2 {
  3365. return fmt.Errorf("proto: wrong wireType = %d for field WALDir", wireType)
  3366. }
  3367. var stringLen uint64
  3368. for shift := uint(0); ; shift += 7 {
  3369. if shift >= 64 {
  3370. return ErrIntOverflowRpc
  3371. }
  3372. if iNdEx >= l {
  3373. return io.ErrUnexpectedEOF
  3374. }
  3375. b := dAtA[iNdEx]
  3376. iNdEx++
  3377. stringLen |= (uint64(b) & 0x7F) << shift
  3378. if b < 0x80 {
  3379. break
  3380. }
  3381. }
  3382. intStringLen := int(stringLen)
  3383. if intStringLen < 0 {
  3384. return ErrInvalidLengthRpc
  3385. }
  3386. postIndex := iNdEx + intStringLen
  3387. if postIndex > l {
  3388. return io.ErrUnexpectedEOF
  3389. }
  3390. m.WALDir = string(dAtA[iNdEx:postIndex])
  3391. iNdEx = postIndex
  3392. case 11:
  3393. if wireType != 0 {
  3394. return fmt.Errorf("proto: wrong wireType = %d for field HeartbeatIntervalMs", wireType)
  3395. }
  3396. m.HeartbeatIntervalMs = 0
  3397. for shift := uint(0); ; shift += 7 {
  3398. if shift >= 64 {
  3399. return ErrIntOverflowRpc
  3400. }
  3401. if iNdEx >= l {
  3402. return io.ErrUnexpectedEOF
  3403. }
  3404. b := dAtA[iNdEx]
  3405. iNdEx++
  3406. m.HeartbeatIntervalMs |= (int64(b) & 0x7F) << shift
  3407. if b < 0x80 {
  3408. break
  3409. }
  3410. }
  3411. case 12:
  3412. if wireType != 0 {
  3413. return fmt.Errorf("proto: wrong wireType = %d for field ElectionTimeoutMs", wireType)
  3414. }
  3415. m.ElectionTimeoutMs = 0
  3416. for shift := uint(0); ; shift += 7 {
  3417. if shift >= 64 {
  3418. return ErrIntOverflowRpc
  3419. }
  3420. if iNdEx >= l {
  3421. return io.ErrUnexpectedEOF
  3422. }
  3423. b := dAtA[iNdEx]
  3424. iNdEx++
  3425. m.ElectionTimeoutMs |= (int64(b) & 0x7F) << shift
  3426. if b < 0x80 {
  3427. break
  3428. }
  3429. }
  3430. case 21:
  3431. if wireType != 2 {
  3432. return fmt.Errorf("proto: wrong wireType = %d for field ListenClientURLs", wireType)
  3433. }
  3434. var stringLen uint64
  3435. for shift := uint(0); ; shift += 7 {
  3436. if shift >= 64 {
  3437. return ErrIntOverflowRpc
  3438. }
  3439. if iNdEx >= l {
  3440. return io.ErrUnexpectedEOF
  3441. }
  3442. b := dAtA[iNdEx]
  3443. iNdEx++
  3444. stringLen |= (uint64(b) & 0x7F) << shift
  3445. if b < 0x80 {
  3446. break
  3447. }
  3448. }
  3449. intStringLen := int(stringLen)
  3450. if intStringLen < 0 {
  3451. return ErrInvalidLengthRpc
  3452. }
  3453. postIndex := iNdEx + intStringLen
  3454. if postIndex > l {
  3455. return io.ErrUnexpectedEOF
  3456. }
  3457. m.ListenClientURLs = append(m.ListenClientURLs, string(dAtA[iNdEx:postIndex]))
  3458. iNdEx = postIndex
  3459. case 22:
  3460. if wireType != 2 {
  3461. return fmt.Errorf("proto: wrong wireType = %d for field AdvertiseClientURLs", wireType)
  3462. }
  3463. var stringLen uint64
  3464. for shift := uint(0); ; shift += 7 {
  3465. if shift >= 64 {
  3466. return ErrIntOverflowRpc
  3467. }
  3468. if iNdEx >= l {
  3469. return io.ErrUnexpectedEOF
  3470. }
  3471. b := dAtA[iNdEx]
  3472. iNdEx++
  3473. stringLen |= (uint64(b) & 0x7F) << shift
  3474. if b < 0x80 {
  3475. break
  3476. }
  3477. }
  3478. intStringLen := int(stringLen)
  3479. if intStringLen < 0 {
  3480. return ErrInvalidLengthRpc
  3481. }
  3482. postIndex := iNdEx + intStringLen
  3483. if postIndex > l {
  3484. return io.ErrUnexpectedEOF
  3485. }
  3486. m.AdvertiseClientURLs = append(m.AdvertiseClientURLs, string(dAtA[iNdEx:postIndex]))
  3487. iNdEx = postIndex
  3488. case 23:
  3489. if wireType != 0 {
  3490. return fmt.Errorf("proto: wrong wireType = %d for field ClientAutoTLS", wireType)
  3491. }
  3492. var v int
  3493. for shift := uint(0); ; shift += 7 {
  3494. if shift >= 64 {
  3495. return ErrIntOverflowRpc
  3496. }
  3497. if iNdEx >= l {
  3498. return io.ErrUnexpectedEOF
  3499. }
  3500. b := dAtA[iNdEx]
  3501. iNdEx++
  3502. v |= (int(b) & 0x7F) << shift
  3503. if b < 0x80 {
  3504. break
  3505. }
  3506. }
  3507. m.ClientAutoTLS = bool(v != 0)
  3508. case 24:
  3509. if wireType != 0 {
  3510. return fmt.Errorf("proto: wrong wireType = %d for field ClientCertAuth", wireType)
  3511. }
  3512. var v int
  3513. for shift := uint(0); ; shift += 7 {
  3514. if shift >= 64 {
  3515. return ErrIntOverflowRpc
  3516. }
  3517. if iNdEx >= l {
  3518. return io.ErrUnexpectedEOF
  3519. }
  3520. b := dAtA[iNdEx]
  3521. iNdEx++
  3522. v |= (int(b) & 0x7F) << shift
  3523. if b < 0x80 {
  3524. break
  3525. }
  3526. }
  3527. m.ClientCertAuth = bool(v != 0)
  3528. case 25:
  3529. if wireType != 2 {
  3530. return fmt.Errorf("proto: wrong wireType = %d for field ClientCertFile", wireType)
  3531. }
  3532. var stringLen uint64
  3533. for shift := uint(0); ; shift += 7 {
  3534. if shift >= 64 {
  3535. return ErrIntOverflowRpc
  3536. }
  3537. if iNdEx >= l {
  3538. return io.ErrUnexpectedEOF
  3539. }
  3540. b := dAtA[iNdEx]
  3541. iNdEx++
  3542. stringLen |= (uint64(b) & 0x7F) << shift
  3543. if b < 0x80 {
  3544. break
  3545. }
  3546. }
  3547. intStringLen := int(stringLen)
  3548. if intStringLen < 0 {
  3549. return ErrInvalidLengthRpc
  3550. }
  3551. postIndex := iNdEx + intStringLen
  3552. if postIndex > l {
  3553. return io.ErrUnexpectedEOF
  3554. }
  3555. m.ClientCertFile = string(dAtA[iNdEx:postIndex])
  3556. iNdEx = postIndex
  3557. case 26:
  3558. if wireType != 2 {
  3559. return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyFile", wireType)
  3560. }
  3561. var stringLen uint64
  3562. for shift := uint(0); ; shift += 7 {
  3563. if shift >= 64 {
  3564. return ErrIntOverflowRpc
  3565. }
  3566. if iNdEx >= l {
  3567. return io.ErrUnexpectedEOF
  3568. }
  3569. b := dAtA[iNdEx]
  3570. iNdEx++
  3571. stringLen |= (uint64(b) & 0x7F) << shift
  3572. if b < 0x80 {
  3573. break
  3574. }
  3575. }
  3576. intStringLen := int(stringLen)
  3577. if intStringLen < 0 {
  3578. return ErrInvalidLengthRpc
  3579. }
  3580. postIndex := iNdEx + intStringLen
  3581. if postIndex > l {
  3582. return io.ErrUnexpectedEOF
  3583. }
  3584. m.ClientKeyFile = string(dAtA[iNdEx:postIndex])
  3585. iNdEx = postIndex
  3586. case 27:
  3587. if wireType != 2 {
  3588. return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAFile", wireType)
  3589. }
  3590. var stringLen uint64
  3591. for shift := uint(0); ; shift += 7 {
  3592. if shift >= 64 {
  3593. return ErrIntOverflowRpc
  3594. }
  3595. if iNdEx >= l {
  3596. return io.ErrUnexpectedEOF
  3597. }
  3598. b := dAtA[iNdEx]
  3599. iNdEx++
  3600. stringLen |= (uint64(b) & 0x7F) << shift
  3601. if b < 0x80 {
  3602. break
  3603. }
  3604. }
  3605. intStringLen := int(stringLen)
  3606. if intStringLen < 0 {
  3607. return ErrInvalidLengthRpc
  3608. }
  3609. postIndex := iNdEx + intStringLen
  3610. if postIndex > l {
  3611. return io.ErrUnexpectedEOF
  3612. }
  3613. m.ClientTrustedCAFile = string(dAtA[iNdEx:postIndex])
  3614. iNdEx = postIndex
  3615. case 31:
  3616. if wireType != 2 {
  3617. return fmt.Errorf("proto: wrong wireType = %d for field ListenPeerURLs", wireType)
  3618. }
  3619. var stringLen uint64
  3620. for shift := uint(0); ; shift += 7 {
  3621. if shift >= 64 {
  3622. return ErrIntOverflowRpc
  3623. }
  3624. if iNdEx >= l {
  3625. return io.ErrUnexpectedEOF
  3626. }
  3627. b := dAtA[iNdEx]
  3628. iNdEx++
  3629. stringLen |= (uint64(b) & 0x7F) << shift
  3630. if b < 0x80 {
  3631. break
  3632. }
  3633. }
  3634. intStringLen := int(stringLen)
  3635. if intStringLen < 0 {
  3636. return ErrInvalidLengthRpc
  3637. }
  3638. postIndex := iNdEx + intStringLen
  3639. if postIndex > l {
  3640. return io.ErrUnexpectedEOF
  3641. }
  3642. m.ListenPeerURLs = append(m.ListenPeerURLs, string(dAtA[iNdEx:postIndex]))
  3643. iNdEx = postIndex
  3644. case 32:
  3645. if wireType != 2 {
  3646. return fmt.Errorf("proto: wrong wireType = %d for field AdvertisePeerURLs", wireType)
  3647. }
  3648. var stringLen uint64
  3649. for shift := uint(0); ; shift += 7 {
  3650. if shift >= 64 {
  3651. return ErrIntOverflowRpc
  3652. }
  3653. if iNdEx >= l {
  3654. return io.ErrUnexpectedEOF
  3655. }
  3656. b := dAtA[iNdEx]
  3657. iNdEx++
  3658. stringLen |= (uint64(b) & 0x7F) << shift
  3659. if b < 0x80 {
  3660. break
  3661. }
  3662. }
  3663. intStringLen := int(stringLen)
  3664. if intStringLen < 0 {
  3665. return ErrInvalidLengthRpc
  3666. }
  3667. postIndex := iNdEx + intStringLen
  3668. if postIndex > l {
  3669. return io.ErrUnexpectedEOF
  3670. }
  3671. m.AdvertisePeerURLs = append(m.AdvertisePeerURLs, string(dAtA[iNdEx:postIndex]))
  3672. iNdEx = postIndex
  3673. case 33:
  3674. if wireType != 0 {
  3675. return fmt.Errorf("proto: wrong wireType = %d for field PeerAutoTLS", wireType)
  3676. }
  3677. var v int
  3678. for shift := uint(0); ; shift += 7 {
  3679. if shift >= 64 {
  3680. return ErrIntOverflowRpc
  3681. }
  3682. if iNdEx >= l {
  3683. return io.ErrUnexpectedEOF
  3684. }
  3685. b := dAtA[iNdEx]
  3686. iNdEx++
  3687. v |= (int(b) & 0x7F) << shift
  3688. if b < 0x80 {
  3689. break
  3690. }
  3691. }
  3692. m.PeerAutoTLS = bool(v != 0)
  3693. case 34:
  3694. if wireType != 0 {
  3695. return fmt.Errorf("proto: wrong wireType = %d for field PeerClientCertAuth", wireType)
  3696. }
  3697. var v int
  3698. for shift := uint(0); ; shift += 7 {
  3699. if shift >= 64 {
  3700. return ErrIntOverflowRpc
  3701. }
  3702. if iNdEx >= l {
  3703. return io.ErrUnexpectedEOF
  3704. }
  3705. b := dAtA[iNdEx]
  3706. iNdEx++
  3707. v |= (int(b) & 0x7F) << shift
  3708. if b < 0x80 {
  3709. break
  3710. }
  3711. }
  3712. m.PeerClientCertAuth = bool(v != 0)
  3713. case 35:
  3714. if wireType != 2 {
  3715. return fmt.Errorf("proto: wrong wireType = %d for field PeerCertFile", wireType)
  3716. }
  3717. var stringLen uint64
  3718. for shift := uint(0); ; shift += 7 {
  3719. if shift >= 64 {
  3720. return ErrIntOverflowRpc
  3721. }
  3722. if iNdEx >= l {
  3723. return io.ErrUnexpectedEOF
  3724. }
  3725. b := dAtA[iNdEx]
  3726. iNdEx++
  3727. stringLen |= (uint64(b) & 0x7F) << shift
  3728. if b < 0x80 {
  3729. break
  3730. }
  3731. }
  3732. intStringLen := int(stringLen)
  3733. if intStringLen < 0 {
  3734. return ErrInvalidLengthRpc
  3735. }
  3736. postIndex := iNdEx + intStringLen
  3737. if postIndex > l {
  3738. return io.ErrUnexpectedEOF
  3739. }
  3740. m.PeerCertFile = string(dAtA[iNdEx:postIndex])
  3741. iNdEx = postIndex
  3742. case 36:
  3743. if wireType != 2 {
  3744. return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyFile", wireType)
  3745. }
  3746. var stringLen uint64
  3747. for shift := uint(0); ; shift += 7 {
  3748. if shift >= 64 {
  3749. return ErrIntOverflowRpc
  3750. }
  3751. if iNdEx >= l {
  3752. return io.ErrUnexpectedEOF
  3753. }
  3754. b := dAtA[iNdEx]
  3755. iNdEx++
  3756. stringLen |= (uint64(b) & 0x7F) << shift
  3757. if b < 0x80 {
  3758. break
  3759. }
  3760. }
  3761. intStringLen := int(stringLen)
  3762. if intStringLen < 0 {
  3763. return ErrInvalidLengthRpc
  3764. }
  3765. postIndex := iNdEx + intStringLen
  3766. if postIndex > l {
  3767. return io.ErrUnexpectedEOF
  3768. }
  3769. m.PeerKeyFile = string(dAtA[iNdEx:postIndex])
  3770. iNdEx = postIndex
  3771. case 37:
  3772. if wireType != 2 {
  3773. return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAFile", wireType)
  3774. }
  3775. var stringLen uint64
  3776. for shift := uint(0); ; shift += 7 {
  3777. if shift >= 64 {
  3778. return ErrIntOverflowRpc
  3779. }
  3780. if iNdEx >= l {
  3781. return io.ErrUnexpectedEOF
  3782. }
  3783. b := dAtA[iNdEx]
  3784. iNdEx++
  3785. stringLen |= (uint64(b) & 0x7F) << shift
  3786. if b < 0x80 {
  3787. break
  3788. }
  3789. }
  3790. intStringLen := int(stringLen)
  3791. if intStringLen < 0 {
  3792. return ErrInvalidLengthRpc
  3793. }
  3794. postIndex := iNdEx + intStringLen
  3795. if postIndex > l {
  3796. return io.ErrUnexpectedEOF
  3797. }
  3798. m.PeerTrustedCAFile = string(dAtA[iNdEx:postIndex])
  3799. iNdEx = postIndex
  3800. case 41:
  3801. if wireType != 2 {
  3802. return fmt.Errorf("proto: wrong wireType = %d for field InitialCluster", wireType)
  3803. }
  3804. var stringLen uint64
  3805. for shift := uint(0); ; shift += 7 {
  3806. if shift >= 64 {
  3807. return ErrIntOverflowRpc
  3808. }
  3809. if iNdEx >= l {
  3810. return io.ErrUnexpectedEOF
  3811. }
  3812. b := dAtA[iNdEx]
  3813. iNdEx++
  3814. stringLen |= (uint64(b) & 0x7F) << shift
  3815. if b < 0x80 {
  3816. break
  3817. }
  3818. }
  3819. intStringLen := int(stringLen)
  3820. if intStringLen < 0 {
  3821. return ErrInvalidLengthRpc
  3822. }
  3823. postIndex := iNdEx + intStringLen
  3824. if postIndex > l {
  3825. return io.ErrUnexpectedEOF
  3826. }
  3827. m.InitialCluster = string(dAtA[iNdEx:postIndex])
  3828. iNdEx = postIndex
  3829. case 42:
  3830. if wireType != 2 {
  3831. return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterState", wireType)
  3832. }
  3833. var stringLen uint64
  3834. for shift := uint(0); ; shift += 7 {
  3835. if shift >= 64 {
  3836. return ErrIntOverflowRpc
  3837. }
  3838. if iNdEx >= l {
  3839. return io.ErrUnexpectedEOF
  3840. }
  3841. b := dAtA[iNdEx]
  3842. iNdEx++
  3843. stringLen |= (uint64(b) & 0x7F) << shift
  3844. if b < 0x80 {
  3845. break
  3846. }
  3847. }
  3848. intStringLen := int(stringLen)
  3849. if intStringLen < 0 {
  3850. return ErrInvalidLengthRpc
  3851. }
  3852. postIndex := iNdEx + intStringLen
  3853. if postIndex > l {
  3854. return io.ErrUnexpectedEOF
  3855. }
  3856. m.InitialClusterState = string(dAtA[iNdEx:postIndex])
  3857. iNdEx = postIndex
  3858. case 43:
  3859. if wireType != 2 {
  3860. return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterToken", wireType)
  3861. }
  3862. var stringLen uint64
  3863. for shift := uint(0); ; shift += 7 {
  3864. if shift >= 64 {
  3865. return ErrIntOverflowRpc
  3866. }
  3867. if iNdEx >= l {
  3868. return io.ErrUnexpectedEOF
  3869. }
  3870. b := dAtA[iNdEx]
  3871. iNdEx++
  3872. stringLen |= (uint64(b) & 0x7F) << shift
  3873. if b < 0x80 {
  3874. break
  3875. }
  3876. }
  3877. intStringLen := int(stringLen)
  3878. if intStringLen < 0 {
  3879. return ErrInvalidLengthRpc
  3880. }
  3881. postIndex := iNdEx + intStringLen
  3882. if postIndex > l {
  3883. return io.ErrUnexpectedEOF
  3884. }
  3885. m.InitialClusterToken = string(dAtA[iNdEx:postIndex])
  3886. iNdEx = postIndex
  3887. case 51:
  3888. if wireType != 0 {
  3889. return fmt.Errorf("proto: wrong wireType = %d for field SnapshotCount", wireType)
  3890. }
  3891. m.SnapshotCount = 0
  3892. for shift := uint(0); ; shift += 7 {
  3893. if shift >= 64 {
  3894. return ErrIntOverflowRpc
  3895. }
  3896. if iNdEx >= l {
  3897. return io.ErrUnexpectedEOF
  3898. }
  3899. b := dAtA[iNdEx]
  3900. iNdEx++
  3901. m.SnapshotCount |= (int64(b) & 0x7F) << shift
  3902. if b < 0x80 {
  3903. break
  3904. }
  3905. }
  3906. case 52:
  3907. if wireType != 0 {
  3908. return fmt.Errorf("proto: wrong wireType = %d for field QuotaBackendBytes", wireType)
  3909. }
  3910. m.QuotaBackendBytes = 0
  3911. for shift := uint(0); ; shift += 7 {
  3912. if shift >= 64 {
  3913. return ErrIntOverflowRpc
  3914. }
  3915. if iNdEx >= l {
  3916. return io.ErrUnexpectedEOF
  3917. }
  3918. b := dAtA[iNdEx]
  3919. iNdEx++
  3920. m.QuotaBackendBytes |= (int64(b) & 0x7F) << shift
  3921. if b < 0x80 {
  3922. break
  3923. }
  3924. }
  3925. case 63:
  3926. if wireType != 0 {
  3927. return fmt.Errorf("proto: wrong wireType = %d for field PreVote", wireType)
  3928. }
  3929. var v int
  3930. for shift := uint(0); ; shift += 7 {
  3931. if shift >= 64 {
  3932. return ErrIntOverflowRpc
  3933. }
  3934. if iNdEx >= l {
  3935. return io.ErrUnexpectedEOF
  3936. }
  3937. b := dAtA[iNdEx]
  3938. iNdEx++
  3939. v |= (int(b) & 0x7F) << shift
  3940. if b < 0x80 {
  3941. break
  3942. }
  3943. }
  3944. m.PreVote = bool(v != 0)
  3945. case 64:
  3946. if wireType != 0 {
  3947. return fmt.Errorf("proto: wrong wireType = %d for field InitialCorruptCheck", wireType)
  3948. }
  3949. var v int
  3950. for shift := uint(0); ; shift += 7 {
  3951. if shift >= 64 {
  3952. return ErrIntOverflowRpc
  3953. }
  3954. if iNdEx >= l {
  3955. return io.ErrUnexpectedEOF
  3956. }
  3957. b := dAtA[iNdEx]
  3958. iNdEx++
  3959. v |= (int(b) & 0x7F) << shift
  3960. if b < 0x80 {
  3961. break
  3962. }
  3963. }
  3964. m.InitialCorruptCheck = bool(v != 0)
  3965. default:
  3966. iNdEx = preIndex
  3967. skippy, err := skipRpc(dAtA[iNdEx:])
  3968. if err != nil {
  3969. return err
  3970. }
  3971. if skippy < 0 {
  3972. return ErrInvalidLengthRpc
  3973. }
  3974. if (iNdEx + skippy) > l {
  3975. return io.ErrUnexpectedEOF
  3976. }
  3977. iNdEx += skippy
  3978. }
  3979. }
  3980. if iNdEx > l {
  3981. return io.ErrUnexpectedEOF
  3982. }
  3983. return nil
  3984. }
  3985. func skipRpc(dAtA []byte) (n int, err error) {
  3986. l := len(dAtA)
  3987. iNdEx := 0
  3988. for iNdEx < l {
  3989. var wire uint64
  3990. for shift := uint(0); ; shift += 7 {
  3991. if shift >= 64 {
  3992. return 0, ErrIntOverflowRpc
  3993. }
  3994. if iNdEx >= l {
  3995. return 0, io.ErrUnexpectedEOF
  3996. }
  3997. b := dAtA[iNdEx]
  3998. iNdEx++
  3999. wire |= (uint64(b) & 0x7F) << shift
  4000. if b < 0x80 {
  4001. break
  4002. }
  4003. }
  4004. wireType := int(wire & 0x7)
  4005. switch wireType {
  4006. case 0:
  4007. for shift := uint(0); ; shift += 7 {
  4008. if shift >= 64 {
  4009. return 0, ErrIntOverflowRpc
  4010. }
  4011. if iNdEx >= l {
  4012. return 0, io.ErrUnexpectedEOF
  4013. }
  4014. iNdEx++
  4015. if dAtA[iNdEx-1] < 0x80 {
  4016. break
  4017. }
  4018. }
  4019. return iNdEx, nil
  4020. case 1:
  4021. iNdEx += 8
  4022. return iNdEx, nil
  4023. case 2:
  4024. var length int
  4025. for shift := uint(0); ; shift += 7 {
  4026. if shift >= 64 {
  4027. return 0, ErrIntOverflowRpc
  4028. }
  4029. if iNdEx >= l {
  4030. return 0, io.ErrUnexpectedEOF
  4031. }
  4032. b := dAtA[iNdEx]
  4033. iNdEx++
  4034. length |= (int(b) & 0x7F) << shift
  4035. if b < 0x80 {
  4036. break
  4037. }
  4038. }
  4039. iNdEx += length
  4040. if length < 0 {
  4041. return 0, ErrInvalidLengthRpc
  4042. }
  4043. return iNdEx, nil
  4044. case 3:
  4045. for {
  4046. var innerWire uint64
  4047. var start int = iNdEx
  4048. for shift := uint(0); ; shift += 7 {
  4049. if shift >= 64 {
  4050. return 0, ErrIntOverflowRpc
  4051. }
  4052. if iNdEx >= l {
  4053. return 0, io.ErrUnexpectedEOF
  4054. }
  4055. b := dAtA[iNdEx]
  4056. iNdEx++
  4057. innerWire |= (uint64(b) & 0x7F) << shift
  4058. if b < 0x80 {
  4059. break
  4060. }
  4061. }
  4062. innerWireType := int(innerWire & 0x7)
  4063. if innerWireType == 4 {
  4064. break
  4065. }
  4066. next, err := skipRpc(dAtA[start:])
  4067. if err != nil {
  4068. return 0, err
  4069. }
  4070. iNdEx = start + next
  4071. }
  4072. return iNdEx, nil
  4073. case 4:
  4074. return iNdEx, nil
  4075. case 5:
  4076. iNdEx += 4
  4077. return iNdEx, nil
  4078. default:
  4079. return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  4080. }
  4081. }
  4082. panic("unreachable")
  4083. }
  4084. var (
  4085. ErrInvalidLengthRpc = fmt.Errorf("proto: negative length found during unmarshaling")
  4086. ErrIntOverflowRpc = fmt.Errorf("proto: integer overflow")
  4087. )
  4088. func init() { proto.RegisterFile("rpcpb/rpc.proto", fileDescriptorRpc) }
  4089. var fileDescriptorRpc = []byte{
  4090. // 2476 bytes of a gzipped FileDescriptorProto
  4091. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x59, 0x5b, 0x77, 0xdb, 0xc6,
  4092. 0x11, 0x16, 0x44, 0xcb, 0xb6, 0x56, 0x37, 0x6a, 0x75, 0x31, 0x2c, 0xdb, 0x82, 0x0c, 0xc7, 0xa9,
  4093. 0xad, 0x14, 0x72, 0x6b, 0xe7, 0xb4, 0xcd, 0xd5, 0x01, 0x29, 0x58, 0x62, 0x05, 0x91, 0xf4, 0x12,
  4094. 0xb2, 0x93, 0x27, 0x16, 0x22, 0x57, 0x12, 0x6a, 0x0a, 0xa0, 0x81, 0xa5, 0x23, 0xe5, 0x0f, 0xf4,
  4095. 0xb5, 0xf7, 0xd3, 0xa7, 0xfe, 0x82, 0xa6, 0xbf, 0xc3, 0x4e, 0x6f, 0x69, 0xfb, 0xce, 0xd3, 0x3a,
  4096. 0xff, 0x80, 0xa7, 0x6d, 0x9a, 0x3e, 0xf5, 0xec, 0x05, 0xe2, 0x02, 0x20, 0x25, 0xbd, 0x09, 0x33,
  4097. 0xdf, 0xf7, 0xed, 0xec, 0xce, 0xee, 0xcc, 0x48, 0x02, 0x33, 0x61, 0xbb, 0xd1, 0xde, 0xbd, 0x17,
  4098. 0xb6, 0x1b, 0x6b, 0xed, 0x30, 0x20, 0x01, 0x1c, 0x63, 0x86, 0x25, 0x63, 0xdf, 0x23, 0x07, 0x9d,
  4099. 0xdd, 0xb5, 0x46, 0x70, 0x78, 0x6f, 0x3f, 0xd8, 0x0f, 0xee, 0x31, 0xef, 0x6e, 0x67, 0x8f, 0x7d,
  4100. 0xb1, 0x0f, 0xf6, 0x13, 0x67, 0xe9, 0x3f, 0x51, 0xc0, 0x25, 0x84, 0x9f, 0x77, 0x70, 0x44, 0xe0,
  4101. 0x1a, 0x18, 0xaf, 0xb4, 0x71, 0xe8, 0x12, 0x2f, 0xf0, 0x55, 0x65, 0x45, 0xb9, 0x33, 0x7d, 0x3f,
  4102. 0xbf, 0xc6, 0x54, 0xd7, 0x4e, 0xec, 0xa8, 0x0f, 0x81, 0xb7, 0xc1, 0xc5, 0x6d, 0x7c, 0xb8, 0x8b,
  4103. 0x43, 0x75, 0x74, 0x45, 0xb9, 0x33, 0x71, 0x7f, 0x4a, 0x80, 0xb9, 0x11, 0x09, 0x27, 0x85, 0x39,
  4104. 0x38, 0x22, 0x38, 0x54, 0x73, 0x09, 0x18, 0x37, 0x22, 0xe1, 0xd4, 0x1b, 0xe0, 0x32, 0xc2, 0x51,
  4105. 0x3b, 0xf0, 0x23, 0x0c, 0x55, 0x70, 0xa9, 0xd6, 0x69, 0x34, 0x70, 0x14, 0xb1, 0x38, 0x2e, 0xa3,
  4106. 0xf8, 0x13, 0x2e, 0x82, 0x8b, 0x35, 0xe2, 0x92, 0x4e, 0xc4, 0xd6, 0x1c, 0x47, 0xe2, 0x4b, 0x8a,
  4107. 0x25, 0x77, 0x4a, 0x2c, 0xfa, 0x6f, 0x27, 0x62, 0x1c, 0xfc, 0x00, 0x4c, 0x5a, 0xa4, 0xd1, 0xb4,
  4108. 0x8e, 0x70, 0xa3, 0xea, 0x92, 0x03, 0xb6, 0xd0, 0x78, 0xe1, 0x6a, 0xaf, 0xab, 0x2d, 0x1c, 0xbb,
  4109. 0x87, 0xad, 0x77, 0x75, 0x4c, 0x1a, 0x4d, 0x03, 0x1f, 0xe1, 0x86, 0xd1, 0x76, 0xc9, 0x81, 0x8e,
  4110. 0x12, 0x70, 0xf8, 0x00, 0x8c, 0x9b, 0xfb, 0xd8, 0x27, 0x66, 0xb3, 0x19, 0xaa, 0x13, 0x8c, 0xbb,
  4111. 0xd0, 0xeb, 0x6a, 0xb3, 0x9c, 0xeb, 0x52, 0x97, 0xe1, 0x36, 0x9b, 0xa1, 0x8e, 0xfa, 0x38, 0x68,
  4112. 0x83, 0xd9, 0x47, 0xae, 0xd7, 0x6a, 0x07, 0x9e, 0x4f, 0x36, 0x1d, 0xa7, 0xca, 0xc8, 0x93, 0x8c,
  4113. 0xbc, 0xdc, 0xeb, 0x6a, 0x4b, 0x9c, 0xbc, 0x17, 0x43, 0x8c, 0x03, 0x42, 0xda, 0x42, 0x25, 0x4b,
  4114. 0x84, 0x06, 0xb8, 0x54, 0x70, 0x23, 0xbc, 0xee, 0x85, 0x2a, 0x66, 0x1a, 0x73, 0xbd, 0xae, 0x36,
  4115. 0xc3, 0x35, 0x76, 0xdd, 0x08, 0x1b, 0x4d, 0x2f, 0xd4, 0x51, 0x8c, 0x81, 0xef, 0x82, 0x09, 0xba,
  4116. 0x03, 0x3b, 0xd8, 0x67, 0xfb, 0xdd, 0x63, 0x14, 0xb5, 0xd7, 0xd5, 0xe6, 0xa5, 0xfd, 0xb6, 0x82,
  4117. 0x7d, 0xb1, 0x5d, 0x19, 0x0c, 0x37, 0xc0, 0x0c, 0xfd, 0x2c, 0xb6, 0x3c, 0xec, 0x93, 0x6a, 0x18,
  4118. 0x1c, 0x1d, 0xab, 0xaf, 0x58, 0x66, 0x0a, 0xd7, 0x7b, 0x5d, 0x4d, 0x95, 0x04, 0x1a, 0x0c, 0x62,
  4119. 0xb4, 0x29, 0x46, 0x47, 0x69, 0x16, 0x34, 0xc1, 0x14, 0x35, 0x55, 0x31, 0x0e, 0xb9, 0xcc, 0x17,
  4120. 0x5c, 0x66, 0xa9, 0xd7, 0xd5, 0x16, 0x25, 0x99, 0x36, 0xc6, 0x61, 0x2c, 0x92, 0x64, 0xc0, 0x2a,
  4121. 0x80, 0x7d, 0x55, 0xcb, 0x6f, 0xb2, 0x43, 0x51, 0x3f, 0x67, 0xf7, 0xa1, 0xa0, 0xf5, 0xba, 0xda,
  4122. 0xb5, 0x6c, 0x38, 0x58, 0xc0, 0x74, 0x34, 0x80, 0x0b, 0xbf, 0x0b, 0x2e, 0x50, 0xab, 0xfa, 0x7b,
  4123. 0x7e, 0x8f, 0x27, 0xc4, 0xdd, 0xa1, 0xb6, 0xc2, 0x4c, 0xaf, 0xab, 0x4d, 0xf4, 0x05, 0x75, 0xc4,
  4124. 0xa0, 0x70, 0x1d, 0x4c, 0x73, 0x91, 0x22, 0x0e, 0xc9, 0xba, 0x4b, 0x5c, 0xf5, 0x67, 0x39, 0x16,
  4125. 0xc0, 0xb5, 0x5e, 0x57, 0xbb, 0xc2, 0xf1, 0x62, 0xed, 0x06, 0x0e, 0x89, 0xd1, 0x74, 0x89, 0xab,
  4126. 0xa3, 0x14, 0x27, 0xa9, 0xc2, 0xb2, 0xf2, 0xf3, 0x53, 0x55, 0x78, 0x66, 0x52, 0x1c, 0x7a, 0xa6,
  4127. 0xdc, 0xb2, 0x85, 0x8f, 0x59, 0x28, 0xbf, 0xe0, 0x22, 0xd2, 0x99, 0x0a, 0x91, 0x67, 0xf8, 0x58,
  4128. 0x44, 0x92, 0x64, 0x24, 0x24, 0x58, 0x1c, 0xbf, 0x3c, 0x4d, 0x82, 0x87, 0x91, 0x64, 0x40, 0x07,
  4129. 0xcc, 0x71, 0x83, 0x13, 0x76, 0x22, 0x82, 0x9b, 0x45, 0x93, 0xc5, 0xf2, 0x2b, 0x2e, 0x74, 0xb3,
  4130. 0xd7, 0xd5, 0x6e, 0x24, 0x84, 0x08, 0x87, 0x19, 0x0d, 0x57, 0x84, 0x34, 0x88, 0x3e, 0x40, 0x95,
  4131. 0x85, 0xf7, 0xeb, 0x73, 0xa8, 0xf2, 0x28, 0x07, 0xd1, 0xe1, 0x87, 0x60, 0x92, 0xde, 0xa7, 0x93,
  4132. 0xdc, 0xfd, 0x3b, 0x97, 0x7e, 0xfc, 0xec, 0xfe, 0x49, 0x99, 0x4b, 0xe0, 0x65, 0x3e, 0x0b, 0xe7,
  4133. 0x3f, 0xa7, 0xf0, 0x45, 0xf1, 0x90, 0xf1, 0xf0, 0x3d, 0x30, 0x41, 0xbf, 0xe3, 0x7c, 0x7d, 0x9d,
  4134. 0x4b, 0xbf, 0x45, 0x46, 0xef, 0x67, 0x4b, 0x46, 0x4b, 0x64, 0xb6, 0xf6, 0x7f, 0x87, 0x93, 0xc5,
  4135. 0x43, 0x96, 0xd0, 0xb0, 0x0c, 0x66, 0xe9, 0x67, 0x32, 0x47, 0xdf, 0xe4, 0xd2, 0x6f, 0x87, 0x49,
  4136. 0x64, 0x32, 0x94, 0xa5, 0x66, 0xf4, 0x58, 0x48, 0xff, 0x3b, 0x53, 0x8f, 0x47, 0x96, 0xa5, 0xea,
  4137. 0x5f, 0x4d, 0xc6, 0xdd, 0x82, 0x96, 0x37, 0xba, 0x04, 0x2d, 0x6f, 0x4a, 0xba, 0xbc, 0xd1, 0x78,
  4138. 0x44, 0x79, 0x13, 0x18, 0xf8, 0x6d, 0x70, 0xa9, 0x8c, 0xc9, 0xa7, 0x41, 0xf8, 0x8c, 0xb7, 0x86,
  4139. 0x02, 0xec, 0x75, 0xb5, 0x69, 0x0e, 0xf7, 0xb9, 0x43, 0x47, 0x31, 0x04, 0xde, 0x02, 0x17, 0x58,
  4140. 0xf1, 0xe5, 0x91, 0x4a, 0x8f, 0x9c, 0x57, 0x5b, 0xe6, 0x84, 0x45, 0x30, 0xbd, 0x8e, 0x5b, 0xee,
  4141. 0xb1, 0xed, 0x12, 0xec, 0x37, 0x8e, 0xb7, 0x23, 0x56, 0xe8, 0xa7, 0xe4, 0xd7, 0xd9, 0xa4, 0x7e,
  4142. 0xa3, 0xc5, 0x01, 0xc6, 0x61, 0xa4, 0xa3, 0x14, 0x05, 0xfe, 0x10, 0xe4, 0x93, 0x16, 0xf4, 0x82,
  4143. 0x95, 0xfc, 0x29, 0xb9, 0xe4, 0xa7, 0x65, 0x8c, 0xf0, 0x85, 0x8e, 0x32, 0x3c, 0xf8, 0x09, 0x58,
  4144. 0xd8, 0x69, 0x37, 0x5d, 0x82, 0x9b, 0xa9, 0xb8, 0xa6, 0x98, 0xe0, 0xad, 0x5e, 0x57, 0xd3, 0xb8,
  4145. 0x60, 0x87, 0xc3, 0x8c, 0x6c, 0x7c, 0x83, 0x15, 0xe0, 0xf7, 0x00, 0x40, 0x41, 0xc7, 0x6f, 0xda,
  4146. 0xde, 0xa1, 0x47, 0xd4, 0x85, 0x15, 0xe5, 0xce, 0x58, 0x61, 0xb1, 0xd7, 0xd5, 0x20, 0xd7, 0x0b,
  4147. 0xa9, 0xcf, 0x68, 0x51, 0xa7, 0x8e, 0x24, 0x24, 0xfc, 0x08, 0x4c, 0x59, 0x47, 0x1e, 0xa9, 0xf8,
  4148. 0xb4, 0x3f, 0x75, 0x42, 0xac, 0x2e, 0x66, 0xea, 0xf9, 0x91, 0x47, 0x8c, 0xc0, 0x37, 0xf6, 0x38,
  4149. 0x80, 0xd6, 0x73, 0x99, 0x00, 0x37, 0x41, 0xbe, 0x18, 0xf8, 0x91, 0x17, 0xb1, 0x50, 0x8a, 0x07,
  4150. 0xb8, 0xf1, 0x4c, 0xbd, 0x92, 0xee, 0x2d, 0x8d, 0x3e, 0xc2, 0x68, 0x50, 0x88, 0x8e, 0x32, 0x2c,
  4151. 0xf8, 0x0e, 0x98, 0xb0, 0x7c, 0x77, 0xb7, 0x85, 0xab, 0xed, 0x30, 0xd8, 0x53, 0x55, 0x26, 0x72,
  4152. 0xa5, 0xd7, 0xd5, 0xe6, 0x44, 0x24, 0xcc, 0x69, 0xb4, 0xa9, 0x97, 0x36, 0xb8, 0x3e, 0x96, 0xa6,
  4153. 0x5a, 0xc4, 0xc3, 0xce, 0x65, 0x3b, 0x52, 0xb5, 0x74, 0xaa, 0x45, 0xfc, 0xe2, 0x48, 0x59, 0xaa,
  4154. 0x93, 0x14, 0x58, 0x38, 0x11, 0xa9, 0x1d, 0x74, 0xf6, 0xf6, 0x5a, 0x58, 0x5d, 0x49, 0x1f, 0x46,
  4155. 0x2c, 0x12, 0x71, 0x40, 0x5f, 0x43, 0x30, 0xe0, 0xfb, 0x60, 0x52, 0x58, 0x8a, 0x6e, 0x84, 0x23,
  4156. 0xf5, 0xe6, 0x4a, 0x2e, 0xf9, 0xba, 0x63, 0x85, 0x06, 0x75, 0xeb, 0x28, 0x81, 0x86, 0x5b, 0xd2,
  4157. 0x80, 0x51, 0x0c, 0x0e, 0x0f, 0x5d, 0xbf, 0x19, 0xa9, 0x3a, 0x93, 0xb8, 0xd1, 0xeb, 0x6a, 0x57,
  4158. 0xd3, 0x03, 0x46, 0x43, 0x60, 0xe4, 0xf9, 0x22, 0xe6, 0xd1, 0x33, 0x41, 0x1d, 0xdf, 0xc7, 0xe1,
  4159. 0xc9, 0x8c, 0x74, 0x37, 0xdd, 0x9c, 0x42, 0xe6, 0x97, 0xa7, 0xa4, 0x14, 0x05, 0x96, 0x40, 0xde,
  4160. 0x3a, 0x22, 0x38, 0xf4, 0xdd, 0xd6, 0x89, 0xcc, 0x2a, 0x93, 0x91, 0x02, 0xc2, 0x02, 0x21, 0x0b,
  4161. 0x65, 0x68, 0x34, 0xbd, 0x35, 0x12, 0xe2, 0x28, 0x72, 0x8e, 0xdb, 0x38, 0x52, 0x31, 0xdb, 0x96,
  4162. 0x94, 0xde, 0x88, 0x39, 0x0d, 0x42, 0xbd, 0x3a, 0x92, 0xb1, 0xf4, 0x96, 0xf2, 0xcf, 0x2d, 0x7c,
  4163. 0x5c, 0xf3, 0x3e, 0xc3, 0x6c, 0xfa, 0x19, 0x93, 0x13, 0x23, 0xc8, 0xb4, 0x6c, 0x46, 0xde, 0x67,
  4164. 0xf4, 0x96, 0x26, 0x08, 0x74, 0xea, 0x48, 0x18, 0x6c, 0x37, 0xdc, 0xc7, 0xea, 0x3e, 0x93, 0x59,
  4165. 0xe9, 0x75, 0xb5, 0xeb, 0x03, 0x65, 0x8c, 0x16, 0x85, 0xe9, 0x68, 0x00, 0x17, 0x3e, 0x01, 0xf3,
  4166. 0x7d, 0x6b, 0x67, 0x6f, 0xcf, 0x3b, 0x42, 0xae, 0xbf, 0x8f, 0xd5, 0x03, 0xa6, 0xa9, 0xf7, 0xba,
  4167. 0xda, 0x72, 0x56, 0x93, 0xe1, 0x8c, 0x90, 0x02, 0x75, 0x34, 0x90, 0x0f, 0x7f, 0x04, 0xae, 0x0c,
  4168. 0xb2, 0x3b, 0x47, 0xbe, 0xea, 0x31, 0xe9, 0x37, 0x7b, 0x5d, 0x4d, 0x3f, 0x55, 0xda, 0x20, 0x47,
  4169. 0xbe, 0x8e, 0x86, 0xc9, 0xd0, 0x69, 0xf0, 0xc4, 0xe5, 0x1c, 0xf9, 0x95, 0x76, 0xa4, 0xfe, 0x98,
  4170. 0x29, 0x4b, 0x29, 0x95, 0x94, 0xc9, 0x91, 0x6f, 0x04, 0xed, 0x48, 0x47, 0x69, 0x56, 0x3f, 0x2d,
  4171. 0xbc, 0x49, 0x47, 0x7c, 0xa8, 0x1c, 0x93, 0x1b, 0xa9, 0xd0, 0xe1, 0xed, 0x3d, 0x3a, 0x49, 0x8b,
  4172. 0x20, 0xc0, 0xb7, 0xc1, 0x38, 0x37, 0x3c, 0xae, 0xd6, 0xf8, 0x2c, 0x39, 0x26, 0xcf, 0xe1, 0x82,
  4173. 0xfd, 0x9c, 0xae, 0xde, 0x07, 0xea, 0xdf, 0x4c, 0xf1, 0x89, 0x8f, 0xb6, 0x81, 0xb2, 0x7b, 0x88,
  4174. 0x45, 0x83, 0x91, 0xda, 0x80, 0xef, 0x1e, 0x62, 0x1d, 0x31, 0xa7, 0xdc, 0x88, 0x46, 0xcf, 0xd1,
  4175. 0x88, 0x56, 0xc1, 0xc5, 0xa7, 0xa6, 0x4d, 0xd1, 0xb9, 0x74, 0x1f, 0xfa, 0xd4, 0x6d, 0x71, 0xb0,
  4176. 0x40, 0xc0, 0x0a, 0x98, 0xdb, 0xc4, 0x6e, 0x48, 0x76, 0xb1, 0x4b, 0x4a, 0x3e, 0xc1, 0xe1, 0x0b,
  4177. 0xb7, 0x25, 0xda, 0x4c, 0x4e, 0x3e, 0xcd, 0x83, 0x18, 0x64, 0x78, 0x02, 0xa5, 0xa3, 0x41, 0x4c,
  4178. 0x58, 0x02, 0xb3, 0x56, 0x0b, 0x37, 0xe8, 0xef, 0x67, 0x8e, 0x77, 0x88, 0x83, 0x0e, 0xd9, 0x8e,
  4179. 0x58, 0xbb, 0xc9, 0xc9, 0xcf, 0x16, 0x0b, 0x88, 0x41, 0x38, 0x46, 0x47, 0x59, 0x16, 0x7d, 0xb9,
  4180. 0x36, 0x2b, 0xaf, 0xfc, 0xac, 0x77, 0x90, 0x1d, 0xa9, 0x0b, 0xe9, 0x52, 0xd2, 0x62, 0x88, 0x78,
  4181. 0xcc, 0xee, 0x84, 0xad, 0x48, 0x47, 0x19, 0x1a, 0x44, 0x60, 0xce, 0x6c, 0xbe, 0xc0, 0x21, 0xf1,
  4182. 0x22, 0x2c, 0xa9, 0x2d, 0x32, 0x35, 0xe9, 0xf5, 0xb8, 0x31, 0x28, 0x29, 0x38, 0x88, 0x0c, 0xdf,
  4183. 0x89, 0x47, 0x56, 0xb3, 0x43, 0x02, 0xc7, 0xae, 0x89, 0x9e, 0x21, 0xe5, 0xc6, 0xed, 0x90, 0xc0,
  4184. 0x20, 0x54, 0x20, 0x89, 0xa4, 0x85, 0xad, 0x3f, 0x42, 0x9b, 0x1d, 0x72, 0x20, 0x5a, 0xc5, 0x90,
  4185. 0xa9, 0xdb, 0xed, 0xa4, 0xa6, 0x6e, 0x4a, 0x81, 0xef, 0xcb, 0x22, 0x8f, 0xbc, 0x16, 0x56, 0xaf,
  4186. 0xb2, 0x74, 0xcf, 0xf7, 0xba, 0x5a, 0x5e, 0x88, 0x50, 0xf6, 0x9e, 0xc7, 0xca, 0x7c, 0x12, 0xdb,
  4187. 0x8f, 0x7e, 0x0b, 0x1f, 0x33, 0xf2, 0x52, 0xfa, 0x66, 0xd1, 0x97, 0xc3, 0xb9, 0x49, 0x24, 0xb4,
  4188. 0x33, 0x23, 0x31, 0x13, 0xb8, 0x96, 0x1e, 0xd8, 0xa5, 0x71, 0x8b, 0xeb, 0x0c, 0xa2, 0xd1, 0xb3,
  4189. 0xe0, 0xe9, 0xa2, 0xb3, 0x18, 0xcb, 0x8a, 0xc6, 0xb2, 0x22, 0x9d, 0x85, 0xc8, 0x31, 0x9b, 0xe1,
  4190. 0x78, 0x42, 0x52, 0x14, 0xe8, 0x80, 0xd9, 0x93, 0x14, 0x9d, 0xe8, 0xac, 0x30, 0x1d, 0xa9, 0xd8,
  4191. 0x78, 0xbe, 0x47, 0x3c, 0xb7, 0x65, 0xf4, 0xb3, 0x2c, 0x49, 0x66, 0x05, 0xe8, 0x2f, 0xac, 0xf4,
  4192. 0xe7, 0x38, 0xbf, 0x37, 0x59, 0x8e, 0xd2, 0x73, 0x6e, 0x3f, 0xc9, 0x32, 0x98, 0x96, 0x6b, 0x36,
  4193. 0x71, 0x27, 0xd3, 0xac, 0x33, 0x09, 0xe9, 0xc2, 0xf1, 0x31, 0x3d, 0x93, 0xeb, 0x01, 0x5c, 0xf8,
  4194. 0x41, 0x7f, 0xe6, 0x67, 0xe7, 0x7d, 0x6b, 0xf8, 0xc8, 0xcf, 0x8f, 0x3b, 0x01, 0x8f, 0x37, 0x13,
  4195. 0xa7, 0xfb, 0x8d, 0xa1, 0x43, 0x3b, 0x27, 0xcb, 0x60, 0xb8, 0x9d, 0x1a, 0xb2, 0x99, 0xc2, 0xed,
  4196. 0xb3, 0x66, 0x6c, 0x2e, 0x94, 0x65, 0xd2, 0x31, 0xa5, 0xc4, 0x53, 0x51, 0x6c, 0x75, 0xd8, 0x1f,
  4197. 0x66, 0xee, 0xa6, 0xef, 0x4e, 0x9c, 0xaa, 0x06, 0x07, 0xe8, 0x28, 0xc5, 0xa0, 0x2f, 0x3a, 0x69,
  4198. 0xa9, 0x11, 0x97, 0x60, 0xd1, 0xd9, 0xa5, 0x03, 0x4e, 0x09, 0x19, 0x11, 0x85, 0xe9, 0x68, 0x10,
  4199. 0x39, 0xab, 0xe9, 0x04, 0xcf, 0xb0, 0xaf, 0xbe, 0x75, 0x96, 0x26, 0xa1, 0xb0, 0x8c, 0x26, 0x23,
  4200. 0xc3, 0x87, 0x60, 0xaa, 0xe6, 0xbb, 0xed, 0xe8, 0x20, 0x20, 0xc5, 0xa0, 0xe3, 0x13, 0xf5, 0x01,
  4201. 0xab, 0x85, 0x72, 0x83, 0x11, 0x6e, 0xa3, 0x41, 0xfd, 0xb4, 0xc1, 0xc8, 0x78, 0x68, 0x83, 0xd9,
  4202. 0xc7, 0x9d, 0x80, 0xb8, 0x05, 0xb7, 0xf1, 0x0c, 0xfb, 0xcd, 0xc2, 0x31, 0xc1, 0x91, 0xfa, 0x36,
  4203. 0x13, 0x91, 0xe6, 0xf7, 0xe7, 0x14, 0x62, 0xec, 0x72, 0x8c, 0xb1, 0x4b, 0x41, 0x3a, 0xca, 0x12,
  4204. 0x69, 0x2b, 0xa9, 0x86, 0xf8, 0x49, 0x40, 0xb0, 0xfa, 0x30, 0x5d, 0xae, 0xda, 0x21, 0x36, 0x5e,
  4205. 0x04, 0xf4, 0x74, 0x62, 0x8c, 0x7c, 0x22, 0x41, 0x18, 0x76, 0xda, 0x84, 0x4f, 0xc7, 0x1f, 0xa5,
  4206. 0xaf, 0xf1, 0xc9, 0x89, 0x70, 0x54, 0x3c, 0x21, 0x0f, 0x22, 0xaf, 0xbe, 0x1c, 0x95, 0xfe, 0xcc,
  4207. 0x07, 0x67, 0xc0, 0x44, 0xb9, 0xe2, 0xd4, 0x6b, 0x8e, 0x89, 0x1c, 0x6b, 0x3d, 0x3f, 0x02, 0x17,
  4208. 0x01, 0x2c, 0x95, 0x4b, 0x4e, 0xc9, 0xb4, 0xb9, 0xb1, 0x6e, 0x39, 0xc5, 0xf5, 0x3c, 0x80, 0x79,
  4209. 0x30, 0x89, 0x2c, 0xc9, 0x32, 0x41, 0x2d, 0xb5, 0xd2, 0x86, 0x63, 0xa1, 0x6d, 0x6e, 0x99, 0x87,
  4210. 0x2b, 0xe0, 0x7a, 0xad, 0xb4, 0xf1, 0x78, 0xa7, 0xc4, 0x31, 0x75, 0xb3, 0xbc, 0x5e, 0x47, 0xd6,
  4211. 0x76, 0xe5, 0x89, 0x55, 0x5f, 0x37, 0x1d, 0x33, 0xbf, 0x00, 0x6f, 0x82, 0x1b, 0x19, 0x84, 0x89,
  4212. 0x8a, 0x9b, 0xa5, 0x18, 0xb2, 0x0c, 0xef, 0x81, 0xb7, 0x4e, 0x13, 0x61, 0xdf, 0x35, 0xa7, 0x52,
  4213. 0xad, 0x9b, 0x1b, 0x56, 0xd9, 0xc9, 0x6b, 0xf0, 0x06, 0xb8, 0x5a, 0xb0, 0xcd, 0xe2, 0xd6, 0x66,
  4214. 0xc5, 0xb6, 0xea, 0x55, 0xcb, 0x42, 0xf5, 0x6a, 0x05, 0x39, 0x75, 0xe7, 0xe3, 0x3a, 0xfa, 0x38,
  4215. 0xdf, 0x84, 0x1a, 0xb8, 0xb6, 0x53, 0x1e, 0x0e, 0xc0, 0x70, 0x09, 0x2c, 0xac, 0x5b, 0xb6, 0xf9,
  4216. 0x49, 0xc6, 0xf5, 0x52, 0x81, 0xd7, 0xc1, 0x95, 0x9d, 0xf2, 0x60, 0xef, 0x2b, 0x65, 0xf5, 0xeb,
  4217. 0xcb, 0x60, 0x42, 0x1a, 0xbf, 0xa1, 0x0a, 0xe6, 0xe3, 0x13, 0xa9, 0x94, 0xad, 0xfa, 0xa3, 0x8a,
  4218. 0x6d, 0x57, 0x9e, 0x5a, 0x28, 0x3f, 0x22, 0x36, 0x95, 0xf1, 0xd4, 0x77, 0xca, 0x4e, 0xc9, 0xae,
  4219. 0x3b, 0xa8, 0xb4, 0xb1, 0x61, 0xa1, 0x7a, 0xad, 0x6c, 0x56, 0x6b, 0x9b, 0x15, 0x27, 0xaf, 0x40,
  4220. 0x08, 0xa6, 0x63, 0x82, 0x6d, 0x99, 0xeb, 0x16, 0xca, 0x8f, 0xc2, 0xbb, 0xe0, 0x76, 0xd2, 0x36,
  4221. 0x8c, 0x9e, 0x93, 0xe9, 0x8f, 0x77, 0x2a, 0x68, 0x67, 0x3b, 0x7f, 0x81, 0xa6, 0x3a, 0xb6, 0x99,
  4222. 0xb6, 0x9d, 0x1f, 0x83, 0xab, 0xe0, 0xcd, 0xa1, 0xe7, 0x92, 0xdc, 0x40, 0x13, 0x9a, 0xe0, 0x83,
  4223. 0xf3, 0x61, 0x87, 0xc5, 0x84, 0xe1, 0x1b, 0x60, 0x65, 0xb8, 0x84, 0xd8, 0xe4, 0x1e, 0x7c, 0x0f,
  4224. 0x7c, 0xff, 0x2c, 0xd4, 0xb0, 0x25, 0xf6, 0x4f, 0x5f, 0x42, 0x1c, 0xc4, 0x01, 0xbd, 0x84, 0xc3,
  4225. 0x51, 0xf4, 0x68, 0x3c, 0xf8, 0x2d, 0xa0, 0x0f, 0xcc, 0x7a, 0xf2, 0x58, 0x5e, 0x2a, 0x70, 0x0d,
  4226. 0xdc, 0x45, 0x66, 0x79, 0xbd, 0xb2, 0x5d, 0x3f, 0x07, 0xfe, 0x95, 0x02, 0x3f, 0x04, 0xef, 0x9c,
  4227. 0x0d, 0x1c, 0xb6, 0xc1, 0x2f, 0x14, 0x68, 0x81, 0x8f, 0xce, 0xbd, 0xde, 0x30, 0x99, 0x3f, 0x28,
  4228. 0xf0, 0x26, 0xb8, 0x3e, 0x98, 0x2f, 0xf2, 0xf0, 0x47, 0x05, 0xde, 0x01, 0xb7, 0x4e, 0x5d, 0x49,
  4229. 0x20, 0xff, 0xa4, 0xc0, 0x1f, 0x80, 0x07, 0xa7, 0x41, 0x86, 0x85, 0xf1, 0x67, 0x05, 0x3e, 0x04,
  4230. 0xef, 0x9e, 0x63, 0x8d, 0x61, 0x02, 0x7f, 0x39, 0x65, 0x1f, 0x22, 0xd9, 0x5f, 0x9e, 0xbd, 0x0f,
  4231. 0x81, 0xfc, 0xab, 0x02, 0x97, 0xc1, 0xd5, 0xc1, 0x10, 0x7a, 0x27, 0xfe, 0xa6, 0xc0, 0xdb, 0x60,
  4232. 0xe5, 0x54, 0x25, 0x0a, 0xfb, 0xbb, 0x02, 0x55, 0x30, 0x57, 0xae, 0xd4, 0x1f, 0x99, 0x25, 0xbb,
  4233. 0xfe, 0xb4, 0xe4, 0x6c, 0xd6, 0x6b, 0x0e, 0xb2, 0x6a, 0xb5, 0xfc, 0xef, 0x46, 0x69, 0x28, 0x09,
  4234. 0x4f, 0xb9, 0x22, 0x9c, 0xf5, 0x47, 0x15, 0x54, 0xb7, 0x4b, 0x4f, 0xac, 0x32, 0x45, 0x7e, 0x3e,
  4235. 0x0a, 0x67, 0x00, 0xa0, 0xb0, 0x6a, 0xa5, 0x54, 0x76, 0x6a, 0xf9, 0x9f, 0xe6, 0xe0, 0x14, 0xb8,
  4236. 0x6c, 0x7d, 0xec, 0x58, 0xa8, 0x6c, 0xda, 0xf9, 0x7f, 0xe5, 0x56, 0x03, 0x00, 0xfa, 0xbf, 0xde,
  4237. 0xc2, 0x8b, 0x60, 0x74, 0xeb, 0x49, 0x7e, 0x04, 0x8e, 0x83, 0x31, 0xdb, 0x32, 0x6b, 0x56, 0x5e,
  4238. 0x81, 0x73, 0x60, 0xc6, 0xb2, 0xad, 0xa2, 0x53, 0xaa, 0x94, 0xeb, 0x68, 0xa7, 0x5c, 0x66, 0x05,
  4239. 0x24, 0x0f, 0x26, 0x9f, 0x9a, 0x4e, 0x71, 0x33, 0xb6, 0xe4, 0xe0, 0x02, 0x98, 0xb5, 0x2b, 0xc5,
  4240. 0xad, 0x3a, 0x32, 0x8b, 0x16, 0x8a, 0xcd, 0x17, 0x28, 0x90, 0x09, 0xc5, 0x96, 0xb1, 0xfb, 0x0f,
  4241. 0xc1, 0xb8, 0x13, 0xba, 0x7e, 0xd4, 0x0e, 0x42, 0x02, 0xef, 0xcb, 0x1f, 0xd3, 0xe2, 0xaf, 0xe5,
  4242. 0xe2, 0xbf, 0x48, 0x4b, 0x33, 0x27, 0xdf, 0xfc, 0x9f, 0x39, 0xfa, 0xc8, 0x1d, 0xe5, 0x3b, 0x4a,
  4243. 0x61, 0xfe, 0xe5, 0x3f, 0x97, 0x47, 0x5e, 0xbe, 0x5e, 0x56, 0xbe, 0x7c, 0xbd, 0xac, 0xfc, 0xe3,
  4244. 0xf5, 0xb2, 0xf2, 0x9b, 0xaf, 0x96, 0x47, 0x76, 0x2f, 0xb2, 0xff, 0x42, 0x3d, 0xf8, 0x7f, 0x00,
  4245. 0x00, 0x00, 0xff, 0xff, 0x93, 0xbf, 0x7b, 0xa5, 0xce, 0x1a, 0x00, 0x00,
  4246. }