| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238 | 
							- // Generated by the protocol buffer compiler.  DO NOT EDIT!
 
- // source: google/protobuf/unittest_proto3.proto
 
- #pragma warning disable 1591, 0612, 3021
 
- #region Designer generated code
 
- using pb = global::Google.Protobuf;
 
- using pbc = global::Google.Protobuf.Collections;
 
- using pbd = global::Google.Protobuf.Descriptors;
 
- using scg = global::System.Collections.Generic;
 
- namespace Google.Protobuf.TestProtos {
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public static partial class UnittestProto3 {
 
-     #region Static variables
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.NestedTestAllTypes> internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestDeprecatedFields> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.ForeignMessage> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReservedFields__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReservedFields> internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestForeignNested> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRecursiveMessage> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionA> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionB> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage> internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SparseEnumMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.SparseEnumMessage> internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneString> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreString__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreString> internal__static_protobuf_unittest_MoreString__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneBytes> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreBytes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreBytes> internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int32Message__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int32Message> internal__static_protobuf_unittest_Int32Message__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint32Message__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint32Message> internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int64Message__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int64Message> internal__static_protobuf_unittest_Int64Message__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint64Message__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint64Message> internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BoolMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BoolMessage> internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestOneof> internal__static_protobuf_unittest_TestOneof__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestPackedTypes> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestUnpackedTypes> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCommentInjectionMessage> internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooRequest> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooResponse> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooClientMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooClientMessage> internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooServerMessage__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooServerMessage> internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarRequest> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;
 
-     internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;
 
-     internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarResponse> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;
 
-     #endregion
 
-     #region Descriptor
 
-     public static pbd::FileDescriptor Descriptor {
 
-       get { return descriptor; }
 
-     }
 
-     private static pbd::FileDescriptor descriptor;
 
-     static UnittestProto3() {
 
-       byte[] descriptorData = global::System.Convert.FromBase64String(
 
-           string.Concat(
 
-             "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEhFwcm90", 
 
-             "b2J1Zl91bml0dGVzdBosZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X2ltcG9y", 
 
-             "dF9wcm90bzMucHJvdG8i8A8KDFRlc3RBbGxUeXBlcxIUCgxzaW5nbGVfaW50", 
 
-             "MzIYASABKAUSFAoMc2luZ2xlX2ludDY0GAIgASgDEhUKDXNpbmdsZV91aW50", 
 
-             "MzIYAyABKA0SFQoNc2luZ2xlX3VpbnQ2NBgEIAEoBBIVCg1zaW5nbGVfc2lu", 
 
-             "dDMyGAUgASgREhUKDXNpbmdsZV9zaW50NjQYBiABKBISFgoOc2luZ2xlX2Zp", 
 
-             "eGVkMzIYByABKAcSFgoOc2luZ2xlX2ZpeGVkNjQYCCABKAYSFwoPc2luZ2xl", 
 
-             "X3NmaXhlZDMyGAkgASgPEhcKD3NpbmdsZV9zZml4ZWQ2NBgKIAEoEBIUCgxz", 
 
-             "aW5nbGVfZmxvYXQYCyABKAISFQoNc2luZ2xlX2RvdWJsZRgMIAEoARITCgtz", 
 
-             "aW5nbGVfYm9vbBgNIAEoCBIVCg1zaW5nbGVfc3RyaW5nGA4gASgJEhQKDHNp", 
 
-             "bmdsZV9ieXRlcxgPIAEoDBJMChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiAB", 
 
-             "KAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVz", 
 
-             "c2FnZRJBChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9i", 
 
-             "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USRgoVc2luZ2xlX2ltcG9ydF9t", 
 
-             "ZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9y", 
 
-             "dE1lc3NhZ2USRgoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMioucHJvdG9i", 
 
-             "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoTc2luZ2xl", 
 
-             "X2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVp", 
 
-             "Z25FbnVtEkAKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVm", 
 
-             "X3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtElMKHHNpbmdsZV9wdWJsaWNf", 
 
-             "aW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBv", 
 
-             "cnQuUHVibGljSW1wb3J0TWVzc2FnZRIWCg5yZXBlYXRlZF9pbnQzMhgfIAMo", 
 
-             "BRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMoAxIXCg9yZXBlYXRlZF91aW50MzIY", 
 
-             "ISADKA0SFwoPcmVwZWF0ZWRfdWludDY0GCIgAygEEhcKD3JlcGVhdGVkX3Np", 
 
-             "bnQzMhgjIAMoERIXCg9yZXBlYXRlZF9zaW50NjQYJCADKBISGAoQcmVwZWF0", 
 
-             "ZWRfZml4ZWQzMhglIAMoBxIYChByZXBlYXRlZF9maXhlZDY0GCYgAygGEhkK", 
 
-             "EXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPEhkKEXJlcGVhdGVkX3NmaXhlZDY0", 
 
-             "GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0GCkgAygCEhcKD3JlcGVhdGVkX2Rv", 
 
-             "dWJsZRgqIAMoARIVCg1yZXBlYXRlZF9ib29sGCsgAygIEhcKD3JlcGVhdGVk", 
 
-             "X3N0cmluZxgsIAMoCRIWCg5yZXBlYXRlZF9ieXRlcxgtIAMoDBJOChdyZXBl", 
 
-             "YXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0", 
 
-             "LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkMKGHJlcGVhdGVkX2ZvcmVp", 
 
-             "Z25fbWVzc2FnZRgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25N", 
 
-             "ZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJv", 
 
-             "dG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USSAoUcmVwZWF0", 
 
-             "ZWRfbmVzdGVkX2VudW0YMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0", 
 
-             "QWxsVHlwZXMuTmVzdGVkRW51bRI9ChVyZXBlYXRlZF9mb3JlaWduX2VudW0Y", 
 
-             "NCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRJCChRyZXBl", 
 
-             "YXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2lt", 
 
-             "cG9ydC5JbXBvcnRFbnVtElUKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVz", 
 
-             "c2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJ", 
 
-             "bXBvcnRNZXNzYWdlEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEk0KFG9uZW9m", 
 
-             "X25lc3RlZF9tZXNzYWdlGHAgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVz", 
 
-             "dEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSAB", 
 
-             "KAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAGhsKDU5lc3RlZE1lc3NhZ2US", 
 
-             "CgoCYmIYASABKAUiVgoKTmVzdGVkRW51bRIbChdORVNURURfRU5VTV9VTlNQ", 
 
-             "RUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD/", 
 
-             "//////////8BQg0KC29uZW9mX2ZpZWxkIrsBChJOZXN0ZWRUZXN0QWxsVHlw", 
 
-             "ZXMSNAoFY2hpbGQYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRU", 
 
-             "ZXN0QWxsVHlwZXMSMAoHcGF5bG9hZBgCIAEoCzIfLnByb3RvYnVmX3VuaXR0", 
 
-             "ZXN0LlRlc3RBbGxUeXBlcxI9Cg5yZXBlYXRlZF9jaGlsZBgDIAMoCzIlLnBy", 
 
-             "b3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcyI0ChRUZXN0RGVw", 
 
-             "cmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYASIb", 
 
-             "Cg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIjAKElRlc3RSZXNlcnZlZEZp", 
 
-             "ZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiWgoRVGVzdEZvcmVp", 
 
-             "Z25OZXN0ZWQSRQoOZm9yZWlnbl9uZXN0ZWQYASABKAsyLS5wcm90b2J1Zl91", 
 
-             "bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZSI0ChhUZXN0UmVh", 
 
-             "bGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEoBRINCgJiYhj///9/IAEoBSJV", 
 
-             "ChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFhGAEgASgLMicucHJvdG9idWZf", 
 
-             "dW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSJLChRU", 
 
-             "ZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgBIAEoCzInLnByb3RvYnVmX3Vu", 
 
-             "aXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CImIKFFRlc3RNdXR1YWxSZWN1", 
 
-             "cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0", 
 
-             "dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSLrAgoXVGVz", 
 
-             "dENhbWVsQ2FzZUZpZWxkTmFtZXMSFgoOUHJpbWl0aXZlRmllbGQYASABKAUS", 
 
-             "EwoLU3RyaW5nRmllbGQYAiABKAkSMQoJRW51bUZpZWxkGAMgASgOMh4ucHJv", 
 
-             "dG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SNwoMTWVzc2FnZUZpZWxkGAQg", 
 
-             "ASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USHgoWUmVw", 
 
-             "ZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0Zp", 
 
-             "ZWxkGAggAygJEjkKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh4ucHJvdG9i", 
 
-             "dWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SPwoUUmVwZWF0ZWRNZXNzYWdlRmll", 
 
-             "bGQYCiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZSLH", 
 
-             "AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEoCRIOCgZt", 
 
-             "eV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAISUwoVc2luZ2xlX25lc3Rl", 
 
-             "ZF9tZXNzYWdlGMgBIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVs", 
 
-             "ZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlGicKDU5lc3RlZE1lc3NhZ2USCgoC", 
 
-             "b28YAiABKAMSCgoCYmIYASABKAUiSwoRU3BhcnNlRW51bU1lc3NhZ2USNgoL", 
 
-             "c3BhcnNlX2VudW0YASABKA4yIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0U3Bh", 
 
-             "cnNlRW51bSIZCglPbmVTdHJpbmcSDAoEZGF0YRgBIAEoCSIaCgpNb3JlU3Ry", 
 
-             "aW5nEgwKBGRhdGEYASADKAkiGAoIT25lQnl0ZXMSDAoEZGF0YRgBIAEoDCIZ", 
 
-             "CglNb3JlQnl0ZXMSDAoEZGF0YRgBIAEoDCIcCgxJbnQzMk1lc3NhZ2USDAoE", 
 
-             "ZGF0YRgBIAEoBSIdCg1VaW50MzJNZXNzYWdlEgwKBGRhdGEYASABKA0iHAoM", 
 
-             "SW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAMiHQoNVWludDY0TWVzc2FnZRIM", 
 
-             "CgRkYXRhGAEgASgEIhsKC0Jvb2xNZXNzYWdlEgwKBGRhdGEYASABKAgicwoJ", 
 
-             "VGVzdE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIg", 
 
-             "ASgJSAASNgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVz", 
 
-             "dC5UZXN0QWxsVHlwZXNIAEIFCgNmb28iqgMKD1Rlc3RQYWNrZWRUeXBlcxIY", 
 
-             "CgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMo", 
 
-             "A0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3Vp", 
 
-             "bnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoN", 
 
-             "cGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCAD", 
 
-             "KAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRf", 
 
-             "c2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEIC", 
 
-             "EAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91Ymxl", 
 
-             "GGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESNwoLcGFja2Vk", 
 
-             "X2VudW0YZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUIC", 
 
-             "EAEiyAMKEVRlc3RVbnBhY2tlZFR5cGVzEhoKDnVucGFja2VkX2ludDMyGFog", 
 
-             "AygFQgIQABIaCg51bnBhY2tlZF9pbnQ2NBhbIAMoA0ICEAASGwoPdW5wYWNr", 
 
-             "ZWRfdWludDMyGFwgAygNQgIQABIbCg91bnBhY2tlZF91aW50NjQYXSADKARC", 
 
-             "AhAAEhsKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEAASGwoPdW5wYWNrZWRf", 
 
-             "c2ludDY0GF8gAygSQgIQABIcChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQ", 
 
-             "ABIcChB1bnBhY2tlZF9maXhlZDY0GGEgAygGQgIQABIdChF1bnBhY2tlZF9z", 
 
-             "Zml4ZWQzMhhiIAMoD0ICEAASHQoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBC", 
 
-             "AhAAEhoKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQABIbCg91bnBhY2tlZF9k", 
 
-             "b3VibGUYZSADKAFCAhAAEhkKDXVucGFja2VkX2Jvb2wYZiADKAhCAhAAEjkK", 
 
-             "DXVucGFja2VkX2VudW0YZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3Jl", 
 
-             "aWduRW51bUICEAAiwAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRh", 
 
-             "Z1NpemVzEhgKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRf", 
 
-             "aW50MzIYDSADKAUSGQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVw", 
 
-             "ZWF0ZWRfaW50NjQY/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAIS", 
 
-             "GQoPcmVwZWF0ZWRfdWludDY0GP//DyADKAQiKAobVGVzdENvbW1lbnRJbmpl", 
 
-             "Y3Rpb25NZXNzYWdlEgkKAWEYASABKAkiDAoKRm9vUmVxdWVzdCINCgtGb29S", 
 
-             "ZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3Nh", 
 
-             "Z2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSpZCgtGb3JlaWduRW51", 
 
-             "bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIP", 
 
-             "CgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1X", 
 
-             "aXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BF", 
 
-             "Q0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08y", 
 
-             "EAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9T", 
 
-             "UEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BB", 
 
-             "UlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////", 
 
-             "////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIymQEK", 
 
-             "C1Rlc3RTZXJ2aWNlEkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1Jl", 
 
-             "cXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXIS", 
 
-             "HS5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5p", 
 
-             "dHRlc3QuQmFyUmVzcG9uc2VCOkINVW5pdHRlc3RQcm90b0gBgAEBiAEBkAEB", 
 
-           "+AEBqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NiBnByb3RvMw=="));
 
-       pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
 
-         descriptor = root;
 
-         internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
 
-         internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,
 
-                 new string[] { "SingleInt32", "SingleInt64", "SingleUint32", "SingleUint64", "SingleSint32", "SingleSint64", "SingleFixed32", "SingleFixed64", "SingleSfixed32", "SingleSfixed64", "SingleFloat", "SingleDouble", "SingleBool", "SingleString", "SingleBytes", "SingleNestedMessage", "SingleForeignMessage", "SingleImportMessage", "SingleNestedEnum", "SingleForeignEnum", "SingleImportEnum", "SinglePublicImportMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedPublicImportMessage", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes", "OneofField", });
 
-         internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];
 
-         internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,
 
-                 new string[] { "Bb", });
 
-         internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor = Descriptor.MessageTypes[1];
 
-         internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.NestedTestAllTypes>(internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor,
 
-                 new string[] { "Child", "Payload", "RepeatedChild", });
 
-         internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[2];
 
-         internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestDeprecatedFields>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
 
-                 new string[] { "DeprecatedInt32", });
 
-         internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[3];
 
-         internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.ForeignMessage>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
 
-                 new string[] { "C", });
 
-         internal__static_protobuf_unittest_TestReservedFields__Descriptor = Descriptor.MessageTypes[4];
 
-         internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReservedFields>(internal__static_protobuf_unittest_TestReservedFields__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[5];
 
-         internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestForeignNested>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
 
-                 new string[] { "ForeignNested", });
 
-         internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[6];
 
-         internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestReallyLargeTagNumber>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
 
-                 new string[] { "A", "Bb", });
 
-         internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[7];
 
-         internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRecursiveMessage>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
 
-                 new string[] { "A", "I", });
 
-         internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[8];
 
-         internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionA>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
 
-                 new string[] { "Bb", });
 
-         internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[9];
 
-         internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestMutualRecursionB>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
 
-                 new string[] { "A", "OptionalInt32", });
 
-         internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[10];
 
-         internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCamelCaseFieldNames>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
 
-                 new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", });
 
-         internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[11];
 
-         internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
 
-                 new string[] { "MyString", "MyInt", "MyFloat", "SingleNestedMessage", });
 
-         internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestFieldOrderings__Descriptor.NestedTypes[0];
 
-         internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage>(internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor,
 
-                 new string[] { "Oo", "Bb", });
 
-         internal__static_protobuf_unittest_SparseEnumMessage__Descriptor = Descriptor.MessageTypes[12];
 
-         internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.SparseEnumMessage>(internal__static_protobuf_unittest_SparseEnumMessage__Descriptor,
 
-                 new string[] { "SparseEnum", });
 
-         internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[13];
 
-         internal__static_protobuf_unittest_OneString__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneString>(internal__static_protobuf_unittest_OneString__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_MoreString__Descriptor = Descriptor.MessageTypes[14];
 
-         internal__static_protobuf_unittest_MoreString__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreString>(internal__static_protobuf_unittest_MoreString__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[15];
 
-         internal__static_protobuf_unittest_OneBytes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.OneBytes>(internal__static_protobuf_unittest_OneBytes__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_MoreBytes__Descriptor = Descriptor.MessageTypes[16];
 
-         internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.MoreBytes>(internal__static_protobuf_unittest_MoreBytes__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_Int32Message__Descriptor = Descriptor.MessageTypes[17];
 
-         internal__static_protobuf_unittest_Int32Message__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int32Message>(internal__static_protobuf_unittest_Int32Message__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_Uint32Message__Descriptor = Descriptor.MessageTypes[18];
 
-         internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint32Message>(internal__static_protobuf_unittest_Uint32Message__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_Int64Message__Descriptor = Descriptor.MessageTypes[19];
 
-         internal__static_protobuf_unittest_Int64Message__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Int64Message>(internal__static_protobuf_unittest_Int64Message__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_Uint64Message__Descriptor = Descriptor.MessageTypes[20];
 
-         internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.Uint64Message>(internal__static_protobuf_unittest_Uint64Message__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_BoolMessage__Descriptor = Descriptor.MessageTypes[21];
 
-         internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BoolMessage>(internal__static_protobuf_unittest_BoolMessage__Descriptor,
 
-                 new string[] { "Data", });
 
-         internal__static_protobuf_unittest_TestOneof__Descriptor = Descriptor.MessageTypes[22];
 
-         internal__static_protobuf_unittest_TestOneof__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestOneof>(internal__static_protobuf_unittest_TestOneof__Descriptor,
 
-                 new string[] { "FooInt", "FooString", "FooMessage", "Foo", });
 
-         internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[23];
 
-         internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestPackedTypes>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
 
-                 new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
 
-         internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[24];
 
-         internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestUnpackedTypes>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
 
-                 new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
 
-         internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[25];
 
-         internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestRepeatedScalarDifferentTagSizes>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
 
-                 new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
 
-         internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor = Descriptor.MessageTypes[26];
 
-         internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.TestCommentInjectionMessage>(internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor,
 
-                 new string[] { "A", });
 
-         internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[27];
 
-         internal__static_protobuf_unittest_FooRequest__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooRequest>(internal__static_protobuf_unittest_FooRequest__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[28];
 
-         internal__static_protobuf_unittest_FooResponse__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooResponse>(internal__static_protobuf_unittest_FooResponse__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_FooClientMessage__Descriptor = Descriptor.MessageTypes[29];
 
-         internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooClientMessage>(internal__static_protobuf_unittest_FooClientMessage__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_FooServerMessage__Descriptor = Descriptor.MessageTypes[30];
 
-         internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.FooServerMessage>(internal__static_protobuf_unittest_FooServerMessage__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[31];
 
-         internal__static_protobuf_unittest_BarRequest__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarRequest>(internal__static_protobuf_unittest_BarRequest__Descriptor,
 
-                 new string[] { });
 
-         internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[32];
 
-         internal__static_protobuf_unittest_BarResponse__FieldAccessorTable = 
 
-             new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.TestProtos.BarResponse>(internal__static_protobuf_unittest_BarResponse__Descriptor,
 
-                 new string[] { });
 
-       };
 
-       pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
 
-           new pbd::FileDescriptor[] {
 
-           global::Google.Protobuf.TestProtos.UnittestImportProto3.Descriptor, 
 
-           }, assigner);
 
-     }
 
-     #endregion
 
-   }
 
-   #region Enums
 
-   public enum ForeignEnum {
 
-     FOREIGN_UNSPECIFIED = 0,
 
-     FOREIGN_FOO = 4,
 
-     FOREIGN_BAR = 5,
 
-     FOREIGN_BAZ = 6,
 
-   }
 
-   public enum TestEnumWithDupValue {
 
-     TEST_ENUM_WITH_DUP_VALUE_UNSPECIFIED = 0,
 
-     FOO1 = 1,
 
-     BAR1 = 2,
 
-     BAZ = 3,
 
-     FOO2 = 1,
 
-     BAR2 = 2,
 
-   }
 
-   public enum TestSparseEnum {
 
-     TEST_SPARSE_ENUM_UNSPECIFIED = 0,
 
-     SPARSE_A = 123,
 
-     SPARSE_B = 62374,
 
-     SPARSE_C = 12589234,
 
-     SPARSE_D = -15,
 
-     SPARSE_E = -53452,
 
-     SPARSE_G = 2,
 
-   }
 
-   #endregion
 
-   #region Messages
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes> {
 
-     private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());
 
-     public static pb::MessageParser<TestAllTypes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "repeated_bool", "repeated_bytes", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_public_import_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_uint32", "repeated_uint64", "single_bool", "single_bytes", "single_double", "single_fixed32", "single_fixed64", "single_float", "single_foreign_enum", "single_foreign_message", "single_import_enum", "single_import_message", "single_int32", "single_int64", "single_nested_enum", "single_nested_message", "single_public_import_message", "single_sfixed32", "single_sfixed64", "single_sint32", "single_sint64", "single_string", "single_uint32", "single_uint64" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 914, 898, 906, 888, 346, 362, 338, 298, 306, 330, 418, 394, 426, 402, 250, 258, 410, 386, 434, 314, 322, 282, 290, 354, 266, 274, 104, 122, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 168, 146, 210, 77, 81, 40, 48, 114, 24, 32 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestAllTypes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }
 
-     }
 
-     public TestAllTypes() { }
 
-     public TestAllTypes(TestAllTypes other) {
 
-       singleInt32_ = other.singleInt32_;
 
-       singleInt64_ = other.singleInt64_;
 
-       singleUint32_ = other.singleUint32_;
 
-       singleUint64_ = other.singleUint64_;
 
-       singleSint32_ = other.singleSint32_;
 
-       singleSint64_ = other.singleSint64_;
 
-       singleFixed32_ = other.singleFixed32_;
 
-       singleFixed64_ = other.singleFixed64_;
 
-       singleSfixed32_ = other.singleSfixed32_;
 
-       singleSfixed64_ = other.singleSfixed64_;
 
-       singleFloat_ = other.singleFloat_;
 
-       singleDouble_ = other.singleDouble_;
 
-       singleBool_ = other.singleBool_;
 
-       singleString_ = other.singleString_;
 
-       singleBytes_ = other.singleBytes_;
 
-       SingleNestedMessage = other.singleNestedMessage_ != null ? other.SingleNestedMessage.Clone() : null;
 
-       SingleForeignMessage = other.singleForeignMessage_ != null ? other.SingleForeignMessage.Clone() : null;
 
-       SingleImportMessage = other.singleImportMessage_ != null ? other.SingleImportMessage.Clone() : null;
 
-       singleNestedEnum_ = other.singleNestedEnum_;
 
-       singleForeignEnum_ = other.singleForeignEnum_;
 
-       singleImportEnum_ = other.singleImportEnum_;
 
-       SinglePublicImportMessage = other.singlePublicImportMessage_ != null ? other.SinglePublicImportMessage.Clone() : null;
 
-       repeatedInt32_ = other.repeatedInt32_.Clone();
 
-       repeatedInt64_ = other.repeatedInt64_.Clone();
 
-       repeatedUint32_ = other.repeatedUint32_.Clone();
 
-       repeatedUint64_ = other.repeatedUint64_.Clone();
 
-       repeatedSint32_ = other.repeatedSint32_.Clone();
 
-       repeatedSint64_ = other.repeatedSint64_.Clone();
 
-       repeatedFixed32_ = other.repeatedFixed32_.Clone();
 
-       repeatedFixed64_ = other.repeatedFixed64_.Clone();
 
-       repeatedSfixed32_ = other.repeatedSfixed32_.Clone();
 
-       repeatedSfixed64_ = other.repeatedSfixed64_.Clone();
 
-       repeatedFloat_ = other.repeatedFloat_.Clone();
 
-       repeatedDouble_ = other.repeatedDouble_.Clone();
 
-       repeatedBool_ = other.repeatedBool_.Clone();
 
-       repeatedString_ = other.repeatedString_.Clone();
 
-       repeatedBytes_ = other.repeatedBytes_.Clone();
 
-       repeatedNestedMessage_ = other.repeatedNestedMessage_.Clone();
 
-       repeatedForeignMessage_ = other.repeatedForeignMessage_.Clone();
 
-       repeatedImportMessage_ = other.repeatedImportMessage_.Clone();
 
-       repeatedNestedEnum_ = other.repeatedNestedEnum_.Clone();
 
-       repeatedForeignEnum_ = other.repeatedForeignEnum_.Clone();
 
-       repeatedImportEnum_ = other.repeatedImportEnum_.Clone();
 
-       repeatedPublicImportMessage_ = other.repeatedPublicImportMessage_.Clone();
 
-       switch (other.OneofFieldCase) {
 
-         case OneofFieldOneofCase.OneofUint32:
 
-           OneofUint32 = other.OneofUint32;
 
-           break;
 
-         case OneofFieldOneofCase.OneofNestedMessage:
 
-           OneofNestedMessage = other.OneofNestedMessage.Clone();
 
-           break;
 
-         case OneofFieldOneofCase.OneofString:
 
-           OneofString = other.OneofString;
 
-           break;
 
-         case OneofFieldOneofCase.OneofBytes:
 
-           OneofBytes = other.OneofBytes;
 
-           break;
 
-       }
 
-     }
 
-     public TestAllTypes Clone() {
 
-       return new TestAllTypes(this);
 
-     }
 
-     public const int SingleInt32FieldNumber = 1;
 
-     private int singleInt32_;
 
-     public int SingleInt32 {
 
-       get { return singleInt32_; }
 
-       set { singleInt32_ = value; }
 
-     }
 
-     public const int SingleInt64FieldNumber = 2;
 
-     private long singleInt64_;
 
-     public long SingleInt64 {
 
-       get { return singleInt64_; }
 
-       set { singleInt64_ = value; }
 
-     }
 
-     public const int SingleUint32FieldNumber = 3;
 
-     private uint singleUint32_;
 
-     public uint SingleUint32 {
 
-       get { return singleUint32_; }
 
-       set { singleUint32_ = value; }
 
-     }
 
-     public const int SingleUint64FieldNumber = 4;
 
-     private ulong singleUint64_;
 
-     public ulong SingleUint64 {
 
-       get { return singleUint64_; }
 
-       set { singleUint64_ = value; }
 
-     }
 
-     public const int SingleSint32FieldNumber = 5;
 
-     private int singleSint32_;
 
-     public int SingleSint32 {
 
-       get { return singleSint32_; }
 
-       set { singleSint32_ = value; }
 
-     }
 
-     public const int SingleSint64FieldNumber = 6;
 
-     private long singleSint64_;
 
-     public long SingleSint64 {
 
-       get { return singleSint64_; }
 
-       set { singleSint64_ = value; }
 
-     }
 
-     public const int SingleFixed32FieldNumber = 7;
 
-     private uint singleFixed32_;
 
-     public uint SingleFixed32 {
 
-       get { return singleFixed32_; }
 
-       set { singleFixed32_ = value; }
 
-     }
 
-     public const int SingleFixed64FieldNumber = 8;
 
-     private ulong singleFixed64_;
 
-     public ulong SingleFixed64 {
 
-       get { return singleFixed64_; }
 
-       set { singleFixed64_ = value; }
 
-     }
 
-     public const int SingleSfixed32FieldNumber = 9;
 
-     private int singleSfixed32_;
 
-     public int SingleSfixed32 {
 
-       get { return singleSfixed32_; }
 
-       set { singleSfixed32_ = value; }
 
-     }
 
-     public const int SingleSfixed64FieldNumber = 10;
 
-     private long singleSfixed64_;
 
-     public long SingleSfixed64 {
 
-       get { return singleSfixed64_; }
 
-       set { singleSfixed64_ = value; }
 
-     }
 
-     public const int SingleFloatFieldNumber = 11;
 
-     private float singleFloat_;
 
-     public float SingleFloat {
 
-       get { return singleFloat_; }
 
-       set { singleFloat_ = value; }
 
-     }
 
-     public const int SingleDoubleFieldNumber = 12;
 
-     private double singleDouble_;
 
-     public double SingleDouble {
 
-       get { return singleDouble_; }
 
-       set { singleDouble_ = value; }
 
-     }
 
-     public const int SingleBoolFieldNumber = 13;
 
-     private bool singleBool_;
 
-     public bool SingleBool {
 
-       get { return singleBool_; }
 
-       set { singleBool_ = value; }
 
-     }
 
-     public const int SingleStringFieldNumber = 14;
 
-     private string singleString_ = "";
 
-     public string SingleString {
 
-       get { return singleString_; }
 
-       set { singleString_ = value ?? ""; }
 
-     }
 
-     public const int SingleBytesFieldNumber = 15;
 
-     private pb::ByteString singleBytes_ = pb::ByteString.Empty;
 
-     public pb::ByteString SingleBytes {
 
-       get { return singleBytes_; }
 
-       set { singleBytes_ = value ?? pb::ByteString.Empty; }
 
-     }
 
-     public const int SingleNestedMessageFieldNumber = 18;
 
-     private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage singleNestedMessage_;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage SingleNestedMessage {
 
-       get { return singleNestedMessage_; }
 
-       set { singleNestedMessage_ = value; }
 
-     }
 
-     public const int SingleForeignMessageFieldNumber = 19;
 
-     private global::Google.Protobuf.TestProtos.ForeignMessage singleForeignMessage_;
 
-     public global::Google.Protobuf.TestProtos.ForeignMessage SingleForeignMessage {
 
-       get { return singleForeignMessage_; }
 
-       set { singleForeignMessage_ = value; }
 
-     }
 
-     public const int SingleImportMessageFieldNumber = 20;
 
-     private global::Google.Protobuf.TestProtos.ImportMessage singleImportMessage_;
 
-     public global::Google.Protobuf.TestProtos.ImportMessage SingleImportMessage {
 
-       get { return singleImportMessage_; }
 
-       set { singleImportMessage_ = value; }
 
-     }
 
-     public const int SingleNestedEnumFieldNumber = 21;
 
-     private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum singleNestedEnum_ = global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum SingleNestedEnum {
 
-       get { return singleNestedEnum_; }
 
-       set { singleNestedEnum_ = value; }
 
-     }
 
-     public const int SingleForeignEnumFieldNumber = 22;
 
-     private global::Google.Protobuf.TestProtos.ForeignEnum singleForeignEnum_ = global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED;
 
-     public global::Google.Protobuf.TestProtos.ForeignEnum SingleForeignEnum {
 
-       get { return singleForeignEnum_; }
 
-       set { singleForeignEnum_ = value; }
 
-     }
 
-     public const int SingleImportEnumFieldNumber = 23;
 
-     private global::Google.Protobuf.TestProtos.ImportEnum singleImportEnum_ = global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED;
 
-     public global::Google.Protobuf.TestProtos.ImportEnum SingleImportEnum {
 
-       get { return singleImportEnum_; }
 
-       set { singleImportEnum_ = value; }
 
-     }
 
-     public const int SinglePublicImportMessageFieldNumber = 26;
 
-     private global::Google.Protobuf.TestProtos.PublicImportMessage singlePublicImportMessage_;
 
-     public global::Google.Protobuf.TestProtos.PublicImportMessage SinglePublicImportMessage {
 
-       get { return singlePublicImportMessage_; }
 
-       set { singlePublicImportMessage_ = value; }
 
-     }
 
-     public const int RepeatedInt32FieldNumber = 31;
 
-     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> RepeatedInt32 {
 
-       get { return repeatedInt32_; }
 
-     }
 
-     public const int RepeatedInt64FieldNumber = 32;
 
-     private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> RepeatedInt64 {
 
-       get { return repeatedInt64_; }
 
-     }
 
-     public const int RepeatedUint32FieldNumber = 33;
 
-     private readonly pbc::RepeatedField<uint> repeatedUint32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> RepeatedUint32 {
 
-       get { return repeatedUint32_; }
 
-     }
 
-     public const int RepeatedUint64FieldNumber = 34;
 
-     private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> RepeatedUint64 {
 
-       get { return repeatedUint64_; }
 
-     }
 
-     public const int RepeatedSint32FieldNumber = 35;
 
-     private readonly pbc::RepeatedField<int> repeatedSint32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> RepeatedSint32 {
 
-       get { return repeatedSint32_; }
 
-     }
 
-     public const int RepeatedSint64FieldNumber = 36;
 
-     private readonly pbc::RepeatedField<long> repeatedSint64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> RepeatedSint64 {
 
-       get { return repeatedSint64_; }
 
-     }
 
-     public const int RepeatedFixed32FieldNumber = 37;
 
-     private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> RepeatedFixed32 {
 
-       get { return repeatedFixed32_; }
 
-     }
 
-     public const int RepeatedFixed64FieldNumber = 38;
 
-     private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> RepeatedFixed64 {
 
-       get { return repeatedFixed64_; }
 
-     }
 
-     public const int RepeatedSfixed32FieldNumber = 39;
 
-     private readonly pbc::RepeatedField<int> repeatedSfixed32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> RepeatedSfixed32 {
 
-       get { return repeatedSfixed32_; }
 
-     }
 
-     public const int RepeatedSfixed64FieldNumber = 40;
 
-     private readonly pbc::RepeatedField<long> repeatedSfixed64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> RepeatedSfixed64 {
 
-       get { return repeatedSfixed64_; }
 
-     }
 
-     public const int RepeatedFloatFieldNumber = 41;
 
-     private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();
 
-     public pbc::RepeatedField<float> RepeatedFloat {
 
-       get { return repeatedFloat_; }
 
-     }
 
-     public const int RepeatedDoubleFieldNumber = 42;
 
-     private readonly pbc::RepeatedField<double> repeatedDouble_ = new pbc::RepeatedField<double>();
 
-     public pbc::RepeatedField<double> RepeatedDouble {
 
-       get { return repeatedDouble_; }
 
-     }
 
-     public const int RepeatedBoolFieldNumber = 43;
 
-     private readonly pbc::RepeatedField<bool> repeatedBool_ = new pbc::RepeatedField<bool>();
 
-     public pbc::RepeatedField<bool> RepeatedBool {
 
-       get { return repeatedBool_; }
 
-     }
 
-     public const int RepeatedStringFieldNumber = 44;
 
-     private readonly pbc::RepeatedField<string> repeatedString_ = new pbc::RepeatedField<string>();
 
-     public pbc::RepeatedField<string> RepeatedString {
 
-       get { return repeatedString_; }
 
-     }
 
-     public const int RepeatedBytesFieldNumber = 45;
 
-     private readonly pbc::RepeatedField<pb::ByteString> repeatedBytes_ = new pbc::RepeatedField<pb::ByteString>();
 
-     public pbc::RepeatedField<pb::ByteString> RepeatedBytes {
 
-       get { return repeatedBytes_; }
 
-     }
 
-     public const int RepeatedNestedMessageFieldNumber = 48;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessage {
 
-       get { return repeatedNestedMessage_; }
 
-     }
 
-     public const int RepeatedForeignMessageFieldNumber = 49;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedForeignMessage {
 
-       get { return repeatedForeignMessage_; }
 
-     }
 
-     public const int RepeatedImportMessageFieldNumber = 50;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportMessage> RepeatedImportMessage {
 
-       get { return repeatedImportMessage_; }
 
-     }
 
-     public const int RepeatedNestedEnumFieldNumber = 51;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnum {
 
-       get { return repeatedNestedEnum_; }
 
-     }
 
-     public const int RepeatedForeignEnumFieldNumber = 52;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedForeignEnum {
 
-       get { return repeatedForeignEnum_; }
 
-     }
 
-     public const int RepeatedImportEnumFieldNumber = 53;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ImportEnum> RepeatedImportEnum {
 
-       get { return repeatedImportEnum_; }
 
-     }
 
-     public const int RepeatedPublicImportMessageFieldNumber = 54;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> repeatedPublicImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> RepeatedPublicImportMessage {
 
-       get { return repeatedPublicImportMessage_; }
 
-     }
 
-     public const int OneofUint32FieldNumber = 111;
 
-     public uint OneofUint32 {
 
-       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }
 
-       set {
 
-         oneofField_ = value;
 
-         oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
 
-       }
 
-     }
 
-     public const int OneofNestedMessageFieldNumber = 112;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
 
-       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage) oneofField_ : null; }
 
-       set {
 
-         oneofField_ = value;
 
-         oneofFieldCase_ = value == null ? OneofFieldOneofCase.None : OneofFieldOneofCase.OneofNestedMessage;
 
-       }
 
-     }
 
-     public const int OneofStringFieldNumber = 113;
 
-     public string OneofString {
 
-       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
 
-       set {
 
-         oneofField_ = value ?? "";
 
-         oneofFieldCase_ = OneofFieldOneofCase.OneofString;
 
-       }
 
-     }
 
-     public const int OneofBytesFieldNumber = 114;
 
-     public pb::ByteString OneofBytes {
 
-       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
 
-       set {
 
-         oneofField_ = value ?? pb::ByteString.Empty;
 
-         oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
 
-       }
 
-     }
 
-     private object oneofField_;
 
-     public enum OneofFieldOneofCase {
 
-       None = 0,
 
-       OneofUint32 = 111,
 
-       OneofNestedMessage = 112,
 
-       OneofString = 113,
 
-       OneofBytes = 114,
 
-     }
 
-     private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
 
-     public OneofFieldOneofCase OneofFieldCase {
 
-       get { return oneofFieldCase_; }
 
-     }
 
-     public void ClearOneofField() {
 
-       oneofFieldCase_ = OneofFieldOneofCase.None;
 
-       oneofField_ = null;
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestAllTypes);
 
-     }
 
-     public bool Equals(TestAllTypes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (SingleInt32 != other.SingleInt32) return false;
 
-       if (SingleInt64 != other.SingleInt64) return false;
 
-       if (SingleUint32 != other.SingleUint32) return false;
 
-       if (SingleUint64 != other.SingleUint64) return false;
 
-       if (SingleSint32 != other.SingleSint32) return false;
 
-       if (SingleSint64 != other.SingleSint64) return false;
 
-       if (SingleFixed32 != other.SingleFixed32) return false;
 
-       if (SingleFixed64 != other.SingleFixed64) return false;
 
-       if (SingleSfixed32 != other.SingleSfixed32) return false;
 
-       if (SingleSfixed64 != other.SingleSfixed64) return false;
 
-       if (SingleFloat != other.SingleFloat) return false;
 
-       if (SingleDouble != other.SingleDouble) return false;
 
-       if (SingleBool != other.SingleBool) return false;
 
-       if (SingleString != other.SingleString) return false;
 
-       if (SingleBytes != other.SingleBytes) return false;
 
-       if (!object.Equals(SingleNestedMessage, other.SingleNestedMessage)) return false;if (!object.Equals(SingleForeignMessage, other.SingleForeignMessage)) return false;if (!object.Equals(SingleImportMessage, other.SingleImportMessage)) return false;if (SingleNestedEnum != other.SingleNestedEnum) return false;
 
-       if (SingleForeignEnum != other.SingleForeignEnum) return false;
 
-       if (SingleImportEnum != other.SingleImportEnum) return false;
 
-       if (!object.Equals(SinglePublicImportMessage, other.SinglePublicImportMessage)) return false;if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;
 
-       if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;
 
-       if(!repeatedUint32_.Equals(other.repeatedUint32_)) return false;
 
-       if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;
 
-       if(!repeatedSint32_.Equals(other.repeatedSint32_)) return false;
 
-       if(!repeatedSint64_.Equals(other.repeatedSint64_)) return false;
 
-       if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;
 
-       if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;
 
-       if(!repeatedSfixed32_.Equals(other.repeatedSfixed32_)) return false;
 
-       if(!repeatedSfixed64_.Equals(other.repeatedSfixed64_)) return false;
 
-       if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;
 
-       if(!repeatedDouble_.Equals(other.repeatedDouble_)) return false;
 
-       if(!repeatedBool_.Equals(other.repeatedBool_)) return false;
 
-       if(!repeatedString_.Equals(other.repeatedString_)) return false;
 
-       if(!repeatedBytes_.Equals(other.repeatedBytes_)) return false;
 
-       if(!repeatedNestedMessage_.Equals(other.repeatedNestedMessage_)) return false;
 
-       if(!repeatedForeignMessage_.Equals(other.repeatedForeignMessage_)) return false;
 
-       if(!repeatedImportMessage_.Equals(other.repeatedImportMessage_)) return false;
 
-       if(!repeatedNestedEnum_.Equals(other.repeatedNestedEnum_)) return false;
 
-       if(!repeatedForeignEnum_.Equals(other.repeatedForeignEnum_)) return false;
 
-       if(!repeatedImportEnum_.Equals(other.repeatedImportEnum_)) return false;
 
-       if(!repeatedPublicImportMessage_.Equals(other.repeatedPublicImportMessage_)) return false;
 
-       if (OneofUint32 != other.OneofUint32) return false;
 
-       if (!object.Equals(OneofNestedMessage, other.OneofNestedMessage)) return false;if (OneofString != other.OneofString) return false;
 
-       if (OneofBytes != other.OneofBytes) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (SingleInt32 != 0) hash ^= SingleInt32.GetHashCode();
 
-       if (SingleInt64 != 0L) hash ^= SingleInt64.GetHashCode();
 
-       if (SingleUint32 != 0) hash ^= SingleUint32.GetHashCode();
 
-       if (SingleUint64 != 0UL) hash ^= SingleUint64.GetHashCode();
 
-       if (SingleSint32 != 0) hash ^= SingleSint32.GetHashCode();
 
-       if (SingleSint64 != 0L) hash ^= SingleSint64.GetHashCode();
 
-       if (SingleFixed32 != 0) hash ^= SingleFixed32.GetHashCode();
 
-       if (SingleFixed64 != 0UL) hash ^= SingleFixed64.GetHashCode();
 
-       if (SingleSfixed32 != 0) hash ^= SingleSfixed32.GetHashCode();
 
-       if (SingleSfixed64 != 0L) hash ^= SingleSfixed64.GetHashCode();
 
-       if (SingleFloat != 0F) hash ^= SingleFloat.GetHashCode();
 
-       if (SingleDouble != 0D) hash ^= SingleDouble.GetHashCode();
 
-       if (SingleBool != false) hash ^= SingleBool.GetHashCode();
 
-       if (SingleString.Length != 0) hash ^= SingleString.GetHashCode();
 
-       if (SingleBytes.Length != 0) hash ^= SingleBytes.GetHashCode();
 
-       if (singleNestedMessage_ != null) hash ^= SingleNestedMessage.GetHashCode();
 
-       if (singleForeignMessage_ != null) hash ^= SingleForeignMessage.GetHashCode();
 
-       if (singleImportMessage_ != null) hash ^= SingleImportMessage.GetHashCode();
 
-       if (SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) hash ^= SingleNestedEnum.GetHashCode();
 
-       if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) hash ^= SingleForeignEnum.GetHashCode();
 
-       if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) hash ^= SingleImportEnum.GetHashCode();
 
-       if (singlePublicImportMessage_ != null) hash ^= SinglePublicImportMessage.GetHashCode();
 
-       hash ^= repeatedInt32_.GetHashCode();
 
-       hash ^= repeatedInt64_.GetHashCode();
 
-       hash ^= repeatedUint32_.GetHashCode();
 
-       hash ^= repeatedUint64_.GetHashCode();
 
-       hash ^= repeatedSint32_.GetHashCode();
 
-       hash ^= repeatedSint64_.GetHashCode();
 
-       hash ^= repeatedFixed32_.GetHashCode();
 
-       hash ^= repeatedFixed64_.GetHashCode();
 
-       hash ^= repeatedSfixed32_.GetHashCode();
 
-       hash ^= repeatedSfixed64_.GetHashCode();
 
-       hash ^= repeatedFloat_.GetHashCode();
 
-       hash ^= repeatedDouble_.GetHashCode();
 
-       hash ^= repeatedBool_.GetHashCode();
 
-       hash ^= repeatedString_.GetHashCode();
 
-       hash ^= repeatedBytes_.GetHashCode();
 
-       hash ^= repeatedNestedMessage_.GetHashCode();
 
-       hash ^= repeatedForeignMessage_.GetHashCode();
 
-       hash ^= repeatedImportMessage_.GetHashCode();
 
-       hash ^= repeatedNestedEnum_.GetHashCode();
 
-       hash ^= repeatedForeignEnum_.GetHashCode();
 
-       hash ^= repeatedImportEnum_.GetHashCode();
 
-       hash ^= repeatedPublicImportMessage_.GetHashCode();
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) hash ^= OneofUint32.GetHashCode();
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) hash ^= OneofNestedMessage.GetHashCode();
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) hash ^= OneofString.GetHashCode();
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) hash ^= OneofBytes.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (SingleInt32 != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(SingleInt32);
 
-       }
 
-       if (SingleInt64 != 0L) {
 
-         output.WriteRawTag(16);
 
-         output.WriteInt64(SingleInt64);
 
-       }
 
-       if (SingleUint32 != 0) {
 
-         output.WriteRawTag(24);
 
-         output.WriteUInt32(SingleUint32);
 
-       }
 
-       if (SingleUint64 != 0UL) {
 
-         output.WriteRawTag(32);
 
-         output.WriteUInt64(SingleUint64);
 
-       }
 
-       if (SingleSint32 != 0) {
 
-         output.WriteRawTag(40);
 
-         output.WriteSInt32(SingleSint32);
 
-       }
 
-       if (SingleSint64 != 0L) {
 
-         output.WriteRawTag(48);
 
-         output.WriteSInt64(SingleSint64);
 
-       }
 
-       if (SingleFixed32 != 0) {
 
-         output.WriteRawTag(61);
 
-         output.WriteFixed32(SingleFixed32);
 
-       }
 
-       if (SingleFixed64 != 0UL) {
 
-         output.WriteRawTag(65);
 
-         output.WriteFixed64(SingleFixed64);
 
-       }
 
-       if (SingleSfixed32 != 0) {
 
-         output.WriteRawTag(77);
 
-         output.WriteSFixed32(SingleSfixed32);
 
-       }
 
-       if (SingleSfixed64 != 0L) {
 
-         output.WriteRawTag(81);
 
-         output.WriteSFixed64(SingleSfixed64);
 
-       }
 
-       if (SingleFloat != 0F) {
 
-         output.WriteRawTag(93);
 
-         output.WriteFloat(SingleFloat);
 
-       }
 
-       if (SingleDouble != 0D) {
 
-         output.WriteRawTag(97);
 
-         output.WriteDouble(SingleDouble);
 
-       }
 
-       if (SingleBool != false) {
 
-         output.WriteRawTag(104);
 
-         output.WriteBool(SingleBool);
 
-       }
 
-       if (SingleString.Length != 0) {
 
-         output.WriteRawTag(114);
 
-         output.WriteString(SingleString);
 
-       }
 
-       if (SingleBytes.Length != 0) {
 
-         output.WriteRawTag(122);
 
-         output.WriteBytes(SingleBytes);
 
-       }
 
-       if (singleNestedMessage_ != null) {
 
-         output.WriteRawTag(146, 1);
 
-         output.WriteMessage(SingleNestedMessage);
 
-       }
 
-       if (singleForeignMessage_ != null) {
 
-         output.WriteRawTag(154, 1);
 
-         output.WriteMessage(SingleForeignMessage);
 
-       }
 
-       if (singleImportMessage_ != null) {
 
-         output.WriteRawTag(162, 1);
 
-         output.WriteMessage(SingleImportMessage);
 
-       }
 
-       if (SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {
 
-         output.WriteRawTag(168, 1);
 
-         output.WriteEnum((int) SingleNestedEnum);
 
-       }
 
-       if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         output.WriteRawTag(176, 1);
 
-         output.WriteEnum((int) SingleForeignEnum);
 
-       }
 
-       if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {
 
-         output.WriteRawTag(184, 1);
 
-         output.WriteEnum((int) SingleImportEnum);
 
-       }
 
-       if (singlePublicImportMessage_ != null) {
 
-         output.WriteRawTag(210, 1);
 
-         output.WriteMessage(SinglePublicImportMessage);
 
-       }
 
-       if (repeatedInt32_.Count > 0) {
 
-         output.WriteRawTag(250, 1);
 
-         output.WritePackedInt32Array(repeatedInt32_);
 
-       }
 
-       if (repeatedInt64_.Count > 0) {
 
-         output.WriteRawTag(130, 2);
 
-         output.WritePackedInt64Array(repeatedInt64_);
 
-       }
 
-       if (repeatedUint32_.Count > 0) {
 
-         output.WriteRawTag(138, 2);
 
-         output.WritePackedUInt32Array(repeatedUint32_);
 
-       }
 
-       if (repeatedUint64_.Count > 0) {
 
-         output.WriteRawTag(146, 2);
 
-         output.WritePackedUInt64Array(repeatedUint64_);
 
-       }
 
-       if (repeatedSint32_.Count > 0) {
 
-         output.WriteRawTag(154, 2);
 
-         output.WritePackedSInt32Array(repeatedSint32_);
 
-       }
 
-       if (repeatedSint64_.Count > 0) {
 
-         output.WriteRawTag(162, 2);
 
-         output.WritePackedSInt64Array(repeatedSint64_);
 
-       }
 
-       if (repeatedFixed32_.Count > 0) {
 
-         output.WriteRawTag(170, 2);
 
-         output.WritePackedFixed32Array(repeatedFixed32_);
 
-       }
 
-       if (repeatedFixed64_.Count > 0) {
 
-         output.WriteRawTag(178, 2);
 
-         output.WritePackedFixed64Array(repeatedFixed64_);
 
-       }
 
-       if (repeatedSfixed32_.Count > 0) {
 
-         output.WriteRawTag(186, 2);
 
-         output.WritePackedSFixed32Array(repeatedSfixed32_);
 
-       }
 
-       if (repeatedSfixed64_.Count > 0) {
 
-         output.WriteRawTag(194, 2);
 
-         output.WritePackedSFixed64Array(repeatedSfixed64_);
 
-       }
 
-       if (repeatedFloat_.Count > 0) {
 
-         output.WriteRawTag(202, 2);
 
-         output.WritePackedFloatArray(repeatedFloat_);
 
-       }
 
-       if (repeatedDouble_.Count > 0) {
 
-         output.WriteRawTag(210, 2);
 
-         output.WritePackedDoubleArray(repeatedDouble_);
 
-       }
 
-       if (repeatedBool_.Count > 0) {
 
-         output.WriteRawTag(218, 2);
 
-         output.WritePackedBoolArray(repeatedBool_);
 
-       }
 
-       if (repeatedString_.Count > 0) {
 
-         output.WriteStringArray(44, repeatedString_);
 
-       }
 
-       if (repeatedBytes_.Count > 0) {
 
-         output.WriteBytesArray(45, repeatedBytes_);
 
-       }
 
-       if (repeatedNestedMessage_.Count > 0) {
 
-         output.WriteMessageArray(48, repeatedNestedMessage_);
 
-       }
 
-       if (repeatedForeignMessage_.Count > 0) {
 
-         output.WriteMessageArray(49, repeatedForeignMessage_);
 
-       }
 
-       if (repeatedImportMessage_.Count > 0) {
 
-         output.WriteMessageArray(50, repeatedImportMessage_);
 
-       }
 
-       if (repeatedNestedEnum_.Count > 0) {
 
-         output.WriteRawTag(154, 3);
 
-         output.WritePackedEnumArray(repeatedNestedEnum_);
 
-       }
 
-       if (repeatedForeignEnum_.Count > 0) {
 
-         output.WriteRawTag(162, 3);
 
-         output.WritePackedEnumArray(repeatedForeignEnum_);
 
-       }
 
-       if (repeatedImportEnum_.Count > 0) {
 
-         output.WriteRawTag(170, 3);
 
-         output.WritePackedEnumArray(repeatedImportEnum_);
 
-       }
 
-       if (repeatedPublicImportMessage_.Count > 0) {
 
-         output.WriteMessageArray(54, repeatedPublicImportMessage_);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
 
-         output.WriteRawTag(248, 6);
 
-         output.WriteUInt32(OneofUint32);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
 
-         output.WriteRawTag(130, 7);
 
-         output.WriteMessage(OneofNestedMessage);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
 
-         output.WriteRawTag(138, 7);
 
-         output.WriteString(OneofString);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
 
-         output.WriteRawTag(146, 7);
 
-         output.WriteBytes(OneofBytes);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (SingleInt32 != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(SingleInt32);
 
-       }
 
-       if (SingleInt64 != 0L) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt64Size(SingleInt64);
 
-       }
 
-       if (SingleUint32 != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SingleUint32);
 
-       }
 
-       if (SingleUint64 != 0UL) {
 
-         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SingleUint64);
 
-       }
 
-       if (SingleSint32 != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeSInt32Size(SingleSint32);
 
-       }
 
-       if (SingleSint64 != 0L) {
 
-         size += 1 + pb::CodedOutputStream.ComputeSInt64Size(SingleSint64);
 
-       }
 
-       if (SingleFixed32 != 0) {
 
-         size += 1 + 4;
 
-       }
 
-       if (SingleFixed64 != 0UL) {
 
-         size += 1 + 8;
 
-       }
 
-       if (SingleSfixed32 != 0) {
 
-         size += 1 + 4;
 
-       }
 
-       if (SingleSfixed64 != 0L) {
 
-         size += 1 + 8;
 
-       }
 
-       if (SingleFloat != 0F) {
 
-         size += 1 + 4;
 
-       }
 
-       if (SingleDouble != 0D) {
 
-         size += 1 + 8;
 
-       }
 
-       if (SingleBool != false) {
 
-         size += 1 + 1;
 
-       }
 
-       if (SingleString.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(SingleString);
 
-       }
 
-       if (SingleBytes.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeBytesSize(SingleBytes);
 
-       }
 
-       if (singleNestedMessage_ != null) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleNestedMessage);
 
-       }
 
-       if (singleForeignMessage_ != null) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleForeignMessage);
 
-       }
 
-       if (singleImportMessage_ != null) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleImportMessage);
 
-       }
 
-       if (SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {
 
-         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleNestedEnum);
 
-       }
 
-       if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleForeignEnum);
 
-       }
 
-       if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {
 
-         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleImportEnum);
 
-       }
 
-       if (singlePublicImportMessage_ != null) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(SinglePublicImportMessage);
 
-       }
 
-       if (repeatedInt32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in repeatedInt32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedInt64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in repeatedInt64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedUint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (uint element in repeatedUint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedUint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (ulong element in repeatedUint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedSint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in repeatedSint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedSint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in repeatedSint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedFixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * repeatedFixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedFixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * repeatedFixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedSfixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * repeatedSfixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedSfixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * repeatedSfixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedFloat_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * repeatedFloat_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedDouble_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * repeatedDouble_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedBool_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 1 * repeatedBool_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedString_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (string element in repeatedString_) {
 
-           dataSize += pb::CodedOutputStream.ComputeStringSize(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * repeatedString_.Count;
 
-       }
 
-       if (repeatedBytes_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (pb::ByteString element in repeatedBytes_) {
 
-           dataSize += pb::CodedOutputStream.ComputeBytesSize(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * repeatedBytes_.Count;
 
-       }
 
-       if (repeatedNestedMessage_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage element in repeatedNestedMessage_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 2 * repeatedNestedMessage_.Count;
 
-       }
 
-       if (repeatedForeignMessage_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignMessage element in repeatedForeignMessage_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 2 * repeatedForeignMessage_.Count;
 
-       }
 
-       if (repeatedImportMessage_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.ImportMessage element in repeatedImportMessage_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 2 * repeatedImportMessage_.Count;
 
-       }
 
-       if (repeatedNestedEnum_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
 
-       }
 
-       if (repeatedForeignEnum_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
 
-       }
 
-       if (repeatedImportEnum_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.ImportEnum element in repeatedImportEnum_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
 
-       }
 
-       if (repeatedPublicImportMessage_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.PublicImportMessage element in repeatedPublicImportMessage_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 2 * repeatedPublicImportMessage_.Count;
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
 
-         size += 2 + pb::CodedOutputStream.ComputeUInt32Size(OneofUint32);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OneofNestedMessage);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
 
-         size += 2 + pb::CodedOutputStream.ComputeStringSize(OneofString);
 
-       }
 
-       if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
 
-         size += 2 + pb::CodedOutputStream.ComputeBytesSize(OneofBytes);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestAllTypes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.SingleInt32 != 0) {
 
-         SingleInt32 = other.SingleInt32;
 
-       }
 
-       if (other.SingleInt64 != 0L) {
 
-         SingleInt64 = other.SingleInt64;
 
-       }
 
-       if (other.SingleUint32 != 0) {
 
-         SingleUint32 = other.SingleUint32;
 
-       }
 
-       if (other.SingleUint64 != 0UL) {
 
-         SingleUint64 = other.SingleUint64;
 
-       }
 
-       if (other.SingleSint32 != 0) {
 
-         SingleSint32 = other.SingleSint32;
 
-       }
 
-       if (other.SingleSint64 != 0L) {
 
-         SingleSint64 = other.SingleSint64;
 
-       }
 
-       if (other.SingleFixed32 != 0) {
 
-         SingleFixed32 = other.SingleFixed32;
 
-       }
 
-       if (other.SingleFixed64 != 0UL) {
 
-         SingleFixed64 = other.SingleFixed64;
 
-       }
 
-       if (other.SingleSfixed32 != 0) {
 
-         SingleSfixed32 = other.SingleSfixed32;
 
-       }
 
-       if (other.SingleSfixed64 != 0L) {
 
-         SingleSfixed64 = other.SingleSfixed64;
 
-       }
 
-       if (other.SingleFloat != 0F) {
 
-         SingleFloat = other.SingleFloat;
 
-       }
 
-       if (other.SingleDouble != 0D) {
 
-         SingleDouble = other.SingleDouble;
 
-       }
 
-       if (other.SingleBool != false) {
 
-         SingleBool = other.SingleBool;
 
-       }
 
-       if (other.SingleString.Length != 0) {
 
-         SingleString = other.SingleString;
 
-       }
 
-       if (other.SingleBytes.Length != 0) {
 
-         SingleBytes = other.SingleBytes;
 
-       }
 
-       if (other.singleNestedMessage_ != null) {
 
-         if (singleNestedMessage_ == null) {
 
-           singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();
 
-         }
 
-         SingleNestedMessage.MergeFrom(other.SingleNestedMessage);
 
-       }
 
-       if (other.singleForeignMessage_ != null) {
 
-         if (singleForeignMessage_ == null) {
 
-           singleForeignMessage_ = new global::Google.Protobuf.TestProtos.ForeignMessage();
 
-         }
 
-         SingleForeignMessage.MergeFrom(other.SingleForeignMessage);
 
-       }
 
-       if (other.singleImportMessage_ != null) {
 
-         if (singleImportMessage_ == null) {
 
-           singleImportMessage_ = new global::Google.Protobuf.TestProtos.ImportMessage();
 
-         }
 
-         SingleImportMessage.MergeFrom(other.SingleImportMessage);
 
-       }
 
-       if (other.SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {
 
-         SingleNestedEnum = other.SingleNestedEnum;
 
-       }
 
-       if (other.SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         SingleForeignEnum = other.SingleForeignEnum;
 
-       }
 
-       if (other.SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {
 
-         SingleImportEnum = other.SingleImportEnum;
 
-       }
 
-       if (other.singlePublicImportMessage_ != null) {
 
-         if (singlePublicImportMessage_ == null) {
 
-           singlePublicImportMessage_ = new global::Google.Protobuf.TestProtos.PublicImportMessage();
 
-         }
 
-         SinglePublicImportMessage.MergeFrom(other.SinglePublicImportMessage);
 
-       }
 
-       repeatedInt32_.Add(other.repeatedInt32_);
 
-       repeatedInt64_.Add(other.repeatedInt64_);
 
-       repeatedUint32_.Add(other.repeatedUint32_);
 
-       repeatedUint64_.Add(other.repeatedUint64_);
 
-       repeatedSint32_.Add(other.repeatedSint32_);
 
-       repeatedSint64_.Add(other.repeatedSint64_);
 
-       repeatedFixed32_.Add(other.repeatedFixed32_);
 
-       repeatedFixed64_.Add(other.repeatedFixed64_);
 
-       repeatedSfixed32_.Add(other.repeatedSfixed32_);
 
-       repeatedSfixed64_.Add(other.repeatedSfixed64_);
 
-       repeatedFloat_.Add(other.repeatedFloat_);
 
-       repeatedDouble_.Add(other.repeatedDouble_);
 
-       repeatedBool_.Add(other.repeatedBool_);
 
-       repeatedString_.Add(other.repeatedString_);
 
-       repeatedBytes_.Add(other.repeatedBytes_);
 
-       repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
 
-       repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
 
-       repeatedImportMessage_.Add(other.repeatedImportMessage_);
 
-       repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
 
-       repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
 
-       repeatedImportEnum_.Add(other.repeatedImportEnum_);
 
-       repeatedPublicImportMessage_.Add(other.repeatedPublicImportMessage_);
 
-       switch (other.OneofFieldCase) {
 
-         case OneofFieldOneofCase.OneofUint32:
 
-           OneofUint32 = other.OneofUint32;
 
-           break;
 
-         case OneofFieldOneofCase.OneofNestedMessage:
 
-           OneofNestedMessage = other.OneofNestedMessage;
 
-           break;
 
-         case OneofFieldOneofCase.OneofString:
 
-           OneofString = other.OneofString;
 
-           break;
 
-         case OneofFieldOneofCase.OneofBytes:
 
-           OneofBytes = other.OneofBytes;
 
-           break;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             SingleInt32 = input.ReadInt32();
 
-             break;
 
-           }
 
-           case 16: {
 
-             SingleInt64 = input.ReadInt64();
 
-             break;
 
-           }
 
-           case 24: {
 
-             SingleUint32 = input.ReadUInt32();
 
-             break;
 
-           }
 
-           case 32: {
 
-             SingleUint64 = input.ReadUInt64();
 
-             break;
 
-           }
 
-           case 40: {
 
-             SingleSint32 = input.ReadSInt32();
 
-             break;
 
-           }
 
-           case 48: {
 
-             SingleSint64 = input.ReadSInt64();
 
-             break;
 
-           }
 
-           case 61: {
 
-             SingleFixed32 = input.ReadFixed32();
 
-             break;
 
-           }
 
-           case 65: {
 
-             SingleFixed64 = input.ReadFixed64();
 
-             break;
 
-           }
 
-           case 77: {
 
-             SingleSfixed32 = input.ReadSFixed32();
 
-             break;
 
-           }
 
-           case 81: {
 
-             SingleSfixed64 = input.ReadSFixed64();
 
-             break;
 
-           }
 
-           case 93: {
 
-             SingleFloat = input.ReadFloat();
 
-             break;
 
-           }
 
-           case 97: {
 
-             SingleDouble = input.ReadDouble();
 
-             break;
 
-           }
 
-           case 104: {
 
-             SingleBool = input.ReadBool();
 
-             break;
 
-           }
 
-           case 114: {
 
-             SingleString = input.ReadString();
 
-             break;
 
-           }
 
-           case 122: {
 
-             SingleBytes = input.ReadBytes();
 
-             break;
 
-           }
 
-           case 146: {
 
-             if (singleNestedMessage_ == null) {
 
-               singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();
 
-             }
 
-             input.ReadMessage(singleNestedMessage_);
 
-             break;
 
-           }
 
-           case 154: {
 
-             if (singleForeignMessage_ == null) {
 
-               singleForeignMessage_ = new global::Google.Protobuf.TestProtos.ForeignMessage();
 
-             }
 
-             input.ReadMessage(singleForeignMessage_);
 
-             break;
 
-           }
 
-           case 162: {
 
-             if (singleImportMessage_ == null) {
 
-               singleImportMessage_ = new global::Google.Protobuf.TestProtos.ImportMessage();
 
-             }
 
-             input.ReadMessage(singleImportMessage_);
 
-             break;
 
-           }
 
-           case 168: {
 
-             singleNestedEnum_ = (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum) input.ReadEnum();
 
-             break;
 
-           }
 
-           case 176: {
 
-             singleForeignEnum_ = (global::Google.Protobuf.TestProtos.ForeignEnum) input.ReadEnum();
 
-             break;
 
-           }
 
-           case 184: {
 
-             singleImportEnum_ = (global::Google.Protobuf.TestProtos.ImportEnum) input.ReadEnum();
 
-             break;
 
-           }
 
-           case 210: {
 
-             if (singlePublicImportMessage_ == null) {
 
-               singlePublicImportMessage_ = new global::Google.Protobuf.TestProtos.PublicImportMessage();
 
-             }
 
-             input.ReadMessage(singlePublicImportMessage_);
 
-             break;
 
-           }
 
-           case 250:
 
-           case 248: {
 
-             input.ReadInt32Array(repeatedInt32_);
 
-             break;
 
-           }
 
-           case 258:
 
-           case 256: {
 
-             input.ReadInt64Array(repeatedInt64_);
 
-             break;
 
-           }
 
-           case 266:
 
-           case 264: {
 
-             input.ReadUInt32Array(repeatedUint32_);
 
-             break;
 
-           }
 
-           case 274:
 
-           case 272: {
 
-             input.ReadUInt64Array(repeatedUint64_);
 
-             break;
 
-           }
 
-           case 282:
 
-           case 280: {
 
-             input.ReadSInt32Array(repeatedSint32_);
 
-             break;
 
-           }
 
-           case 290:
 
-           case 288: {
 
-             input.ReadSInt64Array(repeatedSint64_);
 
-             break;
 
-           }
 
-           case 298:
 
-           case 301: {
 
-             input.ReadFixed32Array(repeatedFixed32_);
 
-             break;
 
-           }
 
-           case 306:
 
-           case 305: {
 
-             input.ReadFixed64Array(repeatedFixed64_);
 
-             break;
 
-           }
 
-           case 314:
 
-           case 317: {
 
-             input.ReadSFixed32Array(repeatedSfixed32_);
 
-             break;
 
-           }
 
-           case 322:
 
-           case 321: {
 
-             input.ReadSFixed64Array(repeatedSfixed64_);
 
-             break;
 
-           }
 
-           case 330:
 
-           case 333: {
 
-             input.ReadFloatArray(repeatedFloat_);
 
-             break;
 
-           }
 
-           case 338:
 
-           case 337: {
 
-             input.ReadDoubleArray(repeatedDouble_);
 
-             break;
 
-           }
 
-           case 346:
 
-           case 344: {
 
-             input.ReadBoolArray(repeatedBool_);
 
-             break;
 
-           }
 
-           case 354: {
 
-             input.ReadStringArray(repeatedString_);
 
-             break;
 
-           }
 
-           case 362: {
 
-             input.ReadBytesArray(repeatedBytes_);
 
-             break;
 
-           }
 
-           case 386: {
 
-             input.ReadMessageArray(repeatedNestedMessage_, global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage.Parser);
 
-             break;
 
-           }
 
-           case 394: {
 
-             input.ReadMessageArray(repeatedForeignMessage_, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);
 
-             break;
 
-           }
 
-           case 402: {
 
-             input.ReadMessageArray(repeatedImportMessage_, global::Google.Protobuf.TestProtos.ImportMessage.Parser);
 
-             break;
 
-           }
 
-           case 410:
 
-           case 408: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum>(repeatedNestedEnum_);
 
-             break;
 
-           }
 
-           case 418:
 
-           case 416: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(repeatedForeignEnum_);
 
-             break;
 
-           }
 
-           case 426:
 
-           case 424: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.ImportEnum>(repeatedImportEnum_);
 
-             break;
 
-           }
 
-           case 434: {
 
-             input.ReadMessageArray(repeatedPublicImportMessage_, global::Google.Protobuf.TestProtos.PublicImportMessage.Parser);
 
-             break;
 
-           }
 
-           case 888: {
 
-             OneofUint32 = input.ReadUInt32();
 
-             break;
 
-           }
 
-           case 898: {
 
-             global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();
 
-             if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
 
-               subBuilder.MergeFrom(OneofNestedMessage);
 
-             }
 
-             input.ReadMessage(subBuilder);
 
-             OneofNestedMessage = subBuilder;
 
-             break;
 
-           }
 
-           case 906: {
 
-             OneofString = input.ReadString();
 
-             break;
 
-           }
 
-           case 914: {
 
-             OneofBytes = input.ReadBytes();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-     #region Nested types
 
-     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-     public static partial class Types {
 
-       public enum NestedEnum {
 
-         NESTED_ENUM_UNSPECIFIED = 0,
 
-         FOO = 1,
 
-         BAR = 2,
 
-         BAZ = 3,
 
-         NEG = -1,
 
-       }
 
-       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-       public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {
 
-         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
 
-         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
 
-         private static readonly string[] _fieldNames = new string[] { "bb" };
 
-         private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-         public static pbd::MessageDescriptor Descriptor {
 
-           get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }
 
-         }
 
-         public pb::FieldAccess.FieldAccessorTable<NestedMessage> Fields {
 
-           get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
 
-         }
 
-         public NestedMessage() { }
 
-         public NestedMessage(NestedMessage other) {
 
-           bb_ = other.bb_;
 
-         }
 
-         public NestedMessage Clone() {
 
-           return new NestedMessage(this);
 
-         }
 
-         public const int BbFieldNumber = 1;
 
-         private int bb_;
 
-         public int Bb {
 
-           get { return bb_; }
 
-           set { bb_ = value; }
 
-         }
 
-         public override bool Equals(object other) {
 
-           return Equals(other as NestedMessage);
 
-         }
 
-         public bool Equals(NestedMessage other) {
 
-           if (ReferenceEquals(other, null)) {
 
-             return false;
 
-           }
 
-           if (ReferenceEquals(other, this)) {
 
-             return true;
 
-           }
 
-           if (Bb != other.Bb) return false;
 
-           return true;
 
-         }
 
-         public override int GetHashCode() {
 
-           int hash = 0;
 
-           if (Bb != 0) hash ^= Bb.GetHashCode();
 
-           return hash;
 
-         }
 
-         public void WriteTo(pb::CodedOutputStream output) {
 
-           if (Bb != 0) {
 
-             output.WriteRawTag(8);
 
-             output.WriteInt32(Bb);
 
-           }
 
-         }
 
-         public int CalculateSize() {
 
-           int size = 0;
 
-           if (Bb != 0) {
 
-             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);
 
-           }
 
-           return size;
 
-         }
 
-         public void MergeFrom(NestedMessage other) {
 
-           if (other == null) {
 
-             return;
 
-           }
 
-           if (other.Bb != 0) {
 
-             Bb = other.Bb;
 
-           }
 
-         }
 
-         public void MergeFrom(pb::CodedInputStream input) {
 
-           uint tag;
 
-           while (input.ReadTag(out tag)) {
 
-             switch(tag) {
 
-               case 0:
 
-                 throw pb::InvalidProtocolBufferException.InvalidTag();
 
-               default:
 
-                 if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-                   return;
 
-                 }
 
-                 break;
 
-               case 8: {
 
-                 Bb = input.ReadInt32();
 
-                 break;
 
-               }
 
-             }
 
-           }
 
-         }
 
-       }
 
-     }
 
-     #endregion
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class NestedTestAllTypes : pb::IMessage<NestedTestAllTypes> {
 
-     private static readonly pb::MessageParser<NestedTestAllTypes> _parser = new pb::MessageParser<NestedTestAllTypes>(() => new NestedTestAllTypes());
 
-     public static pb::MessageParser<NestedTestAllTypes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "child", "payload", "repeated_child" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10, 18, 26 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<NestedTestAllTypes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable; }
 
-     }
 
-     public NestedTestAllTypes() { }
 
-     public NestedTestAllTypes(NestedTestAllTypes other) {
 
-       Child = other.child_ != null ? other.Child.Clone() : null;
 
-       Payload = other.payload_ != null ? other.Payload.Clone() : null;
 
-       repeatedChild_ = other.repeatedChild_.Clone();
 
-     }
 
-     public NestedTestAllTypes Clone() {
 
-       return new NestedTestAllTypes(this);
 
-     }
 
-     public const int ChildFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.NestedTestAllTypes child_;
 
-     public global::Google.Protobuf.TestProtos.NestedTestAllTypes Child {
 
-       get { return child_; }
 
-       set { child_ = value; }
 
-     }
 
-     public const int PayloadFieldNumber = 2;
 
-     private global::Google.Protobuf.TestProtos.TestAllTypes payload_;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes Payload {
 
-       get { return payload_; }
 
-       set { payload_ = value; }
 
-     }
 
-     public const int RepeatedChildFieldNumber = 3;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> repeatedChild_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.NestedTestAllTypes> RepeatedChild {
 
-       get { return repeatedChild_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as NestedTestAllTypes);
 
-     }
 
-     public bool Equals(NestedTestAllTypes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (!object.Equals(Child, other.Child)) return false;if (!object.Equals(Payload, other.Payload)) return false;if(!repeatedChild_.Equals(other.repeatedChild_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (child_ != null) hash ^= Child.GetHashCode();
 
-       if (payload_ != null) hash ^= Payload.GetHashCode();
 
-       hash ^= repeatedChild_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (child_ != null) {
 
-         output.WriteRawTag(10);
 
-         output.WriteMessage(Child);
 
-       }
 
-       if (payload_ != null) {
 
-         output.WriteRawTag(18);
 
-         output.WriteMessage(Payload);
 
-       }
 
-       if (repeatedChild_.Count > 0) {
 
-         output.WriteMessageArray(3, repeatedChild_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (child_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Child);
 
-       }
 
-       if (payload_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Payload);
 
-       }
 
-       if (repeatedChild_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.NestedTestAllTypes element in repeatedChild_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 1 * repeatedChild_.Count;
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(NestedTestAllTypes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.child_ != null) {
 
-         if (child_ == null) {
 
-           child_ = new global::Google.Protobuf.TestProtos.NestedTestAllTypes();
 
-         }
 
-         Child.MergeFrom(other.Child);
 
-       }
 
-       if (other.payload_ != null) {
 
-         if (payload_ == null) {
 
-           payload_ = new global::Google.Protobuf.TestProtos.TestAllTypes();
 
-         }
 
-         Payload.MergeFrom(other.Payload);
 
-       }
 
-       repeatedChild_.Add(other.repeatedChild_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             if (child_ == null) {
 
-               child_ = new global::Google.Protobuf.TestProtos.NestedTestAllTypes();
 
-             }
 
-             input.ReadMessage(child_);
 
-             break;
 
-           }
 
-           case 18: {
 
-             if (payload_ == null) {
 
-               payload_ = new global::Google.Protobuf.TestProtos.TestAllTypes();
 
-             }
 
-             input.ReadMessage(payload_);
 
-             break;
 
-           }
 
-           case 26: {
 
-             input.ReadMessageArray(repeatedChild_, global::Google.Protobuf.TestProtos.NestedTestAllTypes.Parser);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestDeprecatedFields : pb::IMessage<TestDeprecatedFields> {
 
-     private static readonly pb::MessageParser<TestDeprecatedFields> _parser = new pb::MessageParser<TestDeprecatedFields>(() => new TestDeprecatedFields());
 
-     public static pb::MessageParser<TestDeprecatedFields> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "deprecated_int32" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
 
-     }
 
-     public TestDeprecatedFields() { }
 
-     public TestDeprecatedFields(TestDeprecatedFields other) {
 
-       deprecatedInt32_ = other.deprecatedInt32_;
 
-     }
 
-     public TestDeprecatedFields Clone() {
 
-       return new TestDeprecatedFields(this);
 
-     }
 
-     public const int DeprecatedInt32FieldNumber = 1;
 
-     private int deprecatedInt32_;
 
-     [global::System.ObsoleteAttribute()]
 
-     public int DeprecatedInt32 {
 
-       get { return deprecatedInt32_; }
 
-       set { deprecatedInt32_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestDeprecatedFields);
 
-     }
 
-     public bool Equals(TestDeprecatedFields other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (DeprecatedInt32 != other.DeprecatedInt32) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (DeprecatedInt32 != 0) hash ^= DeprecatedInt32.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (DeprecatedInt32 != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(DeprecatedInt32);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (DeprecatedInt32 != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeprecatedInt32);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestDeprecatedFields other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.DeprecatedInt32 != 0) {
 
-         DeprecatedInt32 = other.DeprecatedInt32;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             DeprecatedInt32 = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class ForeignMessage : pb::IMessage<ForeignMessage> {
 
-     private static readonly pb::MessageParser<ForeignMessage> _parser = new pb::MessageParser<ForeignMessage>(() => new ForeignMessage());
 
-     public static pb::MessageParser<ForeignMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "c" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<ForeignMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }
 
-     }
 
-     public ForeignMessage() { }
 
-     public ForeignMessage(ForeignMessage other) {
 
-       c_ = other.c_;
 
-     }
 
-     public ForeignMessage Clone() {
 
-       return new ForeignMessage(this);
 
-     }
 
-     public const int CFieldNumber = 1;
 
-     private int c_;
 
-     public int C {
 
-       get { return c_; }
 
-       set { c_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as ForeignMessage);
 
-     }
 
-     public bool Equals(ForeignMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (C != other.C) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (C != 0) hash ^= C.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (C != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(C);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (C != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(C);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(ForeignMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.C != 0) {
 
-         C = other.C;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             C = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestReservedFields : pb::IMessage<TestReservedFields> {
 
-     private static readonly pb::MessageParser<TestReservedFields> _parser = new pb::MessageParser<TestReservedFields>(() => new TestReservedFields());
 
-     public static pb::MessageParser<TestReservedFields> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReservedFields__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestReservedFields> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable; }
 
-     }
 
-     public TestReservedFields() { }
 
-     public TestReservedFields(TestReservedFields other) {
 
-     }
 
-     public TestReservedFields Clone() {
 
-       return new TestReservedFields(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestReservedFields);
 
-     }
 
-     public bool Equals(TestReservedFields other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestReservedFields other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestForeignNested : pb::IMessage<TestForeignNested> {
 
-     private static readonly pb::MessageParser<TestForeignNested> _parser = new pb::MessageParser<TestForeignNested>(() => new TestForeignNested());
 
-     public static pb::MessageParser<TestForeignNested> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "foreign_nested" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestForeignNested> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }
 
-     }
 
-     public TestForeignNested() { }
 
-     public TestForeignNested(TestForeignNested other) {
 
-       ForeignNested = other.foreignNested_ != null ? other.ForeignNested.Clone() : null;
 
-     }
 
-     public TestForeignNested Clone() {
 
-       return new TestForeignNested(this);
 
-     }
 
-     public const int ForeignNestedFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
 
-       get { return foreignNested_; }
 
-       set { foreignNested_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestForeignNested);
 
-     }
 
-     public bool Equals(TestForeignNested other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (!object.Equals(ForeignNested, other.ForeignNested)) return false;  return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (foreignNested_ != null) hash ^= ForeignNested.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (foreignNested_ != null) {
 
-         output.WriteRawTag(10);
 
-         output.WriteMessage(ForeignNested);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (foreignNested_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(ForeignNested);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestForeignNested other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.foreignNested_ != null) {
 
-         if (foreignNested_ == null) {
 
-           foreignNested_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();
 
-         }
 
-         ForeignNested.MergeFrom(other.ForeignNested);
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             if (foreignNested_ == null) {
 
-               foreignNested_ = new global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedMessage();
 
-             }
 
-             input.ReadMessage(foreignNested_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestReallyLargeTagNumber : pb::IMessage<TestReallyLargeTagNumber> {
 
-     private static readonly pb::MessageParser<TestReallyLargeTagNumber> _parser = new pb::MessageParser<TestReallyLargeTagNumber>(() => new TestReallyLargeTagNumber());
 
-     public static pb::MessageParser<TestReallyLargeTagNumber> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "a", "bb" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8, 2147483640 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }
 
-     }
 
-     public TestReallyLargeTagNumber() { }
 
-     public TestReallyLargeTagNumber(TestReallyLargeTagNumber other) {
 
-       a_ = other.a_;
 
-       bb_ = other.bb_;
 
-     }
 
-     public TestReallyLargeTagNumber Clone() {
 
-       return new TestReallyLargeTagNumber(this);
 
-     }
 
-     public const int AFieldNumber = 1;
 
-     private int a_;
 
-     public int A {
 
-       get { return a_; }
 
-       set { a_ = value; }
 
-     }
 
-     public const int BbFieldNumber = 268435455;
 
-     private int bb_;
 
-     public int Bb {
 
-       get { return bb_; }
 
-       set { bb_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestReallyLargeTagNumber);
 
-     }
 
-     public bool Equals(TestReallyLargeTagNumber other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (A != other.A) return false;
 
-       if (Bb != other.Bb) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (A != 0) hash ^= A.GetHashCode();
 
-       if (Bb != 0) hash ^= Bb.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (A != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(A);
 
-       }
 
-       if (Bb != 0) {
 
-         output.WriteRawTag(248, 255, 255, 255, 7);
 
-         output.WriteInt32(Bb);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (A != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
 
-       }
 
-       if (Bb != 0) {
 
-         size += 5 + pb::CodedOutputStream.ComputeInt32Size(Bb);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestReallyLargeTagNumber other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.A != 0) {
 
-         A = other.A;
 
-       }
 
-       if (other.Bb != 0) {
 
-         Bb = other.Bb;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             A = input.ReadInt32();
 
-             break;
 
-           }
 
-           case 2147483640: {
 
-             Bb = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestRecursiveMessage : pb::IMessage<TestRecursiveMessage> {
 
-     private static readonly pb::MessageParser<TestRecursiveMessage> _parser = new pb::MessageParser<TestRecursiveMessage>(() => new TestRecursiveMessage());
 
-     public static pb::MessageParser<TestRecursiveMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "a", "i" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10, 16 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }
 
-     }
 
-     public TestRecursiveMessage() { }
 
-     public TestRecursiveMessage(TestRecursiveMessage other) {
 
-       A = other.a_ != null ? other.A.Clone() : null;
 
-       i_ = other.i_;
 
-     }
 
-     public TestRecursiveMessage Clone() {
 
-       return new TestRecursiveMessage(this);
 
-     }
 
-     public const int AFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.TestRecursiveMessage a_;
 
-     public global::Google.Protobuf.TestProtos.TestRecursiveMessage A {
 
-       get { return a_; }
 
-       set { a_ = value; }
 
-     }
 
-     public const int IFieldNumber = 2;
 
-     private int i_;
 
-     public int I {
 
-       get { return i_; }
 
-       set { i_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestRecursiveMessage);
 
-     }
 
-     public bool Equals(TestRecursiveMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (!object.Equals(A, other.A)) return false;if (I != other.I) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (a_ != null) hash ^= A.GetHashCode();
 
-       if (I != 0) hash ^= I.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (a_ != null) {
 
-         output.WriteRawTag(10);
 
-         output.WriteMessage(A);
 
-       }
 
-       if (I != 0) {
 
-         output.WriteRawTag(16);
 
-         output.WriteInt32(I);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (a_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);
 
-       }
 
-       if (I != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(I);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestRecursiveMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.a_ != null) {
 
-         if (a_ == null) {
 
-           a_ = new global::Google.Protobuf.TestProtos.TestRecursiveMessage();
 
-         }
 
-         A.MergeFrom(other.A);
 
-       }
 
-       if (other.I != 0) {
 
-         I = other.I;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             if (a_ == null) {
 
-               a_ = new global::Google.Protobuf.TestProtos.TestRecursiveMessage();
 
-             }
 
-             input.ReadMessage(a_);
 
-             break;
 
-           }
 
-           case 16: {
 
-             I = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestMutualRecursionA : pb::IMessage<TestMutualRecursionA> {
 
-     private static readonly pb::MessageParser<TestMutualRecursionA> _parser = new pb::MessageParser<TestMutualRecursionA>(() => new TestMutualRecursionA());
 
-     public static pb::MessageParser<TestMutualRecursionA> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "bb" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }
 
-     }
 
-     public TestMutualRecursionA() { }
 
-     public TestMutualRecursionA(TestMutualRecursionA other) {
 
-       Bb = other.bb_ != null ? other.Bb.Clone() : null;
 
-     }
 
-     public TestMutualRecursionA Clone() {
 
-       return new TestMutualRecursionA(this);
 
-     }
 
-     public const int BbFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.TestMutualRecursionB bb_;
 
-     public global::Google.Protobuf.TestProtos.TestMutualRecursionB Bb {
 
-       get { return bb_; }
 
-       set { bb_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestMutualRecursionA);
 
-     }
 
-     public bool Equals(TestMutualRecursionA other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (!object.Equals(Bb, other.Bb)) return false;  return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (bb_ != null) hash ^= Bb.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (bb_ != null) {
 
-         output.WriteRawTag(10);
 
-         output.WriteMessage(Bb);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (bb_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bb);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestMutualRecursionA other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.bb_ != null) {
 
-         if (bb_ == null) {
 
-           bb_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionB();
 
-         }
 
-         Bb.MergeFrom(other.Bb);
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             if (bb_ == null) {
 
-               bb_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionB();
 
-             }
 
-             input.ReadMessage(bb_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestMutualRecursionB : pb::IMessage<TestMutualRecursionB> {
 
-     private static readonly pb::MessageParser<TestMutualRecursionB> _parser = new pb::MessageParser<TestMutualRecursionB>(() => new TestMutualRecursionB());
 
-     public static pb::MessageParser<TestMutualRecursionB> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "a", "optional_int32" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10, 16 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }
 
-     }
 
-     public TestMutualRecursionB() { }
 
-     public TestMutualRecursionB(TestMutualRecursionB other) {
 
-       A = other.a_ != null ? other.A.Clone() : null;
 
-       optionalInt32_ = other.optionalInt32_;
 
-     }
 
-     public TestMutualRecursionB Clone() {
 
-       return new TestMutualRecursionB(this);
 
-     }
 
-     public const int AFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.TestMutualRecursionA a_;
 
-     public global::Google.Protobuf.TestProtos.TestMutualRecursionA A {
 
-       get { return a_; }
 
-       set { a_ = value; }
 
-     }
 
-     public const int OptionalInt32FieldNumber = 2;
 
-     private int optionalInt32_;
 
-     public int OptionalInt32 {
 
-       get { return optionalInt32_; }
 
-       set { optionalInt32_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestMutualRecursionB);
 
-     }
 
-     public bool Equals(TestMutualRecursionB other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (!object.Equals(A, other.A)) return false;if (OptionalInt32 != other.OptionalInt32) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (a_ != null) hash ^= A.GetHashCode();
 
-       if (OptionalInt32 != 0) hash ^= OptionalInt32.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (a_ != null) {
 
-         output.WriteRawTag(10);
 
-         output.WriteMessage(A);
 
-       }
 
-       if (OptionalInt32 != 0) {
 
-         output.WriteRawTag(16);
 
-         output.WriteInt32(OptionalInt32);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (a_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);
 
-       }
 
-       if (OptionalInt32 != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(OptionalInt32);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestMutualRecursionB other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.a_ != null) {
 
-         if (a_ == null) {
 
-           a_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionA();
 
-         }
 
-         A.MergeFrom(other.A);
 
-       }
 
-       if (other.OptionalInt32 != 0) {
 
-         OptionalInt32 = other.OptionalInt32;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             if (a_ == null) {
 
-               a_ = new global::Google.Protobuf.TestProtos.TestMutualRecursionA();
 
-             }
 
-             input.ReadMessage(a_);
 
-             break;
 
-           }
 
-           case 16: {
 
-             OptionalInt32 = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestCamelCaseFieldNames : pb::IMessage<TestCamelCaseFieldNames> {
 
-     private static readonly pb::MessageParser<TestCamelCaseFieldNames> _parser = new pb::MessageParser<TestCamelCaseFieldNames>(() => new TestCamelCaseFieldNames());
 
-     public static pb::MessageParser<TestCamelCaseFieldNames> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "EnumField", "MessageField", "PrimitiveField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "StringField" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 24, 34, 8, 74, 82, 58, 66, 18 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }
 
-     }
 
-     public TestCamelCaseFieldNames() { }
 
-     public TestCamelCaseFieldNames(TestCamelCaseFieldNames other) {
 
-       primitiveField_ = other.primitiveField_;
 
-       stringField_ = other.stringField_;
 
-       enumField_ = other.enumField_;
 
-       MessageField = other.messageField_ != null ? other.MessageField.Clone() : null;
 
-       repeatedPrimitiveField_ = other.repeatedPrimitiveField_.Clone();
 
-       repeatedStringField_ = other.repeatedStringField_.Clone();
 
-       repeatedEnumField_ = other.repeatedEnumField_.Clone();
 
-       repeatedMessageField_ = other.repeatedMessageField_.Clone();
 
-     }
 
-     public TestCamelCaseFieldNames Clone() {
 
-       return new TestCamelCaseFieldNames(this);
 
-     }
 
-     public const int PrimitiveFieldFieldNumber = 1;
 
-     private int primitiveField_;
 
-     public int PrimitiveField {
 
-       get { return primitiveField_; }
 
-       set { primitiveField_ = value; }
 
-     }
 
-     public const int StringFieldFieldNumber = 2;
 
-     private string stringField_ = "";
 
-     public string StringField {
 
-       get { return stringField_; }
 
-       set { stringField_ = value ?? ""; }
 
-     }
 
-     public const int EnumFieldFieldNumber = 3;
 
-     private global::Google.Protobuf.TestProtos.ForeignEnum enumField_ = global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED;
 
-     public global::Google.Protobuf.TestProtos.ForeignEnum EnumField {
 
-       get { return enumField_; }
 
-       set { enumField_ = value; }
 
-     }
 
-     public const int MessageFieldFieldNumber = 4;
 
-     private global::Google.Protobuf.TestProtos.ForeignMessage messageField_;
 
-     public global::Google.Protobuf.TestProtos.ForeignMessage MessageField {
 
-       get { return messageField_; }
 
-       set { messageField_ = value; }
 
-     }
 
-     public const int RepeatedPrimitiveFieldFieldNumber = 7;
 
-     private readonly pbc::RepeatedField<int> repeatedPrimitiveField_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> RepeatedPrimitiveField {
 
-       get { return repeatedPrimitiveField_; }
 
-     }
 
-     public const int RepeatedStringFieldFieldNumber = 8;
 
-     private readonly pbc::RepeatedField<string> repeatedStringField_ = new pbc::RepeatedField<string>();
 
-     public pbc::RepeatedField<string> RepeatedStringField {
 
-       get { return repeatedStringField_; }
 
-     }
 
-     public const int RepeatedEnumFieldFieldNumber = 9;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> RepeatedEnumField {
 
-       get { return repeatedEnumField_; }
 
-     }
 
-     public const int RepeatedMessageFieldFieldNumber = 10;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignMessage> RepeatedMessageField {
 
-       get { return repeatedMessageField_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestCamelCaseFieldNames);
 
-     }
 
-     public bool Equals(TestCamelCaseFieldNames other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (PrimitiveField != other.PrimitiveField) return false;
 
-       if (StringField != other.StringField) return false;
 
-       if (EnumField != other.EnumField) return false;
 
-       if (!object.Equals(MessageField, other.MessageField)) return false;if(!repeatedPrimitiveField_.Equals(other.repeatedPrimitiveField_)) return false;
 
-       if(!repeatedStringField_.Equals(other.repeatedStringField_)) return false;
 
-       if(!repeatedEnumField_.Equals(other.repeatedEnumField_)) return false;
 
-       if(!repeatedMessageField_.Equals(other.repeatedMessageField_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (PrimitiveField != 0) hash ^= PrimitiveField.GetHashCode();
 
-       if (StringField.Length != 0) hash ^= StringField.GetHashCode();
 
-       if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) hash ^= EnumField.GetHashCode();
 
-       if (messageField_ != null) hash ^= MessageField.GetHashCode();
 
-       hash ^= repeatedPrimitiveField_.GetHashCode();
 
-       hash ^= repeatedStringField_.GetHashCode();
 
-       hash ^= repeatedEnumField_.GetHashCode();
 
-       hash ^= repeatedMessageField_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (PrimitiveField != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(PrimitiveField);
 
-       }
 
-       if (StringField.Length != 0) {
 
-         output.WriteRawTag(18);
 
-         output.WriteString(StringField);
 
-       }
 
-       if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         output.WriteRawTag(24);
 
-         output.WriteEnum((int) EnumField);
 
-       }
 
-       if (messageField_ != null) {
 
-         output.WriteRawTag(34);
 
-         output.WriteMessage(MessageField);
 
-       }
 
-       if (repeatedPrimitiveField_.Count > 0) {
 
-         output.WriteRawTag(58);
 
-         output.WritePackedInt32Array(repeatedPrimitiveField_);
 
-       }
 
-       if (repeatedStringField_.Count > 0) {
 
-         output.WriteStringArray(8, repeatedStringField_);
 
-       }
 
-       if (repeatedEnumField_.Count > 0) {
 
-         output.WriteRawTag(74);
 
-         output.WritePackedEnumArray(repeatedEnumField_);
 
-       }
 
-       if (repeatedMessageField_.Count > 0) {
 
-         output.WriteMessageArray(10, repeatedMessageField_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (PrimitiveField != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(PrimitiveField);
 
-       }
 
-       if (StringField.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(StringField);
 
-       }
 
-       if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) EnumField);
 
-       }
 
-       if (messageField_ != null) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(MessageField);
 
-       }
 
-       if (repeatedPrimitiveField_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in repeatedPrimitiveField_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedStringField_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (string element in repeatedStringField_) {
 
-           dataSize += pb::CodedOutputStream.ComputeStringSize(element);
 
-         }
 
-         size += dataSize;
 
-         size += 1 * repeatedStringField_.Count;
 
-       }
 
-       if (repeatedEnumField_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedEnumField_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 1 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
 
-       }
 
-       if (repeatedMessageField_.Count > 0) {
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignMessage element in repeatedMessageField_) {
 
-           size += pb::CodedOutputStream.ComputeMessageSize(element);
 
-         }
 
-         size += 1 * repeatedMessageField_.Count;
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestCamelCaseFieldNames other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.PrimitiveField != 0) {
 
-         PrimitiveField = other.PrimitiveField;
 
-       }
 
-       if (other.StringField.Length != 0) {
 
-         StringField = other.StringField;
 
-       }
 
-       if (other.EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
 
-         EnumField = other.EnumField;
 
-       }
 
-       if (other.messageField_ != null) {
 
-         if (messageField_ == null) {
 
-           messageField_ = new global::Google.Protobuf.TestProtos.ForeignMessage();
 
-         }
 
-         MessageField.MergeFrom(other.MessageField);
 
-       }
 
-       repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);
 
-       repeatedStringField_.Add(other.repeatedStringField_);
 
-       repeatedEnumField_.Add(other.repeatedEnumField_);
 
-       repeatedMessageField_.Add(other.repeatedMessageField_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             PrimitiveField = input.ReadInt32();
 
-             break;
 
-           }
 
-           case 18: {
 
-             StringField = input.ReadString();
 
-             break;
 
-           }
 
-           case 24: {
 
-             enumField_ = (global::Google.Protobuf.TestProtos.ForeignEnum) input.ReadEnum();
 
-             break;
 
-           }
 
-           case 34: {
 
-             if (messageField_ == null) {
 
-               messageField_ = new global::Google.Protobuf.TestProtos.ForeignMessage();
 
-             }
 
-             input.ReadMessage(messageField_);
 
-             break;
 
-           }
 
-           case 58:
 
-           case 56: {
 
-             input.ReadInt32Array(repeatedPrimitiveField_);
 
-             break;
 
-           }
 
-           case 66: {
 
-             input.ReadStringArray(repeatedStringField_);
 
-             break;
 
-           }
 
-           case 74:
 
-           case 72: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(repeatedEnumField_);
 
-             break;
 
-           }
 
-           case 82: {
 
-             input.ReadMessageArray(repeatedMessageField_, global::Google.Protobuf.TestProtos.ForeignMessage.Parser);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestFieldOrderings : pb::IMessage<TestFieldOrderings> {
 
-     private static readonly pb::MessageParser<TestFieldOrderings> _parser = new pb::MessageParser<TestFieldOrderings>(() => new TestFieldOrderings());
 
-     public static pb::MessageParser<TestFieldOrderings> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "my_float", "my_int", "my_string", "single_nested_message" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 813, 8, 90, 1602 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestFieldOrderings> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }
 
-     }
 
-     public TestFieldOrderings() { }
 
-     public TestFieldOrderings(TestFieldOrderings other) {
 
-       myString_ = other.myString_;
 
-       myInt_ = other.myInt_;
 
-       myFloat_ = other.myFloat_;
 
-       SingleNestedMessage = other.singleNestedMessage_ != null ? other.SingleNestedMessage.Clone() : null;
 
-     }
 
-     public TestFieldOrderings Clone() {
 
-       return new TestFieldOrderings(this);
 
-     }
 
-     public const int MyStringFieldNumber = 11;
 
-     private string myString_ = "";
 
-     public string MyString {
 
-       get { return myString_; }
 
-       set { myString_ = value ?? ""; }
 
-     }
 
-     public const int MyIntFieldNumber = 1;
 
-     private long myInt_;
 
-     public long MyInt {
 
-       get { return myInt_; }
 
-       set { myInt_ = value; }
 
-     }
 
-     public const int MyFloatFieldNumber = 101;
 
-     private float myFloat_;
 
-     public float MyFloat {
 
-       get { return myFloat_; }
 
-       set { myFloat_ = value; }
 
-     }
 
-     public const int SingleNestedMessageFieldNumber = 200;
 
-     private global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage singleNestedMessage_;
 
-     public global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage SingleNestedMessage {
 
-       get { return singleNestedMessage_; }
 
-       set { singleNestedMessage_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestFieldOrderings);
 
-     }
 
-     public bool Equals(TestFieldOrderings other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (MyString != other.MyString) return false;
 
-       if (MyInt != other.MyInt) return false;
 
-       if (MyFloat != other.MyFloat) return false;
 
-       if (!object.Equals(SingleNestedMessage, other.SingleNestedMessage)) return false;  return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (MyString.Length != 0) hash ^= MyString.GetHashCode();
 
-       if (MyInt != 0L) hash ^= MyInt.GetHashCode();
 
-       if (MyFloat != 0F) hash ^= MyFloat.GetHashCode();
 
-       if (singleNestedMessage_ != null) hash ^= SingleNestedMessage.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (MyInt != 0L) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt64(MyInt);
 
-       }
 
-       if (MyString.Length != 0) {
 
-         output.WriteRawTag(90);
 
-         output.WriteString(MyString);
 
-       }
 
-       if (MyFloat != 0F) {
 
-         output.WriteRawTag(173, 6);
 
-         output.WriteFloat(MyFloat);
 
-       }
 
-       if (singleNestedMessage_ != null) {
 
-         output.WriteRawTag(194, 12);
 
-         output.WriteMessage(SingleNestedMessage);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (MyString.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);
 
-       }
 
-       if (MyInt != 0L) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt64Size(MyInt);
 
-       }
 
-       if (MyFloat != 0F) {
 
-         size += 2 + 4;
 
-       }
 
-       if (singleNestedMessage_ != null) {
 
-         size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleNestedMessage);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestFieldOrderings other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.MyString.Length != 0) {
 
-         MyString = other.MyString;
 
-       }
 
-       if (other.MyInt != 0L) {
 
-         MyInt = other.MyInt;
 
-       }
 
-       if (other.MyFloat != 0F) {
 
-         MyFloat = other.MyFloat;
 
-       }
 
-       if (other.singleNestedMessage_ != null) {
 
-         if (singleNestedMessage_ == null) {
 
-           singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage();
 
-         }
 
-         SingleNestedMessage.MergeFrom(other.SingleNestedMessage);
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             MyInt = input.ReadInt64();
 
-             break;
 
-           }
 
-           case 90: {
 
-             MyString = input.ReadString();
 
-             break;
 
-           }
 
-           case 813: {
 
-             MyFloat = input.ReadFloat();
 
-             break;
 
-           }
 
-           case 1602: {
 
-             if (singleNestedMessage_ == null) {
 
-               singleNestedMessage_ = new global::Google.Protobuf.TestProtos.TestFieldOrderings.Types.NestedMessage();
 
-             }
 
-             input.ReadMessage(singleNestedMessage_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-     #region Nested types
 
-     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-     public static partial class Types {
 
-       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-       public sealed partial class NestedMessage : pb::IMessage<NestedMessage> {
 
-         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
 
-         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
 
-         private static readonly string[] _fieldNames = new string[] { "bb", "oo" };
 
-         private static readonly uint[] _fieldTags = new uint[] { 8, 16 };
 
-         public static pbd::MessageDescriptor Descriptor {
 
-           get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor; }
 
-         }
 
-         public pb::FieldAccess.FieldAccessorTable<NestedMessage> Fields {
 
-           get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable; }
 
-         }
 
-         public NestedMessage() { }
 
-         public NestedMessage(NestedMessage other) {
 
-           oo_ = other.oo_;
 
-           bb_ = other.bb_;
 
-         }
 
-         public NestedMessage Clone() {
 
-           return new NestedMessage(this);
 
-         }
 
-         public const int OoFieldNumber = 2;
 
-         private long oo_;
 
-         public long Oo {
 
-           get { return oo_; }
 
-           set { oo_ = value; }
 
-         }
 
-         public const int BbFieldNumber = 1;
 
-         private int bb_;
 
-         public int Bb {
 
-           get { return bb_; }
 
-           set { bb_ = value; }
 
-         }
 
-         public override bool Equals(object other) {
 
-           return Equals(other as NestedMessage);
 
-         }
 
-         public bool Equals(NestedMessage other) {
 
-           if (ReferenceEquals(other, null)) {
 
-             return false;
 
-           }
 
-           if (ReferenceEquals(other, this)) {
 
-             return true;
 
-           }
 
-           if (Oo != other.Oo) return false;
 
-           if (Bb != other.Bb) return false;
 
-           return true;
 
-         }
 
-         public override int GetHashCode() {
 
-           int hash = 0;
 
-           if (Oo != 0L) hash ^= Oo.GetHashCode();
 
-           if (Bb != 0) hash ^= Bb.GetHashCode();
 
-           return hash;
 
-         }
 
-         public void WriteTo(pb::CodedOutputStream output) {
 
-           if (Bb != 0) {
 
-             output.WriteRawTag(8);
 
-             output.WriteInt32(Bb);
 
-           }
 
-           if (Oo != 0L) {
 
-             output.WriteRawTag(16);
 
-             output.WriteInt64(Oo);
 
-           }
 
-         }
 
-         public int CalculateSize() {
 
-           int size = 0;
 
-           if (Oo != 0L) {
 
-             size += 1 + pb::CodedOutputStream.ComputeInt64Size(Oo);
 
-           }
 
-           if (Bb != 0) {
 
-             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);
 
-           }
 
-           return size;
 
-         }
 
-         public void MergeFrom(NestedMessage other) {
 
-           if (other == null) {
 
-             return;
 
-           }
 
-           if (other.Oo != 0L) {
 
-             Oo = other.Oo;
 
-           }
 
-           if (other.Bb != 0) {
 
-             Bb = other.Bb;
 
-           }
 
-         }
 
-         public void MergeFrom(pb::CodedInputStream input) {
 
-           uint tag;
 
-           while (input.ReadTag(out tag)) {
 
-             switch(tag) {
 
-               case 0:
 
-                 throw pb::InvalidProtocolBufferException.InvalidTag();
 
-               default:
 
-                 if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-                   return;
 
-                 }
 
-                 break;
 
-               case 8: {
 
-                 Bb = input.ReadInt32();
 
-                 break;
 
-               }
 
-               case 16: {
 
-                 Oo = input.ReadInt64();
 
-                 break;
 
-               }
 
-             }
 
-           }
 
-         }
 
-       }
 
-     }
 
-     #endregion
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class SparseEnumMessage : pb::IMessage<SparseEnumMessage> {
 
-     private static readonly pb::MessageParser<SparseEnumMessage> _parser = new pb::MessageParser<SparseEnumMessage>(() => new SparseEnumMessage());
 
-     public static pb::MessageParser<SparseEnumMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "sparse_enum" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_SparseEnumMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<SparseEnumMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable; }
 
-     }
 
-     public SparseEnumMessage() { }
 
-     public SparseEnumMessage(SparseEnumMessage other) {
 
-       sparseEnum_ = other.sparseEnum_;
 
-     }
 
-     public SparseEnumMessage Clone() {
 
-       return new SparseEnumMessage(this);
 
-     }
 
-     public const int SparseEnumFieldNumber = 1;
 
-     private global::Google.Protobuf.TestProtos.TestSparseEnum sparseEnum_ = global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED;
 
-     public global::Google.Protobuf.TestProtos.TestSparseEnum SparseEnum {
 
-       get { return sparseEnum_; }
 
-       set { sparseEnum_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as SparseEnumMessage);
 
-     }
 
-     public bool Equals(SparseEnumMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (SparseEnum != other.SparseEnum) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) hash ^= SparseEnum.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {
 
-         output.WriteRawTag(8);
 
-         output.WriteEnum((int) SparseEnum);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {
 
-         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SparseEnum);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(SparseEnumMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {
 
-         SparseEnum = other.SparseEnum;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             sparseEnum_ = (global::Google.Protobuf.TestProtos.TestSparseEnum) input.ReadEnum();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class OneString : pb::IMessage<OneString> {
 
-     private static readonly pb::MessageParser<OneString> _parser = new pb::MessageParser<OneString>(() => new OneString());
 
-     public static pb::MessageParser<OneString> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneString__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<OneString> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
 
-     }
 
-     public OneString() { }
 
-     public OneString(OneString other) {
 
-       data_ = other.data_;
 
-     }
 
-     public OneString Clone() {
 
-       return new OneString(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private string data_ = "";
 
-     public string Data {
 
-       get { return data_; }
 
-       set { data_ = value ?? ""; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as OneString);
 
-     }
 
-     public bool Equals(OneString other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data.Length != 0) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data.Length != 0) {
 
-         output.WriteRawTag(10);
 
-         output.WriteString(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(OneString other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data.Length != 0) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             Data = input.ReadString();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class MoreString : pb::IMessage<MoreString> {
 
-     private static readonly pb::MessageParser<MoreString> _parser = new pb::MessageParser<MoreString>(() => new MoreString());
 
-     public static pb::MessageParser<MoreString> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreString__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<MoreString> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreString__FieldAccessorTable; }
 
-     }
 
-     public MoreString() { }
 
-     public MoreString(MoreString other) {
 
-       data_ = other.data_.Clone();
 
-     }
 
-     public MoreString Clone() {
 
-       return new MoreString(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private readonly pbc::RepeatedField<string> data_ = new pbc::RepeatedField<string>();
 
-     public pbc::RepeatedField<string> Data {
 
-       get { return data_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as MoreString);
 
-     }
 
-     public bool Equals(MoreString other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if(!data_.Equals(other.data_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       hash ^= data_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (data_.Count > 0) {
 
-         output.WriteStringArray(1, data_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (data_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (string element in data_) {
 
-           dataSize += pb::CodedOutputStream.ComputeStringSize(element);
 
-         }
 
-         size += dataSize;
 
-         size += 1 * data_.Count;
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(MoreString other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       data_.Add(other.data_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             input.ReadStringArray(data_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class OneBytes : pb::IMessage<OneBytes> {
 
-     private static readonly pb::MessageParser<OneBytes> _parser = new pb::MessageParser<OneBytes>(() => new OneBytes());
 
-     public static pb::MessageParser<OneBytes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneBytes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<OneBytes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
 
-     }
 
-     public OneBytes() { }
 
-     public OneBytes(OneBytes other) {
 
-       data_ = other.data_;
 
-     }
 
-     public OneBytes Clone() {
 
-       return new OneBytes(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private pb::ByteString data_ = pb::ByteString.Empty;
 
-     public pb::ByteString Data {
 
-       get { return data_; }
 
-       set { data_ = value ?? pb::ByteString.Empty; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as OneBytes);
 
-     }
 
-     public bool Equals(OneBytes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data.Length != 0) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data.Length != 0) {
 
-         output.WriteRawTag(10);
 
-         output.WriteBytes(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(OneBytes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data.Length != 0) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             Data = input.ReadBytes();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class MoreBytes : pb::IMessage<MoreBytes> {
 
-     private static readonly pb::MessageParser<MoreBytes> _parser = new pb::MessageParser<MoreBytes>(() => new MoreBytes());
 
-     public static pb::MessageParser<MoreBytes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreBytes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<MoreBytes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable; }
 
-     }
 
-     public MoreBytes() { }
 
-     public MoreBytes(MoreBytes other) {
 
-       data_ = other.data_;
 
-     }
 
-     public MoreBytes Clone() {
 
-       return new MoreBytes(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private pb::ByteString data_ = pb::ByteString.Empty;
 
-     public pb::ByteString Data {
 
-       get { return data_; }
 
-       set { data_ = value ?? pb::ByteString.Empty; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as MoreBytes);
 
-     }
 
-     public bool Equals(MoreBytes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data.Length != 0) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data.Length != 0) {
 
-         output.WriteRawTag(10);
 
-         output.WriteBytes(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(MoreBytes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data.Length != 0) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             Data = input.ReadBytes();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class Int32Message : pb::IMessage<Int32Message> {
 
-     private static readonly pb::MessageParser<Int32Message> _parser = new pb::MessageParser<Int32Message>(() => new Int32Message());
 
-     public static pb::MessageParser<Int32Message> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int32Message__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<Int32Message> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int32Message__FieldAccessorTable; }
 
-     }
 
-     public Int32Message() { }
 
-     public Int32Message(Int32Message other) {
 
-       data_ = other.data_;
 
-     }
 
-     public Int32Message Clone() {
 
-       return new Int32Message(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private int data_;
 
-     public int Data {
 
-       get { return data_; }
 
-       set { data_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as Int32Message);
 
-     }
 
-     public bool Equals(Int32Message other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data != 0) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(Int32Message other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data != 0) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             Data = input.ReadInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class Uint32Message : pb::IMessage<Uint32Message> {
 
-     private static readonly pb::MessageParser<Uint32Message> _parser = new pb::MessageParser<Uint32Message>(() => new Uint32Message());
 
-     public static pb::MessageParser<Uint32Message> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint32Message__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<Uint32Message> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable; }
 
-     }
 
-     public Uint32Message() { }
 
-     public Uint32Message(Uint32Message other) {
 
-       data_ = other.data_;
 
-     }
 
-     public Uint32Message Clone() {
 
-       return new Uint32Message(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private uint data_;
 
-     public uint Data {
 
-       get { return data_; }
 
-       set { data_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as Uint32Message);
 
-     }
 
-     public bool Equals(Uint32Message other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data != 0) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data != 0) {
 
-         output.WriteRawTag(8);
 
-         output.WriteUInt32(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(Uint32Message other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data != 0) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             Data = input.ReadUInt32();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class Int64Message : pb::IMessage<Int64Message> {
 
-     private static readonly pb::MessageParser<Int64Message> _parser = new pb::MessageParser<Int64Message>(() => new Int64Message());
 
-     public static pb::MessageParser<Int64Message> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int64Message__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<Int64Message> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Int64Message__FieldAccessorTable; }
 
-     }
 
-     public Int64Message() { }
 
-     public Int64Message(Int64Message other) {
 
-       data_ = other.data_;
 
-     }
 
-     public Int64Message Clone() {
 
-       return new Int64Message(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private long data_;
 
-     public long Data {
 
-       get { return data_; }
 
-       set { data_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as Int64Message);
 
-     }
 
-     public bool Equals(Int64Message other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data != 0L) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data != 0L) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt64(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data != 0L) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt64Size(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(Int64Message other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data != 0L) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             Data = input.ReadInt64();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class Uint64Message : pb::IMessage<Uint64Message> {
 
-     private static readonly pb::MessageParser<Uint64Message> _parser = new pb::MessageParser<Uint64Message>(() => new Uint64Message());
 
-     public static pb::MessageParser<Uint64Message> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint64Message__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<Uint64Message> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable; }
 
-     }
 
-     public Uint64Message() { }
 
-     public Uint64Message(Uint64Message other) {
 
-       data_ = other.data_;
 
-     }
 
-     public Uint64Message Clone() {
 
-       return new Uint64Message(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private ulong data_;
 
-     public ulong Data {
 
-       get { return data_; }
 
-       set { data_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as Uint64Message);
 
-     }
 
-     public bool Equals(Uint64Message other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data != 0UL) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data != 0UL) {
 
-         output.WriteRawTag(8);
 
-         output.WriteUInt64(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data != 0UL) {
 
-         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Data);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(Uint64Message other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data != 0UL) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             Data = input.ReadUInt64();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class BoolMessage : pb::IMessage<BoolMessage> {
 
-     private static readonly pb::MessageParser<BoolMessage> _parser = new pb::MessageParser<BoolMessage>(() => new BoolMessage());
 
-     public static pb::MessageParser<BoolMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "data" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BoolMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<BoolMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable; }
 
-     }
 
-     public BoolMessage() { }
 
-     public BoolMessage(BoolMessage other) {
 
-       data_ = other.data_;
 
-     }
 
-     public BoolMessage Clone() {
 
-       return new BoolMessage(this);
 
-     }
 
-     public const int DataFieldNumber = 1;
 
-     private bool data_;
 
-     public bool Data {
 
-       get { return data_; }
 
-       set { data_ = value; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as BoolMessage);
 
-     }
 
-     public bool Equals(BoolMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (Data != other.Data) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (Data != false) hash ^= Data.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (Data != false) {
 
-         output.WriteRawTag(8);
 
-         output.WriteBool(Data);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (Data != false) {
 
-         size += 1 + 1;
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(BoolMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.Data != false) {
 
-         Data = other.Data;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             Data = input.ReadBool();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestOneof : pb::IMessage<TestOneof> {
 
-     private static readonly pb::MessageParser<TestOneof> _parser = new pb::MessageParser<TestOneof>(() => new TestOneof());
 
-     public static pb::MessageParser<TestOneof> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "foo_int", "foo_message", "foo_string" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 8, 26, 18 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestOneof__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestOneof> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestOneof__FieldAccessorTable; }
 
-     }
 
-     public TestOneof() { }
 
-     public TestOneof(TestOneof other) {
 
-       switch (other.FooCase) {
 
-         case FooOneofCase.FooInt:
 
-           FooInt = other.FooInt;
 
-           break;
 
-         case FooOneofCase.FooString:
 
-           FooString = other.FooString;
 
-           break;
 
-         case FooOneofCase.FooMessage:
 
-           FooMessage = other.FooMessage.Clone();
 
-           break;
 
-       }
 
-     }
 
-     public TestOneof Clone() {
 
-       return new TestOneof(this);
 
-     }
 
-     public const int FooIntFieldNumber = 1;
 
-     public int FooInt {
 
-       get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
 
-       set {
 
-         foo_ = value;
 
-         fooCase_ = FooOneofCase.FooInt;
 
-       }
 
-     }
 
-     public const int FooStringFieldNumber = 2;
 
-     public string FooString {
 
-       get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
 
-       set {
 
-         foo_ = value ?? "";
 
-         fooCase_ = FooOneofCase.FooString;
 
-       }
 
-     }
 
-     public const int FooMessageFieldNumber = 3;
 
-     public global::Google.Protobuf.TestProtos.TestAllTypes FooMessage {
 
-       get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.Protobuf.TestProtos.TestAllTypes) foo_ : null; }
 
-       set {
 
-         foo_ = value;
 
-         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooMessage;
 
-       }
 
-     }
 
-     private object foo_;
 
-     public enum FooOneofCase {
 
-       None = 0,
 
-       FooInt = 1,
 
-       FooString = 2,
 
-       FooMessage = 3,
 
-     }
 
-     private FooOneofCase fooCase_ = FooOneofCase.None;
 
-     public FooOneofCase FooCase {
 
-       get { return fooCase_; }
 
-     }
 
-     public void ClearFoo() {
 
-       fooCase_ = FooOneofCase.None;
 
-       foo_ = null;
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestOneof);
 
-     }
 
-     public bool Equals(TestOneof other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (FooInt != other.FooInt) return false;
 
-       if (FooString != other.FooString) return false;
 
-       if (!object.Equals(FooMessage, other.FooMessage)) return false;  return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (fooCase_ == FooOneofCase.FooInt) hash ^= FooInt.GetHashCode();
 
-       if (fooCase_ == FooOneofCase.FooString) hash ^= FooString.GetHashCode();
 
-       if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (fooCase_ == FooOneofCase.FooInt) {
 
-         output.WriteRawTag(8);
 
-         output.WriteInt32(FooInt);
 
-       }
 
-       if (fooCase_ == FooOneofCase.FooString) {
 
-         output.WriteRawTag(18);
 
-         output.WriteString(FooString);
 
-       }
 
-       if (fooCase_ == FooOneofCase.FooMessage) {
 
-         output.WriteRawTag(26);
 
-         output.WriteMessage(FooMessage);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (fooCase_ == FooOneofCase.FooInt) {
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);
 
-       }
 
-       if (fooCase_ == FooOneofCase.FooString) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);
 
-       }
 
-       if (fooCase_ == FooOneofCase.FooMessage) {
 
-         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestOneof other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       switch (other.FooCase) {
 
-         case FooOneofCase.FooInt:
 
-           FooInt = other.FooInt;
 
-           break;
 
-         case FooOneofCase.FooString:
 
-           FooString = other.FooString;
 
-           break;
 
-         case FooOneofCase.FooMessage:
 
-           FooMessage = other.FooMessage;
 
-           break;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 8: {
 
-             FooInt = input.ReadInt32();
 
-             break;
 
-           }
 
-           case 18: {
 
-             FooString = input.ReadString();
 
-             break;
 
-           }
 
-           case 26: {
 
-             global::Google.Protobuf.TestProtos.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.TestAllTypes();
 
-             if (fooCase_ == FooOneofCase.FooMessage) {
 
-               subBuilder.MergeFrom(FooMessage);
 
-             }
 
-             input.ReadMessage(subBuilder);
 
-             FooMessage = subBuilder;
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestPackedTypes : pb::IMessage<TestPackedTypes> {
 
-     private static readonly pb::MessageParser<TestPackedTypes> _parser = new pb::MessageParser<TestPackedTypes>(() => new TestPackedTypes());
 
-     public static pb::MessageParser<TestPackedTypes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestPackedTypes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }
 
-     }
 
-     public TestPackedTypes() { }
 
-     public TestPackedTypes(TestPackedTypes other) {
 
-       packedInt32_ = other.packedInt32_.Clone();
 
-       packedInt64_ = other.packedInt64_.Clone();
 
-       packedUint32_ = other.packedUint32_.Clone();
 
-       packedUint64_ = other.packedUint64_.Clone();
 
-       packedSint32_ = other.packedSint32_.Clone();
 
-       packedSint64_ = other.packedSint64_.Clone();
 
-       packedFixed32_ = other.packedFixed32_.Clone();
 
-       packedFixed64_ = other.packedFixed64_.Clone();
 
-       packedSfixed32_ = other.packedSfixed32_.Clone();
 
-       packedSfixed64_ = other.packedSfixed64_.Clone();
 
-       packedFloat_ = other.packedFloat_.Clone();
 
-       packedDouble_ = other.packedDouble_.Clone();
 
-       packedBool_ = other.packedBool_.Clone();
 
-       packedEnum_ = other.packedEnum_.Clone();
 
-     }
 
-     public TestPackedTypes Clone() {
 
-       return new TestPackedTypes(this);
 
-     }
 
-     public const int PackedInt32FieldNumber = 90;
 
-     private readonly pbc::RepeatedField<int> packedInt32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> PackedInt32 {
 
-       get { return packedInt32_; }
 
-     }
 
-     public const int PackedInt64FieldNumber = 91;
 
-     private readonly pbc::RepeatedField<long> packedInt64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> PackedInt64 {
 
-       get { return packedInt64_; }
 
-     }
 
-     public const int PackedUint32FieldNumber = 92;
 
-     private readonly pbc::RepeatedField<uint> packedUint32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> PackedUint32 {
 
-       get { return packedUint32_; }
 
-     }
 
-     public const int PackedUint64FieldNumber = 93;
 
-     private readonly pbc::RepeatedField<ulong> packedUint64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> PackedUint64 {
 
-       get { return packedUint64_; }
 
-     }
 
-     public const int PackedSint32FieldNumber = 94;
 
-     private readonly pbc::RepeatedField<int> packedSint32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> PackedSint32 {
 
-       get { return packedSint32_; }
 
-     }
 
-     public const int PackedSint64FieldNumber = 95;
 
-     private readonly pbc::RepeatedField<long> packedSint64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> PackedSint64 {
 
-       get { return packedSint64_; }
 
-     }
 
-     public const int PackedFixed32FieldNumber = 96;
 
-     private readonly pbc::RepeatedField<uint> packedFixed32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> PackedFixed32 {
 
-       get { return packedFixed32_; }
 
-     }
 
-     public const int PackedFixed64FieldNumber = 97;
 
-     private readonly pbc::RepeatedField<ulong> packedFixed64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> PackedFixed64 {
 
-       get { return packedFixed64_; }
 
-     }
 
-     public const int PackedSfixed32FieldNumber = 98;
 
-     private readonly pbc::RepeatedField<int> packedSfixed32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> PackedSfixed32 {
 
-       get { return packedSfixed32_; }
 
-     }
 
-     public const int PackedSfixed64FieldNumber = 99;
 
-     private readonly pbc::RepeatedField<long> packedSfixed64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> PackedSfixed64 {
 
-       get { return packedSfixed64_; }
 
-     }
 
-     public const int PackedFloatFieldNumber = 100;
 
-     private readonly pbc::RepeatedField<float> packedFloat_ = new pbc::RepeatedField<float>();
 
-     public pbc::RepeatedField<float> PackedFloat {
 
-       get { return packedFloat_; }
 
-     }
 
-     public const int PackedDoubleFieldNumber = 101;
 
-     private readonly pbc::RepeatedField<double> packedDouble_ = new pbc::RepeatedField<double>();
 
-     public pbc::RepeatedField<double> PackedDouble {
 
-       get { return packedDouble_; }
 
-     }
 
-     public const int PackedBoolFieldNumber = 102;
 
-     private readonly pbc::RepeatedField<bool> packedBool_ = new pbc::RepeatedField<bool>();
 
-     public pbc::RepeatedField<bool> PackedBool {
 
-       get { return packedBool_; }
 
-     }
 
-     public const int PackedEnumFieldNumber = 103;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> packedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> PackedEnum {
 
-       get { return packedEnum_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestPackedTypes);
 
-     }
 
-     public bool Equals(TestPackedTypes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if(!packedInt32_.Equals(other.packedInt32_)) return false;
 
-       if(!packedInt64_.Equals(other.packedInt64_)) return false;
 
-       if(!packedUint32_.Equals(other.packedUint32_)) return false;
 
-       if(!packedUint64_.Equals(other.packedUint64_)) return false;
 
-       if(!packedSint32_.Equals(other.packedSint32_)) return false;
 
-       if(!packedSint64_.Equals(other.packedSint64_)) return false;
 
-       if(!packedFixed32_.Equals(other.packedFixed32_)) return false;
 
-       if(!packedFixed64_.Equals(other.packedFixed64_)) return false;
 
-       if(!packedSfixed32_.Equals(other.packedSfixed32_)) return false;
 
-       if(!packedSfixed64_.Equals(other.packedSfixed64_)) return false;
 
-       if(!packedFloat_.Equals(other.packedFloat_)) return false;
 
-       if(!packedDouble_.Equals(other.packedDouble_)) return false;
 
-       if(!packedBool_.Equals(other.packedBool_)) return false;
 
-       if(!packedEnum_.Equals(other.packedEnum_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       hash ^= packedInt32_.GetHashCode();
 
-       hash ^= packedInt64_.GetHashCode();
 
-       hash ^= packedUint32_.GetHashCode();
 
-       hash ^= packedUint64_.GetHashCode();
 
-       hash ^= packedSint32_.GetHashCode();
 
-       hash ^= packedSint64_.GetHashCode();
 
-       hash ^= packedFixed32_.GetHashCode();
 
-       hash ^= packedFixed64_.GetHashCode();
 
-       hash ^= packedSfixed32_.GetHashCode();
 
-       hash ^= packedSfixed64_.GetHashCode();
 
-       hash ^= packedFloat_.GetHashCode();
 
-       hash ^= packedDouble_.GetHashCode();
 
-       hash ^= packedBool_.GetHashCode();
 
-       hash ^= packedEnum_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (packedInt32_.Count > 0) {
 
-         output.WriteRawTag(210, 5);
 
-         output.WritePackedInt32Array(packedInt32_);
 
-       }
 
-       if (packedInt64_.Count > 0) {
 
-         output.WriteRawTag(218, 5);
 
-         output.WritePackedInt64Array(packedInt64_);
 
-       }
 
-       if (packedUint32_.Count > 0) {
 
-         output.WriteRawTag(226, 5);
 
-         output.WritePackedUInt32Array(packedUint32_);
 
-       }
 
-       if (packedUint64_.Count > 0) {
 
-         output.WriteRawTag(234, 5);
 
-         output.WritePackedUInt64Array(packedUint64_);
 
-       }
 
-       if (packedSint32_.Count > 0) {
 
-         output.WriteRawTag(242, 5);
 
-         output.WritePackedSInt32Array(packedSint32_);
 
-       }
 
-       if (packedSint64_.Count > 0) {
 
-         output.WriteRawTag(250, 5);
 
-         output.WritePackedSInt64Array(packedSint64_);
 
-       }
 
-       if (packedFixed32_.Count > 0) {
 
-         output.WriteRawTag(130, 6);
 
-         output.WritePackedFixed32Array(packedFixed32_);
 
-       }
 
-       if (packedFixed64_.Count > 0) {
 
-         output.WriteRawTag(138, 6);
 
-         output.WritePackedFixed64Array(packedFixed64_);
 
-       }
 
-       if (packedSfixed32_.Count > 0) {
 
-         output.WriteRawTag(146, 6);
 
-         output.WritePackedSFixed32Array(packedSfixed32_);
 
-       }
 
-       if (packedSfixed64_.Count > 0) {
 
-         output.WriteRawTag(154, 6);
 
-         output.WritePackedSFixed64Array(packedSfixed64_);
 
-       }
 
-       if (packedFloat_.Count > 0) {
 
-         output.WriteRawTag(162, 6);
 
-         output.WritePackedFloatArray(packedFloat_);
 
-       }
 
-       if (packedDouble_.Count > 0) {
 
-         output.WriteRawTag(170, 6);
 
-         output.WritePackedDoubleArray(packedDouble_);
 
-       }
 
-       if (packedBool_.Count > 0) {
 
-         output.WriteRawTag(178, 6);
 
-         output.WritePackedBoolArray(packedBool_);
 
-       }
 
-       if (packedEnum_.Count > 0) {
 
-         output.WriteRawTag(186, 6);
 
-         output.WritePackedEnumArray(packedEnum_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (packedInt32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in packedInt32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedInt64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in packedInt64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedUint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (uint element in packedUint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedUint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (ulong element in packedUint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedSint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in packedSint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedSint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in packedSint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedFixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * packedFixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedFixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * packedFixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedSfixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * packedSfixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedSfixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * packedSfixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedFloat_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * packedFloat_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedDouble_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * packedDouble_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedBool_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 1 * packedBool_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (packedEnum_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in packedEnum_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestPackedTypes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       packedInt32_.Add(other.packedInt32_);
 
-       packedInt64_.Add(other.packedInt64_);
 
-       packedUint32_.Add(other.packedUint32_);
 
-       packedUint64_.Add(other.packedUint64_);
 
-       packedSint32_.Add(other.packedSint32_);
 
-       packedSint64_.Add(other.packedSint64_);
 
-       packedFixed32_.Add(other.packedFixed32_);
 
-       packedFixed64_.Add(other.packedFixed64_);
 
-       packedSfixed32_.Add(other.packedSfixed32_);
 
-       packedSfixed64_.Add(other.packedSfixed64_);
 
-       packedFloat_.Add(other.packedFloat_);
 
-       packedDouble_.Add(other.packedDouble_);
 
-       packedBool_.Add(other.packedBool_);
 
-       packedEnum_.Add(other.packedEnum_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 722:
 
-           case 720: {
 
-             input.ReadInt32Array(packedInt32_);
 
-             break;
 
-           }
 
-           case 730:
 
-           case 728: {
 
-             input.ReadInt64Array(packedInt64_);
 
-             break;
 
-           }
 
-           case 738:
 
-           case 736: {
 
-             input.ReadUInt32Array(packedUint32_);
 
-             break;
 
-           }
 
-           case 746:
 
-           case 744: {
 
-             input.ReadUInt64Array(packedUint64_);
 
-             break;
 
-           }
 
-           case 754:
 
-           case 752: {
 
-             input.ReadSInt32Array(packedSint32_);
 
-             break;
 
-           }
 
-           case 762:
 
-           case 760: {
 
-             input.ReadSInt64Array(packedSint64_);
 
-             break;
 
-           }
 
-           case 770:
 
-           case 773: {
 
-             input.ReadFixed32Array(packedFixed32_);
 
-             break;
 
-           }
 
-           case 778:
 
-           case 777: {
 
-             input.ReadFixed64Array(packedFixed64_);
 
-             break;
 
-           }
 
-           case 786:
 
-           case 789: {
 
-             input.ReadSFixed32Array(packedSfixed32_);
 
-             break;
 
-           }
 
-           case 794:
 
-           case 793: {
 
-             input.ReadSFixed64Array(packedSfixed64_);
 
-             break;
 
-           }
 
-           case 802:
 
-           case 805: {
 
-             input.ReadFloatArray(packedFloat_);
 
-             break;
 
-           }
 
-           case 810:
 
-           case 809: {
 
-             input.ReadDoubleArray(packedDouble_);
 
-             break;
 
-           }
 
-           case 818:
 
-           case 816: {
 
-             input.ReadBoolArray(packedBool_);
 
-             break;
 
-           }
 
-           case 826:
 
-           case 824: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(packedEnum_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestUnpackedTypes : pb::IMessage<TestUnpackedTypes> {
 
-     private static readonly pb::MessageParser<TestUnpackedTypes> _parser = new pb::MessageParser<TestUnpackedTypes>(() => new TestUnpackedTypes());
 
-     public static pb::MessageParser<TestUnpackedTypes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
 
-     }
 
-     public TestUnpackedTypes() { }
 
-     public TestUnpackedTypes(TestUnpackedTypes other) {
 
-       unpackedInt32_ = other.unpackedInt32_.Clone();
 
-       unpackedInt64_ = other.unpackedInt64_.Clone();
 
-       unpackedUint32_ = other.unpackedUint32_.Clone();
 
-       unpackedUint64_ = other.unpackedUint64_.Clone();
 
-       unpackedSint32_ = other.unpackedSint32_.Clone();
 
-       unpackedSint64_ = other.unpackedSint64_.Clone();
 
-       unpackedFixed32_ = other.unpackedFixed32_.Clone();
 
-       unpackedFixed64_ = other.unpackedFixed64_.Clone();
 
-       unpackedSfixed32_ = other.unpackedSfixed32_.Clone();
 
-       unpackedSfixed64_ = other.unpackedSfixed64_.Clone();
 
-       unpackedFloat_ = other.unpackedFloat_.Clone();
 
-       unpackedDouble_ = other.unpackedDouble_.Clone();
 
-       unpackedBool_ = other.unpackedBool_.Clone();
 
-       unpackedEnum_ = other.unpackedEnum_.Clone();
 
-     }
 
-     public TestUnpackedTypes Clone() {
 
-       return new TestUnpackedTypes(this);
 
-     }
 
-     public const int UnpackedInt32FieldNumber = 90;
 
-     private readonly pbc::RepeatedField<int> unpackedInt32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> UnpackedInt32 {
 
-       get { return unpackedInt32_; }
 
-     }
 
-     public const int UnpackedInt64FieldNumber = 91;
 
-     private readonly pbc::RepeatedField<long> unpackedInt64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> UnpackedInt64 {
 
-       get { return unpackedInt64_; }
 
-     }
 
-     public const int UnpackedUint32FieldNumber = 92;
 
-     private readonly pbc::RepeatedField<uint> unpackedUint32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> UnpackedUint32 {
 
-       get { return unpackedUint32_; }
 
-     }
 
-     public const int UnpackedUint64FieldNumber = 93;
 
-     private readonly pbc::RepeatedField<ulong> unpackedUint64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> UnpackedUint64 {
 
-       get { return unpackedUint64_; }
 
-     }
 
-     public const int UnpackedSint32FieldNumber = 94;
 
-     private readonly pbc::RepeatedField<int> unpackedSint32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> UnpackedSint32 {
 
-       get { return unpackedSint32_; }
 
-     }
 
-     public const int UnpackedSint64FieldNumber = 95;
 
-     private readonly pbc::RepeatedField<long> unpackedSint64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> UnpackedSint64 {
 
-       get { return unpackedSint64_; }
 
-     }
 
-     public const int UnpackedFixed32FieldNumber = 96;
 
-     private readonly pbc::RepeatedField<uint> unpackedFixed32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> UnpackedFixed32 {
 
-       get { return unpackedFixed32_; }
 
-     }
 
-     public const int UnpackedFixed64FieldNumber = 97;
 
-     private readonly pbc::RepeatedField<ulong> unpackedFixed64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> UnpackedFixed64 {
 
-       get { return unpackedFixed64_; }
 
-     }
 
-     public const int UnpackedSfixed32FieldNumber = 98;
 
-     private readonly pbc::RepeatedField<int> unpackedSfixed32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> UnpackedSfixed32 {
 
-       get { return unpackedSfixed32_; }
 
-     }
 
-     public const int UnpackedSfixed64FieldNumber = 99;
 
-     private readonly pbc::RepeatedField<long> unpackedSfixed64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> UnpackedSfixed64 {
 
-       get { return unpackedSfixed64_; }
 
-     }
 
-     public const int UnpackedFloatFieldNumber = 100;
 
-     private readonly pbc::RepeatedField<float> unpackedFloat_ = new pbc::RepeatedField<float>();
 
-     public pbc::RepeatedField<float> UnpackedFloat {
 
-       get { return unpackedFloat_; }
 
-     }
 
-     public const int UnpackedDoubleFieldNumber = 101;
 
-     private readonly pbc::RepeatedField<double> unpackedDouble_ = new pbc::RepeatedField<double>();
 
-     public pbc::RepeatedField<double> UnpackedDouble {
 
-       get { return unpackedDouble_; }
 
-     }
 
-     public const int UnpackedBoolFieldNumber = 102;
 
-     private readonly pbc::RepeatedField<bool> unpackedBool_ = new pbc::RepeatedField<bool>();
 
-     public pbc::RepeatedField<bool> UnpackedBool {
 
-       get { return unpackedBool_; }
 
-     }
 
-     public const int UnpackedEnumFieldNumber = 103;
 
-     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum>();
 
-     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.ForeignEnum> UnpackedEnum {
 
-       get { return unpackedEnum_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestUnpackedTypes);
 
-     }
 
-     public bool Equals(TestUnpackedTypes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if(!unpackedInt32_.Equals(other.unpackedInt32_)) return false;
 
-       if(!unpackedInt64_.Equals(other.unpackedInt64_)) return false;
 
-       if(!unpackedUint32_.Equals(other.unpackedUint32_)) return false;
 
-       if(!unpackedUint64_.Equals(other.unpackedUint64_)) return false;
 
-       if(!unpackedSint32_.Equals(other.unpackedSint32_)) return false;
 
-       if(!unpackedSint64_.Equals(other.unpackedSint64_)) return false;
 
-       if(!unpackedFixed32_.Equals(other.unpackedFixed32_)) return false;
 
-       if(!unpackedFixed64_.Equals(other.unpackedFixed64_)) return false;
 
-       if(!unpackedSfixed32_.Equals(other.unpackedSfixed32_)) return false;
 
-       if(!unpackedSfixed64_.Equals(other.unpackedSfixed64_)) return false;
 
-       if(!unpackedFloat_.Equals(other.unpackedFloat_)) return false;
 
-       if(!unpackedDouble_.Equals(other.unpackedDouble_)) return false;
 
-       if(!unpackedBool_.Equals(other.unpackedBool_)) return false;
 
-       if(!unpackedEnum_.Equals(other.unpackedEnum_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       hash ^= unpackedInt32_.GetHashCode();
 
-       hash ^= unpackedInt64_.GetHashCode();
 
-       hash ^= unpackedUint32_.GetHashCode();
 
-       hash ^= unpackedUint64_.GetHashCode();
 
-       hash ^= unpackedSint32_.GetHashCode();
 
-       hash ^= unpackedSint64_.GetHashCode();
 
-       hash ^= unpackedFixed32_.GetHashCode();
 
-       hash ^= unpackedFixed64_.GetHashCode();
 
-       hash ^= unpackedSfixed32_.GetHashCode();
 
-       hash ^= unpackedSfixed64_.GetHashCode();
 
-       hash ^= unpackedFloat_.GetHashCode();
 
-       hash ^= unpackedDouble_.GetHashCode();
 
-       hash ^= unpackedBool_.GetHashCode();
 
-       hash ^= unpackedEnum_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (unpackedInt32_.Count > 0) {
 
-         output.WriteInt32Array(90, unpackedInt32_);
 
-       }
 
-       if (unpackedInt64_.Count > 0) {
 
-         output.WriteInt64Array(91, unpackedInt64_);
 
-       }
 
-       if (unpackedUint32_.Count > 0) {
 
-         output.WriteUInt32Array(92, unpackedUint32_);
 
-       }
 
-       if (unpackedUint64_.Count > 0) {
 
-         output.WriteUInt64Array(93, unpackedUint64_);
 
-       }
 
-       if (unpackedSint32_.Count > 0) {
 
-         output.WriteSInt32Array(94, unpackedSint32_);
 
-       }
 
-       if (unpackedSint64_.Count > 0) {
 
-         output.WriteSInt64Array(95, unpackedSint64_);
 
-       }
 
-       if (unpackedFixed32_.Count > 0) {
 
-         output.WriteFixed32Array(96, unpackedFixed32_);
 
-       }
 
-       if (unpackedFixed64_.Count > 0) {
 
-         output.WriteFixed64Array(97, unpackedFixed64_);
 
-       }
 
-       if (unpackedSfixed32_.Count > 0) {
 
-         output.WriteSFixed32Array(98, unpackedSfixed32_);
 
-       }
 
-       if (unpackedSfixed64_.Count > 0) {
 
-         output.WriteSFixed64Array(99, unpackedSfixed64_);
 
-       }
 
-       if (unpackedFloat_.Count > 0) {
 
-         output.WriteFloatArray(100, unpackedFloat_);
 
-       }
 
-       if (unpackedDouble_.Count > 0) {
 
-         output.WriteDoubleArray(101, unpackedDouble_);
 
-       }
 
-       if (unpackedBool_.Count > 0) {
 
-         output.WriteBoolArray(102, unpackedBool_);
 
-       }
 
-       if (unpackedEnum_.Count > 0) {
 
-         output.WriteEnumArray(103, unpackedEnum_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (unpackedInt32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in unpackedInt32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedInt32_.Count;
 
-       }
 
-       if (unpackedInt64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in unpackedInt64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedInt64_.Count;
 
-       }
 
-       if (unpackedUint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (uint element in unpackedUint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedUint32_.Count;
 
-       }
 
-       if (unpackedUint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (ulong element in unpackedUint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedUint64_.Count;
 
-       }
 
-       if (unpackedSint32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in unpackedSint32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedSint32_.Count;
 
-       }
 
-       if (unpackedSint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in unpackedSint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeSInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedSint64_.Count;
 
-       }
 
-       if (unpackedFixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * unpackedFixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedFixed32_.Count;
 
-       }
 
-       if (unpackedFixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * unpackedFixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedFixed64_.Count;
 
-       }
 
-       if (unpackedSfixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * unpackedSfixed32_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedSfixed32_.Count;
 
-       }
 
-       if (unpackedSfixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * unpackedSfixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedSfixed64_.Count;
 
-       }
 
-       if (unpackedFloat_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * unpackedFloat_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedFloat_.Count;
 
-       }
 
-       if (unpackedDouble_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * unpackedDouble_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedDouble_.Count;
 
-       }
 
-       if (unpackedBool_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 1 * unpackedBool_.Count;
 
-         size += dataSize;
 
-         size += 2 * unpackedBool_.Count;
 
-       }
 
-       if (unpackedEnum_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in unpackedEnum_) {
 
-           dataSize += pb::CodedOutputStream.ComputeEnumSize((int) element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 * unpackedEnum_.Count;
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestUnpackedTypes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       unpackedInt32_.Add(other.unpackedInt32_);
 
-       unpackedInt64_.Add(other.unpackedInt64_);
 
-       unpackedUint32_.Add(other.unpackedUint32_);
 
-       unpackedUint64_.Add(other.unpackedUint64_);
 
-       unpackedSint32_.Add(other.unpackedSint32_);
 
-       unpackedSint64_.Add(other.unpackedSint64_);
 
-       unpackedFixed32_.Add(other.unpackedFixed32_);
 
-       unpackedFixed64_.Add(other.unpackedFixed64_);
 
-       unpackedSfixed32_.Add(other.unpackedSfixed32_);
 
-       unpackedSfixed64_.Add(other.unpackedSfixed64_);
 
-       unpackedFloat_.Add(other.unpackedFloat_);
 
-       unpackedDouble_.Add(other.unpackedDouble_);
 
-       unpackedBool_.Add(other.unpackedBool_);
 
-       unpackedEnum_.Add(other.unpackedEnum_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 722:
 
-           case 720: {
 
-             input.ReadInt32Array(unpackedInt32_);
 
-             break;
 
-           }
 
-           case 730:
 
-           case 728: {
 
-             input.ReadInt64Array(unpackedInt64_);
 
-             break;
 
-           }
 
-           case 738:
 
-           case 736: {
 
-             input.ReadUInt32Array(unpackedUint32_);
 
-             break;
 
-           }
 
-           case 746:
 
-           case 744: {
 
-             input.ReadUInt64Array(unpackedUint64_);
 
-             break;
 
-           }
 
-           case 754:
 
-           case 752: {
 
-             input.ReadSInt32Array(unpackedSint32_);
 
-             break;
 
-           }
 
-           case 762:
 
-           case 760: {
 
-             input.ReadSInt64Array(unpackedSint64_);
 
-             break;
 
-           }
 
-           case 770:
 
-           case 773: {
 
-             input.ReadFixed32Array(unpackedFixed32_);
 
-             break;
 
-           }
 
-           case 778:
 
-           case 777: {
 
-             input.ReadFixed64Array(unpackedFixed64_);
 
-             break;
 
-           }
 
-           case 786:
 
-           case 789: {
 
-             input.ReadSFixed32Array(unpackedSfixed32_);
 
-             break;
 
-           }
 
-           case 794:
 
-           case 793: {
 
-             input.ReadSFixed64Array(unpackedSfixed64_);
 
-             break;
 
-           }
 
-           case 802:
 
-           case 805: {
 
-             input.ReadFloatArray(unpackedFloat_);
 
-             break;
 
-           }
 
-           case 810:
 
-           case 809: {
 
-             input.ReadDoubleArray(unpackedDouble_);
 
-             break;
 
-           }
 
-           case 818:
 
-           case 816: {
 
-             input.ReadBoolArray(unpackedBool_);
 
-             break;
 
-           }
 
-           case 826:
 
-           case 824: {
 
-             input.ReadEnumArray<global::Google.Protobuf.TestProtos.ForeignEnum>(unpackedEnum_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::IMessage<TestRepeatedScalarDifferentTagSizes> {
 
-     private static readonly pb::MessageParser<TestRepeatedScalarDifferentTagSizes> _parser = new pb::MessageParser<TestRepeatedScalarDifferentTagSizes>(() => new TestRepeatedScalarDifferentTagSizes());
 
-     public static pb::MessageParser<TestRepeatedScalarDifferentTagSizes> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 98, 16370, 2097138, 106, 16378, 2097146 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
 
-     }
 
-     public TestRepeatedScalarDifferentTagSizes() { }
 
-     public TestRepeatedScalarDifferentTagSizes(TestRepeatedScalarDifferentTagSizes other) {
 
-       repeatedFixed32_ = other.repeatedFixed32_.Clone();
 
-       repeatedInt32_ = other.repeatedInt32_.Clone();
 
-       repeatedFixed64_ = other.repeatedFixed64_.Clone();
 
-       repeatedInt64_ = other.repeatedInt64_.Clone();
 
-       repeatedFloat_ = other.repeatedFloat_.Clone();
 
-       repeatedUint64_ = other.repeatedUint64_.Clone();
 
-     }
 
-     public TestRepeatedScalarDifferentTagSizes Clone() {
 
-       return new TestRepeatedScalarDifferentTagSizes(this);
 
-     }
 
-     public const int RepeatedFixed32FieldNumber = 12;
 
-     private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();
 
-     public pbc::RepeatedField<uint> RepeatedFixed32 {
 
-       get { return repeatedFixed32_; }
 
-     }
 
-     public const int RepeatedInt32FieldNumber = 13;
 
-     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
 
-     public pbc::RepeatedField<int> RepeatedInt32 {
 
-       get { return repeatedInt32_; }
 
-     }
 
-     public const int RepeatedFixed64FieldNumber = 2046;
 
-     private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> RepeatedFixed64 {
 
-       get { return repeatedFixed64_; }
 
-     }
 
-     public const int RepeatedInt64FieldNumber = 2047;
 
-     private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();
 
-     public pbc::RepeatedField<long> RepeatedInt64 {
 
-       get { return repeatedInt64_; }
 
-     }
 
-     public const int RepeatedFloatFieldNumber = 262142;
 
-     private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();
 
-     public pbc::RepeatedField<float> RepeatedFloat {
 
-       get { return repeatedFloat_; }
 
-     }
 
-     public const int RepeatedUint64FieldNumber = 262143;
 
-     private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();
 
-     public pbc::RepeatedField<ulong> RepeatedUint64 {
 
-       get { return repeatedUint64_; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestRepeatedScalarDifferentTagSizes);
 
-     }
 
-     public bool Equals(TestRepeatedScalarDifferentTagSizes other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;
 
-       if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;
 
-       if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;
 
-       if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;
 
-       if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;
 
-       if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       hash ^= repeatedFixed32_.GetHashCode();
 
-       hash ^= repeatedInt32_.GetHashCode();
 
-       hash ^= repeatedFixed64_.GetHashCode();
 
-       hash ^= repeatedInt64_.GetHashCode();
 
-       hash ^= repeatedFloat_.GetHashCode();
 
-       hash ^= repeatedUint64_.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (repeatedFixed32_.Count > 0) {
 
-         output.WriteRawTag(98);
 
-         output.WritePackedFixed32Array(repeatedFixed32_);
 
-       }
 
-       if (repeatedInt32_.Count > 0) {
 
-         output.WriteRawTag(106);
 
-         output.WritePackedInt32Array(repeatedInt32_);
 
-       }
 
-       if (repeatedFixed64_.Count > 0) {
 
-         output.WriteRawTag(242, 127);
 
-         output.WritePackedFixed64Array(repeatedFixed64_);
 
-       }
 
-       if (repeatedInt64_.Count > 0) {
 
-         output.WriteRawTag(250, 127);
 
-         output.WritePackedInt64Array(repeatedInt64_);
 
-       }
 
-       if (repeatedFloat_.Count > 0) {
 
-         output.WriteRawTag(242, 255, 127);
 
-         output.WritePackedFloatArray(repeatedFloat_);
 
-       }
 
-       if (repeatedUint64_.Count > 0) {
 
-         output.WriteRawTag(250, 255, 127);
 
-         output.WritePackedUInt64Array(repeatedUint64_);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (repeatedFixed32_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * repeatedFixed32_.Count;
 
-         size += dataSize;
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedInt32_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (int element in repeatedInt32_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt32Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 1 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedFixed64_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 8 * repeatedFixed64_.Count;
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedInt64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (long element in repeatedInt64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 2 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedFloat_.Count > 0) {
 
-         int dataSize = 0;
 
-         dataSize = 4 * repeatedFloat_.Count;
 
-         size += dataSize;
 
-         size += 3 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       if (repeatedUint64_.Count > 0) {
 
-         int dataSize = 0;
 
-         foreach (ulong element in repeatedUint64_) {
 
-           dataSize += pb::CodedOutputStream.ComputeUInt64Size(element);
 
-         }
 
-         size += dataSize;
 
-         size += 3 + pb::CodedOutputStream.ComputeInt32Size(dataSize);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       repeatedFixed32_.Add(other.repeatedFixed32_);
 
-       repeatedInt32_.Add(other.repeatedInt32_);
 
-       repeatedFixed64_.Add(other.repeatedFixed64_);
 
-       repeatedInt64_.Add(other.repeatedInt64_);
 
-       repeatedFloat_.Add(other.repeatedFloat_);
 
-       repeatedUint64_.Add(other.repeatedUint64_);
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 98:
 
-           case 101: {
 
-             input.ReadFixed32Array(repeatedFixed32_);
 
-             break;
 
-           }
 
-           case 106:
 
-           case 104: {
 
-             input.ReadInt32Array(repeatedInt32_);
 
-             break;
 
-           }
 
-           case 16370:
 
-           case 16369: {
 
-             input.ReadFixed64Array(repeatedFixed64_);
 
-             break;
 
-           }
 
-           case 16378:
 
-           case 16376: {
 
-             input.ReadInt64Array(repeatedInt64_);
 
-             break;
 
-           }
 
-           case 2097138:
 
-           case 2097141: {
 
-             input.ReadFloatArray(repeatedFloat_);
 
-             break;
 
-           }
 
-           case 2097146:
 
-           case 2097144: {
 
-             input.ReadUInt64Array(repeatedUint64_);
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class TestCommentInjectionMessage : pb::IMessage<TestCommentInjectionMessage> {
 
-     private static readonly pb::MessageParser<TestCommentInjectionMessage> _parser = new pb::MessageParser<TestCommentInjectionMessage>(() => new TestCommentInjectionMessage());
 
-     public static pb::MessageParser<TestCommentInjectionMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] { "a" };
 
-     private static readonly uint[] _fieldTags = new uint[] { 10 };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<TestCommentInjectionMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable; }
 
-     }
 
-     public TestCommentInjectionMessage() { }
 
-     public TestCommentInjectionMessage(TestCommentInjectionMessage other) {
 
-       a_ = other.a_;
 
-     }
 
-     public TestCommentInjectionMessage Clone() {
 
-       return new TestCommentInjectionMessage(this);
 
-     }
 
-     public const int AFieldNumber = 1;
 
-     private string a_ = "";
 
-     public string A {
 
-       get { return a_; }
 
-       set { a_ = value ?? ""; }
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as TestCommentInjectionMessage);
 
-     }
 
-     public bool Equals(TestCommentInjectionMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       if (A != other.A) return false;
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       if (A.Length != 0) hash ^= A.GetHashCode();
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-       if (A.Length != 0) {
 
-         output.WriteRawTag(10);
 
-         output.WriteString(A);
 
-       }
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       if (A.Length != 0) {
 
-         size += 1 + pb::CodedOutputStream.ComputeStringSize(A);
 
-       }
 
-       return size;
 
-     }
 
-     public void MergeFrom(TestCommentInjectionMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-       if (other.A.Length != 0) {
 
-         A = other.A;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-           case 10: {
 
-             A = input.ReadString();
 
-             break;
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class FooRequest : pb::IMessage<FooRequest> {
 
-     private static readonly pb::MessageParser<FooRequest> _parser = new pb::MessageParser<FooRequest>(() => new FooRequest());
 
-     public static pb::MessageParser<FooRequest> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooRequest__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<FooRequest> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }
 
-     }
 
-     public FooRequest() { }
 
-     public FooRequest(FooRequest other) {
 
-     }
 
-     public FooRequest Clone() {
 
-       return new FooRequest(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as FooRequest);
 
-     }
 
-     public bool Equals(FooRequest other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(FooRequest other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class FooResponse : pb::IMessage<FooResponse> {
 
-     private static readonly pb::MessageParser<FooResponse> _parser = new pb::MessageParser<FooResponse>(() => new FooResponse());
 
-     public static pb::MessageParser<FooResponse> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooResponse__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<FooResponse> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }
 
-     }
 
-     public FooResponse() { }
 
-     public FooResponse(FooResponse other) {
 
-     }
 
-     public FooResponse Clone() {
 
-       return new FooResponse(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as FooResponse);
 
-     }
 
-     public bool Equals(FooResponse other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(FooResponse other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class FooClientMessage : pb::IMessage<FooClientMessage> {
 
-     private static readonly pb::MessageParser<FooClientMessage> _parser = new pb::MessageParser<FooClientMessage>(() => new FooClientMessage());
 
-     public static pb::MessageParser<FooClientMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooClientMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<FooClientMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable; }
 
-     }
 
-     public FooClientMessage() { }
 
-     public FooClientMessage(FooClientMessage other) {
 
-     }
 
-     public FooClientMessage Clone() {
 
-       return new FooClientMessage(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as FooClientMessage);
 
-     }
 
-     public bool Equals(FooClientMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(FooClientMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class FooServerMessage : pb::IMessage<FooServerMessage> {
 
-     private static readonly pb::MessageParser<FooServerMessage> _parser = new pb::MessageParser<FooServerMessage>(() => new FooServerMessage());
 
-     public static pb::MessageParser<FooServerMessage> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooServerMessage__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<FooServerMessage> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable; }
 
-     }
 
-     public FooServerMessage() { }
 
-     public FooServerMessage(FooServerMessage other) {
 
-     }
 
-     public FooServerMessage Clone() {
 
-       return new FooServerMessage(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as FooServerMessage);
 
-     }
 
-     public bool Equals(FooServerMessage other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(FooServerMessage other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class BarRequest : pb::IMessage<BarRequest> {
 
-     private static readonly pb::MessageParser<BarRequest> _parser = new pb::MessageParser<BarRequest>(() => new BarRequest());
 
-     public static pb::MessageParser<BarRequest> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarRequest__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<BarRequest> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }
 
-     }
 
-     public BarRequest() { }
 
-     public BarRequest(BarRequest other) {
 
-     }
 
-     public BarRequest Clone() {
 
-       return new BarRequest(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as BarRequest);
 
-     }
 
-     public bool Equals(BarRequest other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(BarRequest other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 
-   public sealed partial class BarResponse : pb::IMessage<BarResponse> {
 
-     private static readonly pb::MessageParser<BarResponse> _parser = new pb::MessageParser<BarResponse>(() => new BarResponse());
 
-     public static pb::MessageParser<BarResponse> Parser { get { return _parser; } }
 
-     private static readonly string[] _fieldNames = new string[] {  };
 
-     private static readonly uint[] _fieldTags = new uint[] {  };
 
-     public static pbd::MessageDescriptor Descriptor {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarResponse__Descriptor; }
 
-     }
 
-     public pb::FieldAccess.FieldAccessorTable<BarResponse> Fields {
 
-       get { return global::Google.Protobuf.TestProtos.UnittestProto3.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }
 
-     }
 
-     public BarResponse() { }
 
-     public BarResponse(BarResponse other) {
 
-     }
 
-     public BarResponse Clone() {
 
-       return new BarResponse(this);
 
-     }
 
-     public override bool Equals(object other) {
 
-       return Equals(other as BarResponse);
 
-     }
 
-     public bool Equals(BarResponse other) {
 
-       if (ReferenceEquals(other, null)) {
 
-         return false;
 
-       }
 
-       if (ReferenceEquals(other, this)) {
 
-         return true;
 
-       }
 
-       return true;
 
-     }
 
-     public override int GetHashCode() {
 
-       int hash = 0;
 
-       return hash;
 
-     }
 
-     public void WriteTo(pb::CodedOutputStream output) {
 
-     }
 
-     public int CalculateSize() {
 
-       int size = 0;
 
-       return size;
 
-     }
 
-     public void MergeFrom(BarResponse other) {
 
-       if (other == null) {
 
-         return;
 
-       }
 
-     }
 
-     public void MergeFrom(pb::CodedInputStream input) {
 
-       uint tag;
 
-       while (input.ReadTag(out tag)) {
 
-         switch(tag) {
 
-           case 0:
 
-             throw pb::InvalidProtocolBufferException.InvalidTag();
 
-           default:
 
-             if (pb::WireFormat.IsEndGroupTag(tag)) {
 
-               return;
 
-             }
 
-             break;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   #endregion
 
- }
 
- #endregion Designer generated code
 
 
  |